コードセキュリティ監査で見つかるもの
コードセキュリティ監査が、ソースコード内で何をチェックするか。
Code Security Auditはエージェント型エンジンを使ってソースコードを推論します Aikido Pentest の上に構築されています。Aikido Pentestが検証する脆弱性クラスに加え、稼働中のアプリに対してペンテストでは安全かつ確実に到達できない問題もカバーします。トレードオフとして、純粋に実行時の懸念については引き続きライブの対象が必要です。各検出結果にはコードベースの 証拠。 進捗と検出結果を追跡する その読み方について。
カバレッジの概要
Code Security Auditは、Aikido Pentestが検証する問題クラスについて推論します。具体的には次のものを含みます:
アクセス制御: IDOR / BOLA、アクセス制御の不備、テナントやロールをまたぐ権限昇格。
インジェクションの欠陥: SQL、NoSQL、LDAP、XPath、コマンドインジェクション、RCE、サーバーサイドテンプレートインジェクション(SSTI)。
クロスサイトおよびクライアントサイド攻撃: 格納型および反射型 XSS、CSRF、オープンリダイレクト、そして安全でないクライアントサイドデータ処理。
認証とセッションロジック: 脆弱なフロー、不足しているチェック、セッション処理の不備、および認証コード内のハードコードされた認証情報。
SSRF、デシリアライゼーション、ファイル処理: 安全でない URL 取得、危険なデシリアライゼーション、パストラバーサル、制限のないアップロードパターン。
暗号処理の失敗: 壊れたアルゴリズム、弱い署名(例:JWT)、およびコードパスにおける機密データの露出。
ビジネスロジックの欠陥: ワークフローのバイパス、決済およびチェックアウトの抜け道、複数ステップのエクスプロイトチェーン。
エージェント型アプリケーションのリスク: プロンプトインジェクション、過剰なエージェンシー、安全でないツール使用、そして残りの エージェント型アプリケーションのOWASP Top 10.
完全な脆弱性カタログは、以下を参照してください: Aikido Pentestでどのような問題を見つけられますか?。そこに挙げられている各クラスは、次に該当しない限りCode Security Auditの対象範囲です。 なお、依然として稼働中の対象が必要なもの を通して下記のようにします。
ライブペンテストで到達できる範囲を超えて
ソースからの方が見つけやすい問題もあれば、ソースでしか見えない問題もあります。Code Security Auditは、それらを直接推論します。たとえ生のペンテストでは安全にも現実的にも到達できない場合でも同様です:
ペンテストが持っていない認証情報によって制限されるコードパス。 ペンテストに管理者またはマネージャーのアカウントを提供しなければ、管理画面は検証されません。Code Security Auditはそれでもそのコードを読み取り、管理者専用ルートのSQLインジェクションなどの問題を報告します。
DoS とリソース枯渇のパターン。 ライブのペンテストでは、これらをあなたのアプリに対して安全に実行することはできません。Code Security Auditは、ReDoS、ハッシュ衝突DoS、指数的パーサーのようなアルゴリズム複雑性攻撃をコードから直接検出します。
まだ外部から到達できないコードパス。 新しくマージされたがまだデプロイされていないルート、機能フラグ付きのコード、休眠中のブランチは、実行時に何も公開されていなくても、ソースレベルの推論で確認できます。
なお、依然として稼働中の対象が必要なもの
一部のチェックは、稼働中のアプリケーションに対してのみ意味があります。Code Security Auditはソース内の危険な設定を検出できますが、実際にネットワーク上で環境が何を行っているかまでは確認できません。これらについては、 Aikido Pentest:
TLS とトランスポートの状態: 暗号スイート、プロトコルバージョン、証明書チェーン、そして提供される HSTS。
配信される HTTP セキュリティヘッダー: Code Security Auditは、ヘッダーがコード内で設定されているかどうかは確認できますが、CDN、WAF、またはエッジ層が実際にクライアントへ何を送信しているかまでは分かりません。
実運用におけるレート制限と不正利用対策: コード上では制限の存在を示せますが、それが実際に機能するかどうかはライブ実行でしか証明できません。
エッジでの CORS 挙動: 設定は見えますが、実際のレスポンスは見えません。
Web キャッシュポイズニング: 稼働中のキャッシュとのやり取りが必要です。
クレデンシャルスタッフィング、ブルートフォース、CAPTCHA 回避: 定義上、実行中でしか確認できません。
実際にレンダリングされた DOM ベース XSS: Code Security Auditはソースについて推論します。実行時レンダリングにはブラウザが必要です。
ホスト上のインフラストラクチャ: ソースではなく、実行中のホストに対して確認されます。
アプリケーションの種類と言語
Code Security Auditは、特に次のようなコードベースに有用です。 ライブテスト用のセットアップが困難、または現実的でないもの。ステージング環境、シミュレーター、またはデプロイ済みインスタンスの構築が障壁になっているなら、ソースレベルの推論により、そのような手間をかけずにペンテスト級の検出結果を得られます:
モバイルアプリ: テストには本来、端末、シミュレーター、または計測用の組み込みが必要になる iOS と Android のコードベース。
スマートコントラクト: 現実的な攻撃環境を整えるのが簡単ではないSolidityやその他のオンチェーンコードです。契約にのみ焦点を当てたレビューには、 スマートコントラクト監査.
デスクトップアプリ: ペンテストの対象にできる公開 URL がない、インストール済みバイナリ。
組み込みソフトウェア、ライブラリ、SDK: 他者のランタイムに組み込まれて出荷され、自分側に稼働中の対象がないコード。
社内ツールおよびバックオフィスシステム: VPN、SSO、または管理者のみのアクセスの背後にあるコードパスで、通常のライブペンテストでは到達できないもの。
エージェントは、主要なアプリケーション言語、設定、Infrastructure as Codeを、開発者と同じように横断して扱います。分析は、複数のサービスやパッケージを含むモノレポも含め、リポジトリ全体を対象範囲として扱い、ファイルやモジュールをまたぐ参照を追跡して、複数段階の問題を明らかにします。
FAQ
始める前に、対象範囲を確認してもらえますか?
はい。 サポートに問い合わせる クレジットを使う前に、特定のフレームワーク、アプリケーション種別、または検出クラスを確認するために。
関連
コードセキュリティ監査最終更新
役に立ちましたか?