「Defense in Depth」(多層防御)というセキュリティの考え方をご存知ですか?これは、複数の防御層を築き上げることで、システムをより安全にするという考え方です。

「Pentesting in Depth」(深層ペンテスト)は、この「多層防御」の考え方をペネトレーションテストに応用したものです。ペンテストを単なる表面的な検査ではなく、システム全体を深く掘り下げることで、より多くの脆弱性を発見することができます。

ペンテストとは?

一般的なセキュリティ検査とは異なり、ペネトレーションテスト(ペンテスト)は、実際にハッカーが攻撃を行うような手法でシステムを評価します。これにより、一般的な検査では見つけられないような、より深刻な脆弱性を発見することができます。ペンテストは、システムのセキュリティレベルを向上させるための最も効果的な方法の一つです。

ペンテストの実施方法には、以下の3つの方法があります。

  • ブラックボックテスト: ペンテスター(ペネトレーション・テスト)は、まるでハッカーのように、アカウントやシステムの説明を提供されずに、システムや業務を自ら調査し、アカウントを登録したり、アカウントを探したりします。この方法では、より迅速に作業を進めることができますが、評価グループがアカウントを持っていなかったり、機能を使用できなかったりするために、多くの機能がテストされない可能性があります。
  • ホワイトボックステスト:この方法では、ペンテスターはシステムの内部情報にアクセスでき、開発者と業務について意見交換したり、ソースコードをレビューしたりすることもできます。この方法により、ペンテスターはより多くの潜在的な脆弱性を発見でき、開発者が残したバックドアなどの脆弱性も発見できます。ただし、この方法ではセットアップがより複雑になり、ペンテスターはほとんどの場合現場で作業する必要があるため、コストが比較的多くかかります。
  • グレーボックステスト: この方法では、ペンテスターは上記2つの方法を組み合わせ、一般的なユーザーと同程度の情報、例えば、取扱説明書やシステムのアカウントなど、適度な情報を提供されます。この方法では、ペンテスターがすべての機能を網羅的にテストできると同時に、セットアッププロセスが迅速に行われるため、実装において優先的に選択されることが多いです。

Pentesting in Depth-深層ペンテスト

ペンテストは、アプリケーションのリリース前に実施するべき

ペンテストは、システムのセキュリティを評価する上で非常に重要な手法ですが、万能ではありません。ペンテスト実施後、システムが100%安全になるわけではないことを理解しておく必要があります。なぜなら、システムはリリース後、常に変化し続けるからです。新しい脆弱性の発見、システム構成の変化、そして外部からの攻撃など、様々な要因によってセキュリティリスクにさらされる可能性があります。

多層防御のように、セキュリティ対策も多層化することで、より強固なシステムを構築できます。ペンテストも同様で、多角的な視点からシステムを評価し、脆弱性を洗い出すことが重要です。

特に、セキュリティにおいては、批判的な思考が不可欠です。既存のセキュリティ対策を鵜呑みにせず、常に改善の余地を探ることが求められます。

批判的な思考ーRedTeam

セキュリティにおいて、批判的思考は、固定観念にとらわれず、システム内のサービス間のギャップから生じる潜在的なリスクを洗い出す上で不可欠です。特に、レッドチーム活動は、このようなリスクを発見し、より強固なセキュリティ体制を構築する上で重要な役割を果たします。

レッドチームサービスは、企業が導入しているセキュリティ対策やソリューションが本当に効果を発揮しているのかを検証するためのものです。企業は多大な予算を投じてセキュリティ監視、従業員教育、脆弱性診断などを実施していますが、これらの施策が本当に重要な情報資産を保護できているかどうかを確認する必要があります。レッドチームは、この課題に対する実践的な解決アプローチを提供します。

このサービスでは、実際の攻撃者と同じ手法を用いて、企業の最も重要な資産が狙われた場合のリスクを評価します。特に、高度な標的型攻撃(APT)を模倣し、以下の3つの主要な攻撃経路に焦点を当てています。

  1.  公開システムへの攻撃 – インターネット上に公開されているシステムを対象に、侵入経路を探り、より深い内部ネットワークへのアクセスを試みます。
  2. ユーザーを狙った攻撃 – フィッシング,マルウェア、詐欺メールなどを通じて、従業員の端末に侵入し、社内システムへアクセスを拡大します。
  3. 物理的・ソーシャルエンジニアリング攻撃 – 施設への物理的なアクセスを試み、無線LAN、ネットワーク機器、USBポートなどの脆弱性を探ります。

レッドチームのシミュレーションを通じて、企業は実際の攻撃シナリオに基づいた防御対策の見直しを行い、より強固なセキュリティ体制を構築することができます。

サービスの最終段階では、レッドチームがターゲットシステムへの侵入に成功すれば、それはサービスの成功と見なされます。企業には、発見された脆弱性やレッドチームが侵入に使用した経路、そしてそれに対する対策が詳細に報告されます。

レッドチームサービスを活用することで、企業は現在のセキュリティ投資の有効性を評価できるだけでなく、社内のセキュリティチームにとって実践的なトレーニングの機会にもなります。

多角的な視点ーBugbounty

レッドチームの成功は、ターゲットシステムへの侵入に成功したときに達成されます。しかし、もしレッドチームが何度試みても侵入に失敗した場合、要因は何?

この結果には2つの要因が考えられます。1つ目は、レッドチームの実施環境や手法が、本来のAPT攻撃のシミュレーションとして適切ではないこと。2つ目は、企業が依頼したレッドチームの視点やアプローチが古く、より新しい視点が必要であることです。

そのため、企業が自社のシステムやアプリケーションの脆弱性をより多角的に発見するための手段として、バグバウンティの活用が有効となります。

Viettel Cyber Security の Pwn2Own 2022 実績

バグバウンティは、企業や組織が提供するプログラムで、ホワイトハットやグレイハットのハッカーに自社のシステム内でセキュリティ脆弱性を見つけ、報告してもらうことを目的としています。通常、発見された脆弱性は、一定のポリシーに基づき、システムの所有者に報告され、その脆弱性の重大度に応じた報酬を受け取ります。バグバウンティは、企業がセキュリティリスクを軽減する手段の一つであり、世界中の何百、何千ものハッカーによって同時に評価されることを通じて実現されます。

バグバウンティは、この言葉が正式に使われる前から存在していました。1983年、Hunter & Ready社はソフトウェアのバグを探し出し、発見者に報酬を支払うコンテストを開催しました。しかし、現代のバグバウンティプログラムは1990年代に始まりました。Netscape Communicationsが、Netscape Navigatorブラウザのセキュリティ脆弱性を探すために、セキュリティ研究者を引き付けるプログラムを開始したのです。その後、グーグル、フェイスブック、マイクロソフト、アップルなど、他の多くのテクノロジー企業も自社のシステムを守るためにバグバウンティプログラムを導入しました。

現在、バグバウンティは情報セキュリティ分野の重要な一部となり、世界中の企業、組織、政府によって広く利用されています。代表的なプログラムには、ZDIのPwn2Ownや、BugCrowdやHackerOneが主催するプログラムがあります。

Viettel Cyber Security & CyberZEALも、SafeVuln(https://safevuln.com/)という同様のプラットフォームを提供しています。

ペンテスト前の段階 – DevSecOps

DevSecOpsは、開発(Development)と運用(Operations)にセキュリティ(Security)を統合し、迅速な開発と高いリリース頻度を維持しながら、セキュリティを確保するための開発手法です。

システムリリース前にペネトレーションテストを実施することは重要ですが, 頻繁なリリースサイクルにおいては、ペネトレーションテストが開発プロセスのネックとなる可能性があります. 情報セキュリティチームは、1週間の間に数十件もの評価リクエストを受け取ることがある。ただし、それぞれのリクエストで変更される機能はほんのわずかであることが多い。多くの企業は、開発プロジェクトにセキュリティ人材を配置する体制を構築しています。しかし、この方法は必ずしも効果的とは言えない。担当者の視点が固定化しやすく、スケジュールに追われることで、結果を急いで提出し、ミスが発生する可能性があります。

DevSecOpsの最良の実践方法

開発プロセスにセキュリティ対策を取り入れることで、アプリケーションの安全性を最初から確保し、リリース時のペネトレーションテストの負担を減らすことができる。DevOps がシステム運用を開発プロセスに統合するのと同様に、DevSecOps はセキュリティ を開発の初期段階から組み込むことを目的とする。これにより、セキュリティ対策を後付けするのではなく、開発の流れの中で継続的に実施することが可能となります。

 DevSecOps を効果的に導入し、実践に活かすためには、以下の 8 つのベストプラクティスを取り入れることが推奨されました。

  • 組織全体でDevSecOpsを実践する
  • セキュリティを製品の機能の一部として組み込む
  • 情報セキュリティリスクを早期に評価する仕組みを導入する
  • セキュリティ問題に対する高度な自動化検査
  • セキュリティリスクを効果的に検出するためのスキャンタイミングを決定する
  • 積極的に情報セキュリティに関する知識とスキルを習得する
  • フレームワーク、ライブラリ、プラグインなどの脆弱性を修正するためのパッチを常に適用する
  • 全システムの脆弱性情報を一元管理し、分析するシステムの導入

DevSecOpsの導入により、アプリケーションのセキュリティを早期に確保し、リリースまでの時間を短縮できます。当社では、以下のサービスを提供することで、お客様のDevSecOpsの向上を支援します。

  • DevSecOpsの実装に関するコンサルティング
  • 脅威モデリング評価
  • 定期的なペネトレーションテスト
  • 自動化された情報セキュリティシステムの統合
  • プロジェクト向けセキュリティアドバイザー
  • 安全なプログラミングのトレーニング

まとめ

多層防御に似て、 層ペンテストという概念は、まるで玉ねぎのように、システムのセキュリティを多層的に評価していくようなものです。外部のバグバウンティプログラムから始まり、レッドチームによる侵入テスト、そして内部的なセキュリティ対策まで、多角的なアプローチでシステムの脆弱性を洗い出していきます。

さらに、DevSecOps を導入することで、開発の初期段階からセキュリティを組み込み、継続的な脆弱性管理が可能になります。情報セキュリティは 一度の対策では終わらず、新たな脅威に対応しながら、継続的に改善していくことが重要です。多層的な視点を持ち、技術的な防御と組織的な対策を組み合わせることで、より強固なセキュリティ体制を構築していきましょう。