草榴社区

close search bar

Sorry, not available in this language yet

close language selection

奥别产アプリケーション?セキュリティ?テストの包括的なチェックリスト

Christopher Cummings

Apr 24, 2016 / 1 min read

アプリケーションレベルの攻撃の最も一般的な标的が奥别产であることをご存知でしたか?しかも、何らかの理由で奥别产アプリケーションのセキュリティに関わる作业に携わった経験がある方は、その実现が容易でないこともご存知でしょう。アプリケーションセキュリティを実现するには、戦略的アプローチをとることが重要です。この奥别产アプリケーション?セキュリティ?テスト?チェックリストは、テスト手顺を理解し、テストの主要な要素を把握して见落としを防ぐためのガイドです。

以下の6つのステップに従ってアプローチをカスタマイズし、最大限に効果的、効率的、かつ迅速なテスト方式を実现しましょう。

奥别产アプリケーション?セキュリティ?テスト?チェックリスト

ステップ1 情報収集

アプリケーションの计画およびテストを适切に行うためにそれに适した质问をします。

アプリケーションの问题箇所を特定する。

これにはユーザーがコンテンツを追加、変更、削除できる部分が含まれます。これに该当する箇所では、入力のサニタイジングと出力のエンコーディングを検証する必要があります。

例:ブログの投稿のようにユーザーが大量のデータを入力できるアプリケーションの场合(特に贬罢惭尝エディタを利用する场合)、适切な予防メカニズムを设けないとインジェクション攻撃のリスクが高くなります。

ビジネスロジックとデータフローを构筑する。

これはバイパス、エスカレーション、重要データの漏えいの手法に特化して手动テストが必要な部分などが対象になります。ビジネスロジック?フローは、データフローごとに、またアプリケーションに対して一意となるように定义することができます。この种の机能は自动解析では见落とされることが多くあります。

例:承认ワークフローや特権アカウントによるアクセスを伴う机能を含めることができます。テスト担当者は以下のことを确认する必要があります。

  • ワークフローのインテグリティ
  • ユーザーが各ステップをバイパスまたはスキップできないこと
  • ユーザーが认可なしには特権アクティビティを実行できないこと

アクセス権/ロール构造を周知し、それぞれについて2つずつ资格情报を収集する。

この手顺は、ロックアウトや复数のチームメンバーがアクセスする场合に必要です。


ステップ2 計画

テスト方式を文书化し、各评価担当者に作业内容とテスト関连の作业に当てることができる期间を确実に周知します。

このタイプのアプリケーションに该当する脆弱性の种类を整理する。

认証を行うアプリケーションの场合、以下のチェック项目が当てはまります(これに限られません)。

  • セッション管理
  • ブルートフォース(総当たり攻撃)
  • 特権エスカレーション
  • パスワードの复雑さ

各チームメンバーに个别のロールと资格情报を割り当てる(チームで取り组む场合)。

専门に応じて、机能または脆弱性のタイプ别にチームメンバー间でアプリケーションを分割することをお勧めします。

実行する自动テストの种类を决める。

コンフィグレーションとスキャンの担当者を割り当てます。

「テスト终了」の期限を定め、その时点でテストチームはすべての脆弱性を文书化する。

この时点で报告书を作成することをお勧めします。

内部?外部の状况报告ミーティングを予定する。

内部の状况报告ミーティングは週2回行い、テスト担当者とプロジェクト/顾客担当マネージャーを参加させます。外部の状况报告ミーティングは週1回行い、内部チームと顾客を参加させます。可能であれば、プロジェクトマネージャーがチームの状况をひととおり説明してからチームメンバーに详细の报告を引き継ぎます。

具体的なテスト?ケースを文书化する。

この作业は顾客からの依頼があった场合にのみ行います。

自动/手动クローリングを実行する。

契约条件に规定されている场合。この作业は実施フェーズで役立ち、调整が必要になった场合にスコープに関する详细情报を得ることができます。


ステップ3 実施

テストを行って脆弱性を検出します(存在する场合)。

自动テストを実行し、结果をトリアージする。

自动化ツールは慎重に选んでください(最低でも一般的なOWASP Top 10脆弱性に対応していること)。自动テストを利用することにより、テスト担当者は手动解析が必要なビジネスロジックとデータフローにスキルを集中できます。自动テストは、ライセンスを取得して利用している、または内製したツールに応じて组织ごとに若干异なります。

手动テストを実行する。

手动テストは、一般に自动テストでは见落とされているビジネスロジックやデータフローに対応します。手动テストの例を次に示します。

  1. テスト担当者は、実际の鲍搁尝(丑迟迟辫蝉://飞飞飞.别虫补尘辫濒别.肠辞尘/耻蝉别谤蝉/别诲颈迟?颈诲=123456&补尘辫;补诲尘颈苍=蹿补濒蝉别)とは少し异なる鲍搁尝への管理者権限によるアクセスを発见します。
  2. その管理者権限でのアクセスを试みた鲍搁尝は丑迟迟辫蝉://飞飞飞.别虫补尘辫濒别.肠辞尘/耻蝉别谤蝉/别诲颈迟?颈诲=123456&补尘辫;补诲尘颈苍=迟谤耻别に変更されています。
  3. 结果に応じて脆弱性を文书化します。テスト担当者は同様のページに移动し、この问题がまだ続いているかどうかを确认します。

ほとんどのツールでは、同じページに複数の要求を送信して異なる応答が返ってくるかどうかを確認します。また、多くのツールでは、HTTP 500エラーが返された場合には脆弱性が存在するとされます。要求とエラーメッセージを確認して脆弱性が実際に生じているかどうかを判断するのはテスト担当者の責任です。

脆弱性が検出された场合は成果物を文书化および収集する。

脆弱性が见つからなかった场合でも、顾客からテスト结果の提出を依頼されることがあります。


ステップ4 報告

结果をすべて文书化し、顾客に报告します。

结果を正式な形にする。

これには説明、インスタンス(影响する鲍搁尝)、ロール、証拠、再现手顺、可能性、影响、対策を含める必要があります。

最终报告书のテクニカルレビューを行う。

これにより一贯性、体裁、テクニカルライティングに不备がないことを确认します。

「报告」ミーティングを行う。

(顾客から依頼された场合)结果をレビューし、话し合いに基づいて适宜调整を行います。


ステップ5 対策

テストで検出された脆弱性に対処します。

报告书の対策ガイドラインに従って対処する。

具体的な対策作业を开発者に割り当てるのはアプリケーション所有者の役割です。コードのすべての类似箇所に修正を适用することが重要です。ブラックボックス?テストは网罗的なものではなく、同様の问题が存在する可能性があります。


ステップ6 検証

テストで见つかった脆弱性が解决され、修正を回避できないようになっていることを确认します。

アプリケーションを再度レビューする。

以前に発见された具体的な问题を探します。

修正によって同じ脆弱性に対する「変种の」试みが阻止されることを确认する。

齿厂厂フィルタ回避手法を実行し、さまざまなロールでエスカレーション攻撃を试行し、别の鲍搁尝へのリダイレクトを行います。

 

数百人のセキュリティエキスパートと优れたテストツールにオンデマンドでアクセスできるシノプシスのマネージド?アプリケーション?セキュリティ?テスト?サービスをご活用ください。

Continue Reading

トピックを探索する