![]()
有能な攻撃および侵入テスト チームの編成は、経営上の課題の中でも独特な位置付けにあります。有能な人材を見つけることが難しいこともあります。テスト実施者は機密性のきわめて高い企業データにアクセスしますが、アクセス先のシステムの責任者が協力的であるとは限りません。
企業は現在、業務上の必要性からインターネットに接続せざるを得ない状況にあります。企業ネットワークをインターネットに接続するため、企業の中核的な知的財産がインターネットを経由した攻撃の危険にさらされています。また、米国企業改革法、カリフォルニア州上院法案 1386 (SB 1386)、医療保険の携行性と責任に関する法律 (HIPAA : Health Insurance Portability and Accountability Act) などアメリカ合衆国における法規によって、企業は個人を特定できる情報の保護対策手段を講じるように求められています。IT 部門は企業ネットワークのセキュリティを高めるためにさまざまな選択肢を検討する必要があります。
また、リスクを評価し、そのリスクを軽減するためのポリシーを作成して、ポリシーへの準拠を強制するシステムを開発することも必要です。ポリシーを整備したら、そのポリシーへの準拠をテストするためのメカニズムを構築します。攻撃および侵入テストはセキュリティ ポリシーへの準拠性をテストし、まだ明らかになっていない脆弱性を検出するための一連の技法と方法論です。テストでは脅威を限定し、悪意のある身元不明なユーザーによる侵入を防ぐことを全体的な目的としています。
メモ Microsoft IT が行っているリスク測定フレームワークに基づいたポリシーの設定方法の詳細については、ホワイト ペーパー (http://www.microsoft.com/japan/technet/itsolutions/msit/security/mssecbp.mspx および http://www.microsoft.com/technet/itsolutions/msit/security/securingITenviron.mspx) (英語) を参照してください。
攻撃および侵入テストに取り組まずに、セキュリティ対策の効果を把握することは困難です。
攻撃および侵入テストはテスト対象に侵入しようとする試みを実践するもので、これによってセキュリティ対策の効果を測ります。このテストは企業のセキュリティを評価するために不可欠なものであり、その他のあらゆるセキュリティ対策の効果を判断するための最終チェックとして機能します。
攻撃および侵入テストは外部のベンダに委託することも社内で行うこともできます。このホワイトペーパーでは、社内の攻撃および侵入テスト チームの編成と運用に関する Microsoft IT の経験を記載します。
このホワイトペーパーは、企業の IT プロフェッショナルを対象としています。マイクロソフトの攻撃および侵入テスト チームについて概要を説明し、チームの計画、編成、展開、および運用の要点を記載します。このペーパーの内容は Microsoft IT の経験と推奨事項に基づいており、手順の説明を意図したものではありません。企業の持つ環境や状況はそれぞれ異なります。したがって、このホワイト ペーパーで説明している計画や得られた教訓を独自の要件に合わせて調整する必要があります。
このペーパーでは、社内の攻撃および侵入テスト チームを構築するプロセスについて説明します。マイクロソフトが使用したツール、技法、および技術の詳細には触れません。
| Microsoft IT について | |
| 攻撃および侵入テストの定義 | |
| Microsoft IT セキュリティ グループ部門 (SGO) | |
| 攻撃および侵入テスト プログラムの計画 | |
| 攻撃および侵入テスト プログラムの構築 | |
| 攻撃および侵入テスト プログラムの展開と運用 | |
| ベスト プラクティス | |
| まとめ | |
| 詳細情報 |
Microsoft IT は、さまざまな役割を担っています。まず、エンド ユーザーのサポートや通信管理からサーバーやネットワークの運用に至るまで、幅広い IT サービスを提供しています。マイクロソフトは世界 400 か所を超える事業所でおよそ 56,000 人の従業員、7,000 社の請負業者、および 28,000 社のベンダを擁していますが、Microsoft IT は、これらの人々が週を通して 1 日 24 時間いつでもマイクロソフトのネットワークにアクセスできるように努めています。
Microsoft IT は、実にアクティブで手腕を問われるセキュリティ環境で活動しています。手腕を問われる課題には、次のようなものがあります。
| • | マイクロソフトに対して毎月およそ 100,000 件に上る侵入の試行が行われています。 |
| • | マイクロソフトは、毎月 150,000 を超えるウイルスに感染した電子メール メッセージの調査、ウイルス検知、および隔離作業を行っています。 |
| • | マイクロソフトは、特殊なセキュリティを必要とする製品開発、製品テスト、および製品サポート向けに、固有の IT 環境を構築しています。 |
これらの課題の組み合せは、大規模かつ動的な IT 環境に見られるセキュリティ上の脆弱性に起因するものです。継続的な取り組みが行われているものの、それらの課題に含まれる変動要因によって状況は一層複雑になっています。
攻撃および侵入テストは体系的なアプローチであり、既に展開されている "テスト対象" の弱点を特定します。テスト対象としてネットワーク、一連のホスト、組織内に展開されているアプリケーション、および検討が必要な機能や部分が挙げられます。攻撃および侵入テストでは、機密性の高いビジネス システムへの侵入を試みるときにハッカーが使用するものと同様の技術やツールを採用します。攻撃および侵入テスト チームは脆弱性を検出し特定するための方法論を構築します。
システムにおける脆弱性のほとんどは異なる種類に分類されます。脆弱性の種類に応じて、異なる技術が必要になることが一般的です。たとえば、プラットフォームの脆弱性は次のような種類に分類されます。
| • | サービスの停止 |
| • | 有効なユーザーの特権への昇格 |
| • | ホストへの許可されていないアクセス |
| • | リモートからのスクリプト実行 |
攻撃および侵入テストでは攻撃を組み合わせたり、新手の攻撃方法を考えたり、既に明らかになっている脆弱性を利用したりするなど、これらのことを計画的に試行します。その目的はテスト対象の解読や対象への侵入に必要なものを見つけることです。
攻撃および侵入テスト チームは自動ポート スキャナ、ネットワーク パケット スニッファ、パスワード攻撃、テスト スクリプトなどのツールを使用して、企業ネットワークへの許可されていないアクセスを試みるテストを実施します。これらは悪意のあるユーザーが実際に使用するツールです。
攻撃および侵入テスト チームはマイクロソフトにおいて専門的なテスト実施者で構成される小さなグループです。企業の機密保持を担当する組織である Microsoft IT に属します。
攻撃および侵入テスト チームは次に挙げるような、マイクロソフトの他のグループと密接に連携しています。
| • | リスク評価グループ 企業の機密保持を担当する組織の一部です。最高レベルのセキュリティ上のリスクを特定し、攻撃および侵入テスト チームが行うテストについて優先順位を設定します。 |
| • | IT リソース責任者 (テスト対象の責任者) Microsoft IT における基幹業務アプリケーションを運用する IT グループで多数のグループがあります。攻撃および侵入テスト チームはこれらの IT グループを対象にテストを実施します。テスト対象の責任者グループには、人事アプリケーション、財務システム、給与システム、電子メール システム、およびその他のインフラストラクチャに関連するシステムの責任者が含まれます。 |
| • | 監査グループ 攻撃および侵入テスト チームは監査グループとして組織されています。関連する技術やスキルはまったく異なりますが、IT プロセスの監査グループが技術の監査グループと共同することは珍しくありません。このような体制を構築してポリシーに対する特定のアプリケーションの準拠性を保証します。 |
| • | セキュリティ プログラム マネージャ プログラム マネージャのチームは攻撃および侵入テスト チームとテスト対象の責任者との橋渡し的な役割を果たします。テスト対象の開発者、管理者、および管理グループに対しては、テストで検出された問題への取り組みを支援するために専門的なアドバイスを提供し、セキュリティ コンサルタントとして機能します。攻撃および侵入テスト チームに対しては、プログラム管理として機能します。プログラム マネージャは、ほとんどの場合、特定の問題に対するプロジェクト管理を行います。たとえば、テストに最適な時間の調整や、検出された問題の追跡を行います。また、攻撃および侵入テスト チームがテストを完了した後にテスト対象の責任者グループが問題を解決することを支援します。 |
攻撃および侵入テスト プログラムを計画するには、次の手順を実行します。
| • | 企業データとそのデータが攻撃にさらされるリスクを評価します。 |
| • | 攻撃および侵入テストについて社内にチームを編成するか、外部に委託するかを検討します。 |
| • | テストが必要な対象のインベントリを作成し、採用する人材の数を見積もります。 |
| • | 企業およびデータに適用される法律上および規制上の条項を判断します。 |
攻撃および侵入テストを実施する前にリスクを把握し、優先順位を付けることが重要です。優先順位の最も高いリスクから順にテストを行います。
マイクロソフトでは攻撃および侵入テスト チームの対象を特定し、テストの優先順位を設定するために別組織としてリスク評価チームを設けています。
リスク評価は次のように異なる側面から実施します。
1. | データの重要性 たとえば、企業の中核的な知的財産、人事データ、および個人を特定できる情報 (クレジット カードや社会保障番号など) は重要なデータとして評価するべきです。 |
2. | 対象における脅威 たとえば、ネットワークへの接続方法やデータが格納されているホストに接続できるユーザーの種類について評価します。 |
3. | 発生する可能性のある損害額 たとえば、特定のホストへの侵入が行われたとき (または特定のホストをオフラインにしたとき) に企業が被る損害額を評価します。 |
4. | 既に明らかになっている技術関連の脆弱性がセキュリティ上の弱点として悪用される可能性 このようなセキュリティ上の弱点について、悪意のあるユーザーが悪用することが簡単であるか、ワームやウイルスの開発が容易であるかを評価します。 |
5. | 法律上の制約 たとえば、HIPAA、米国企業改革法、SB 1386 などの法規への準拠が求められるデータを含むアプリケーションを特定します。 |
リスク評価チームは、これらの基準を使用して特定のテスト対象に関する総合的なリスクを見極め、攻撃および侵入テストの優先順位を決定します。
総合的なリスクを最小限に抑えるには、重要な対象をテストするだけでは十分でありません。優先順位の低い対象であっても、企業ネットワークのすべての対象に対してある時点でサンプリング テストを行う必要があります。これは、優先順位の低い対象ホストのセキュリティ上の弱点を突いて侵入に成功することによって、優先順位の高いアプリケーションの脅威に結び付き、損害額が増大することが考えられるためです。
Microsoft IT は、リスク評価チームを編成してさまざまな対象にあるデータの重要性を確認することをお勧めします。リスク評価チームから提示される攻撃および侵入テストの優先順位に基づいて、攻撃および侵入テスト プログラムを開始します。
メモ リスク評価の詳細については、『セキュリティ管理ガイド』 (http://www.microsoft.com/japan/technet/security/guidance/secrisk/default.mspx)、ホワイトペーパー『インシデント対応 : Microsoft 社内におけるセキュリティ管理』 (http://www.microsoft.com/japan/technet/itsolutions/msit/security/msirsec.mspx)、ホワイトペーパー『Microsoft のセキュリティ対策』の「Microsoft Corporate Security Group のリスク管理フレームワーク」 (http://www.microsoft.com/japan/technet/itsolutions/msit/security/mssecbp.mspx) を参照してください。
コンサルティング業務を基盤に攻撃および侵入テストのサービス提供を専門とするセキュリティ対策企業は数多くあります。中小規模の企業である場合、または業務上直ちにテストを実施する必要性がある場合、重要性の高い対象のテストを外部委託することは最短期間で目標を達成するための選択肢になり得ます。
ただし、長期的には攻撃および侵入テスト チームを社内に編成することに多くの利点があります。たとえば、次のような点が挙げられます。
| • | 継続的な作業による有効性 セキュリティ テストは継続的なプロセスであり、一度限りの処理ではありません。ほとんど毎日のように新たな脆弱性が発見されます。アプリケーション グループは、新しいソフトウェアを定期的に展開します。古いシステムは時間がたつと使われなくなり、企業は認識していないリスクにさらされる可能性があります。このようなリスクを検出し、それを軽減する方法を特定するには、攻撃および侵入テスト プログラムを継続的に行うしか方法がありません。 |
| • | 長期的な観点からの低コスト セキュリティ管理要件に対する長期的なソリューションとして外部のセキュリティ コンサルタントを採用する場合、高いコストがかかります。セキュリティ対策の専門家を社内に擁する場合、長期的に見ると企業が攻撃および侵入テストにかけるコストを低く抑えることができます。また、専門家チームが社内システムに精通するのに伴ってセキュリティの品質も向上します。定期的な外部監査を実施すると、社内からの攻撃および侵入テスト チームによる社内監査を適切に補完できることに注意してください。 |
| • | 機密データが漏洩するリスクの低下 攻撃および侵入テスト チームを社内に擁すると、機密データの開示をより適切に管理することができます。 |
攻撃および侵入テストには、技術に関する広範な専門知識が求められます。たとえ小規模な企業であっても、あらゆる種類の攻撃および侵入テストを実施するための専門知識を 1 人の担当者が備えているとは考えられません。次に挙げる技術的な専門知識の広範な 3 つの領域において補完的なスキルを持つセキュリティの専門家チームを編成することが重要です。
1. | ホスト ホストの専門家はホストへの侵入方法を把握しています。各ポートで実行されるサービス、一般的な脆弱性や不適当な構成が見つかる場所、およびセキュリティ上の弱点を突く方法を理解しています。ホストの専門家は一般にシステム エンジニアリングやサーバー管理などの職務経験があります。 |
2. | ネットワーク ネットワークの専門家は、使用されているネットワーク プロトコルについて完全に理解し、ネットワーク トラフィックの分析、プロトコルレベルでの攻撃の実行、およびネットワーク制御のテストを行うことができます。また、ルーター、ネットワーク トポロジ、ネットワーク アクセス制御機構、およびネットワーク スタックのレイヤについて豊富な知識を備えています。ネットワークの専門家は一般に、ネットワーク エンジニアリングや通信の職務経験があります。 |
3. | アプリケーション アプリケーションの専門家は、ネットワーク アプリケーションやホスト アプリケーションの設計や開発に関する手法、およびシステムへの侵入を許す代表的なコーディング エラーの発生場所を理解しています。アプリケーション アーキテクチャに関する専門知識を備えている場合は、アプリケーションを解読する方法や、何らかの方法でホストにアクセスするためのトリックとしてアプリケーションに使用されるデータの場所を突き止めることができます。アプリケーションの専門家は一般に、アプリケーション開発の職務経験があります。 |
攻撃および侵入テスト チームに推奨される最低限の編成は、これらの領域のそれぞれの専門家から成る 3 人の編成です。このような 3 人がそれぞれ異なる強み、意見、および考えを持っていると、チームはより包括的に機能しより広い範囲において脆弱性を検出することができます。チームを編成するときにはネットワーク上に展開されている各技術の専門家を採用します。マイクロソフトでは、ホストの専門家のほとんどは特に Windows プラットフォームの経験が豊富な人材から選定しました。展開しているシステムに基づいて専門家を選定してください。
3 つの領域の専門家から成るチームは、最もリスクの高いアプリケーションのテストから作業を開始します。十分なテストを行うには、ネットワークに展開するテスト対象の数に応じて、攻撃および侵入テスト チームの増員が必要になる場合があります。マイクロソフトの攻撃および侵入テスト チームは、このホワイトペーパーを執筆している時点で 5 人で編成されています。メンバを追加すると、チームに新しい能力が加わるため、より多くの社内テスト対象を評価できるようになります。追加するチーム メンバの専門知識については、企業で広く用いられている特定の技術領域の専門知識に重点を置きながら、リスク評価チームが示したリスクに基づいて、おおよその見当を付けることができます。
業界によってさまざまな法規が制定され、情報システムの整合性と安全性についてさまざまな管理方法が指定されています。たとえば、カリフォルニア州上院法案 1386 (SB 1386) では個人を特定できる情報をネットワーク経由で送信する場合、それらのあらゆる情報を暗号化するように義務付けています。攻撃および侵入テスト チームは、これらの要件を満たしていることを 2 つの側面から検証します。まず、トラフィックを解析し、暗号化されていない個人を特定できる情報がないかどうかを確認します。そして、個人を特定できる情報を送信するときの暗号化を確認します。
ここでは、Microsoft IT 攻撃および侵入テスト プログラムの構築にかかわる人材、プロセス、および技術について説明します。
攻撃および侵入テスト プログラムを開始するにあたって最大の難関は第一人者となる人材を探すことです。セキュリティのチームは小規模で結束の固いグループであり、攻撃および侵入テスト プログラムを開始するために経験豊富な人材を見つけることは非常に困難な作業になることもあります。
まず、セキュリティのコンサルティング企業と仕事をして、ふさわしい候補者について尋ねてみるのも 1 つの方策です。
セキュリティについて豊富な職務経験を持ち、チームを率いる人材を 1 人見つけることができたら、他のメンバとしてコンピュータ関連の広範なトラブルシューティング スキルを持つ人材を探し、その他のポジションを担当するようにトレーニングすることができます。これらの人材は、多くの場合、ネットワーク エンジニアリング、ソフトウェアのテスト、ヘルプ デスクなどの職務経験があります。攻撃および侵入テストはいろいろな意味で品質保証 (QA) テストに類似しています。このテストの目的は、対象 (テスト対象であるホスト、ネットワーク、およびアプリケーションのセットを指す) の通常動作を妨害することにあります。QA テストに適性のある人材であれば、攻撃および侵入テストを担当する能力があると考えられます。
ただし、人材を探すときには、脆弱性を見つける技術的なスキルを持ち、システムへの侵入を試みるテストを行う実力があるという面だけでなく、対人関係が優れている面も考慮します。攻撃および侵入のテスト実施者は業務上のシステムの責任者との連携作業が求められ、検出された脆弱性を効果的に修正するために許可されていないユーザーからのアクセスを試行する必要があります。
何よりも信頼できる候補者を見つけることが重要です。攻撃および侵入のテスト実施者は企業において最も機密性の高いデータに触れる可能性があります。テスト実施者には必然的にこれらの情報を機密扱いにすることが求められます。セキュリティを専門とする外部のコンサルティング企業も、多くの場合、これを理由に守秘義務の契約締結を求められます。すべての候補者に対して徹底的な審査と職務経験に関する調査を行う必要があります。
SANS (SysAdmin, Audit, Network, and Security Institute) はセキュリティの専門家を養成するための優れた広範なプログラムやコースを提供します。SANS は GIAC (Global Information Assurance Certification) と呼ばれるプログラムによって、セキュリティの専門家に対する認定試験制度を運用しています。
攻撃および侵入テスト チームに選定されたメンバは、知的で意欲的な創造力のある人材です。セキュリティの専門家は需要が高く、十分な報酬を見込むことができます。また、通常の業務では高い独立性を持って職務を遂行することが認められます。
マイクロソフトの攻撃および侵入テスト チームは友好的で競争心の強いグループとして編成されました。勤務評定の期間中、各メンバは管理者からだけでなく、チームの他のメンバからのフィードバックも受け取ります。チーム メンバの競争心は強く、各メンバはテストしている新たな対象に潜む脆弱性をだれよりも早く見つけようとします。プロジェクトごとに順番に各メンバがリーダーとなるようにしてチーム全体の成長を図ります。
テストを行うチーム メンバの最大の動機付けは知識を追求して理解することです。定期的な調査は日常業務の一環です。各メンバは業務時間を使って新たな脆弱性やセキュリティ上の弱点を確認し、新しい技術を理解します。また、定期的に実際のテスト作業から離れ、チームにとって有益と思われる点について徹底的な調査を行います。マイクロソフトの攻撃および侵入テスト チームの標準的なテスト実施者は作業時間の 80% を評価作業に当てます。残りの 20% については、新たな脆弱性の調査や産業界の時流の把握に 10% を、電子メールへの返信などその他の作業に 10% を割り当てています。
チーム内で上級のメンバになるにつれて、業務時間の大部分を調査および他のチーム メンバの管理や指導に当てることになります。上級メンバは、業務時間を次のように配分します。
| • | 50% リスク評価 |
| • | 20% 調査および侵入テスト用の新しいツールの設計、セキュリティ分野における最新の開発動向の把握 |
| • | 30% 方法論やポリシーの定義に重点を置いた、その他の作業 (他のチーム メンバの指導も含みます) |
攻撃および侵入テスト チームに属するテスト実施者の業務遂行能力は、発見した脆弱性の数、テスト実施者が発見した脆弱性の中で従来明らかになっていなかった脆弱性の種類、および脆弱性の解決におけるシステムの責任者との連携作業の効率に基づいて評価される必要があります。
攻撃および侵入テスト チームのマネージャは、チーム運営に必要となる尊敬を得られるような優れた技術的スキルを持ち、強力な指導力を発揮する人材であることが求められます。企業幹部からのサポートを得られるように、幹部との円滑なコミュニケーションを図ることも必要です。また、評価プロセスのループを閉じるために効果的に働くことや、脆弱性の見つかった対象の責任者に対して、見つかった脆弱性へのセキュリティ確保に責任を取らせることも求められます。チーム メンバによる調査手段の選定を支援し、各メンバ、チーム、および企業にとってプラスになるように指導しながら、チーム メンバを先導できる能力を備えているマネージャが理想的です。
攻撃および侵入テストの方法論は長い間を経て社内で構築され、企業の知的財産として扱われることが一般的です。チームを立ち上げるときにセキュリティの専門家を採用する理由の 1 つに、セキュリティの専門家は企業に対して有効な方法論を開発するときの支援業務を経験していることが挙げられます。方法論は技術および企業文化を始め、企業に固有のその他の要因などによって変わります。
マイクロソフトの攻撃および侵入テスト チームは業務アプリケーションの責任者をそれぞれ個別のクライアントとして扱います。構築された大部分の方法論にはテスト対象の責任者と協力して作業を進めるために、攻撃および侵入テスト チームにとって効果的な方法が反映されています。
メモ セキュリティのチームは攻撃および侵入テストを含め、さまざまなセキュリティ監査に対して一般的な手順や方法論を採用します。次に、この情報を掲載している Web サイトを一覧に示します。
攻撃および侵入テスト チームは、方法論に加えて、テスト実施者とテスト対象の責任者との間の取り決めを概説した職務遂行上のルールを明確に定義します。職務遂行上のルールは、侵入テストによって得られる知識を最大限に活用しながら、業務に及ぼす影響を最小限に抑えるように意図されていることが必要です。このルールでは、自己対応プロセスに予想外の事象が発生した場合の対処方法についても定義します。マイクロソフトでは、これらのルールは標準的な IT サービス レベル契約 (SLA) と同じように機能します。
職務遂行上のルールには、少なくとも次に挙げる事項を含めます。
| • | 実施するテストの種類 |
| • | 現在進行中の侵入テストのスコープ |
| • | テストの種類に関連するリスク |
| • | テスト実施期間 |
| • | テストの成否基準 |
| • | 機密性の高い情報 (従業員の給与など) への不正なアクセスが認められた場合の対処方法 |
| • | セキュリティ上の問題が発見された場合の解決方法 |
| • | 過去または現在における侵入が検出された場合の問題対応チームの関与方法 |
マイクロソフトでは、攻撃および侵入テスト チームの目標をアプリケーションの責任者であるビジネス ユニット IT (BUIT) グループの目標とは正反対の内容に設定しています。BUIT グループは、テスト実施者が侵入できない場合にテストは成功であると見なしますが、テスト チームは許可されていないユーザーが対象にアクセスできた場合にテストが成功したと考えます。セキュリティ プログラムのマネージャは、これらの 2 つのグループの仲介役として機能し、プロセスがスムーズに進行するようにします。
ほぼすべてのテストで、テスト実施者は何らかのセキュリティ上の弱点となり得る脆弱性を見つけています。脆弱性を見つけられない場合、テスト実施者は何か重要なことを見落としているに違いないという態度を崩しません。このようなテストを引き受けて取り組むことは BUIT グループにとって困難な場合がありますが、最終的にはこうした取り組みが企業ネットワークのセキュリティ強化に結び付きます。2 つのチームの相反する目標を両立させるためには、セキュリティの許容レベルについて明確に定義されたプロセスと開示されたポリシーが不可欠です。
テスト実施者は攻撃の種類に応じた適切なツール セットを使用してテストを実施します。たとえば、脆弱性のスキャン、ネットワーク スニッフィング、侵入テストなどを実行するツールや、特定の脆弱性を詳しく調べるために記述したカスタム スクリプトなどを使用します。特定の攻撃を調べるために使用するツールは完全にテスト対象に依存します。
攻撃および侵入テスト チームは、専用のテスト環境を使用してテストを実施します。テスト環境は構成、オペレーティング システム、およびネットワーク上の配置条件の異なるさまざまなコンピュータで構成されています。このような環境でテスト実施者は入手した情報を最大限に活用しながら、テスト対象のシステムに対していろいろな側面から攻撃します。
攻撃および侵入テスト チームを編成したら、脆弱性の評価を実際に開始します。評価プロセスは一般に、図 1 に示すような基本手順に従って行われます。
1. | 対象を選定する リスク評価チームは通常、自らのチームが行ったリスク評価に基づいてテスト対象を選定します。価値の高いデータを含むアプリケーションやインターネットに接続されているホストは重要であると見なされ最初にテストが行われます。その他の基幹業務アプリケーションを順番にサンプリングを行ってテストし、ネットワーク上の脆弱性の状態について合理的かつ全面的な判定結果を導き出します。 |
2. | BUIT グループにアクセス情報を要求する セキュリティ プロジェクトのマネージャが BUIT グループに連絡を取り、実施するテストについて知らせます。そして評価対象とするものに関する設計および展開情報、さらにアクセスに必要な資格情報を要求します。 |
3. | テスト対象を評価する テスト対象の責任者から提供されたドキュメント、テスト チームのテスト実施者の専門知識、およびテスト対象の代表的な弱点に関する調査情報を使用して攻撃および侵入テスト チームはさまざまな側面から対象を評価します。これには認証、承認、暗号化、使用されている技術、および構成についての評価も含めます。 |
4. | 計画を立案および伝達する チームは収集した情報を使用してテスト対象に潜む脆弱性を特定し、実施すべきテストの種類、成否判定基準、および調査するその他の弱点を概説したテスト計画を作成します。作成した計画を実施予定の攻撃に関する情報と共にテスト対象の責任者に伝えます。問題対応チームが活動を開始しないように、これらの情報は企業セキュリティ グループと Microsoft IT グローバル ネットワーク運用チームにも伝えます。 |
5. | システムの閉鎖型テストを行う このテストは一般に BUIT グループに通知した後、設計と展開に関する情報を待っている間にプロセスの早期の段階で開始します。まず、脆弱性のスキャンを実施し、アクセス権を持たずにテスト対象へのアクセスをテストします。これは展開が安全な方法で行われていることと、BUIT グループから提供されるドキュメントの内容に一致することを確認するためのテストです。 この段階で、テスト実施者はテスト対象への侵入や機密データの捜索を試みます。また、基本的なアクセスが適切なセキュリティ レベルに設定されていることを確認するためのチェックも行います。 |
6. | ユーザー アカウントを使用してテストする 攻撃および侵入テスト チームに対して、ホストやアプリケーションへのユーザー アカウントが付与されるとシステムの公開型テストを開始します。この段階でチームはアプリケーションの各承認レベルに対するユーザー アカウントのテストを実施し、対象のユーザー アカウントでは承認されていないデータへのアクセスを試行します。このテストによってアプリケーションのセキュリティ ポリシーに違反しないかどうかを調べます。 ソース コードを利用できる場合はコードのテストも行います。このテストではセキュリティ上適切な方法で記述されていないコードを特定します。たとえば、ユーザー フォーム経由で送信されたデータの検証を行わない Web アプリケーションは SQL インジェクション攻撃に対する脆弱性を持つことが考えられます。その場合、データベースに格納しているデータに対してユーザーによる破壊やスプーフィング攻撃や可能になります。 |
7. | 問題を記録および解決する テスト中に重大な脆弱性が見つかった場合、テスト実施者は直ちにテスト対象の責任者に通知し、チームと連携して問題を解決するために必要な専門知識を提供します。それ以外の場合は、問題追跡データベースを使って見つかった脆弱性を追跡します。 |
8. | テスト対象の責任者へ結果を報告する テストが完了したら、テスト実施者は結果を報告します。レポートには戦術上および戦略上の必要性を記載します。戦術面の内容に取り組むリソースには、見つかった問題を修正する任務が割り当てられます。解決が容易な一般的な問題の場合、攻撃および侵入テスト チームはテスト対象の責任者と協力して迅速に問題を解決します。戦略面の内容に取り組むリソースには、さまざまな変更作業と広範なセキュリティ上の概念や要件の採用が求められます。修正が困難な脆弱性がある場合、攻撃および侵入テスト チームはテスト対象のグループに対してセキュリティ上の弱点に関するリスク評価と、その脆弱性について把握している情報を提供します。 |
9. | プロジェクトを評価およびドキュメント化する 攻撃および侵入テスト チームは方法論とプロセスの再評価を継続的に行い、新しい評価プロジェクトで内容が改善されるようにします。活動内容とその結果はすべてドキュメント化します。これは法規で定められているためであり、またチームの全体的な知識を蓄積するためでもあります。マイクロソフトの攻撃および侵入テスト チームは、年に 4 回、見直し作業を行って、社内クライアントや他のチーム メンバから寄せられた能力、対応、効果などについてのフィードバックを評価します。 |
このホワイトペーパーに記載した大部分の助言は、マイクロソフトの攻撃および侵入テスト チームの経験に基づいています。
| • | 詳細な記録の保存 1 つの対象カテゴリ (ホスト、ネットワーク、アプリケーションのいずれか) で見つかった脆弱性は別のシステムの同じカテゴリにも見られる場合があります。発見したことを集中管理したリポジトリに保存しておくと、将来の評価プロジェクトでチームがより効率的に作業できるようになります。 組織で各種の法規に準拠しているか証明することが求められたときに、攻撃および侵入テストの記録を見せることで、テスト対象に関する問題点、テスト対象への侵入が困難であることを示すドキュメント、および法規に対するテスト対象の準拠性を高めるための手順などを提示できます。 たとえ許可されていないユーザーから対象にアクセスされた場合でも、これらの記録を使用すれば、攻撃元を突き止めて損害を限定することができます。 |
| • | 強力なチームの編成 セキュリティの専門家は需要が高く、企業に引き止めておくことが難しくなることがあります。大部分のセキュリティの専門家は意欲的であり、新しいスキルの習得に関心を持っています。このような専門家に対して調査を追求する時間を与え、定期的なトレーニングの機会を提供し、各自の分野での専門性を高めることを支援することによって、専門家は企業にとどまることに魅力を感じ、セキュリティ対策において大きな役割を果たします。 |
| • | 新しい人材の発掘 攻撃および侵入テスト チームは、セキュリティについて豊富な職務経験を持つ人材が率いることが必要です。その他、侵入テストを行う組織で経験を積んだ人材に加え、攻撃および侵入テストについて前途有望な候補者は、QA 部門、開発グループ、ネットワーク管理グループなどで見つけることができます。探究心があり、システムの内外に関する知識欲を持ち、現在のポジションでは有り余る能力のある人材を探します。このような人材は攻撃および侵入のテスト実施者として成功する可能性を秘めています。 |
| • | チームの職務遂行能力の評価 攻撃および侵入テストの効果を評価することは重要です。Microsoft IT チームは、テスト対象の責任者や他のチーム メンバからのフィードバックと共にチームが検出した脆弱性の数、重大度、種類などを評価して、各チーム メンバの能力を査定します。 |
| • | セキュリティ業界におけるベスト プラクティスの動向を把握 セキュリティ業界は専門性の高い比較的小規模なグループで構成されています。多くの効果的なプラクティスはセキュリティを強化し、責任を持ってテスト対象の責任者と連携することを目的に開発されています。攻撃および侵入のテスト実施者は社内の行動規約と同様に、これらのベスト プラクティスについてのトレーニングも受ける必要があります。攻撃および侵入テスト チームの運営が成功するかどうかは専門家としての意識が高く、正確かつ徹底して職務を遂行するような、想像力に富み、使命に対する感受性の高い人材を集められるかどうかにかかっています。 |
攻撃および侵入テスト プログラムは、許可されていないユーザーがテスト対象にアクセスする困難さを評価し、企業の全体的な脅威をより正確に判断することを支援します。攻撃および侵入テストでは、Microsoft 企業ネットワークのセキュリティ評価には不可欠なセキュリティ チェックを行います。
テスト対象とするシステムを選定するときの 1 つのアプローチとして、システムに格納されているデータが悪意のあるユーザー、競合他社、または一般の利用者に開示された場合に企業が被る損害額を計る方法があります。Microsoft IT は、企業の IT 部門が攻撃および侵入テストを実施することをお勧めします。システムに格納されているデータのビジネス上の価値に基づいて、最初に評価するシステムとチームに加えるリソースの数を決定します。
企業の IT 部門は、この作業を外部のコンサルタントに委託することも社内にチームを編成して実施することもできます。社内に Microsoft IT チームを編成すると、コスト削減や全体的な IT セキュリティの強化につながります。また、リリース前のテストにおける製品フィードバックを通じて、製品の品質を高めることができます。
インターネットでは、次の Web サイトで弊社の情報をご覧いただけます。
http://www.microsoft.com/japan/
http://www.microsoft.com/japan/showcase/
http://www.microsoft.com/japan/technet/itsolutions/msit/default.mspx