製品
コード、クラウド、ランタイムのセキュリティを確保するために必要なすべてを1つの集中管理システムで実現
コード
依存関係
オープンソースのリスクを防ぐ(SCA)
機密事項
暴露された秘密をキャッチ
SAST
記述通りの安全なコード
コンテナ画像
画像を簡単に保護
マルウェア
サプライチェーン攻撃の防止
コードとしてのインフラ
IaCの設定ミスをスキャンする
ライセンス・リスクとSBOM
リスクを回避し、コンプライアンスを遵守する
時代遅れのソフトウェア
EOLランタイムを知る
クラウド
クラウド / CSPM
クラウドの設定ミス
DAST
ブラックボックス・セキュリティ・テスト
APIスキャン
APIの脆弱性をテストする
仮想マシン
代理店なし、諸経費なし
Kubernetesランタイム
まもなく
コンテナワークロードのセキュリティ
クラウド在庫管理
クラウド・スプロールの解決
ディフェンス
ランタイム保護
アプリ内ファイアウォール / WAF
特徴
AI 自動修正機能
Aikido AIによる1クリック修正
CI/CD セキュリティ
マージおよびデプロイ前のスキャン
IDEインテグレーション
コーディング中にすぐにフィードバックを得る
オンプレミスキャナ
コンプライアンス優先のローカル・スキャン
ソリューション
使用例
コンプライアンス
SOC 2、ISO、その他の自動化
脆弱性管理
オールインワンの脆弱性管理
コード保護
高度なコード・セキュリティ
SBOMの生成
1クリック SCAレポート
ASPM
包括的なアプリケーションセキュリティ
AikidoのAI
AikidoのAIに任せる
ブロック0日
被害を受ける前に脅威を遮断する
産業別
フィンテック
ヘルステック
HRテック
リーガルテック
グループ会社
エージェンシー
スタートアップ企業
企業
モバイルアプリ
製造業
価格
リソース
開発者
資料
Aikidoの使い方
公開APIドキュメント
Aikido 開発者ハブ
変更履歴
出荷状況を見る
セキュリティ
社内リサーチ
マルウェア&CVEインテリジェンス
用語集
セキュリティ専門用語ガイド
トラストセンター
安全、プライベート、コンプライアンス
オープンソース
Aikido インテル
マルウェア&OSS脅威フィード
禅
アプリ内ファイアウォール保護
OpenGrep
コード解析エンジン
インテグレーション
IDE
CI/CDシステム
クラウド
Gitシステムズ
コンプライアンス
メッセンジャー
タスクマネージャー
その他の統合
について
について
について
チーム紹介
採用情報
募集中
プレスリリース
ブランドアセットのダウンロード
カレンダー
また会えますか?
オープンソース
OSSプロジェクト
ブログ
最新記事
お客様のフィードバック
最高のチームからの信頼
お問い合わせ
ログイン
無料で始める
CC不要
Aikido
メニュー
Aikido
EN
EN
FR
JP
ログイン
無料で始める
CC不要

ブログへようこそ

XRPサプライチェーン攻撃:NPMの公式パッケージが暗号を盗むバックドアに感染
?による
チャーリー・エリクセン
チャーリー・エリクセン

XRPサプライチェーン攻撃:NPMの公式パッケージが暗号を盗むバックドアに感染

マルウェア
2025年4月22日
Aikido マルウェアの起動 - Open Source Threat Feed
?による
マデリーン・ローレンス
マデリーン・ローレンス

Aikido マルウェアの起動 - Open Source Threat Feed

ニュース
2025年3月31日
ありふれた風景の中に潜むマルウェア北朝鮮のハッカーをスパイする
?による
チャーリー・エリクセン
チャーリー・エリクセン

ありふれた風景の中に潜むマルウェア北朝鮮のハッカーをスパイする

2025年3月31日
TL;DR: tj-actions/changed-files サプライチェーン・アタック
?による
マデリーン・ローレンス
マデリーン・ローレンス

TL;DR: tj-actions/changed-files サプライチェーン・アタック

tj-actions/changed-filesのサプライチェーン攻撃について説明しよう。 TL;DR、あなたがすべきこと、何が起こったのか、さらに詳しい情報はこちらをお読みください。

TL;DR

- について tj-actions/changed-files 現在23,000以上のリポジトリで使用されているGitHub Actionが侵害され、ワークフローのログを通じて機密が流出し、数千のCIパイプラインに影響を及ぼしている。

- タグ付けされたバージョンはすべて変更されており、タグベースのピン留めは安全ではありません。公開リポジトリが最もリスクが高いが、非公開リポジトリもその公開を確認すべきである。

- 早急な対策としては、影響を受けるワークフローを特定すること、侵害されたアクションへのすべての参照を削除すること、シークレットをローテーションすること、不審なアクティビティがないかログをチェックすることなどが挙げられる。

Aikido回答 重大度(スコア100)を持つ利用方法にフラグを立てる新しいSASTルールをリリースしました。Aikido 、将来的にこの種のエクスプロイトを防ぐために、あなたのGithubアクションを自動的に固定することができます。

まず、どうすればいいのか?

の影響を受けるかどうかを確認する。 j-actions/changed-files サプライチェーン攻撃

A) 検索 tj-アクション コードベースの

B)このGithubクエリを使って、あなたの組織のリポジトリから、影響を受けるGitHubアクションへの参照を探します([your-org]は組織名に置き換えてください)。

使用中止 tj-actions/changed-files できるだけ早く、侵害されたアクションへのすべての参照を削除してください。

影響を受けるパイプラインのシークレットをローテーションし、公開されたトークンが不審に使用されていないか、(サードパーティの)サービスのログをチェックしてください。

攻撃に入ろう:何が起こったのか?

を含むセキュリティ・インシデントが発生した。 tj-actions/changed-files GitHub Actionは2025年3月中旬に確認された。攻撃者は、ワークフローのログを介してCI/CDの秘密を暴露する悪意のあるコードを導入しました。Step Securityによって最初に報告されたこのインシデントには、CVE-2025-30066が割り当てられています。

何が起きたのか、どのようにコードがプッシュされたのかについてはまだ明確になっていないが、多くの報告によると、攻撃者はtj-actions-botアカウントにリンクされたGitHub Personal Access Token (PAT)を侵害した。

事件のタイムライン

2025年3月14日以前:悪意のあるコードが影響を受けたリポジトリに影響を与え始め、公開ログに秘密が漏れる。

2025年3月14日:セキュリティ研究者が侵害を特定し、注意を喚起。

2025年3月15日GitHub Gistにホストされていた悪意のあるスクリプトは削除されました。侵害されたリポジトリは、悪意のある変更を元に戻すために一時的にオフラインにされ、その後、有害なコミットがない状態で復元されました。

2025年3月15日: 攻撃に関する声明とともにレポがオンラインに戻りました。メンテナも攻撃についてコメントしています。

直接的な脅威は対処されましたが、侵害されたアクションのキャッシュバージョンは依然としてリスクをもたらす可能性があります。機密性の高いクレデンシャルを保護するためには、予防的な緩和策が必要です。

tj-actions/changed-files攻撃の影響は?

一般的なリポジトリ tj-actions/changed-files特に公開されているものは、パイプラインで使用されている秘密が漏れる危険性がある。これらの秘密は、脅威行為者の悪意あるコードによってワークフローのログから暴露された。外部へのデータ流出は確認されていませんが、公開リポジトリのログは悪意のある行為者によってアクセスされる可能性があります。非公開リポジトリは影響を受けにくいが、それでも暴露を評価し、影響を受けた場合は秘密をローテーションする必要がある。

公開リポジトリ:秘密を含むワークフローログが公開されるため、リスクが高い。

プライベート・リポジトリ:リスクは低いが、ワークフローのログにアクティブな秘密が公開されることは重大なリスクである。

キャッシュされたアクションのユーザー:侵害されたアクションをキャッシュしたワークフローは、キャッシュが消去されるまで危険にさらされ続ける可能性があります。

Aikido どのように役立つのか?

を発表した。 SAST新ルール のフラグを立てる。 tj-actions/changed-files との併用 重要度 (100点)。すでにAikido使用している場合は、カバーされています。Aikido アカウントを持っていない場合は、数秒で接続し、セットアップをスキャンすることができます。

この攻撃以外にも、Aikido Githubのアクションを自動的にピン留めし、将来この種の悪用を防ぐ。

また、当社独自のマルウェア脅威フィードであるAikido Intelは、npm、pypiでのリリース後3分以内にマルウェアを検出します。

ソフトウェア・サプライチェーンを容易にし、新たなリスクや攻撃をいち早く警告します。

攻撃についてもっと知る

- ラティオのアナリスト、James Berthotyによる「tj-actions/changed-filesサプライチェーン攻撃の理解と再作成」についての解説です。Jamesはまた、あなたのセンサーをテストするために、あなた自身の環境で攻撃を再現する方法も紹介しています(注意してください)。

- 最初に攻撃を報告したStep Securityは、調査分析「Harden-Runner detection: tj-actions/changed-files action is compromised」を発表した。

- CVE-2023-51664を見る

ニュース
2025年3月16日
脆弱性を気にする開発者のための、BSなしのDockerセキュリティ・チェックリスト
?による
マッケンジー・ジャクソン
マッケンジー・ジャクソン

脆弱性を気にする開発者のための、BSなしのDockerセキュリティ・チェックリスト

なぜここに?

Dockerのセキュリティに関する2つの質問に対する本当の答えを知りたい:

Dockerは本番環境でも安全か?

はい、違います。Dockerは名前空間とリソースの分離に依存するセキュリティモデルを使用しており、クラウドVMやベアメタルシステムから直接アプリケーションを実行するよりも、特定の攻撃からコンテナ内のプロセスをよりセキュアにします。

Dockerのセキュリティを(ひどく苦痛を伴わない方法で)向上させるにはどうすればよいでしょうか?

公式イメージの使用やホストを最新の状態に保つといった、Googleのあちこちにあるような基本的な推奨事項を飛ばして、最も一般的で深刻なDockerの脆弱性について説明します。代わりに、新しいデフォルトのDockerコンテナのデプロイメントをこれまでよりもはるかに安全にする、新しいdockerオプションやDockerfileの行を直接紹介します。

Via @sidpalas on Twitter/X:https://x.com/sidpalas/status/1638558418830233600

ノーBSのDockerセキュリティ・チェックリスト

コンテナ内ファイルシステムを読み取り専用にする

何が得られるのか?

攻撃者がDockerコンテナの実行環境を編集できないようにすることで、インフラに関する有益な情報を収集したり、ユーザーデータを収集したり、DOSやランサムウェア攻撃を直接行ったりできるようになります。

どのように設定するのですか?

実行時またはDocker Composeの設定内で、2つのオプションがあります。

実行時に: docker run --read-only your-app:v1.0.1

Docker Composeファイルに

サービス
webapp:
image: your-app:v1.0.1read_only: true
...

ロック権限の昇格

何が得られるのか?

setuidやsetgidを使うことで、Dockerコンテナや、コンテナ内部で悪さをする攻撃者が、新しい特権(rootレベルでも)を有効にできないようにすることができます。コンテナへのアクセスがより許可されるようになると、攻撃者はパスワードやデータベースなど、デプロイの接続部分へのキーの形で認証情報にアクセスできるようになります。

どのように設定するのですか?

もう一度、実行時またはDocker Composeの設定内で。

実行時に: docker run --security-opt=no-new-privileges your-app:v1.0.1

Docker Composeファイルに

サービスを提供する: 
	webapp:    
		image: your-app:v1.0.1    
		security_opt:     
			-no-new-privileges:true    
...

コンテナ間ネットワークの分離

何が得られるのか?

デフォルトでは、Dockerはすべてのコンテナをdocker0ネットワーク経由で通信させるため、攻撃者は侵害されたコンテナから別のコンテナへと横方向に移動できる可能性がある。個別のサービス A そして B 容器入り Y そして ZDockerのセキュリティを向上させるために横方向の移動を防止しながら、ネットワークを分離することで、同じエンドユーザー・エクスペリエンスを提供します。

どのように設定するのですか?

Dockerネットワークは、実行時またはDocker Compose設定内で指定することができます。ただし、最初にネットワークを作成する必要があります:

docker network create your-isolated-network

実行時に --ネットワークオプションn: docker run --network your-isolated-network your-app:v1.0.1

または、Docker Composeファイルの同等のオプション:

サービスを提供する: 
	webapp:    
    	 image: your-app:v1.0.1    
        networks:     
        	- 分離されたネットワーク    
		...

適切な非 root ユーザーを設定する

何が得られるのか?

コンテナ内のデフォルトユーザーは ルートuidは 0. 別個のユーザを指定することで、攻撃者がrootのような制限なしにアクションを実行できる別のユーザに権限をエスカレートさせることを防ぎます。

どのように設定するのですか?

ビルド・プロセス中またはランタイム中にユーザーを作成します。実行時に、初めてユーザーを作成するか、あるいは ユーザー はビルド時に設定済みである。

ビルドの過程で ドッカーファイル:

...
RUN groupadd -r your-user
RUN useradd -r -g your-user your-user
ユーザー myuser
...

‍

実行時に: docker run -u your-user your-app:v1.0.1

Linuxカーネルの機能を落とす

何が得られるのか?

デフォルトでは、DockerコンテナはLinuxカーネル機能の制限されたセットの使用を許可されている。Docker社の人々は、完全にセキュアにするためにこの制限されたセットを作ったと思うかもしれないが、多くの機能は互換性とシンプルさのために存在している。例えば、デフォルトのコンテナは、ファイルの所有権を任意に変更したり、ルート・ディレクトリを変更したり、プロセスのUIDを操作したり、ソケットを読んだりできる。これらの機能の一部またはすべてを削除することで、攻撃ベクトルの数を最小限に抑えることができる。

どのように設定するのですか?

実行時に能力を削除したり、新しい能力を設定したりできる。たとえば、すべてのカーネル機能を削除して、コンテナには既存のファイルの所有権を変更する機能だけを許可することができる。

docker run --cap-drop ALL --cap-add CHOWN your-app:v1.0.1

‍

またはDocker Composeの場合:

サービス
	webapp:
    	 image: your-app:v1.0.1
        cap_drop:
        	- すべて
        cap_add:
        	- CHOWN
        ...

フォーク爆弾を防ぐ

何が得られるのか?

フォークボムは、既存のプロセスを無限に複製するDoS攻撃の一種である。まずパフォーマンスを低下させリソースを制限するため、必然的にコストが上昇し、最終的にはコンテナやホストシステムをクラッシュさせる可能性がある。いったんフォークボムが始まると、コンテナやホストを再起動する以外に止める方法はない。

どのように設定するのですか?

実行時に、コンテナが作成できるプロセス(PID)の数を制限できる。

docker run --pids-limit 99あなたのアプリ:v1.0.1

‍

あるいはDocker Composeを使う:

サービス
	webapp:
		image: your-app:v1.0.1
デプロイ
			制限
				pids: 99

‍

オープンソースの依存関係を監視してDockerのセキュリティを向上させる

何が得られるのか?

Dockerでデプロイするためにコンテナ化したアプリケーションは、おそらく幅広い依存関係のツリーを持っている。

どのように設定するのですか?

最も "非BS的 "な方法は、Aikido オープンソース依存性スキャンです。私たちの継続的なモニタリングは、アプリケーション内のロックファイルの存在に基づいて、12以上の言語で書かれたプロジェクトをスキャンし、脆弱性とマルウェアの概要を即座に提供します。偽陽性をフィルタリングする自動トリアージにより、Aikido 、あなたが他の多くの参考文書やGitHubの問題を読んだ後だけでなく...すぐに作業を開始できる修復アドバイスを提供します。

Aikido、Trivy、Syft、Grypeのような確立されたオープンソース・プロジェクトが大好きです。また、これらのプロジェクトを単独で使用することは、開発者にとって特に良い経験にはならないことも経験から知っています。Aikido 、これらのプロジェクトをカスタム・ルールで強化することで、ギャップを埋め、他の方法では見つけられないようなセキュリティ上の欠陥を明らかにします。様々なオープンソースのツールを連結して使うのとは異なり、Aikido 、スキャンスクリプトを構築したり、CI/CDでカスタムジョブを作成したりする必要から解放します。

より完全なDockerセキュリティのためのAikidioのオープンソース依存性スキャン。
タイプキャプション(オプション)

Dockerのセキュリティのために信頼できるイメージのみを使用する

何が得られるのか?

Docker Content Trust (DCT)は、Docker HubのようなDockerレジストリから取り出した公式イメージに署名し、その内容と完全性を検証するシステムです。作者によって署名されたイメージのみをプルすることで、デプロイに脆弱性を生じさせるような改ざんがされていないことをより確実にすることができます。

どのように設定するのですか?

最も簡単な方法は、シェルに環境変数を設定することで、あなたや他の人が信頼できないイメージで作業するのを防ぐことができる。

exportDOCKER_CONTENT_TRUST=1
docker run ...

あるいは、Dockerを実行するたびに環境変数を設定することもできる:

docker_content_trust=1docker run ...

製造終了(EOL)ランタイムの更新

何が得られるのか?

Dockerコンテナのセキュリティに関する一般的な推奨事項の1つは、イメージと依存関係を特定のバージョンに固定することです。 最新.理論的には、改ざんされたものであっても、新たな脆弱性をもたらす新しい画像を無意識のうちに使用することを防ぐことができる。

どのように設定するのですか?

EOLを発見し、最善の準備をするのに役立つオープンソースのプロジェクトがいくつかある。endoflife.dateプロジェクト(GitHubリポジトリ)は、複数のソースからのデータを集約し、公開APIを介して利用できるようにすることで、300以上の製品を追跡している。endoflife.dateや同様のプロジェクトにはいくつかの選択肢がある:

  • アプリケーションが依存している依存関係のアップデートがないかプロジェクトを手動でチェックし、必要なアップデートのチケットや課題を作成します。
  • APIから依存関係のEOL日を取得するスクリプト(Bash、Pythonなど)を書き、cronジョブのように定期的に実行する。
  • 公開API、またはカスタムスクリプトをCIプラットフォームに組み込んで、EOLに近い、またはEOLに達したプロジェクトを使用するビルドを失敗させる。

開発者として、あなたの時間は貴重であり、しばしば限られていることを理解しています。そこでAikido EOLスキャン機能は、Node.jsやNginxウェブサーバのように、最も影響と露出のあるランタイムを優先的に、コードとコンテナを追跡します。いつものように、Aikidoは情報収集を自動化するだけでなく、適切な重要度を持つアラートを配信することで、ユーザを圧倒するのではなく、情報を提供します。

使用済みの依存関係をスキャンすることで、Dockerのセキュリティを向上させる例。
アン

コンテナ・リソースの使用を制限する

何が得られるのか?

デフォルトでは、コンテナにはリソース制約がなく、ホストのスケジューラと同じだけのメモリやCPUを使用する。特定のコンテナの リソース使用量を制限することで、DoS攻撃の影響を最小限に抑えることができます。Out of Memory Exceptionによってコンテナやホストシステムがクラッシュする代わりに、進行中のDoS攻撃はエンドユーザーエクスペリエンスに悪影響を与える「だけ」になります。

どのように設定するのですか?

実行時に --メモリ そして --CPU オプションを使用して、それぞれメモリと CPU の使用量の上限を設定する。メモリ・オプションは、g がギガバイト、m がメガバイトの数値をとり、CPU オプションは、コンテナとそのプロセスで使用可能な専用 CPU の上限を反映する。

docker run --memory="1g"--cpus="2"あなたのアプリ:v1.0.1

これはDocker Composeでも使える:

サービス
	webapp:
    	 image: your-app:v1.0.1
        deploy:
            limits:
            	 cpus: '2'
                memory: 1G
         ...

Dockerセキュリティのための最後のコマンドとComposeオプション

今までに、あなたはかなりの数のDockerセキュリティのヒントと、それらに関連するCLIオプションや設定を見てきました。以下では、より安全なDockerコンテナのデプロイをすぐに始められるように、推奨事項を1つのコマンドや設定テンプレートにまとめました。

もちろん、非rootユーザー名、カーネル機能、リソース制限などのオプションのいくつかは、アプリケーションのニーズに応じて変更したい。

exportDOCKER_CONTENT_TRUST=1
docker run  \ 
    --read-only  
    --read-only--security-opt=no-new-privileges 
    --network your-isolated-network ¦ --cap-drop ALL  
    --cap-drop ALL 
    --cap-add CHOWN  
    --pids-limit 99 
    --memory="1g" --cpus="2" ୧--user=your-user 
    --ユーザー=ユーザー  
    ...                 # その他のオプションはこちら  
    your-app:v1.0.1

ホストのシェルでdrunエイリアスを作成し、詳細を覚えていなくても呼び出せるようにするのもいいだろう。

関数 drun  { 
docker run   
    	--読み取り専用    
       --security-opt=no-new-privileges \
        --network your-isolated-network ˶ --cap-drop ALL   
        --cap-drop ALL 
        --cap-add CHOWN    
        --pids-limit 99 
        --memory="1g" --cpus="2" ୧--user=your-user   
        -user=your-user ୧-͈ᴗ-͈ᴗ    
        $1\ 
       $2
}.

次に、オプションとイメージ名を指定して、エイリアスを次のように実行する。

もしあなたがDocker Composeを使う人であれば、同じオプションをすべて、今後作業できる新しいベースラインDocker Composeテンプレートに適応させることができます:

サービス
	webapp:
    	 image: your-app:v1.0.1
        read_only: true
        security_opt:
           -no-new-privileges:true
        networks:
           - 分離されたネットワーク
        cap_drop:
           - すべて
        cap_add:
           - CHOWN
        デプロイ
        	limits:
        		 pids: 9
        		 cpus: '2'
        		memory: 1G
        ...               # その他のオプションはこちら

おまけ:ルートレスコンテナでDockerを動かす

Dockerを任意のシステムにインストールすると、そのデーモンはrootレベルの特権で動作します。上記のオプションをすべて有効にし、Dockerコンテナ内での権限昇格を防いだとしても、ホストシステム上のコンテナランタイムの残りの部分は依然としてルート権限を持っています。そのため、必然的に攻撃対象が広がってしまいます。

その解決策がルートレス・コンテナであり、非特権ユーザーが作成・管理できる。root権限が必要ないということは、ホスト・システムのセキュリティ問題がはるかに少ないことを意味する。

1つのオプションやコマンドでルートレス・コンテナを使う手助けができればいいのだが、そう簡単にはいかない。ルートレス・コンテナのウェブサイトには、Docker用のハウツー・ガイドを含む詳細な手順が掲載されている。

Dockerセキュリティの次は?

‍

この経験から何かを学んだとしたら、それはコンテナ・セキュリティは長丁場の作業だということだ。Dockerやその古く、誤解されがちな従兄弟であるKubernetesのコンテナをロックダウンするための堅牢化チェックリストや深く掘り下げた記事は、いつでも読むことができる。多忙な開発スケジュールの中にセキュリティに取り組む時間を作り、影響度と重大性に基づいて段階的に改善することで、長い時間をかけて長い道のりを歩むことができます。

このような継続的なプロセスを最大限に活用し、アプリケーションのセキュリティを有意義に改善するための修正に優先順位をつけるために、次のようなものがあります。 Aikido.私たちは、"ノー・BS "開発者セキュリティ・プラットフォームのために、1,700万ドルのシリーズAを調達したばかりです。

ガイド
2025年3月6日
JavaScriptによるSQLインジェクション攻撃の検知と阻止
?による
マッケンジー・ジャクソン
マッケンジー・ジャクソン

JavaScriptによるSQLインジェクション攻撃の検知と阻止

なぜここに?

JavaScriptによるSQLインジェクション攻撃について耳にしたことはあるだろうが、実際にどのようなものなのか、そもそも心配する必要があるのか、まったくわからない。もしかしたら、それがどの程度悪いものなのか把握しようとしているかもしれない。

要するに、MySQLやPostgreSQLのようなSQLデータベースを使用してアプリケーションを構築している場合、あなたは危険にさらされているのです。開発者としては、ユーザーデータを保護するガードレールを実装し、基礎となるインフラが決して侵入されたり、探索されたり、徴用されたりしないようにする責任があります。

新しいツールはすべて、あなたを助けると言っているが、開発をより複雑にしているだけだ。

Sequelizeや TypeORMの ようなオブジェクトリレーショナルマッパー(ORM)を追加することで、MySQLやPostgreSQLのようなSQLデータベースでの作業を簡素化することはできるが、リスクを完全に回避できるわけではない。ウェブアプリケーションファイアウォール(WAF)は、ネットワークレベルでの攻撃をブロックするのに役立つが、高価なインフラと継続的なメンテナンスが必要だ。コードスキャナー(Code Scanner)は、明らかな欠陥を特定するのに役立つが、未知の未知数や潜んでいるゼロデイテクニックに対しては、ほとんど役に立たない。

SQLインジェクション攻撃がどのようなもので、どのようなリスクがあり、どのような開発ミスがSQLインジェクション攻撃を可能にしているのかを明確に説明します。そして、グローバルなHotfixのインストール方法を説明することで、お客様のアプリが安全であることを確実にお伝えします。

SQLインジェクション攻撃の例とその影響

SQLインジェクション攻撃の最も基本的な定義は、アプリがデータベースクエリを実行するために、検証もサニタイズもされていないユーザー入力を許可することで、攻撃者がSQLデータベースを読んだり、レコードを変更したり、思いのままに削除したりできるようにすることです。

いつものように、XKCDはSQLの危険性を、私たちが夢見るような暗いシナリオよりもうまく説明している:

有名なコミック「ボビー・テーブル」は、JavaScriptによるSQLインジェクション攻撃の可能性を示している。
タイプキャプション(オプション)

脆弱なJavaScriptアプリはどのようなものか?

簡単な擬似コードの例から始めましょう。ユーザーが猫のデータベースを検索できる入力要素を持つJavaScriptアプリです。以下のJavaScriptコード例では、アプリは/catsパスのPOSTリクエストに応答して、リクエストボディからユーザー入力を抽出し、一致するidを持つすべての猫を返すクエリでデータベースに接続します。そして、アプリはJSONレスポンスを使って猫を表示します。

app.post("/cats", (request, response) => {
	const query = `SELECT * FROM cats WHERE id = ${request.body.id}`;
	connection.query(query, (err, rows) => {
    	if(err) throw err;
        response.json({
        	data: rows
		});  
	});
});


この例はSQLインジェクション攻撃の訓練を受けていない人には無害に見えるかもしれませんが、非常に脆弱です。特筆すべきは、このアプリは潜在的に危険な文字列やエンコーディング方法について、ユーザー入力を検証したりサニタイズしたりしようとせず、ユーザー入力をSQLクエリに直接連結していることです。

JavaScriptのSQL攻撃ペイロードの例

SQLインジェクションは、アプリがSQLクエリを生成する方法によって、MySQLやPostgreSQLデータベースを騙してアクションを起こさせたり、想定外のデータで応答させたりすることにかかっています。

会社情報 1=1は常に真 攻撃は、アポストロフィや引用符のようなトリックを使って、猫の表全体を返すことができる。 1=1 は確かに常に 本当だ:

  • ユーザーは入力する: ボビー・テーブル'または1='1
  • データベースはSQLクエリを実行する: SELECT * FROM Users WHERE Cat = BOBBY TABLES OR 1=1;

同様に、攻撃者は = は常に真である というのも、すべての猫を返せという攻撃だからだ。 ""="" は常に 本当だ:

  • ユーザーは入力する: "OR ""=""
  • データベースはSQLクエリを実行する: SELECT * FROM Cats WHERE CatId ="" または ""="";

攻撃者はしばしば、データベースがインラインコメントをどのように扱うかを悪用し、コメント (/* ... */) をクエリに入れることで、意図を難読化したり、フィルタを迂回したりすることができる。

  • ユーザーは入力する: DR/*hello world*/OP/*sneak attack*/ TABLE Cats;
  • データベースはSQLクエリを実行する: DROP TABLE Cats;

これは、攻撃者に無害な文字列で開始させ、セミコロン(;)を使ってそのステートメントを終了させ、インジェクションを含む別のステートメントを開始させるものです。攻撃者はクエリスタッキングを使って、DROP TABLEコマンドでデータベース全体を一挙に削除することがよくあります:

  • ユーザーは入力する: ボビー; DROP TABLE キャッツ--。
  • アプリはSQLクエリーを構築する: const query = "SELECT * FROM Cats WHERE CatId = " + input;
  • データベースはSQLクエリを実行する: SELECT * FROM Cats WHERE CatId = BOBBY; DROP TABLE Cats;

NoSQLインジェクション攻撃についてはどうだろうか?

NoSQLインジェクション攻撃は、アプリとユーザーデータのセキュリティにとって同様に危険だが、MongoDBのようなデータベースを使用する技術スタックにのみ影響する。SQLとNoSQLのクエリはまったく独自の構文を使用するため、一方のカテゴリーから他方のカテゴリーに変換することはできません。

SQLデータベースを使用していれば、NoSQLインジェクション攻撃のリスクはない。

基本的な方法:SQLインジェクションの脆弱性をすべて手動で修正する。

この時点では、可能性のあるインジェクションのトリックがどのようなものかにはあまり興味がなく、MySQL や PostgreSQL にあるデータをどのように保護するかに関心があるかもしれません。

  • パラメータ化されたクエリを使用する:SQLにはクエリと値の実行を切断する機能があり、インジェクション攻撃からデータベースを保護します。上記のJavaScript/Node.jsの例では、SQLクエリにクエスチョンマーク(?).その connection.query() メソッドは第2引数にパラメータを取り、インジェクション防止メソッドと同じ結果を提供する。
app.post("/cats", (request, response) => {  
	const query = `SELECT * FROM Cats WHERE id = ?`;  
    const value = request.body.id;  
    connection.query(query, value, (err, rows) => {    
    	if(err) throw err;    
        response.json({      
        	data: rows    
		});  
	});
});

‍

  • ユーザー入力の検証とサニタイズ:パラメータ化されたクエリは、SQLデータベースを侵入や攻撃から保護するのに役立ちますが、ユーザーが潜在的に危険な文字列をアプリケーションに入力するのを防ぐこともできます。

    サニタイズとバリデーションのためのオープンソースのライブラリをアプリに追加するのも一つの方法だ。例えば バリデータ.js JavaScript/Node.jsエコシステムにおいて、ユーザーがサインアップフォームにSQLインジェクション攻撃ではなく、本物のメールアドレスを入力しようとしていることをダブルチェックする。

    同じような作業を行うために、正規表現ベースのカスタムバリデータを開発することもできますが、調査や膨大な手作業によるテストなど、膨大な時間と複雑な道のりが待ち受けています。さらに、この正規表現例を本当にEメールバリデーションのために解釈できるでしょうか?

    const re = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;

    のような文字列を防ぐのにも同じ考え方が適用される。 ...' OR 1-'1. このような機会をすべて自分で調査し、潰していくこともできるが、それよりも新機能の構築に時間を費やした方がいいだろう。

‍

  • WAFやエージェントベースのセキュリティ・プラットフォームを導入する:

    第一に、高価であることが多く、オンプレミスまたはクラウド上に新しいインフラを立ち上げる必要がある。第二に、ルールセットを更新するために手作業によるメンテナンスが必要になり、SQLインジェクションに対する他の手作業による介入から注意をそらすことになる。最後に、計算負荷が増えたり、分析のためにすべてのリクエストを自社のプラットフォーム経由でリダイレクトすることで、待ち時間が増え、エンドユーザー・エクスペリエンスが損なわれることがよくある。

大きな問題は、SQLインジェクション攻撃の機会は雑草のようなものであることだ。これらのツールを使えば一度はすべて刈り取ることができるが、二度と芽が出ないようにコードベース全体を常に警戒しなければならない。

JavaScriptのSQLインジェクション攻撃を解決する代替パス:Aikido ファイアウォール

Aikido Securityが最近リリースしたFirewallは、SQLインジェクション攻撃から自律的にあなたを守る、フリーでオープンソースのセキュリティ・エンジンである。

Node.jsを使用していない場合、私たちは将来的に他の言語やフレームワークのサポートを開始する予定です。FirewallがJavaScriptの世界を超えて拡大する正確な情報を得るために、いつでも製品ニュースレターを購読することができますし、特定の言語を売り込みたい場合はhello@aikido.devまでメールしてください。

JavaSciptのSQLインジェクションに脆弱なアプリのテスト

オープンソースのリポジトリに同梱されているサンプルアプリを使って、Aikido Firewallの動作を紹介しよう。ローカルのMySQLデータベースをデプロイするためにDocker/DockerComposeも必要だ。

まず、firewall-nodeリポジトリをフォークし、そのフォークをローカルのワークステーションにクローンします。

git clone https://github.com/<YOUR-GITHUB-USERNAME>/firewall-node.gitcd firewall-node


Dockerを使って、ローカルのMySQLデータベースをポート27015にデプロイする。このdocker-compose.ymlファイルは、s3mock、MongoDB、PostgreSQLコンテナも作成します。これは、Aikido チームがFirewallが様々な攻撃をどのようにブロックするかをテストするために作成されたものです。

docker-compose -f sample-apps/docker-compose.yml up -d


次に、サンプルアプリを起動します:

node sample-apps/express-mysql2/app.js


オープン http://localhost:4000 をブラウザで開いて、とてもシンプルな猫アプリをチェックしよう。テキストエリアに猫の名前をいくつか入力して 追加 ボタンをクリックします。SQLインジェクションをテストするには テスト噴射 リンクをクリックするか、テキストエリアに以下を入力してください: キティ'); DELETE FROM cats;-- H をクリックしてください。 追加 もう一度。いずれにせよ、このアプリを使えば、複数のクエリーをまとめて、卑劣なクエリーコメントを使って、ネコのデータベース全体を削除することができる。

どうしてこうなるのか?先に警告したように、このアプリは単に いずれも SQLクエリの最後にユーザー入力を入力するが、これは本質的に安全ではない。

const query = `INSERT INTO cats(petname) VALUES ('${name}');`


ここでの結果は小さいかもしれないが、このしばしば起こる正直なミスが、本番アプリに悲惨な結果をもたらすことは想像に難くない。

Aikido FirewallでJavaScriptのSQLインジェクションをブロックする

では、私たちのオープンソースのセキュリティ・エンジンが、あなたのコードにあるデータベースのやり取りをすべて手作業で修正することなく、JavaScriptのSQLインジェクション攻撃をどれだけ素早くブロックするか見てみましょう。

まだAikido アカウントを持っていない場合は、先に進んでください。 無料で作る.すでにお持ちの場合は、ログインして GitHubアカウントに接続する.その過程で、Aikido あなたのフォークを読むことを許可する。 ファイアウォールノード プロジェクトに参加している。

に行く。 ファイアウォール・ダッシュボード をクリックし、Add Serviceをクリックします。サービス名を付け、再度、フォークを選択して ファイアウォールノード プロジェクトに参加している。

JavaScriptのSQLインジェクション攻撃から保護するために、Node.jsプロジェクトにファイアウォールを追加する。
タイプキャプション(オプション)

Aikido 、Aikido Firewallをインストールして実装する方法を説明します。サンプルアプリを使用しているので、その作業はすでに終わっていますが、JavaScriptのSQLインジェクション攻撃に脆弱な可能性のあるすべてのNode.jsアプリに、私たちのオープンソースのセキュリティエンジンを導入する方法について参考になります。

タイプキャプション(オプション)

をクリックする。 トークンの生成 ボタンをクリックし、Aikido FirewallがブロックされたSQLインジェクション攻撃に関する情報をAikido セキュリティプラットフォームに安全に渡すためのトークンを作成します。で始まる生成されたトークンをコピーします。 AIK_RUNTIME...そしてターミナルに戻ってサンプルアプリを再実行する:

AIKIDO_TOKEN=<YOUR-AIKIDO-TOKEN> AIKIDO_DEBUG=true AIKIDO_BLOCKING=true node sample-apps/express-mysql2/app.js


オープン ローカルホスト:4000 を実行し、もう一度SQLインジェクション攻撃を実行する。今回、Aikido ブラウザであなたをブロックし、ローカルのウェブサーバのログに出力し、新しいイベントを生成します。これをクリックすると、ペイロードやアプリが危険なSQLクエリを生成した場所など、SQLインジェクションの試みに関する包括的な詳細を見ることができます。

JavaScriptによるSQLインジェクション攻撃をブロックするファイアウォールの例。
タイプキャプション(オプション)

Aikido Firewallは、JavaScriptによるSQLインジェクション攻撃からアプリを永遠に守ることに悩む代わりに、攻撃ソース、一般的なペイロード、潜在的な弱点について常に情報を提供する包括的なブロックと洗練された観測機能を提供します。

次はどうする?

Aikido Firewallは、Node.jsベースのアプリケーションに無料でインストール、実装することができます。私たちのオープンソースの組み込みセキュリティエンジンは、JavaScriptのSQLインジェクション攻撃、コマンドインジェクション、プロトタイプ汚染、パストラバーサル、およびすぐに来るより多くからあなたのインフラストラクチャとユーザーデータを保護します。

Firewall が SQL インジェクションから守るための開発のベストプラクティス(パラメータ化されたクエリを使 うとか、ユーザの入力を信用しないとか)に取って代わるべきだと言っているわけではありません。コードベースに欠陥はなく、正直な間違いは常に起こります。

FirewallはSQLインジェクションのグローバルな修正プログラムだと思ってください。カスタム開発された正規表現、レイテンシーを誘発するWAF、あるいは高額な費用がかかる複雑なセキュリティ・エージェントとは異なり、Firewallはこの1つの仕事を非常にうまく、しかも影響はごくわずかで、完全に無料で行うことができる。

もし気に入っていただけたなら、ロードマップをご覧いただき、GitHub リポジトリ(https://github.com/AikidoSec/firewall-node) に星をつけてください。⭐

ガイド
2025年3月4日
PrismaとPostgreSQLにNoSQLインジェクションの脆弱性?意外なセキュリティリスクを解説
?による
フロリス・ヴァン・デン・アベール
フロリス・ヴァン・デン・アベール

PrismaとPostgreSQLにNoSQLインジェクションの脆弱性?意外なセキュリティリスクを解説

はじめに

Prismaを使用してブログ用Webアプリを構築しているとします。提供された電子メールとパスワードに基づいてユーザーを認証する簡単なクエリを記述します:

1const user = await prisma.user.findFirst({
2  where: { email, password },
3});

無害に見えるだろう?しかし、攻撃者が password = { "not": "" }?emailとpasswordが一致した場合のみUserオブジェクトを返すのではなく、emailのみが一致した場合は常にUserを返します。

この脆弱性は演算子インジェクションとして知られていますが、より一般的にはNoSQLインジェクションと呼ばれています。多くの開発者が気づいていないのは、厳密なモデルスキーマにもかかわらず、いくつかのORMは PostgreSQLのようなリレーショナルデータベースで使われているときでさえ演算子インジェクションに対して 脆弱であるということです。

この投稿では、演算子インジェクションがどのように機能するかを調べ、Prisma ORMでの悪用を実演し、それを防ぐ方法について説明します。

オペレーター・インジェクションを理解する

ORMの演算子インジェクションを理解するには、まずNoSQLの演算子インジェクションを見てみるのが面白い。MongoDBは、次のような演算子を使ってデータを問い合わせるAPIを開発者に紹介した。 eqドル, ドル そして ドル.ユーザー入力がMongoDBのクエリー関数にやみくもに渡されると、NoSQLインジェクションのリスクが存在する。

JavaScript用の人気のあるORMライブラリは、データをクエリするための同様のAPIを提供し始め、今ではほとんどすべての主要なORMが、MongoDBをサポートしていなくても、クエリ演算子のいくつかのバリエーションをサポートしている。Prisma、Sequelize、TypeORMはすべて、PostgreSQLのようなリレーショナルデータベース用のクエリ演算子を実装しています。

Prismaにおける演算子インジェクションの悪用

複数のレコードを操作するPrismaクエリ関数は、一般的にクエリ演算子をサポートしており、インジェクションの脆弱性があります。関数の例 最初を見つける, findMany, updateMany そして 削除多数.Prismaは実行時にクエリで参照されるモデル・フィールドを検証しますが、演算子はこれらの関数の有効な入力であるため、検証によって拒否されることはありません。

Prismaで演算子インジェクションが悪用されやすい理由の1つは、Prisma APIで提供されている文字列ベースの演算子です。 いくつかのORMライブラリは、文字列ベースのクエリ演算子のサポートを削除しています。これは、開発者が見落としやすく、悪用されやすいためです。その代わりに、開発者は演算子用のカスタムオブジェクトを参照することを余儀なくされます。これらのオブジェクトはユーザー入力から容易にデシリアライズできないため、これらのライブラリでは操作インジェクションのリスクが大幅に減少します。

Prismaのすべてのクエリ関数が演算子インジェクションの脆弱性を持つわけではありません。1つのデータベースレコードを選択または変更する関数は通常、演算子をサポートしておらず、Objectが指定されると実行時エラーがスローされます。findUnique 以外に、Prisma の update、delete、upsert 関数も where フィルタで演算子を受け付けません。

1  // This query throws a runtime error:
2  // Argument `email`: Invalid value provided. Expected String, provided Object.
3  const user = await prisma.user.findUnique({
4    where: { email: { not: "" } },
5  });

‍

オペレーター・インジェクションを防ぐためのベスト・プラクティス

1.ユーザー入力をプリミティブデータ型にキャストする

通常、文字列や数値のようなプリミティブなデータ型に入力をキャストすれば、攻撃者がオブジェクトを注入するのを防ぐのに十分である。元の例では、キャストは次のようになる:

1  const user = await prisma.user.findFirst({
2    where: { email: email.toString(), password: password.toString() },
3  });

2.ユーザー入力の検証

キャストは効果的ですが、入力がビジネスロジックの要件を満たしていることを確認するために、ユーザー入力を検証したい場合があります。

class-validator、zod、joiなど、サーバーサイドでユーザー入力を検証するライブラリはたくさんあります。NestJSやNextJSのようなWebアプリケーションフレームワークで開発している場合、コントローラでユーザー入力を検証する特定の方法を推奨していることが多いでしょう。

元の例では、ゾッドの検証は次のようになる:

1import { z } from "zod";
2
3const authInputSchema = z.object({
4  email: z.string().email(),
5  password: z.string().min(8)
6});
7
8const { email, password } = authInputSchema.parse({email: req.params.email, password: req.params.password});
9
10const user = await prisma.user.findFirst({
11  where: { email, password },
12});

3.ORMを常にアップデートする

アップデートを継続することで、セキュリティの改善や修正を受けることができます。たとえば、Sequelize はバージョン 4.12 からクエリー演算子の文字列エイリアスを無効にし、演算子インジェクションの影響を大幅に軽減しました。

結論

演算子インジェクションは、最新のORMを使用するアプリケーションにとって現実的な脅威である。この脆弱性はORMのAPI設計に起因するもので、使用するデータベースの種類とは関係ありません。実際、PostgreSQLと組み合わせたPrismaでさえ、演算子インジェクションに対して脆弱である可能性があります。Prismaは演算子インジェクションに対する組み込みの保護を提供していますが、開発者はアプリケーションのセキュリティを確保するために入力検証とサニタイズを実践しなければなりません。

付録ユーザーモデルのPrismaスキーマ

1// This is your Prisma schema file,
2// learn more about it in the docs: https://pris.ly/d/prisma-schema
3
4generator client {
5  provider = "prisma-client-js"
6}
7
8datasource db {
9  provider = "postgresql"
10  url      = env("DATABASE_URL")
11}
12
13// ...
14
15model User {
16  id       Int      @id @default(autoincrement())
17  email    String   @unique
18  password String
19  name     String?
20  posts    Post[]
21  profile  Profile?
22}
エンジニアリング
2025年2月14日
2025年における動的アプリケーション・セキュリティ・テスト(DAST)ツールのトップ
?による
Aikido チーム
Aikido チーム

2025年における動的アプリケーション・セキュリティ・テスト(DAST)ツールのトップ

最近のアプリケーションは出荷が速く、セキュリティバグが本番環境に潜り込むことがよくあります。このガイドでは、動的アプリケーション・セキュリティ・テスト(DAST)とは何か、なぜ2025年にDASTが重要なのか、そして、あなたが一人の開発者であれ、企業のセキュリティ・リーダーであれ、あなたのチームに適切なDASTツールを選ぶ方法を説明する。

すべての読者が15以上のツールについて深く知る必要はない。もしあなたが特定のユースケースを念頭に置いてここにいるのであれば、例えば開発者、スタートアップ、またはAPIセキュリティに最適なDASTを探しているのであれば、あなたのシナリオに合わせたサブリストに自由にジャンプしてください。

とはいえ、さらに下の方にあるツールの完全な内訳をチェックすることをお勧めします。メインリストにざっと目を通すだけでも、検討もしなかったツールが見つかるかもしれない。

  • 開発者に最適なDASTツール
  • エンタープライズ向けベストDASTツール
  • スタートアップに最適なDASTツール
  • 最高の無料DASTツール
  • 最高のオープンソースDASTツール
  • DevSecOpsに最適なDASTツール
  • APIセキュリティに最適なDASTツール
  • ウェブアプリケーションに最適なDASTツール
  • REST APIに最適なDASTツール
  • モバイルアプリに最適なDASTツール︓200D
  • DASTとは?

    動的アプリケーション・セキュリティテスト(DAST)は、実行中のアプリケーションを、攻撃者が行うのと同じように、外側から評価するセキュリ ティテスト手法です。DASTツールは、ソースコードにアクセスすることなく、フロントエンド(HTTPリクエスト、ウェブインタフェース、API)を通してウェブアプリケーションと対話します。この「ブラックボックス」アプローチでは、悪意のある入力をシミュレートし、アプリケーションの応答を分析することで、SQL インジェクション、クロスサイト・スクリプティング(XSS)、認証の欠陥、設定ミス、その他の実行時の問題などの脆弱性を特定します。要するに、DASTはアプリケーションの防御を探る自動化されたハッカーのように振る舞います。

    DASTソリューションは、実行中のアプリケーションを現実的な環境でテストするため、静的解析ツール(SAST)とは一線を画しています。SASTがソースコードにバグがないかスキャンするのに対し、DASTはデプロイされたアプリケーションに対して実際に攻撃を開始し、脆弱性がリアルタイムで悪用できるかどうかを確認します。つまりDASTは、システム全体が稼働しているときにのみ顕在化する問題、例えば、コードを読んだだけではわからないような設定ミス、アクセス制御の破綻、安全でないデフォルト設定などを発見することができるのです。DASTは多くの場合、後期段階のテスト(QA、ステージング、あるいは注意の必要な本番環境)で、初期段階で見逃されたものを発見するための最終チェックとして使用されます。

    2025年、現代のウェブアプリケーションはますます複雑になっているため、DASTは引き続き重要です(シングルページアプリ、マイクロサービス、APIなど)。DASTツールは、リッチインターフェイスのクロール、リダイレクトの追跡、認証フローの処理、REST/GraphQL APIのテストなど、これらの課題を処理するために進化してきました。多くの組織は、ソフトウェア開発ライフサイクル全体を包括的にカバーするために、SASTとDASTを組み合わせた戦略を採用しています。(詳細な比較については、SASTとDASTの併用に関するガイドを参照してください)。

    DASTツールが必要な理由

    今日のアプリケーションは24時間365日インターネットにさらされており、攻撃者は常に新しいエクスプロイトを発見しています。DASTツールの使用が2025年に必須である理由はここにある:

    • 実世界のカバレッジ:DASTツールは部外者の視点から脆弱性を発見し、攻撃者が実行中のアプリで悪用する可能性があるものを正確に示します。DASTツールは、静的なコードチェックでは見落とされる可能性のある環境(サーバー設定、サードパーティーコンポーネント、API)の問題を発見することができます。
    • 言語やプラットフォームにとらわれない:DASTはHTTPやUIを介してアプリとやり取りするため、アプリがどのような言語やフレームワークで書かれているかは関係ありません。DASTスキャナ1台で、Java、Python、Node、あらゆるウェブプラットフォームをテストできます。
    • クリティカルなランタイムバグの発見:DASTは、設定ミスしたサーバー、壊れた認証フロー、安全でないCookie、その他のデプロイ時の問題など、アプリが稼動して初めて現れる問題を発見することに優れています。これらは、コードレビューをすり抜けるような、影響力の大きい脆弱性(例えば、オープンな管理者ポータルやデフォルトのパスワード)であることがよくあります。
    • 誤検知が少ない(多くの場合):最新のDASTソリューションは、攻撃検証(Proof-of-Exploitなど)のような技術を使用して脆弱性を確認し、ノイズを減らします。理論的な問題にフラグを立てる可能性のあるSASTとは異なり、DASTは通常、具体的な証拠(「SQLインジェクションでデータベースをダンプできました」のような)を示します。
    • コンプライアンスと安心感多くのセキュリティ標準や規制(PCI DSS、OWASP Top 10など)は、ウェブアプリケーションの動的テストを推奨または要求しています。DASTツールを使用することで、監査人が理解できるレポート(OWASP Top 10の問題カバレッジなど)を作成し、本番前にアプリケーションに隙間がないことを確認することができます。

    つまり、DASTは実際の脅威と同じようにアプリを攻撃することで、セキュリティに不可欠なレイヤーを追加します。

    DASTツールの選び方

    すべての DAST スキャナが同じように作られているわけではありません。動的アプリケーションセキュリティテストツールを評価する際には、以下の基準を考慮して最適なものを見つけてください:

    • テクノロジーの網羅性:最新のJavaScriptを多用するフロントエンド(シングルページアプリケーション)、モバイルバックエンド、API(REST、SOAP、GraphQL)をサポートしているか。HCL AppScanやInvictiのようなツールは、幅広い種類のアプリをサポートしています。
    • 正確さと深さ:誤検知を最小限に抑えた高い脆弱性検知率を求める。確認スキャンや概念実証(Proof-of-Concept)生成(例えば、InvictiのProof-based Scanning)のような機能は、発見された内容を自動的に検証するために有用である。重要な問題を発見しつつも、ノイズに圧倒されないツールが望ましい。
    • 使いやすさと統合:優れたDASTはワークフローに適合する。簡単なセットアップ(クラウドベースまたはマネージドオプション)、DevSecOpsのためのCI/CD統合Aikido、StackHawkなど)、課題トラッカー(Jira、GitHub)やワークフローとの統合を提供するツールを検討してください。開発者がパイプラインからスキャンをトリガーし、ツールで結果を得ることができれば、導入はよりスムーズになるだろう。
    • 認証と複雑な処理:多くのアプリは完全に公開されているわけではありません。DASTが認証スキャン(ユーザーアカウント/セッションでのログイン)をサポートしているか、マルチステップフォームや複雑なフローなどを処理できるかを確認します。Burp SuiteやAppScanなどのエンタープライズグレードのスキャナでは、ログインシーケンスや認証スクリプトを記録することができます。
    • レポートと開発者のフィードバック:アウトプットは開発者にとって使いやすいものでなければならない。明確な脆弱性の説明、改善ガイダンス、必要であればコンプライアンスレポート(OWASP Top 10やPCIなどにマッピングされたレポートなど)を探す。プラットフォームによっては(AikidoDASTのように)自動修正提案やコードパッチを提供し、修復を促進するものもある。
    • スケーラビリティとパフォーマンス:何十、何百ものアプリをスキャンする必要がある場合は、ツールの拡張性を検討する。クラウドベースのDASTサービス(Qualys WAS、Rapid7 InsightAppSec、Tenable.ioなど)は、スキャンを並行して実行し、スケジューリングを管理することができます。オンプレミスのツールでは、複数のエンジンまたはスキャン・エージェントを使用してスケーリングできるようにする必要があります。また、スキャン速度も評価する。ツールによっては、インクリメンタル・スキャンや、再テストを高速化するための最適化を提供するものもある。
    • サポートとメンテナンス:最後に、ツールは最新のアップデートが提供されて初めてその性能を発揮する。ベンダーがスキャナーの脆弱性チェックをどの程度の頻度で更新しているかを評価する。特にオープンソースの場合は、コミュニティやベンダーの積極的なサポートが重要です。時代遅れのDAST(またはサポートのないもの)は、新しい脅威を見逃したり、最新のアプリで壊れたりする可能性があります。

    DASTソリューションの展望を検討する際には、これらの基準を念頭に置いてください。それでは、2025年に利用可能なトップ・ツールに飛び込み、その違いを見てみよう。

    2025年のDASTトップツール

    このセクションでは、2025 年のベスト動的アプリケーションセキュリティテストツールをリストアップする。これらのツールには、商用およびオープンソースのオプションが混在しており、それぞれが独自の強みを備えています。トップツールのアルファベット順のリストと、主な機能、理想的なユースケース、価格情報、そしてユーザーレビューの一部を紹介する。あなたが新興企業の開発者であろうと、企業のセキュリティ・リーダーであろうと、あなたのニーズに合ったDASTソリューションが見つかるでしょう。

    まず最初に、APIスキャン、CI/CD統合、精度などの機能に基づいて、総合的なDASTツールのトップ5を比較します。これらのツールは、開発者からエンタープライズチームまで、さまざまなニーズに対応するクラス最高のものです。

    総合的なDASTツール比較(2025年)
    工具 APIスキャン CI/CDの統合 偽陽性の低減 最適
    Aikido ✅ 自動検出 ✅ 100以上の統合 AIトリアージ 開発者ファーストのAppSec
    インヴィクティ Swagger & GraphQL ✅ エンタープライズ・パイプライン 証明ベース 企業およびMSSP
    バープ・スイート・プロ ⚠️ プロキシ経由のマニュアル ⚠️ スクリプトが必要 ✅ 手動バリデーション セキュリティ研究者
    スタックホーク OpenAPI & GraphQL CI の YAML ⚠️ 開発者中心のトリアージ DevSecOpsパイプライン
    OWASP ZAP スワガー/ポストマン Docker & CLI ⚠️ マニュアル・チューニング オープンソース・チーム

    インヴィクティ社のAcunetix

    Invicti社のAcunetixは 、中小企業向けに開発されたDASTに特化した強力なWeb脆弱性スキャナです。使いやすさと迅速な導入に重点を置き、WebサイトやAPIの高速な自動スキャンを実現します。Acunetixはスタンドアロン製品として誕生し、現在はInvicti Securityの製品ファミリーの一部となっています(エンタープライズ・グレードのInvictiスキャナーを補完)。Acunetixは、アプリケーション・セキュリティ・プログラムを開始するチームに最適なエントリ・ポイントを提供します。

    主な特徴

    • 堅牢な脆弱性カバレッジ:OWASPトップ10の全問題を含む7,000以上の既知のWeb脆弱性をスキャンし、SQLi、XSS、設定ミス、脆弱なパスワードなどをチェックします。
    • プルーフ・ベースのスキャンInvicti独自のProof-of-Exploit技術により、多くの発見を自動的に検証し、誤検知を減らします。例えば、サンプルのデータ抽出を実演することで、SQLインジェクションを安全に確認することができます。
    • APIとSPAのスキャン:Acunetixは、HTML5のシングルページアプリケーションをクロールし、RESTおよびGraphQL APIをテストすることができます。また、Swagger/OpenAPI定義のインポートにも対応しており、APIを完全にカバーします。
    • 統合と CI/CD DevSecOpsの自動化を可能にするために、イシュー・トラッカー(Jiraなど)やCI/CDパイプライン(Jenkins、GitLab CIなど)との統合が組み込まれています。スキャンは新しいビルドでトリガーすることができ、結果は迅速な修正ループのための開発者チケットとしてエクスポートされます。
    • コンプライアンスとレポート:OWASP Top 10、PCI DSS、HIPAA、ISO 27001などの標準に対応した、すぐに作成できるコンプライアンス・レポートを提供します。

    こんな企業に最適エンタープライズグレードのスキャンエンジンを搭載した、高速で使いやすい DAST ツールを探している中小企業。Acunetixの価格設定は、大手企業向けツールよりも利用しやすい(年間ライセンス、オンプレムまたはクラウドのオプションあり)。

    ‍価格モデル: 14日間の無料トライアルあり。

    レビューのハイライト:「AcunetixはユーザーフレンドリーなUIを持ち、設定と実行が簡単で、信頼できる結果を出す。ライセンシング・モデルはそれほど細かくはないため、スケールアップやスケールダウンには計画が必要だ。(出典:G2)

    Aikido セキュリティ

    Aikido Securityは、開発者にフォーカスしたオールインワンのアプリケーションセキュリティプラットフォームで、他のツールとともにDASTスキャナーを含んでいます。AikidoDAST(Surface Monitoringと呼ばれる)は、Webアプリに対するブラックボックス攻撃をシミュレートし、リアルタイムで脆弱性を発見します。Aikido 際立たせているのは、その統一されたアプローチだ。DAST、SAST、APIセキュリティ・スキャン、クラウド設定チェックなどを1つのインターフェイスにまとめ、開発者とセキュリティ・チームにシームレスな体験を提供している。このプラットフォームはクラウドベースで、寛大な無料層があり、新興企業でも大企業でもエンタープライズ・グレードのセキュリティにアクセスできるようになっている。

    主な特徴

    • 統一されたSAST + DAST: Aikido 静的テストと動的テストを組み合わせ、SASTで問題を早期に発見し、DASTで実行中のアプリで検証することができます。すべての結果は1つのダッシュボードに集約され、全体的なAppSecの可視性を実現します(SASTとDASTを組み合わせたユースケース)。
    • 開発者に優しいワークフロー: 開発者のためのシンプルなセキュリティ」を目指して設計されている。 Aikido 開発ツール(IDE、CI/CDパイプライン、GitHub/GitLab、Slackアラート)と統合します。開発者は即座にフィードバックを得ることができます。例えば、DASTで発見された内容は、修正提案へのリンクとともに、プルリクエストのコメントやパイプラインの結果として表示されます。あるユーザーは、「Aikido使うことで、セキュリティは単なる作業方法の一部になりました。高速で、統合されており、開発者にとって実際に役立っています。"
    • 自動API検出とスキャン:DASTエンジンには、APIエンドポイント(RESTとGraphQL)の自動検出と脆弱性のスキャン機能があります。これは、APIが最新のウェブ・アプリケーションにしばしば付随するため、非常に重要です。Aikido 認証された領域にもログインしてテストすることができ、アプリの攻撃対象領域を拡大します。
    • AIによる自動修正: Aikidoプラットフォームは、AIを使用して特定の発見に対してワンクリックで修正を生成することができます。例えば、DASTが反射型XSSを発見した場合、プラットフォームはコードパッチや設定変更を提案するかもしれない。これにより、セキュリティの発見を、開発者が数秒で解決できる実行可能なタスクに変えることができる。
    • スケーラビリティとクラウド統合:クラウドサービスであるため、Aikido 多くのアプリケーションを継続的にスキャンできるように拡張できる。エンタープライズ・スケール(ロール・ベースのアクセス、エンタープライズ用のチーム・ダッシュボードなど)に適しているが、リーンなチームにとっても非常に利用しやすい。このプラットフォームは、CIで実行することも、シンプルなウェブUIやAPIを介してオンデマンドスキャンをトリガーすることもできる。

    こんな方に最適です:開発者中心の統合セキュリティソリューションを求める開発チーム。Aikido 、多くのオーバーヘッドなしにDASTを開発ライフサイクルに組み込みたい場合に最適です。スタートアップ企業(スタートアップ企業向けの特別プランを提供)からエンタープライズ企業まで幅広く利用されている(エンタープライズ向け機能を参照)。

    価格モデル:永久無料プラン(DAST、SAST、その他小規模プロジェクト向けのコアスキャナが含まれます)、追加ユーザーや高度な機能には定額制の有料プランがあります。クレジットカードがなくても無料で始められるので、評価しやすい。

    レビューのハイライト:「Aikido使えば、たった30秒で問題を修正できます。ボタンをクリックし、PRをマージすれば完了です。(自動修正に関するユーザーからのフィードバック)

    アラクニ

    Arachniは 、Rubyで書かれたオープンソースのウェブ・アプリケーション・セキュリティ・スキャナ・フレームワークです。機能豊富なDASTツールであり、そのモジュラー・アーキテクチャと徹底的なスキャン機能で人気を博した。Arachniは、CLIまたはWeb UIを介してスタンドアロンスキャナとして使用することができ、また、侵入テスト担当者がカスタムスキャンモジュールをスクリプト化できるフレームワークでもあります。Arachniはアクティブな開発中ではないが(最後のメジャーアップデートは2017年)、オープンソースのプロジェクトで作業し、それを拡張する可能性があることをいとわない人にとっては、強力なオプションであり続けている。

    主な特徴

    • 広範な脆弱性テスト:アラクニは、SQLインジェクション(ブラインド・テクニックを含む)、XSS(反射型および蓄積型)、ファイル・インクルージョン、OSコマンド・インジェクション、XXE、CSRFなど、重要なWeb脆弱性をすべてカバーしています。アクティブ・チェック(攻撃入力)とパッシブ・チェック(情報漏洩、設定問題などを探す)の両方を実行します。
    • モジュラーと拡張性:スキャナーは高度にモジュール化されている。何十ものビルド済みモジュールがさまざまなテスト・タイプを処理し、Rubyで独自のモジュールを書くこともできる。このモジュール性はプロファイル設定やスキャンを配布する機能にまで及ぶ。上級ユーザーにとっては、Arachni は単なる押しボタン式スキャナではなく、侵入テストのツールキットとなり得ます。
    • GUI および CLI オプション:Arachniは、自動化のためのコマンドライン・インターフェースと、より簡単に使用できるブラウザベースのGUIを提供します。経験の浅いユーザーはウェブ UI を利用してスキャンを構成し、レポートを表示することができ、一方、パワー ユーザーは CLI をスクリプトまたは CI パイプラインに統合することができます。
    • 詳細なレポート:このツールは、インタラクティブなチャートや脆弱性のドリルダウンを含む詳細なHTMLレポートを生成します。レポートは各問題を説明し、多くの場合 OWASP の記述を参照し、再現のためのステップと修復のための提案を含みます。このレポートは、Arachni の長所の 1 つと考えられています。
    • パフォーマンスと自動化:マルチスレッドスキャンをサポートし、大規模なアプリケーションのスキャンを高速化するために分散して設定することもできます。スキャンを一時停止したり再開したり、特定のドメインやページをターゲットにスキャン範囲を調整することができます。

    こんな人に最適無料でオープンソースのDASTフレームワークを使いたいセキュリティ研究者やペンテスター。Arachniはまた、スキャナーがボンネットの下でどのように動作するかを学ぶ人にとっても勉強になる。ただし、注意:Arachniの開発者は積極的な開発を停止しており、プロジェクトは2017年以降大きな更新が行われていない。コミュニティによる微調整のおかげで)多くのユースケースではまだ機能し、多くの脆弱性を見つけることができるが、一部の最新技術(最新のJavaScriptフレームワークなど)をスムーズに扱えない可能性がある。

    価格モデル:フリーでオープンソース(GPLv2)。公式サポートが最小限であり、最先端の技術に対応するためにモジュールを更新する必要があるため、ユーザーは学習曲線を計画する必要がある。

    レビューのハイライト:"OWASP Top 10のすべての重要なテストを進行する...洞察に満ちた説明と印象的なレポート出力。短所:2017年以来更新されていない、サポートがない、プロジェクトが放棄されている。"(Comparitechのレビュー)

    バープ・スイート

    PortSwigger社のBurp Suiteは、ウェブ・セキュリティの世界では伝説的なツールです。手動と自動の両方のウェブ・アプリケーション・セキュリティ・テストをサポートする統合プラットフォームです。Burp Suiteは、侵入テスト担当者、バグ報奨金ハンター、セキュリティ専門家によって広く使用されています。インターセプトプロキシ(トラフィックを変更できる)として動作し、DAST用の自動スキャナ(Burp Scanner)を含んでいます。スイートのモジュール化されたツール(プロキシ、スキャナ、侵入者、リピータなど)は、包括的なハッキングツールキットを提供します。Burp Suiteには無料のCommunity Editionと有料のProfessional Edition(機能と速度が大幅に向上)があります。

    主な特徴

    • 傍受プロキシ:Burpの中核は、HTTP/Sのリクエストとレスポンスを傍受するプロキシである。これにより、テスターはその場でトラフィックを検査し、変更することができます。パラメータやヘッダなどを操作して、さらにテストを行うために他のBurpツールにリクエストを送ることができます。
    • 自動スキャナ:BurpのDASTスキャナは、アプリケーションを自動的にクロールし、脆弱性を探ります。SQLi、XSS、CSRF、コマンドインジェクションなど、300以上の脆弱性タイプをすぐに認識します。2500以上のテストケースとパターンがあり、かなり徹底している。スキャナーの調査結果には、エビデンスと修復ガイダンスが含まれる。
    • 拡張性(BApp Store):Burpには広範なプラグインエコシステムがあります。BApp Storeでは、脆弱性チェックから他のツールとの統合まで、コミュニティが開発した拡張機能を提供しています。つまり、Burpを拡張して新たな脅威をスキャンしたり、開発パイプラインと統合したりすることができる(Burp CIプラグインもあり、Burp Enterpriseは自動化のための別製品である)。
    • 手動テストツール:スキャニングだけでなく、Burp SuiteはIntruder(自動ファジング/ブルートフォース)、Repeater(個々のリクエストの作成と再生)、Sequencer(トークン分析)、Decoder/Comparerなどのツールで輝きを放ちます。これらにより、熟練したテスターは自動スキャンがフラグを立てる特定の問題を深く掘り下げることができる。
    • CI/CDインテグレーション:DevSecOpsのために、PortSwiggerはCIとスケールでスキャンを実行するように設計されたBurp Suite Enterprise(別エディション)を提供している。しかし、Burp Proでさえ、コマンドラインやAPIを介してスクリプトで使用することができる。これにより、チームはパイプラインの一部としてBurpスキャンを含めることができる(多くの場合、重要なアプリや他のスキャナーのダブルチェックのために)。

    最適ペネトレーション・テスターおよびAppSecの専門家がいる組織。Burp Suite Professionalは、その柔軟性と奥深さから、実践的なセキュリティ・テストによく使用されます。開発者チームにとって、Burpは特定の問題を検証するため、あるいは脅威のモデリングやセキュリティ修正のデバッグに使用することができる。コミュニティ・エディションは無料だが、制限がある(スキャン速度が遅い、セーブ・ステートがない)。Proライセンスは1ユーザーあたり年間449ドルで、あるRedditユーザーは「本格的なテスターにとっては価値がある」と述べている:「この種のツールの中では最も安くて最高のツールだ。お金を払う価値は十分にある。Burpのスキャナーは強力だが、非常にビジネス・ロジックに特化した問題を見逃すことがあることに注意。

    レビューのハイライト:"バグバウンティハンターや侵入テスト担当者にとって最高のプロキシツールの一つ。どのプロフェッショナルも気に入っている。"(G2レビュー)

    HCL AppScan Standard

    HCL AppScan Standard(旧IBM AppScan)は、企業ユーザー向けのデスクトップベースのDASTツールです。ウェブアプリケーション、ウェブサービス、さらにはモバイルアプリのバックエンドのセキュリティ脆弱性をスキャンするための豊富な機能を提供します。AppScan Standardは、より広範なHCL AppScanポートフォリオ(AppScan Enterprise、AppScan on Cloud、SASTツールなども含む)の一部です。AppScan Standardは、より広範なHCL AppScanポートフォリオ(AppScan Enterprise、AppScan on Cloud、SASTツールなども含む)の一部です。

    主な特徴

    • 包括的なスキャンエンジン:AppScan Standardは、複雑なアプリケーションを最大限にカバーするため、高度なクロールおよびテストアルゴリズムを採用しています。その「アクションベース」スキャンは、シングルページのアプリケーションやリッチなクライアントサイドコードを処理できます。また、SQLi、XSSからロジックの欠陥まで、すべてをカバーする何万ものテストケースが組み込まれています。ログインシーケンス、マルチステップワークフローなど、最も複雑なウェブアプリケーションに取り組むように設計されています。
    • APIとモバイルバックエンドのテスト従来のウェブ・アプリケーションにとどまらず、ウェブAPI(SOAP、REST)やモバイル・バックエンドもテストできる。エンドポイントを監査するために、API定義を提供したり、モバイルトラフィックを記録したりできます。このためAppScanは、JSON/RESTサービスと通信するモバイル・アプリを持つ企業にとって有用です。
    • 増分スキャンと最適化スキャン:効率化のため、AppScanではインクリメンタル・スキャンが可能です。アプリケーションの新規または変更部分のみを再テストすることで、リグレッション・テストの時間を節約できます。また、迅速な開発スキャンや詳細な監査に合わせて、スキャン速度とカバレッジの設定を微調整することもできます。
    • レポートとコンプライアンス:AppScan Standardには強力なレポート機能があります。修正推奨やエグゼクティブサマリーなど、開発者に焦点を当てたさまざまなレポートを作成できます。特筆すべきは、コンプライアンスや業界標準のレポート(PCI、HIPAA、OWASP Top 10、DISA STIGsなど)を提供し、セキュリティ要件の遵守を簡単に証明できることです。
    • エンタープライズとの統合:AppScan Standardはスタンドアロンのクライアントですが、AppScan Enterprise(チーム全体でスキャンをスケーリングするため)やCI/CDパイプラインとコマンドライン実行またはAPIを介して統合できます。HCLはJenkinsのようなツール用のプラグインも提供している。さらに、さまざまなメカニズム(Basic、NTLM、form authなど)による認証スキャンをサポートしており、オンプレミスで実行するため、企業のファイアウォールの内側でも簡単に動作します。

    こんな企業に最適広範な設定オプションを備えた強力なオンプレミスDASTソリューションを必要とする企業およびセキュリティチーム。スキャンをきめ細かく制御する必要がある場合、オフラインのセキュアな環境でアプリをテストする必要がある場合、またはコンプライアンスが義務付けられている場合は、AppScanが有力な候補となります。

    価格モデル:商用(エンタープライズ価格)。通常、ユーザーまたはインストールごとにライセンスされます。HCLはAppScan on Cloudのサブスクリプションの一部としても提供している。そのエンタープライズ機能セットに見合う高価格帯が期待される。

    レビューの背景AppScanは(IBM時代から)市場で長く使われているため、試行錯誤が繰り返されている。ユーザーはしばしばその奥深さを称賛するが、UIとセットアップが複雑であることに注意する必要がある。時間をかければ、確実に脆弱性を発見し、監査人を満足させるために必要なレポートを作成することができる。

    Micro Focus Fortify WebInspect

    Micro Focus Fortify WebInspect (現在は、Micro Focus を買収した OpenText の傘下)は、深いセキュリティ評価での使用と Fortify スイートとの統合で知られるエンタープライズグレードの DAST ツールです。WebInspect は、Web アプリケーションとサービスの動的スキャンを自動化するもので、Fortify の静的分析(SAST)ツールと並行して使用され、両方の側面をカバーすることがよくあります。このツールは AppSec において長い歴史があり、オンプレミスでのスキャンや、より広範な脆弱性管理プログラムとの統合を必要とする組織に支持されています。

    主な特徴

    • 徹底した自動スキャン:WebInspect は、Web アプリや API のさまざまな脆弱性を特定できる厳格なスキャンを実施します。OWASPトップ10、ビジネスロジックの欠陥、サーバー構成の問題のチェックが含まれます。このスキャナは、シグネチャとヒューリスティック・アプローチを組み合わせて使用し、既知のCVEだけでなく、ゼロデイ問題(異常な入力処理のエッジケースなど)も発見します。
    • JavaScript とクライアント側の解析:最近のバージョンでは、Fortify WebInspect はクライアント側のコードの解析と分析が向上しています。JavaScriptの実行、AJAXを多用するアプリケーションの処理、さらにはスキャン中のWebソケット通信のキャプチャも可能です(2024年アップデート時点)。これは、SPAや最新のWebフレームワークをより効果的に監査できることを意味する。
    • エンタープライズワークフローの統合:WebInspect は Fortify のエコシステムと統合されており、例えば、結果を Fortify Software Security Center (SSC) に流し、一元管理、SAST 結果との相関、開発者の割り当てを行うことができます。また、自動化のためのAPIとサポートも備えているため、CIパイプラインやセキュリティオーケストレーションシステムにプラグインすることもできる。多くの大規模な組織では、継続的なモニタリングのために、スケジュールされたスキャンワークフローで使用している。
    • 認証スキャンとステートフル・スキャンこのツールは様々な認証方法(多要素技術、ログインマクロ、OAuth/トークンベース認証など)をサポートしている。ログインが必要なアプリケーションや複雑なユーザーフローを持つアプリケーションにとって重要です。WebInspectはまた、特定のシーケンス(カートに商品を追加し、チェックアウトするような)を横断するマクロ記録も可能で、これらの領域が確実にテストされます。
    • レポートとコンプライアンス:Fortify WebInspect は、開発者向けの詳細な技術的所見と、管理者向けの要約レポートを提供します。調査結果を標準に合わせ、コンプライアンスレポートも提供します。規制業界で使用されることが多いため、PCI DSS、DISA STIG、OWASP、その他のガイドラインを満たすレポートがすぐに提供されます。

    最適セキュリティ要件が厳しく、既存のFortifyを導入している大企業や政府機関。WebInspect は強力ですが、セキュリティの専門家向けです。成熟した AppSec プログラム(特に、Fortify SAST も使用している場合、包括的な状況を把握できる)に統合することで、優れた効果を発揮する。

    価格モデル:商用。通常、Fortify 製品群の一部として販売されます(ノードロックまたは同時使用ライセンス)。サポート契約により、脆弱性シグネチャの定期的な更新や製品の改良を受けることができる。

    注:OpenTextの買収後、Fortify WebInspectはOpenText Cybersecurityのポートフォリオに含まれるようになりました。単に「OpenText Dynamic Application Security Testing (DAST)」と呼ばれることもあります。中核となる製品は同じで、WebInspectの伝統を引き継いでいる。ユーザーからは、WebInspect はリソースを大量に消費する可能性があり、一部のアプリケーションを圧倒しないようにチューニングする必要があるかもしれないが、複雑な問題を発見するのに非常に効果的であるとの指摘がある。

    ネサス

    Tenable社のNessusは、業界で最も広く認知されている脆弱性スキャナの1つです。Nessusはネットワークスキャナと思われがちですが、ウェブアプリケーションのスキャン(主に既知のウェブアプリの脆弱性、設定ミス、一般的な弱点のチェック)も行います。専用のDASTツールのような本格的なウェブクローラではありませんが、多くのチームがネットワークとシステムのスキャンに加えて、基本的なウェブアプリのセキュリティをカバーするためにNessusを使用しているため、ここに含めました。Nessusは、脆弱性チェックの巨大なプラグインデータベースで幅広いカバレッジを提供します。

    主な特徴

    • 膨大な脆弱性ライブラリ:Nessusは99,000以上のCVEをカバーし、250,000以上のプラグインをチェックしています。ウェブアプリケーションの場合、古いCMSのバージョン(WordPress、Joomlaなど)、ウェブフレームワークの既知の脆弱性、安全でない設定、デフォルトファイルやバックアップの存在などを検出することができます。低空飛行の果実や既知の問題をキャッチするのに優れています。
    • ウェブアプリのテスト:Nessusには、SQLインジェクション、XSS、ローカル・ファイル・インクルージョン、ディレクトリ・トラバーサルなどのウェブ特有のテストが含まれていますが、これらは一般的にシグネチャ・ベースか単純なファズです。例えば、いくつかの一般的なSQLインジェクションのペイロードを試したり、一般的な管理者のURLをテストしたりします。また、一般的な方法でOWASPトップ10もチェックします。しかし、専用の DAST ツールほど、各アプリケーションのロジックに合わせたものではありません。
    • 使いやすさ:Nessusは使いやすいことで知られている。IPやURLを数回クリックするか、コマンドラインからスキャンすることができる。レポーティングも簡単で、脆弱性は深刻度別にランク付けされる。ITジェネラリストやDevOpsエンジニアにとって、Nessusはサーバーとその上のウェブアプリケーションの両方をスキャンする統一された方法を提供します。
    • Tenableプラットフォームとの統合:Nessusは、スタンドアロン(Nessus Professional)としても、企業管理のためのTenable.ioまたはTenable.sc(Security Center)の一部として使用することもできます。統合された場合、ウェブアプリスキャンの結果は、ネットワークバルンと相関し、全体的な脆弱性管理ダッシュボードの一部となります。Tenable.io Web App Scanning(別製品、下記参照)は実際には別のエンジンを使用していますが、Nessus自体にもWebプラグインがあります。
    • 継続的なアップデート:Nessusは、Tenableのリサーチチームから毎週(またはクリティカルな問題についてはより早く)プラグインのアップデートを受け取ります。これは、最新のCVEに対するチェックを素早く入手できることを意味します(例えば、新しいApache Struts RCEが出た場合、Nessusは多くの場合数日以内にそれを検出するプラグインを持っています)。この迅速な更新サイクルは、新たな脅威に対応する上で大きな利点となる。

    最適:包括的なカバレッジを確保するために他のツールを補強する。Nessusは優れた「ファーストパス」ツールであり、一般的な弱点や既知の問題を迅速に見つけることができます。小規模な組織では、ウェブアプリのスキャンをNessusだけに頼ることもありますが、その深さは専門的なDASTと比較すると限定的です。Nessusを(上記のような)ウェブに特化したスキャナと並行して稼働させ、すべてをキャッチするのが理想的です。

    価格モデル:Nessus Essentialsは無料版(16IPに制限、小規模プロジェクトや学習に最適)。Nessus Professionalは有料の年間サブスクリプション(無制限のIPスキャンで年間約2,790円)。Tenable.io(クラウド)とSecurity Center(オンプレミス)には、これらのプラットフォームの一部としてNessusスキャナが含まれており、資産ごとにライセンスされている。Nessusは、ウェブアプリ以外もカバーしているため、費用対効果は高い。

    レビューのハイライト:「Nessusは、システム、デバイス、アプリケーションを幅広くカバーし、脆弱性とコンフィギュレーションチェックの最大級のライブラリを持っている。Nessusはその包括的な脆弱性スキャン機能で知られているが、時には誤検知を生むこともある。(実際には、Nessusが適切に設定されていれば誤検知は通常少ないが、引用文にあるように、いくつかの発見を手動で確認する必要があるかもしれない)。

    ネットスパーカー(インヴィクティ)

    Netsparker (現在はInvictiとして知られる)は、エンタープライズ環境向けの自動Webアプリケーション・セキュリティ・スキャナのリーディング・カンパニーです。Netsparkerは、Invicti SecurityがNetsparkerとAcunetixの製品を1つに統合した後、近年Invictiにリブランドされました。Invicti (Netsparker)は、その精度の高さで有名で、特にProof-Based Scanningを使用し、実際に脆弱性を確認することで誤検知をほぼ排除しています。これはフル機能を備えたDASTであり、より深い分析のためのインタラクティブなテスト要素も備えています。

    主な特徴

    • プルーフ・ベースのスキャンInvictiは自動的に安全な方法で脆弱性を悪用し、その確認を試みます。例えば、SQLインジェクションを検出した場合、その問題を証明するためにデータのサンプルを抽出する良性のペイロードを実行します。これにより、99.98%のスキャン精度を実現し、結果を信頼することができ、発見を手動で検証する時間を短縮することができます。
    • 幅広い技術サポート:Invictiは、従来のWebアプリ、JavaScriptを多用したSPA、あらゆる種類のAPI(REST、SOAP、GraphQL、gRPC)をスキャンできます。最新のフレームワークを効果的に処理し、エンタープライズ・テクノロジーのスキャンもサポートしています(カスタム認証のナビゲートやOAuthトークンの処理などが可能です)。また、JSONリクエストボディやSOAPエンベロープにインジェクションの欠陥がないかをテストする機能も備えています。
    • IASTハイブリッド機能:Invictiは、エージェント技術によりDASTとIAST(インタラクティブ・アプリケーション・セキュリティ・テスト)を組み合わせています。アプリと一緒に軽量エージェントをデプロイすることができれば、スキャナは実行中にアプリを計測し、(脆弱性の正確なコード行を確認するような)特別な洞察を得ることができます。このハイブリッド・アプローチは、ソース・コードへの完全なアクセスを必要とせずに、カバレッジと詳細を向上させることができます。
    • CI/CDとインテグレーション:自動化を念頭に構築されたInvictiは、CIパイプライン(Jenkins、Azure DevOps、GitLab CIなど)用のプラグイン、プロジェクト管理やチケット管理(Jira、Azure Boards)との統合、さらにはWAFとの連携による即時の仮想パッチ適用など、堅牢な統合オプションを提供します。このため、継続的なスキャンが必要なDevSecOpsワークフローに適している。
    • スケーラビリティと管理:スケジューリング、優先順位付け、ロールベースのアクセスコントロールにより、数千ものアプリケーションをスキャンすることが可能です。Invictiはまた、マルチテナント・ダッシュボードやアセット・ディスカバリ機能(環境内の新しいウェブ・アプリケーションを検出し、確実にスキャンする機能)も提供しています。Webアプリのエンタープライズ脆弱性管理のバックボーンとして使用されることが多い。

    こんな企業に最適高精度でスケーラブルなDASTソリューションを必要とする中堅から大企業。誤検知に苛立つセキュリティ・チームや、開発者に問題を修正するよう説得する必要のあるセキュリティ・チームにとって、検証結果は非常に有用です(「スキャナーはこれが本物であることを証明した」)。Invicti (Netsparker)はまた、日常的にスキャンする数百のウェブ資産を持つ組織のための最良の選択です。

    価格モデル:商用 - 通常、スキャンするウェブサイトまたはアプリケーションごとに年間サブスクリプション(スキャン使用は無制限)。企業向けであるため、価格は高めに設定されています。デモまたはトライアルをリクエストして、お客様のアプリケーションで評価することができます。

    レビューのハイライト:"NetsparkerであるInvictiは、リモート実行の脆弱性、ドメイン無効化、そして多くの脆弱性パッチを見つけるための主要な脆弱性データベースを提供してくれた。再発スキャンにより、完全性レベルでファイルを取得することができる。"(G2レビュー)(G2レビュー)。分かりやすく言うと、ユーザーは脆弱性カバレッジの深さと、リグレッションをキャッチするために繰り返しスキャンをスケジュールする能力を高く評価している。Invictiのテストの幅(1,400以上のユニークなテスト)は非常に広いが、特定の高度な機能は微調整が必要かもしれないと指摘する人もいる。

    ニクト

    Niktoは 典型的なオープンソースのウェブサーバスキャナです。ウェブ・サーバー上の何千もの潜在的な問題を総合的にチェックする、シンプルで効果的なツールだ。Niktoは、CIRT.netによって保守されているPerlベースのコマンドラインツールで、何年もの間、セキュリティツールボックスの定番となっている。Niktoは、洗練されたインターフェースや最新のスキャナの複雑なロジックには欠けるが、既知の脆弱性や安全でない設定を素早く特定するのに非常に便利だ。

    主な特徴

    • 大規模なチェックのデータベース: ニクトは、以下の検査が可能である。 7,000の潜在的に危険なファイル/CGI とウェブサーバ上の設定をチェックします。これには、デフォルト・ファイル(管理ページやインストール・スクリプトなど)、サンプル・アプリケーション、コンフィギュレーション・バックアップ(*.old, *.bak ファイル)など、攻撃者がよく探すアーティファクトを検出します。また、1,250以上のサーバーおよびソフトウェア・コンポーネントの古いバージョンや、270以上のサーバー製品のバージョン固有の問題も検出します。
    • サーバー構成のチェックNiktoはウェブアプリの脆弱性を探すだけでなく、サーバーの情報も調べます。例えば、ディレクトリインデックスが有効になっているか、PUTやDELETEのようなHTTPメソッドが許可されているか(ファイルアップロードのハッキングを許す可能性がある)、特定の安全でないHTTPヘッダが存在するか/存在しないかを報告します。これは、ウェブサーバーハードニングの迅速な監査に最適です。
    • 素早く、手間がかからない: Niktoはステルスではありません - できるだけ高速に動作するように設計されており、ログにノイズが入ります。これは認可されたスキャンには問題ない。コマンドライン駆動なので、ホストのリストを与えたり、スクリプトで簡単に使うことができます。実行 nikto -h <hostname> は、特定された問題のリストをプレーンテキストで出力します。
    • 出力オプション:複数のフォーマット(プレーンテキスト、XML、HTML、NBE、CSV、JSON)で結果を保存することができる。多くの人は、Niktoをより大きなツールキットの一部として使用し、その結果を解析して特定の調査結果にフラグを立てます。
    • 拡張性:いくつかのモジュールほどではないが、Niktoの動作をカスタマイズすることができる。Niktoはプラグインをサポートしています(Niktoのチェック・データベースは基本的にプラグインのセットです)。シグネチャを更新することができ、コミュニティによって新しいチェックが頻繁に更新されます。また、ステルスを試みた場合、LibWhiskerのアンチIDSテクニックをサポートします(デフォルトでは大音量ですが)。

    最適既知の問題を発見するための迅速なスキャンや、より深いスキャナの補完として。Niktoは多くのペネトレーション・テスターに愛用されており、ターゲットとなるウェブ・サーバーの最初の偵察に使われる。もしあなたが開発者やシステム管理者なら、Niktoをあなたのサイトに対して実行することで、明らかな問題を発見することができる(そしてそれはしばしば目を見張るようなものだ)。しかし、複雑なロジックの欠陥や、JavaScriptをクロールする必要があるようなものを見つけることはできません。Niktoは、一般的なウェブの設定ミスや脆弱性の自動チェックリストとお考えください。

    価格モデル:フリー、オープンソース(GPL)。Kali Linuxのようなセキュリティ・ディストリビューションに含まれており、プラットフォームの制約なしに使用できる(Perlスクリプト)。サポートはコミュニティベース(フォーラム、GitHub)。

    プロからのアドバイス:Niktoはロジックが受動的なので(ログインや重いクロールがない)、とても速い。NiktoをCIパイプラインに組み込んで、すべてのビルドを素早く掃引することもできる(例えば、デバッグ用のエンドポイントが誤ってデプロイされないようにするため)。真のバルンではない「情報」レベルの発見が報告されるかもしれないが、明らかなものを放置していないという安心感を与えてくれる。

    OWASP ZAP

    OWASP ZAP(ZedAttack Proxy)は、OWASPプロジェクトの下で保守されているフリーでオープンソースのDASTツールです。そのコスト(無料)、オープンなコミュニティ、豊富な機能性により、最も人気のあるDASTツールの1つである。ZAPは手動テストの代理であり、自動化されたスキャナーでもある。ZAP は、予算が限られている人にとっては、Burp Suite に代わるオープンソースのツールであり、開発者や小規模企業が調達のハードルなしにセキュリティテストを始めるための素晴らしい選択肢です。

    主な特徴

    • アクティブスキャンとパッシブスキャン:ZAPは(プロキシやスパイダーを介して)通過するトラフィックを観察し、問題にフラグを立てるパッシブスキャンと、ページを発見したら積極的に攻撃を仕掛けるアクティブスキャンを行う。パッシブ・スキャンは穏やかなスタート(何も修正せず、情報漏洩やセキュリティ・ヘッダなどを監視する)には最適だが、アクティブ・スキャンはアプリを攻撃することで本当のバグ(SQLi、XSSなど)を発見する。
    • プロキシと手動テストツール:Burpのように、ZAPは傍受プロキシとして機能する。また、HTTP傍受プロキシ、コンテンツをクロールするスパイダー、入力を攻撃するファザー、スクリプトコンソール(ZAPを拡張するためのPythonやRubyなどでスクリプトを書くためのサポートがある)など、たくさんのツールがある。HUD(Heads-Up Display)モードでは、ブラウザの上にスキャン情報を重ねて表示することもできる。
    • 自動化とAPI:ZAPはQA統合のための自動化を念頭に構築されました。ZAPには強力なAPI(RESTとJava API)があり、ZAPのあらゆる側面をコントロールすることができる。多くのチームがCIパイプラインでZAP APIを使用している。例えば、デーモンモードでZAPを起動し、ターゲットをスパイダリングし、アクティブスキャンを実行し、結果をプルする - 全て自動化されている。ZAP用のGitHubアクションやJenkinsプラグインも用意されている。このため、少ない予算でDevSecOpsを行うのに適している。
    • アドオンによる拡張性:ZAPにはアドオンマーケットプレイス(ZAP Marketplace)があり、公式アドオンやコミュニティアドオンをインストールすることができます。これらのアドオンには、特殊なスキャンルール(JSON、XML、SOAP、WebSocketなど)、統合、または便利な機能が含まれます。コミュニティは、新たな脆弱性タイプのアルファ/ベータ・ルールを含むスキャン・ルールを常に更新しています。これにより、ZAPのスキャン機能は進化し続けています。
    • コミュニティとサポート:OWASPであるため、強力なユーザーコミュニティがある。たくさんのドキュメント、無料のトレーニングビデオ、活発なフォーラムが存在する。サードパーティのコンサルタントを使わない限り)商業的なサポートは受けられないが、そこにある知識はしばしばベンダーのサポートに匹敵する。また、ZAPはプロジェクトリーダーや貢献者によって定期的に更新されている。

    最適開発チーム、予算重視の組織、学習ツールとして。OWASP ZAP は、開発者がセキュリティテストを始めるのに理想的です(「シフト・レフト」)。また、Burpと併用することで、さらに見通しを立てることができる。もしあなたが新興企業であれば、ZAPはライセンス費用ゼロでDAST機能を提供します。

    レビューのハイライト: "OWASPツールは無料であるため、特に中小企業にとってはツールを活用する上で大きな利点がある。" peerspot.com.ZAPはウェブ・セキュリティへの参入障壁を低くしている。ZAPは、ウェブ・セキュリティへの参入障壁を低くしてくれる。商用スキャナのように、すぐに使えるプレミアム機能はないかもしれないが、多くのユースケースで効果的に仕事をこなしてくれる。

    クオリス・ウェブアプリケーション・スキャナー(WAS)

    Qualys Web Application Scanning(WAS)は、QualysGuard Security and Compliance Suiteに統合された、QualysのクラウドベースのDASTサービスです。Qualys WASは、Qualysのクラウドプラットフォームを活用し、ウェブアプリケーションとAPIのオンデマンドスキャンサービスを提供する。Qualys WASは、Qualysをネットワークの脆弱性スキャンやコンプライアンスに利用している企業にとって特に魅力的なサービスである。Qualys WASは、そのスケーラビリティ(数千サイトのスキャン)とSaaSモデルによる使いやすさで知られている。

    主な特徴

    • クラウドベースでスケーラブルQualys WASはサービスとして提供され、Qualysクラウドからお客様のターゲットに対してスキャンを実行します(社内アプリ用に分散スキャンアプライアンスを使用するオプションもあります)。つまり、ツール自体のメンテナンス・オーバーヘッドがなく、多数のスキャンを並行して実行できます。このプラットフォームは、370kを超えるウェブアプリとAPIを検出し、スキャンしており、広く利用されていることを示しています。
    • 幅広い脆弱性をカバー:OWASPトップ10(SQLi、XSS、CSRFなど)を含む脆弱性、設定ミス、機密データの露出(ページ内のクレジットカード番号など)、さらにはWebサイト上のマルウェア感染を検出します。また、ウェブページ内のPIIや秘密の不用意な露出などもチェックする。Qualysは、複雑な問題の検出を向上させ、誤検出を減らすために、スキャンにAI/ML(機械学習)を使用している(同社のマーケティングによると)。
    • APIセキュリティテスト:Qualys WASはOWASP API Top 10もカバーしている。OpenAPI/SwaggerファイルまたはPostmanコレクションをインポートし、REST APIを徹底的にテストできます。つまり、実装がSwaggerファイルと一致しない場合(文書化されていないエンドポイントを示す可能性がある)、Qualysはそれにフラグを立てることができる。これはAPIセキュリティの管理に最適だ。
    • 統合とDevOps:Qualysは、WASを含むすべての製品に対して広範なAPIを提供しています。スキャンを自動化したり、レポートを引き出したり、結果を不具合トラッカーに統合することもできる。また、認証シーケンスやユーザーワークフローを記録するためのChromeプラグイン(Qualys Browser Recorder)も提供しており、これをQualys WASにアップロードして、ログインが必要なアプリの部分をスキャンすることができる。さらに、Qualys WASの結果は、Qualys WAFのWAF(Qualys WAFを使用している場合)にフィードされ、迅速な仮想パッチを適用することができる。
    • コンプライアンスとレポート:Qualysはコンプライアンスに力を入れているため、WASはPCI DSS 6.6(Webアプリの脆弱性スキャン要件)やその他のポリシーを満たすために必要なレポートを作成することができます。すべての調査結果はQualysのインターフェイスに統合され、脆弱性管理やリスク管理ツールのような他のモジュールと共有することができます。この統合されたレポートは、管理者にとってプラスとなる。

    こんな企業に最適クラウドベースのセキュリティ・プラットフォームを使用しており、スキャンを統合したい企業。他のセキュリティ・スキャンに既にQualysを使用している場合、WASを追加することでウェブ・アプリケーションをカバーすることができます。また、完全に管理されたソリューション(SaaS)を希望し、スキャナをオンプレミスで運用したくない場合にも適している。Qualysがアップデートを行うため、手を煩わせることなく、常に最新のスキャン機能を利用できます。

    価格モデル:Qualys WASはサブスクリプション・ベースで、通常はWebアプリケーションごとにライセンスされます(スキャンするアプリケーションまたはIPの数に応じて段階があります)。Qualys は、多くの場合バンドル販売(脆弱性管理 + WAS を含むパッケージなど)を行っている。無料トライアルもあり、Qualysはエンタープライズ向けの価格設定になっている傾向がある(最安値ではないが、堅牢なプラットフォームが手に入る)。

    業界ノートQualys WASは、2023年のGigaOm Radar for Application Security Testingで首位を獲得した。ユーザーは、クラウドの利便性と継続的なモニタリングの利点を挙げている。反面、UIが少し古く、初期設定(認証スクリプトなど)に学習曲線があると感じる人もいる。それでも、Qualysのバックアップがあれば、非常に堅実な選択肢となるだろう。

    Rapid7 InsightAppSec

    Rapid7 InsightAppSecは、Rapid7のInsightプラットフォームの一部であるクラウドパワーのDASTソリューションです。InsightAppSecは使いやすさと統合性に重点を置き、セキュリティチームと開発者の両方がダイナミックテストを利用できるようにする。Metasploitや脆弱性管理ツールなど、Rapid7が持つ専門知識を活用し、シングルページのアプリケーションやAPIを含む最新のWebアプリケーションを処理できるスキャナーを提供する。クラウドサービスであるため、スキャナーのインフラを管理する必要がない。

    主な特徴

    • 最新のウェブアプリのカバレッジ:InsightAppSecは、従来のウェブアプリだけでなく、ReactやAngularなどのフレームワークで構築されたSPAもテストできます。JavaScriptを実行し、動的に生成されたコンテンツをクロールする機能を備えています。また、HTML5や新しいウェブパターンにも対応している。Rapid7は、レガシーなHTMLフォームから最新のクライアントサイドアプリまで、あらゆるものをセキュアにできると強調している。
    • 95以上の攻撃タイプ:スキャナーのレパートリーには95以上の攻撃タイプがあり、一般的なものから複雑なものまでカバーしています。これには、よくあるもの(SQLi、XSS)はもちろん、CRLFインジェクション、SSRF、その他あまり一般的ではないウェブ上の欠陥も含まれます。リスクに基づいて発見されたものに優先順位を付け、重要なものに集中できるようにします。
    • シンプルなUX:InsightAppSecはフレンドリーなUIで設計されています。スキャンの設定は簡単で、URLとオプションのログイン情報を入力するだけです。経験の浅いユーザーには、インターフェイスが設定をガイドしてくれる。スキャンが完了すると、改善アドバイスや開発者向けの洞察とともに、調査結果が説明される。また、攻撃リプレイ(暴露した特定のリクエストを再生して発見を検証する)などの機能もある。
    • 並列スキャンとダウンタイムなし:クラウドベースのため、ローカルリソースを気にすることなく複数のスキャンを同時に実行できる。これは、複数のアプリをスキャンしたり、マルチタスクを実行したりする場合に最適です(Rapid7は、ダウンタイムなしで多くのターゲットをスキャンできると述べています)。このスケーラビリティは、代理店や大規模な組織が多くのウェブアプリをスキャンする場合に便利です。
    • 統合とエコシステム:InsightAppSec は Rapid7 Insight プラットフォームと統合されています。例えば、脆弱性をInsightVM(同社のvuln管理)に送信したり、Jiraでチケットを生成することができる。また、CIパイプラインにも統合でき、自動化のためのAPIもある。さらに、Rapid7 InsightConnect(SOAR)を使用している場合、DASTアクションを自動化することができます(新しいアプリがデプロイされたときにスキャンをトリガーするなど)。

    こんな企業に最適直感的なインターフェースと強力な統合機能を備えたクラウドベースのDASTをお望みの組織。既にRapid7の顧客(InsightIDR、InsightVMなどを使用している)であれば、InsightAppSecを追加することは自然であり、データは製品間を流れることができる。ユーザーフレンドリーなアプローチは、スキャンを実行するスキルの障壁を低くします。

    価格モデル:商用 SaaS。Rapid7 は通常、アプリケーションまたはターゲットごとに InsightAppSec をライセンスする。他の製品とバンドルして、より総合的なセキュリティ・ソリューションを提供することも多い。無料トライアルが利用可能で、ガイド付きデモも提供している。レビューでは、一部の中小企業は、価格設定が価値の割にリーズナブルであると述べているが、非常に大規模な使用では、価格が高くなる可能性がある(数百のアプリケーションに拡張する場合のSaaSの典型的な例)。

    レビューのハイライト:「脆弱性テストにRapid7を使用しています。彼らは完全で効果的なソリューションを提供する上で非常に貴重な存在です。ユーザーはしばしばRapid7のサポートとプラットフォーム全体の完成度を賞賛している。潜在的な欠点として、製品のバグ修正に時間がかかることがあることが挙げられていますが、新機能や改善は定期的に提供されています。

    Tenable.ioウェブアプリスキャン

    Tenable.io Web App Scanningは、Tenable.ioクラウドプラットフォーム内で提供されるTenableのDAST専用ソリューションである。Nessus(前述)でもウェブスキャンは可能だが、Tenable.io WASはウェブアプリケーションを動的にテストすることを目的に構築されたソリューションであり、よりモダンなエンジンとインターフェイスを備えている。Tenableは、これを使いやすく、かつ包括的なスキャナと位置づけ、すでに脆弱性管理のためにTenable.ioを使用している顧客にアピールすることが多い。

    主な特徴

    • 統一プラットフォーム:Tenable.io WASは、Tenableの他のサービス(Tenable.io Vulnerability Management、Container Securityなど)と同居しているため、すべての結果に1つのダッシュボードでアクセスできます。セキュリティ・チームにとって、インフラとウェブの脆弱性に関するこの「単一のガラス窓」は便利です。ウェブ・アプリの脆弱性をネットワークの脆弱性と関連付けて確認し、資産のリスク・スコアを追跡し、すべてをまとめて管理することができます。
    • 導入の容易さ:SaaS製品であるため、数回のクリックでスキャンを開始できます。Tenable.io WASは、外部のWebアプリケーションをすぐにスキャンできます。社内アプリについては、スキャンを実施し、クラウドにレポートを返すTenableスキャナアプライアンスをデプロイすることができます。セットアップは簡単で、Tenableはクイックスキャンとディープスキャンのテンプレートを提供しています。
    • 自動クロールと監査:スキャナは自動的にアプリケーションをクロールしてサイトマップを作成し、発見した各ページ/フォームを監査します。一般的なインジェクションポイントや脆弱性をテストします。テナブルは、最新のウェブアプリケーション(JS処理など)を処理するためにスキャンエンジンを改良してきた。マーケティングでは競合他社ほど宣伝していないが、実際にはほとんどの標準的な脆弱性をカバーしており、DOM XSS や JSON ベースの攻撃のような特定のチェックも行っている。
    • 迅速な結果と段階的なスキャンTenable.ioWASは、一般的な問題に対して数分で実用的な結果を提供することができます。また、継続的なスキャンのために設計されており、毎週または毎月スキャンをスケジューリングすることができ、インクリメンタル・スキャン(新規または変更されたコンテンツのみをテストする)をサポートしているため、次回以降のスキャン時間を短縮することができます。これは、頻繁なリリースを伴うアジャイル開発環境に便利です。
    • 統合とDevOps:Tenable.ioにはAPIがあるので、Webアプリのスキャンをプログラムでトリガーしたり、CI/CDと統合したりすることができる。また、調査結果を発券システムにプッシュするための統合もあります。Infrastructure as Codeを使用している場合、テスト環境をスピンアップし、API経由でTenable.io WASでスキャンし、その後破棄することもできます。
    • Nessusの補完:Tenableは、NessusとWASを併用することをよく提案します。Nessusはネットワークと基本的なウェブチェックに、WASはより深いウェブアプリのテストに使用します。Nessusはネットワークと基本的なウェブチェックに、WASはより深いウェブアプリのテストに使用します。すでにTenable.ioでNessusスキャンを管理している場合、WASの追加はシームレスです。ダッシュボードでは、リスクスコアなどを組み合わせて表示することができます。Tenableのアナリティクス(Tenable Luminを使用)は、すべての資産タイプで一貫して問題に優先順位を付けることができます。

    こんな方に最適DAST をより広範な脆弱性管理のコンテキストで使用したい場合。AppSecとNetSecの脆弱性管理を1つのチームで行っている場合、Tenable.io WASを使用することで、1つのツールセットを使用することができます。また、比較的手間のかからないDASTソリューションを求めるチームにも適している。ウェブセキュリティの第一人者でなくても実行でき、かなり自動化されている。しかし、非常に複雑なアプリではチューニングが必要な場合があり、そのような場合は他のツールでより手動でコントロールすることができます。

    価格モデル:Tenable.ioのWASはサブスクリプション・ベースで、多くの場合、アプリケーションまたはURLごとに提供される。Tenableは、Tenable.ioプラットフォームのライセンスにバンドルしている場合があります。例えば、既にTenable.ioの顧客であれば、一定数のWASターゲットが含まれるかもしれません。一般的に、他のエンタープライズDAST SaaSソリューションと競争力のある価格設定になっています。

    注:Tenable社は、競合他社に遅れを取らないようWASに投資している。2024年には、ログイン・シーケンスをより簡単に記録したり、単一ページ・アプリのスキャンを改善するなどのサポートを追加した。ユーザーからは、「シンプルで拡張性があり、自動化されている」というコメントが寄せられており、手間をかけずに包括的なDASTを提供するというTenableのメッセージングと一致している。優れた「万能」ツールだ。

    ワピチ

    Wapitiは 、Pythonで書かれたフリーでオープンソースのウェブ脆弱性スキャナーだ。Wapitiという名前は、ネイティブ・アメリカンのヘラジカを意味する言葉に由来している。Wapitiは "ブラックボックス "スキャナーとして動作する。ソースコードを必要とせず、典型的なDASTのようにHTTPリクエストを通してウェブアプリケーションをファジングするだけだ。Wapitiはコマンドラインツールで、オープンソース愛好家の間で特に人気があり、活発にメンテナンスされていることで知られています(最近のアップデートでは、新しい脆弱性モジュールが追加されています)。

    主な特徴

    • ブラックボックス・ファジング・アプローチWapitiはターゲットとなるWebアプリケーションをクロールしてURL、フォーム、入力を見つけ、脆弱性をテストするためにペイロードを注入して攻撃を開始します。インジェクションの欠陥を幅広くカバーしています:SQLインジェクション(エラー、ブーリアン、タイムベース)、XPathインジェクション、クロスサイトスクリプティング(リフレクション、ストアドスクリプティング)、ファイルインクルード(ローカル、リモート)、OSコマンドインジェクション、XML External Entity(XXE)攻撃などです。基本的に、入力フィールドがあれば、Wapitiはそれを破壊しようとします。
    • 様々な脆弱性のためのモジュール:サイトに記載されているように、Wapitiのモジュールは、古典的なウェブ脆弱性から、CRLFインジェクション、オープンリダイレクト、外部サービス経由のSSRF(外部のWapitiウェブサイトをキャッチャーとして使用することで、SSRFが可能かどうかをテストできる)、HTTP PUTの検出(WebDAVが有効かどうかを確認する)、さらにはCGIスクリプトのShellshockのような脆弱性のチェックまで、あらゆるものを扱う。この幅の広さは無料ツールとしては印象的だ。
    • 認証とスコープ:Wapitiはいくつかの方法による認証スキャンをサポートしています:ベーシック、ダイジェスト、NTLM、フォームベースの認証(認証情報またはクッキーを提供することができます)。また、スコープを制限することもできる。例えば、特定のドメインやフォルダ内にとどまるように指示することができ、サードパーティのリンクや自分が所有していないサブドメインへの攻撃を避けるのに便利だ。必要に応じて特定のURLを除外することもできる。
    • レポート作成:複数のフォーマット(HTML、XML、JSON、TXTなど)で結果を出力します。HTMLレポートは素早く確認するのに便利で、JSONはプログラムで分析したり結果をマージしたい場合に便利です。レポートは、発見された各脆弱性を、その脆弱性を悪用するために使用されたHTTPリクエストのような詳細とともに一覧表示します。
    • 使いやすさとメンテナンス: Wapitiは簡単にインストールでき(pip経由で入手可能)、実行も簡単です(wapiti -u <url> はスキャンを開始する)。かなり高速で、同時リクエスト数を調整できる。重要なのは、Wapitiが活発にメンテナンスされていることだ。最新のリリース(2024年半ば現在)では、新しい機能や脆弱性が追加されている。プロジェクトメンテナーは、(最近のCVEのような)新しいエクスプロイトが発生すると、それを最新の状態に保ち、オープンソーススキャナーが遅れをとる一般的な問題に対処している。Pythonなので、その気になれば簡単に手を加えることもできる。

    最適な人オープンソースのツールとコマンドライン制御を好む開発者やペンテスター。Wapitiは、オープンソースのセキュリティスタックのスクリプトやCIパイプラインに統合するための堅実な選択だ。少し手間がかかるかもしれないが(GUIがなく、手動でインストールする必要がある)、ライセンス費用がかからず、何をしているのかが完全に透明である。また、軽量なので、DockerコンテナやCIジョブで実行することができ、重いリソースを必要としません。

    価格モデル:無料(GPL v2)。唯一のコストは、あなたが学習し、場合によってはアップデートに貢献するための時間です。

    コミュニティーの愛WapitiはZAPほど有名ではないかもしれないが、発見したユーザーはしばしばその有効性を賞賛する。ウェブ・アプリの自動ファジングの隠れた宝石のようなものだ。GUIが付属していないため、CLIに慣れている人にとっては、統合するのに抵抗が少ない。また、そのアップデート(2021年後半にLog4Shell検出機能を追加するなど)は、重要なセキュリティ・イベントに適応していることを示している。もしあなたがオープンソースのAppSecツールキットを組み立てているなら、Wapiti + ZAPは一緒に多くの分野をカバーする。

    w3af

    w3af(Web Application Attack and Audit Framework)は、ウェブアプリケーションの脆弱性を発見し、悪用するための包括的なオープンソースのフレームワークです。しばしば「ウェブアプリケーションのためのメタスプロイト」と呼ばれるw3afは、脆弱性スキャンと悪用機能の両方を1つのパッケージで提供する。Pythonで書かれており、コンソールとグラフィカル・インターフェースの両方がある。古いプロジェクトではあるが、オープンソースのウェブ・セキュリティ・ツールとしては最も機能が充実している。

    主な特徴

    • 豊富なプラグインシステム:w3afはプラグインベースのアーキテクチャで運用されています。特定の脆弱性(SQLi、XSS、CSRF、バッファオーバーフローなど)をテストする監査プラグイン、ページを発見するクロールプラグイン(JavaScriptを解析してURLを発見するプラグインを含む)、発見された問題を悪用しようとする攻撃プラグインなど、数十のプラグインを備えている。どのプラグインを実行するかは、細かく設定することができます。このモジュール性により、w3afは、高速スキャン、完全な監査、またはエクスプロイト主導のエンゲージメント用に設定することができます。
    • スキャンと悪用w3afは脆弱性を見つけるだけでなく、悪用する要素も持っている。例えば、SQLインジェクションを見つけたら、それを活用するためのツールがある(sqlmapのようにデータを抽出する)。ファイル・インクルージョンが見つかれば、リモート・シェルを取得しようとすることができる。このため、単なる検知にとどまらず、実際に影響を実証したいセキュリティ研究者にとっては便利なツールだ。
    • GUIとコンソール・インターフェース:GTKベースのGUIがあり(見た目は少し古いが)、スキャンを設定したり結果を見たりするための、よりユーザーフレンドリーな方法を提供している。コンソールは非常に強力で、擬似的なシェル環境でアクションをスクリプト化できる(Metasploitのコンソールと同様に、コマンドを使ってターゲットやプラグインなどを設定できる)。これは初心者と上級者の両方に対応している。
    • 静的解析と動的解析の組み合わせ:w3afは、(コード監査プラグインを通して)直接アクセスされた場合、実際にコードの静的解析を行うことができるが、主に動的解析を行う。また、クレジットカード番号、社会保障番号、エラーメッセージなど、それ自体は脆弱性ではないかもしれないが、セキュリティに関連する情報を得るために、生のHTTPレスポンスを検査するgreppingプラグインを持っている。この総合的なアプローチにより、直接的な脆弱性だけに焦点を当てるスキャナーとは一線を画している。
    • オープンソースと拡張性:プロジェクトはGPLの下でオープンソースである。アップデートのペースは遅くなっているが、プラグインの既存の知識は相当なものだ。Pythonなので、ユーザーはプラグインを修正したり、新しいプラグインを書いて機能を拡張することができる。また、豊富なドキュメント(w3af docsサイト)やコントロールするためのAPIもあるが、ほとんどの場合はCLIかGUIを使うだろう。

    こんな人に最適スキャンとエクスプロイトの橋渡しをする無料のツールキットを求めるセキュリティ専門家や趣味の人。w3afでスキャンして問題を見つけ、それをシームレスに悪用して影響を確認することができる。迅速なスキャンを求める純粋な開発チームにとって、w3afはZAPやWapitiと比べると少し重く、複雑に感じるかもしれない。しかし、時間を投資することを厭わない人にとっては、非常にやりがいのあるものとなるだろう。価格モデル:無料、オープンソース。商用版なし。

    注意:w3afは強力ですが、潜在的に危険である可能性があります - 例えば、exploitプラグインはデータを変更する可能性があります。テスト/ステージング環境に対して、あるいは本番環境で明示的な許可を得た上で(そしてプラグインを慎重に選択した上で)使用するのがベストだ。このプロジェクトのリード開発者であるAndres Rianchoは数年前に他のベンチャーに移ったが(彼は多くのセキュリティツールに貢献していることで知られている)、w3afは多くのハッカーツールキットで使われ続けている。最新のOS上で動作させるためには多少のトラブルシューティングが必要かもしれないが(依存性地獄に陥ることもある)、一度立ち上げれば、ウェブアプリのセキュリティのためのスイスアーミーナイフを手に入れることができる。

    トップ・ツールを個別に取り上げたところで、次は具体的なユースケース別に推奨ツールを分類してみよう。開発者は統合のしやすさを優先するかもしれないし、企業のCISOは拡張性とサポートを重視するかもしれない。以下のセクションでは、様々なシナリオに合わせたおすすめを紹介する。

    開発者に最適なDASTツール

    対象者セキュリティバグを早期に発見し、テストをワークフローに統合したいと考えている開発者および DevOps エンジニア。このようなユーザは、使いやすく、誤検知で圧倒されず、開発環境(IDE、CI/CD など)と統合されたツールを評価する。多くの場合、AppSec に関する深い専門知識を持っていないため、ツールはガイダンスと自動化を提供する必要がある。

    開発者としてDASTツールを選択する際には、以下の点を考慮してください:

    • CI/CDやIDEとの統合:ツールは、ビルドパイプラインにプラグインされるか、IDE プラグインを提供するか?CIにおける自動化されたセキュリティテストは、マージ前に問題を発見するのに役立ちます。AikidoCI/CDセキュリティのような)いくつかのプラットフォームは、これをシームレスにする。
    • 誤検出とノイズが少ない:開発者には、ゴーストを追いかけている時間はありません。バグが指摘されたときに修正する価値があるように、発見を検証するツール(Invictiなど)や精度の高いツールが好まれます。
    • 実行可能なアウトプット:問題を修正するための明確なアドバイスやコード例を提供しているスキャナーを探そう。さらに良いことに、開発に特化したツールの中には、自動修正またはプルリクエストを提供するものもあるAikidoAI Autofixは、特定の問題に対するパッチを生成できる)。
    • スピードとオンデマンド・スキャン:開発環境では、より迅速なスキャンが迅速なフィードバックを可能にする。毎回アプリ全体をスキャンするのではなく)段階的な変更や特定のURLをスキャンできるツールは、反復的な開発サイクルに統合するのに役立ちます。
    • コスト(個人または小規模チーム向け):無料または手頃な価格のオプションは、特にセキュリティ専用の予算がない組織にとって魅力的である。オープンソースのツールや無料レベルのサービスが適している。

    開発者向けトップツール:

    • セキュリティ - 開発者に優しいオールインワン: Aikido 開発者のことを考えて作られています。コード・ワークフロー(PRチェック、高脆弱性のパイプライン・フェイル)に統合されているため、開発者は即座にフィードバックを得ることができる。このプラットフォームの"Start for Free "モデルとセットアップの容易さ(クラウド上で動作し、インフラを管理する必要がない)は、開発者が数分でプロジェクトにDASTを追加できることを意味する。また、DASTはSASTと調査結果を統合するため、すべてを一箇所で見ることができ、コンテキストの切り替えを減らすことができる。開発者にとって、単一のダッシュボードでセキュリティ問題を表示し、修正することは、大きな時間節約になります。さらに、自動修正候補によって、セキュリティにあまり詳しくない人でも自信を持って問題に対処できる。
    • OWASP ZAP - オープンソースでスクリプト可能:ZAPはフリーで柔軟性が高いため、開発者にとって素晴らしい選択肢だ。CIでデーモンモードで実行したり、ZAP APIを使ってスキャンを自動化したり、あるいはZAP HUDを使って開発中のアプリをインタラクティブにテストすることもできる。多くの開発チームは、毎晩開発環境のZAPスキャンを設定し、その結果をSlackやJiraにプッシュして、翌朝開発者が取り組めるようにしている。学習曲線は緩やかだが、OWASPは多くのハウツーを提供している。しかも無料なので、簡単に試すことができる。ZAPのコミュニティはまた、あなたが行き詰まった場合、ヘルプはおそらくGoogleで検索することができますことを意味します。
    • バープスイート (Community/Pro) - 手動テスト補助ツール:純粋な自動化のために、Burpは開発者にとって最初の選択ではないが、無料のCommunity Editionは開発中に実行するのに便利なツールだ。開発者は、Burpを通してローカルアプリのトラフィックをプロキシし、フードの下で何が起こっているかを見ることができる。Pro版のBurpのスキャナーは、アプリの特定の部分をダブルチェックするためにオンデマンドで使用することができる(「新しいOAuthログインを構築したので、その部分だけスキャンしてみよう」など)。Burpを使うことで、開発者はウェブセキュリティについて多くのことを学ぶことができる。もし予算が許せば、Burp Proの自動スキャンはCLIを使ってCIに統合することができ、開発者に強力なセキュリティゲートを与えることができる。
    • StackHawk - CI/CD統合DAST:(佳作)StackHawkは、特に開発者とDevOpsをターゲットにした新しいDASTツールだ。ZAPエンジンをベースに構築されているが、パイプラインに対応できるようにパッケージ化されている。YAMLファイルでテスト設定を定義すると、CIでヘッドレスで実行される。StackHawkは上記のメインリストには含まれていないが、"CIフレンドリー "であることに重点を置いているため、開発ユースケースとしては言及する価値がある。また、単一のアプリケーションのための無料ティアがあり、個々のプロジェクトやオープンソースのアプリに最適だ。
    • ワピチ - CLIで素早くチェック: コマンドラインツールが好きで、ビルドに簡単なセキュリティチェックを入れたい開発者にとって、Wapitiはうってつけだ。以下を実行できる。 ワピチ をテスト・スイートの一部として使うことができる(おそらく、アプリのローカル・テスト・インスタンスに対して)。すべてをキャッチするわけではないが、高速で、明らかな問題にフラグを立てることができる。CIにおけるセキュリティのためのリンティングツールと考えてください:軽量でGUIは必要ありません。

    なぜこれらなのか:これらのツールは、容易な統合、結果の即時性、手頃な価格を重視している。これらのツールを使うことで、開発者はセキュリティを「左遷」することができ、コードが本番環境に入るずっと前に、開発中に脆弱性を特定して修正することができる。これらのツールを使うことで、開発者は、単体テストでコード品質を向上させるのと同じように、セキュリティを反復的に向上させることができる。これらのツール(特にZAPやBurpのようなインタラクティブなもの)との対話から得られる学習は、開発者のセキュリティマインドセットを向上させる。

    以下の表は、迅速なフィードバック、簡単なCI/CD統合、ノイズの少ないレポートを必要とする開発者に最適なDASTツールの比較です。

    開発者向けDASTツール比較
    工具 CI/CDの統合 IDE/開発ツールのサポート オートフィックスまたはトリアージ 最適
    Aikido ✅ 100以上の統合 GitHub, GitLab ✅ AIオートフィックス フルスタック開発者とチーム
    スタックホーク CI の YAML ⚠️ CLI中心 ❌ CIファーストのAPIスキャン
    OWASP ZAP Docker & CLI ❌ ⚠️ 手動トリアージ オープンソース・チーム
    バープ・スイート・プロ ⚠️ 手動設定 ❌ ✅ 手動バリデーション セキュリティに詳しい開発者

    エンタープライズ向けベストDASTツール

    対象者大規模なWebアプリケーション・ポートフォリオと専任のセキュリティ・チームを持つ企業。多くの場合、数百のアプリケーションに拡張でき、ロールベースのアクセス、コンプライアンスレポート、企業ワークフロー(発券システム、ガバナンスなど)への統合を提供できるツールを必要としている。サポートと信頼性が重要であり、堅牢なソリューションのために予算が用意されています。

    エンタープライズDASTツールに関する考察:

    • スケーラビリティと管理:ツールは、スキャンスケジュール、結果、ユーザー権限を一元管理し、多数のアプリケーションのスキャン(同時スキャンも可能)を処理する必要があります。エンタープライズコンソールまたはマルチユーザー環境が重要である(HCL AppScan EnterpriseまたはInvictiプラットフォームなど)。
    • 企業との統合:SIEM、GRCプラットフォーム、不具合トラッカー(Jira、ServiceNow)、ID管理(SSOサポート)などのシステムとの統合が必要になることが多い。また、企業のDevSecOpsツールチェーンにカスタム統合するためのAPIアクセスも必要です。
    • コンプライアンスとレポーティング:企業はしばしばコンプライアンス文書を作成する必要がある。PCI、SOC2、ISO27001などの詳細なレポートを作成し、ポリシーのコンプライアンスを長期にわたって追跡できるツールは、大きな価値をもたらします。資産にタグを付け(ビジネスユニット別、リスクレベル別など)、分析(傾向、脆弱性修復に関するSLA)を得る機能は、管理者にとって有用です。
    • サポートとトレーニング:強力なサポート(専任のサポート・エンジニア、プロフェッショナル・サービス)とトレーニングを提供するベンダーを持つことは重要な要素である。企業向けツールには、サポートに関するSLAが付属している。オープンソースツールの場合、これはギャップであり、大企業がコストにもかかわらず商用オプションに傾倒する理由である。
    • 包括的なカバレッジ:企業には見落としが許されない。ツールは、標準的なウェブ脆弱性だけでなく、ビジネス・ロジック・テストのようなものもカバーし、テストを拡張する方法を提供することが理想的です。ギャップをカバーするために複数のDASTツールを使用している企業もありますが、効率性を考えると単一の堅牢なツールが望ましいです。

    企業向けトップツール:

    • インヴィクティ(ネットスパーカー) - 正確さと規模:Invictiのプラットフォームは、企業での使用に特化しています。マルチユーザーサポート、資産タグ付け、数千のスキャンに渡るリスクスコアリングを提供します。企業は、偽陽性を大幅に削減するプルーフ・ベースのスキャンを気に入っており、大量の発見があった場合のS/Nが向上します。Invictiはまた、企業のチケット管理(例えばJiraとの統合により、発見された問題を自動的に適切な開発チームに割り当てる)と統合することができます。Invictiのダッシュボードには、すべてのアプリケーションのセキュリティ状況の概要が表示される。企業にとっては、AppSecプログラムのバックボーンとなる、成熟した低ノイズのソリューションを手に入れることで、初期費用がペイできる。
    • HCL AppScan (スタンダード/エンタープライズ) - エンタープライズレガシーパワー:多くの大企業(銀行、保険、政府機関)が長年AppScanを使用してきました(IBMからHCLまで)。AppScan Enterpriseでは、集中管理サーバーで複数のAppScan Standardスキャンをオーケストレーションし、結果を集約することができます。AppScan Enterpriseはロールベースのアクセスに対応しており、開発チームはログインして自分のアプリの調査結果のみを見ることができ、セキュリティチームは俯瞰的な視点を得ることができます。コンプライアンス・レポートは大きなプラスだ。また、データ・セキュリティを重視する企業にとって、AppScanは完全にオンプレミスで実行できる(クラウドに依存しない)。
    • Micro Focus Fortify WebInspect - SDLC との深い統合:すでに Fortify のエコシステム(SAST など)に投資している企業は、WebInspect が自然にフィットすることに気づくでしょう。WebInspect のスキャンは Fortify SSC にパブリッシュすることができ、Fortify SSC は静的および動的な調査結果の一元的なリポジトリとして機能します。これにより、相互相関が可能になり、修復作業の統一的な追跡が可能になります。フォーティファイはまた、WebInspect の結果を使用して、実行時にアプリをインスツルメンテーションおよび保護することができるFortify Application Defender(RASP)のような追加製品も提供している。また、このベンダー(現在はOpenText)は、WebInspectのプロフェッショナル・サービスと認定トレーニングを提供しており、大規模なチームを立ち上げる際に重要な役割を果たします。
    • クオリス WAS - クラウドスケールとアセットディスカバリー:分散型インフラストラクチャを持つ大企業は、クラウドベースの手軽さと資産ディスカバリー機能でQualysを高く評価しています。Qualys WASは、環境内の新しいWebアプリを継続的に検出できます(ネットワークスキャン、ドメイン名の列挙などを使用)。そして、発見されたアプリを素早くスキャンに組み込むことができます。Qualysのスケーラビリティは実証済みで、同社のプラットフォームで年間数万件のスキャンを実行している企業もある。また、マルチテナントの側面は、企業のセットアップにも有効です(例えば、別々の事業部門が別々のビューを持つことができます)。
    • Tenable.io WAS - 統合リスク管理:アプリとネットワークのリスクを統合したい企業にとって、Tenable.ioのWASと脆弱性管理の統合は魅力的だ。CISOは、(WASの)ウェブバルンと(Nessusの)サーバインフラバルンの両方を考慮したアプリケーションの単一のリスクスコアを得ることができる。また、プラットフォーム・アプローチは、ユーザー管理とレポーティングを簡素化する。Tenableのエンタープライズ・サポートは強力で、大企業のクライアントのオンボーディングや、パフォーマンス・ヒットを最小限に抑えるためのスキャンのチューニング(企業で重要な本番アプリケーションをスキャンする場合に重要)をしばしば支援している。
    • Aikido セキュリティ - エンタープライズDevSecOpsプラットフォーム: Aikido レガシーな企業に比べて比較的新しいが、AppSecの近代化を目指す企業にとって興味深い価値を提供している。 複数のツール(SAST、DAST、Cloud configなど)を組み合わせているため、企業内のツールの乱立を抑えることができる。このプラットフォームはクラウドベースだが、(コンプライアンスのために)オンプレミスのオプションも提供している。企業は、SSO統合、チーム管理、数千のプロジェクトを処理する能力などの機能を得ることができる。利点の一つは、開発者が(開発者に焦点を当てた設計により)実際に楽しんで使えることで、開発者の賛同を得ることが戦いの半分である企業環境での採用を増やすことができる。Aikido 、セキュリティがすべての段階(コード、ビルド、デプロイ、監視)に統一された方法で統合されていることを保証し、大規模チーム全体でDevSecOpsを採用する企業に適している。

    なぜこれらなのか:規模、サポート、統合といった企業要件を満たしている。大規模な組織では、500のアプリをスキャンし、「今四半期はOWASPトップ10バルンの数を20%削減しました」というエグゼクティブ・レポートを作成できるDASTツールは貴重です。Invicti、Qualysなどのツールは、そのようなメトリクスとロールアップを提供します。また、企業はファイアウォールの内側で内部アプリをスキャンする必要があることが多いため、オンプレミスのスキャン・エンジン(QualysスキャナやオンサイトのWebInspectインストールなど)を備えたツールが必要だが、上記のオプションはすべてそれを提供してくれる。

    企業向けDASTツール比較
    工具 スケーラビリティ コンプライアンス報告 偽陽性の低減 最適
    インヴィクティ マルチアプリケーション+クラウド PSI、OWASP、ISO 証明ベース 企業セキュリティチーム
    HCL AppScan ✅ 分散スキャン 豊富なテンプレート ✅ 手動および自動バリデーション コンプライアンスを重視する組織
    クオリスWAS クラウドファースト・スケール ✅ エグゼクティブ・レポート ⚠️ チューニングが必要 MSSPとセキュリティ・リード
    Aikido マルチプロジェクト対応 ⚠️ 基本テンプレート AIによるトリアージ 最新のセキュリティ・アズ・ア・サービス

    ‍

    ‍

    スタートアップに最適なDASTツール

    オーディエンス新興企業や小規模企業は、セキュリティ予算や人材が限られていることが多い。そのような企業は、費用対効果が高く、使い勝手がよく、迅速に価値を提供できるツールを必要としている。多くの場合、顧客や投資家の懸念を満足させる(機密データを扱う場合はコンプライアンスに準拠する)ために、迅速な開発ペースを崩すことなく、セキュリティの基本水準を達成することに重点を置いている。

    DASTツールにおける新興企業の主なニーズ:

    • 手頃な価格:無料または低コストのソリューション、あるいは小規模アプリをカバーする無料レベルのツールが理想的だ。スタートアップ企業は、経常的なコストを避けるためにオープンソースを検討することもできる。
    • シンプルさ:専任のセキュリティ・エンジニアがいない可能性があるため、開発者やDevOpsがスキャンを実行する。ツールは、セットアップが簡単で(インフラを避けるためにSaaSが望ましい)、解釈が簡単でなければならない。
    • 迅速な勝利:新興企業は、最もクリティカルな問題(例えば、一般的な設定ミスや顕著な脆弱性)を素早く見つけるツール、つまり本質的に健全性チェックができるツールから利益を得る。最も網羅的なスキャナーは必要ないかもしれない。高リスクの項目を早期にキャッチするもので十分な場合が多い。
    • 開発ワークフローとの統合:新興企業は、モダンでアジャイルな開発を行うことが多い。GitHub Actionsなどと統合するツールは、重いプロセスを踏むことなくセキュリティを自動化するのに役立つ。
    • スケーラビリティ(将来性):最重要要件ではないが、規模が拡大してもツールを切り替える必要がないように、(アプリの増加やスキャン回数の増加に合わせて)一緒に成長できるツールはボーナスである。しかし、初期段階では、コストがこれに優先するかもしれない。

    スタートアップのためのトップツール

    • OWASP ZAP - 無料で信頼できる資金不足の新興企業にとって、無料に勝るものはない。ZAPは、あなたのウェブ・アプリに対して実行する最初の頼りになるスキャナーになる。多くのスタートアップ企業は、ZAPを半自動化された方法で使用している。例えば、毎晩のビルドの一部として、あるいは開発者による毎月のチェックとして。ZAPがオープンソースであるということは、もし企業が成長した場合、セキュリティ・チームがZAPを深くカスタマイズできるということでもある。ZAPへの学習への投資は、継続して成果を上げている。長所:直接的なコストがかからない、コミュニティが大きい、一般的な脆弱性に対する有効性が高い。短所:実践的な努力と学習が必要。
    • セキュリティ - 無料プランとオールインワン: Aikido 、新興企業にとって非常に魅力的な永久無料プランを提供している。DASTだけでなく、SASTやその他のスキャナーも一つのプラットフォームで利用できる。若い企業にとって、Aikido 使用することは、複数のツールを使いこなす必要がないことを意味する。また、Aikido 自動化と手軽さに重点を置いているため、セキュリティの専門家がいなくても、新興企業の開発者が管理することができる。スタートアップが成長しても、Aikidoプランの中でシームレスにアップグレードできるため、将来的にも安心だ。
    • Acunetix (Invicti社) - SMBフレンドリーなオプション:Acunetixは商用だが、特に小規模組織向けに販売されており、価格はエンタープライズ・ツールよりも安い。少し予算があり、おそらくコンプライアンス要件がある新興企業は、わかりやすくサポートされているAcunetixを選ぶかもしれない。ローカルにインストールすることも、クラウドから実行することも可能で、アプリを素早くスキャンし、洗練されたレポートを作成する(新興企業がデューデリジェンスの一環として企業のクライアントにレポートを見せる必要がある場合に役立つ)。基本的には「DASTアプライアンス」であり、機能するだけである。開発チームにAcunetixのライセンスを1つだけ使用し、時々スキャンを実行して、明らかなホールがないことを確認する新興企業もある。
    • Nessusエッセンシャル - 無料の脆弱性スキャナー:新興企業はNessus Essentials(16のターゲットに対して無料)を活用してウェブアプリホストをスキャンすることができる。Nessusはウェブアプリに特化したテスターではないが、ウェブサーバー設定の問題(SSLの問題、古いソフトウェア)や一般的なウェブの脆弱性をキャッチすることができる。アプリそのものを網羅するものではないが、迅速なチェックとしては価値がある。また、スタートアップの製品にネットワークサービスも含まれている場合、Nessusはそれらをカバーする。基本的に、Nessusは全体的なセキュリティ衛生のための素晴らしい「広範な掃引」ツールだ。多くの新興企業がNessusを使用しているのは、無料版で1つのウェブアプリと数台のサーバーに十分だからだ。
    • バープ・スイート コミュニティ - 学習と手動でつつく:もし創業チームが技術的な傾向があるのであれば、Burp Communityが手元にあり、彼らのアプリを手動でつつくことは非常に勉強になる。無料で、コミュニティ版ではスキャナーは無効になっているが、トラフィックを傍受し、いくつかのフォームをテストするために侵入者を使うことができる。スタートアップの開発者の中には、Burpを使って重要な機能(ログインや支払いフォームなど)を手動でテストしている人もいる。これは自動化もスケーラブルでもありませんが、小規模なアプリの場合、Burpを2、3時間使えば重大なミス(不適切な認証チェックなど)を発見できるかもしれません。時間がかかるだけで、無料という点で費用対効果は高い。

    なぜこれらなのか:これらのツールはコストがかからないか、スタートアップの予算に簡単に収まる。新興企業にとってのゴールは、低いところにぶら下がる果実にならないことだ。これらのツールを実行することで、目につく問題(デフォルトの認証情報、オープンな管理者エンドポイント、SQLインジェクションなど)をキャッチし、最小限の投資でセキュリティ体制を劇的に向上させることができる。さらに、OWASP ZAPやNessusのような認知度の高いツールを使用していることを示すことで、見込み顧客から避けられないセキュリティに関する質問が来たときに、信頼を高めることができます。

    ‍

    スタートアップ向けDASTツール比較
    工具 無料 セットアップの容易さ CI/CDの統合 最適
    Aikido 無料トライアル 5分間のオンボーディング 完全 CI サポート AppSecを採用しない新興企業
    スタックホーク 無料開発者層 シンプルな設定 YAML ドリブン APIファーストのエンジニアリングチーム
    OWASP ZAP 完全フリー ⚠️ マニュアル・チューニング Docker & CLI オープンソース精神に基づくDevOps
    バープ・スイート・コミュニティ 無料版 ⚠️ マニュアルのみ ❌ ソロ開発者

    ‍

    最高の無料DASTツール

    対象者お金をかけずにウェブアプリのセキュリティを向上させたいと考えている人。これには、趣味の開発者、学生、小規模な組織、あるいはソリューションを購入する前に試してみたい大企業も含まれます。ここでいう「無料」とは、完全にオープンソースである場合もあれば、商用製品のフリーティア版である場合もあります。

    無料のDASTオプションは、一般的に(機能、サポート、スキャンの深さにおいて)いくつかの制限があるが、基本的なニーズには驚くほどの価値を提供する。

    最高の無料ツールの基準/特徴:

    • 無料:本当に無料で使えること(短期間の試用だけではない)。オープンソースまたはコミュニティによってサポートされているのが理想的。
    • 効果:たとえ無料であっても、ツールは意味のある数の脆弱性を見つけるべきである。ベースラインはOWASPトップ10の問題をカバーしている。
    • コミュニティのサポート:無料のツールは、コミュニティ・フォーラム、ドキュメント、アップデートに依存していることが多い。活気あるコミュニティは、ツールが有用であり続けることを保証します。
    • 使いやすさと学習曲線:無料ツールの中には、すぐに使えるものもあれば、スキルが必要なものもある。ここでは、"そのまま使える "ものから、(お金よりも時間を投資することを厭わない人向けの)より専門的な知識が必要なものまで、さまざまなものをリストアップする。

    トップ無料DASTツール:

    • OWASP ZAP:ZAPは、おそらく最も完全な機能を備えたフリーのDASTツールとして際立っている。説明したように、ZAPは多くのことを無料で行うことができる。ZAPは、"予算がないのですが、DASTを行うにはどうしたらいいですか?"と質問されたときに、効果的に提案するツールです。ZAPには活発なコミュニティがあり、OWASPの正式なサポートもある。ZAPは継続的にアップデートされており、拡張も可能だ。無償のソリューションとしては、機能とコミュニティの規模においてZAPを上回るものはない。
    • ニクト:完全にフリーでオープンなNiktoは、既知の問題に焦点を当てている。実行はとても簡単で、基本的にワンコマンドでスキャンできる。Niktoの価値はそのシンプルさにある:あまり設定せず、ただ実行して出力を得るだけだ。Niktoは、セキュリティの専門家でない人が素早く監査するのに適している(例えば、システム管理者がチェックリストの一部としてサーバーに対してNiktoを実行することができる)。シグネチャベースのため、カスタムの問題を見逃してしまうかもしれないが、無料のツールとしては素晴らしいセーフティネットを提供してくれる。
    • ワピチ:Wapitiはフリーでオープンソースであり、インジェクション・テストにおいていくつかの商用スキャナーに匹敵するほど驚くほど強力だ。メインストリームではあまり知られていないかもしれないが、オープンソースのセキュリティ・コミュニティでは尊敬されている。Wapitiは、ターミナルを使い、潜在的にスクリプトを書くことを厭わない人にとっては、多大なスキャン能力を無償で提供してくれる。Wapitiの活発な開発は、新しい脆弱性の種類に対応していることを意味する。
    • w3af:同じくフリーでオープンソースのw3afは、より複雑だが、スキャンと搾取の両方を提供する。Burp Suite Proの無料版(のようなもの)だ。しかし、最近あまり活発ではないので注意が必要だ。それでも、無償のソリューションとしては、w3afは問題を深く掘り下げ、悪用することさえできる。ワンストップツールキットを求める、ある程度のセキュリティ知識を持つユーザーに最適だ。
    • アラクニ:アラクニはフリー(オープンソース)で、当時はヘビー級だった。今でも多くの場面で活躍している。積極的にメンテナンスされていないため、最先端の技術には注意して使うべきだが、フリーのスキャナーとして、古いウェブ技術には徹底している。最新のSPAを使用しないアプリであれば、Arachniは非常に効果的であり、素晴らしいレポート・インターフェースを備えている。0円で、プロフェッショナルなスキャン・レポートが手に入る。
    • バープスイート コミュニティ版:無料版ではフル・スキャナーを使用することはできませんが、パッシブ・スキャンと手動テストが可能なため、これを含めました。これは無料で、素晴らしいトレーニング・ツールだ。多くのセキュリティ愛好家は、脆弱性の仕組みやトラフィックの傍受などを学ぶためにBurp Communityから始める。ブラウジング中にBurp Communityを通してアプリをプロキシすると、いくつかの問題(セキュリティヘッダーの欠落やXSSを示唆する反射的な値など)に受動的にフラグを立てます。つまり、限定的ではあるが、技術的には無料でいくつかのDAST作業を行うことができる。

    注:多くの商用プレーヤーは無料トライアルを提供している(Acunetixの14日間トライアルやQualysの限定無料スキャンなど)が、それらは持続可能なソリューションではない。したがって、私は期間限定ではなく、長期的に無料で使えるツールにこだわっている。

    なぜこれらなのか:金銭的な障壁なしに、基本的なこと(そしてそれ以上)をカバーしている。無料のツールは、セキュリティの民主化にとって極めて重要である。予算がゼロの企業でも、これらを使ってセキュリティ態勢を改善することができる。複数の無料ツールを組み合わせて実行することが推奨されることが多い。例えば、Nikto + ZAP + Wapitiを一緒に実行する。3つともアプリが「クリーン」であると同意すれば、明らかな問題を処理できた可能性が高い。全てお金をかけずに。

    最高のオープンソースDASTツール

    対象者セキュリティ愛好家、オープンソース・ソリューションに熱心な組織、またはツールの完全な透明性と制御を望む人々。オープンソースのツールは、教育機関や、コミュニティ監査済みのソフトウェアを好む厳しい調達規則を持つ企業にも支持されている。

    「オープン・ソース」は「フリー」と重複するが、ここでは特に、ソース・コードが入手可能で、通常コミュニティ(多くの場合、OWASPまたは同様の組織)によって保守されているツールを意味する。その利点は、スキャナーのコードを監査し、カスタマイズし、隠されたブラックボックス動作がないことを信頼できることだ。

    オープンソースのトップDASTツール(上記を少し繰り返す):

    • OWASP ZAP: オープンソースのチャンピオン。ZAPのソースはGitHubにあり、多くの貢献者がいる。多くの企業がZAPをフォークして、特定のニーズに合わせたカスタム・スキャン・ルールを作成している。OWASPのガバナンス下にあるため、信頼性があり、オープンな開発プロセスが明確です。OSSのDASTが必要な場合、ZAPは通常1番の選択肢となる。
    • w3af:完全にオープンソース(GPL)。各プラグインがどのように動作するかを読み、修正したり、新しいものを書いたりすることができる。これは、新しい脆弱性のチェックをグローバルに追加したい研究者にとっては素晴らしいことだ。スキャナーの構成要素を再組み立てできるようなものだ。w3afはオープンソースであるため、より大規模なオープンソースのセキュリティフレームワークに統合することもできる。
    • ワピチ:WapitiはGitHub上でホスティングされ、メンテナによって活発に更新されています。Wapitiはユーザからのコントリビュートやバグレポートを募集しています。もしあなたのアプリが誤検知を引き起こしたり、新しいタイプの脆弱性を発見した場合は、Wapitiのモジュールに追加することができる。オープンソースであることは、Wapitiを他のオープンシステムに統合できることも意味します(オープンソースのCI/CDパイプラインにフックするなど)。
    • ニクト:最も古いオープンソースのウェブスキャナーのひとつ。そのシグネチャ・データベースはオープンに編集可能で、人々は頻繁に新しいチェックを投稿する。例えば、人気のあるフレームワークの新しいウェブアプリの脆弱性が発見された場合、誰でもその脆弱性のNiktoテストを追加して共有することができる。Niktoのコード(ほとんどがPerlスクリプト)はシンプルなので、そこそこのコーディングスキルがあれば、自分の環境に合わせてカスタマイズすることができる。その意味で、まさにコミュニティ主導なのだ。
    • アラクニ:オープンソース(現在はメンテナンスされていないが)。そのコードベースはよく書かれており、フォークしたり、他のプロジェクトでその一部を再利用している人もいる。新しいDAST開発者はArachniのデザインを学ぶことができます。
    • OWASP ZAPのアドオン・コミュニティ(佳作):ZAPのコアを超えて、アドオンマーケットプレイスはオープンソースの貢献でいっぱいだからです。GraphQL Scannerアドオン、SOAPスキャナアドオンなどのツールはすべてオープンソースだ。このエコシステムは、ZAPが今日何かできなくても、明日そのギャップを埋めるオープンソースのプラグインが現れるかもしれないことを意味する。クローズド・ソースのツールには、グローバル・コミュニティによるこのような敏捷性はない。

    なぜオープンソースなのか?セキュリティはしばしば信頼に関わる。オープンソースのDASTを使えば、どのようなテストが行われているか、データがどのように扱われているかを正確に検査することができる(機密性の高いアプリをスキャンする場合には重要だ。)また、ツールが自社のニーズに完全に適合しない場合、それを変更する力があるということでもある。資金よりもエンジニアリングの努力を惜しまない組織は、これらのプロジェクトから非常にカスタマイズされたDASTソリューションを構築することができる。

    DevSecOpsに最適なDASTツール

    対象者対象:DevSecOps を実践しているチーム、すなわち、継続的インテグレーションと継続的デ リバリのパイプラインにセキュリティチェックを統合し、高度な自動化と、開発部門、セキュリ ティ部門、運用部門の間のコラボレーションを実践しているチーム。このようなチームは、ヘッドレスで実行でき、機械可読の出力を生成でき、おそらくはセキュリティ基準に基づいてビルドをゲートできるツールを求めている。また、ポストプロダクションで継続的に使用するだけでなく、"左遷"(開発者が早期に使用)できるツールを好むことも多い。

    DevSecOps DASTにとって重要な要素:

    • CI/CDインテグレーション:ツールはCLIまたはREST APIを持ち、一般的なCIシステム(Jenkins、GitLab CI、GitHub Actions、Azure DevOpsなど)用のプラグインを持つのが理想的だ。パイプラインの一部として簡単にスピンアップできること(コンテナ化されたバージョンが役に立つ)。
    • 自動化に適した出力:JSONやSARIFのようなフォーマットで結果を出力し、自動化された意思決定のために他のシステムで利用できるようにする。例えば、新たに深刻度の高い脆弱性が見つかった場合、ビルドを中断させることができます。
    • インクリメンタルまたはクイックスキャン:DASTのフルスキャンは時間がかかる。より高速なモードを提供するツールや、特定のコンポーネントをターゲットにできる(重要なエンドポイントにタグ付けできる)ツールは有用である。もう1つのアプローチは、テスト・スイートとの統合だ。例えば、統合テストを実行している間にアプリを攻撃する(一部の高度なセットアップではこれを行う)。
    • 環境の柔軟性:DevSecOpsは、一時的なテスト環境をスピンアップすることがあります(例えば、アプリのブランチをテストサーバーにデプロイしてスキャンし、その後それを破棄する)。動的な URL を簡単に指定でき、手動で多くのセットアップを行うことなく、常に変化する環境に対応できる DAST ツールは、ここで威力を発揮します。
    • フィードバックのループ:DevSecOpsの理想は、開発者への即時フィードバックである。そのため、プルリクエストにコメントしたり、自動的にチケットを開いたり、結果をチャットでping送信したりできるDASTツールは、そのような迅速なフィードバック文化を育む。

    DevSecOpsのためのトップツール/アプローチ:

    • Aikido セキュリティ - パイプラインの自動化: Aikido (CI/CD統合機能を持つ)CIパイプラインに組み込むように設計されている。Aikido スキャンは、マージやデプロイごとに実行するように設定できる。その結果は、重大度のしきい値を超えた場合にビルドを失敗するように設定できる。SASTも実行できるということは、開発者はCIにおける静的解析と動的解析のワンツーパンチを、すべて1つのプラットフォームから管理できるということだ。また、Aikidoクラウド特性は、CIランナーでスキャン・インフラを管理する必要がないことを意味する。これは、パイプラインにDASTを追加する際の摩擦を軽減します。
    • OWASP ZAP (Dockerized) - DevOpsの主力製品: ZAPは公式のDockerイメージと、設定可能なベースラインスキャンスクリプトまで提供している。これはDevSecOpsで多用されている。例えば、GitHub Actionで owasp/zap-baseline-scan をデプロイされたテストサイトに対して5分間実行し、その結果を報告する。ZAPのAPIは多くのカスタム自動化も可能で、コミュニティはZAPをCIと統合するラッパー(Pythonスクリプトなど)を書いている。無料なので、必要なだけパイプラインで実行できる。多くのチュートリアルが "ZAP in Jenkins "やそれに類するものであり、一般的なパターンであることを示している。
    • StackHawk - CI専用:StackHawkは(商用だが)基本的にDevOpsのためのDASTだ。config-as-codeアプローチを使ってパイプラインと統合する。予算に余裕があるDevSecOpsチームにとって、StackHawkはCIでZAPを使用する際の荒削りな部分を滑らかにしてくれる(StackHawkはZAPをベースに構築されているが、開発者向けのUXとサポートはより優れている)。StackHawkはZAPをベースに作られているが、開発者向けのUXやサポートが充実している。CIに適したフォーマットで出力され、同社はDASTがCIの速度を落とさないようにすることを強調している(チューニングのガイダンス付き)。
    • Invicti/Acunetix - CIプラグイン:Invictiを使用しているエンタープライズDevSecOpsショップは、Invictiのインテグレーション機能を利用できる。Invictiはヘッドレスモードで実行することができ、Jenkinsなどのプラグインを持っている。Invictiは、ポリシー(クリティカルなバルーンが存在しないなど)に基づいてスキャンを合格/不合格にマークすることができる。Invictiの利点は、プルーフベースの精度で徹底的なスキャンができることだが、課題は実行時間だ。多くの場合、毎晩のフルスキャンと、各ビルドでの迅速なターゲットスキャン(変更されたコンポーネントをターゲットにするか、スモークテスト+DASTを使用)を行うことでこれを解決している。
    • バープスイート エンタープライズ - パイプラインインテグレーション:Burp Suite Enterprise Edition(Burp Proとは異なります)は、スケジュールやCI経由のトリガーでスキャンを実行するように設計されています。REST APIとCIプラグインがある。DevSecOpsチームは、デプロイ後にスキャンをスケジュールし、結果をJIRAにフィードするために使うかもしれない。ZAPほどCIにプラグインされることは一般的ではないが(コストの問題で)、Burpを標準化した企業のDevSecOpsセットアップの一部で使われている。
    • Tenable.io WAS - クラウドフック:パイプラインがTenableのクラウドスキャナーにアクセス可能なテスト環境をデプロイできる場合、API経由でスキャンをトリガーし、結果をポーリングすることができる。DevSecOpsチームの中には、ナイトリービルドのためにこれを行うところもある。ローカルのZAPスキャンほど瞬間的ではないが、スキャンをクラウドサービスにオフロードすることができる。

    要約すると、ここでは自動化が王道だ。自動化のために構築されたわけではないツールでも、(クリエイティブなスクリプトによって)パイプラインで使用することはできるが、機能と統合によってDevSecOpsを認めてくれるツールは、時間を節約することができる。上記のオプションは、本質的に自動化に向いているか(ZAP、Aikido、StackHawk)、または市場の需要によって自動化をサポートするように進化している(Invicti、Burp Enterprise)。

    DevSecOpsチームはまた、DASTの複数の段階を使用することが多い。CIでの迅速な軽量スキャン(数分で明らかなものをキャッチする)と、デプロイ後の詳細なスキャン(時間がかかるかもしれないが、開発者をブロックしない)である。選択したツールは、その戦略をサポートする必要がある。

    APIセキュリティに最適なDASTツール

    対象者特に Web API(REST、SOAP、GraphQL)の脆弱性をテストする必要があるチーム。これには、バックエンド開発者、APIプラットフォーム・エンジニア、マイクロサービスに焦点を当てたセキュリティ・テスターが含まれる。APIセキュリティ・テストは、ウェブUIテストとは少し異なります。ブラウザ・インターフェースがないため、APIスキーマを解析し、JSON/XMLペイロードを処理し、認証トークンやマルチステップAPIコールのようなものを理解できるツールが必要です。

    APIに特化したDASTの主な機能:

    • API仕様のインポート:ツールはSwagger/OpenAPIまたはPostmanコレクションをインポートし、どのようなエンドポイントが存在し、それらのフォーマットがあるかを知るべきである。これは時間を節約し、簡単に発見できないものであっても、すべてのAPIエンドポイントのカバレッジを保証する。
    • GraphQLのサポート:GraphQLのAPIは今や一般的なものとなっており、それらをテストするには特別な処理(イントロスペクション・クエリー、ネストされたクエリー)が必要となる。優れたAPI DASTは、GraphQLのためのモジュール(例えば、深くネストされたクエリーのサービス拒否のようなGraphQL特有の脆弱性をチェックする)を持つべきである。
    • SOAPとレガシーAPIのサポート:WSDLのインポートやSOAPコールの記録によってSOAPサービスをテストできるツール。また、gRPCのようなものを扱うことも考慮されるかもしれない(ただし、gRPCに対するDASTのサポートはまだ始まったばかりである。)
    • 認証とトークン:APIテストでは、APIキー、OAuthトークン、JWTなどを扱う必要がある。ツールは、認証されたエンドポイントをテストできるように、(おそらく設定ファイルやログインスクリプトを介して)これらを簡単に供給できるようにすべきである。IDを操作することで、例えばIDOR(Insecure Direct Object References)のような認可ロジックもテストできればボーナスだ。
    • HTML以外のレスポンスの処理:APIはJSONやXMLを返す。スキャナはHTMLページを期待してはならない。JSONを解析し、それでもなお問題(JSONコンテキストにおけるXSSや、APIレスポンスにおけるSQLエラーなど)を発見しなければならない。一部の古いスキャナはHTMLレスポンスしか見ないが、これはAPIにとって十分ではない。
    • レート制限の認識:APIを激しくヒットさせると、レート制限を引き起こしたり、IPブロックされたりする可能性がある。APIに特化したスキャナには、レート制限を尊重する設定や、サービスの中断を避けるために適切なスロットル設定が含まれているかもしれない(本番APIをテストする場合は重要)。

    APIセキュリティのためのトップツール(DAST):

    • インヴィクティ (とAcunetix) - APIディスカバリーとテスト:InvictiはAPIスキャンに強い。API定義(REST、SOAP、GraphQL)をインポートし、それらに特化したチェックを行うことができる。例えば、GraphQLの脆弱性を検出したり、自動生成された多くのクエリーをテストすることができる。また、認証もうまく処理する。組織に多数のAPI(マイクロサービス)がある場合、Invictiはそれらを系統的にスキャンすることができる。兄弟製品であるAcunetixはこの機能を共有しており、小規模なチームにとってはより利用しやすい。
    • クオリス WAS - APIとOpenAPI v3のサポート:Qualys WASは、「OpenAPI仕様からのドリフト」を検出することを特に宣伝している。これは、APIをテストするだけでなく、観察されたエンドポイントと仕様を比較することで、文書化されていないエンドポイントも検出することを意味する。リストにないエンドポイントはセキュリティの盲点になり得るので、これはAPIセキュリティにとって価値がある。QualysはSOAP APIもカバーしており、WSDLを提供することができる。多くのAPIを持つ企業にとっては、特にプラットフォーム全体と統合されるため、堅実な選択だ。
    • OWASP ZAP - API用アドオン付き:ZAP単体でもJSONエンドポイントのファジングやテストは可能だが、アドオンと併用することでAPI向けに真価を発揮する。SwaggerファイルをインポートするOpenAPIアドオンやGraphQLアドオンもある。これらを使うことで、ZAPは各API操作のリクエストを自動的に作成し、積極的にスキャンすることができる。オープンソースであるため、APIを徹底的にテストする数少ない無料の方法だ。スクリプトで認証トークンを提供するなど)微調整が必要かもしれないが、多くのコミュニティガイドが存在する。
    • バープスイート - 手動APIテストに最適BurpのスキャナーはAPIに使うことができるが、Burpを使ってAPIをテストするには、多くの場合、手動または半自動での作業が必要になる。モバイルアプリのトラフィックやPostmanのリクエストをBurpでプロキシしてAPIコールをキャプチャし、Burp Scannerを使うことができる。Burpには、ファイルアップロードAPIなどをファジングできる "Upload Scanner "という拡張機能もある。GraphQLについては、それを支援するBurpエクステンションがある。つまり、すぐに使える自動APIスキャナーではないが、BurpはAPIテストのための強力なプラットフォームなのだ。Professional版のスキャン機能は、HTMLと同じように、JSONのレスポンスやその他の脆弱性をテストする。
    • Postman + セキュリティコレクション - (DASTの補強):Postman自体はDASTではないが、「API Security Audit」コレクションのような、初歩的なDASTチェックとして機能するコレクションがある(例えば、各エンドポイントで一般的なSQLインジェクション文字列を送信する)。セキュリティに関心のある開発者は、APIエンドポイントの基本的なファズを行うためにPostmanテストを書くことができる。このアプローチは無料であり(Postmanには無料ティアがある)、Newman(PostmanのCLI)を介してCIに統合することができる。完全なスキャナほど包括的ではないが、APIセキュリティテストのためのDevSecOpsの世界では成長しているアプローチだ。
    • セキュリティ - APIスキャン機能内蔵: AikidoプラットフォームにはAPIスキャン機能があり、APIエンドポイントを入力することができる(またはウェブスキャンと並行してAPIを検出させることもできる)。特にRESTとGraphQLをサポートしている。すでにAikido ウェブ用に使っているチームにとって、同じ場所でAPIスキャンができるのは便利だ。一般的なAPIの問題である不正アクセステスト(認証なしでリクエストを繰り返し、データが漏れるかどうかを確認する)のようなことも試してくれる。この統合はコンテキストの切り替えを減らすことを意味し、開発者は1つのダッシュボードでAPIとWebの脆弱性を見ることができる。

    なぜか:APIエンドポイントは機密データを保持することが多く、認証バイパスや過剰なデータ露出などの問題が発生しやすい。伝統的なDASTツールは歴史的にウェブページに重点を置いていたが、ここに挙げたものはAPIファーストのトレンドに対応している。これらのツールを使用することで、バックエンドのAPIもフロントエンドと同様にテストされます。現在、多くの侵害がAPIに関与していることを考えると(APIを介したFacebookのユーザーデータ流出やT-MobileのAPI問題を思い出してほしい)、APIのセキュリティに焦点を当てることは非常に重要だ。悪意のあるAPIの利用をシミュレートできるツールは、これらの欠陥を発見する方法だ。

    APIセキュリティ比較のためのDASTツール
    工具 OpenAPI/スワッガーのサポート GraphQLサポート トークンの認証処理 最適
    Aikido 自動インポート フル ✅ OAuth、JWT ダイナミック&シャドーAPI
    スタックホーク はい はい セッション・ベース CIに統合されたAPIテスト
    インヴィクティ Swagger & GraphQL フル ✅ 多段階認証 セキュアな大規模API
    OWASP ZAP ✅ アドオン付き ⚠️ 部分的 ⚠️ マニュアルスクリプト オープンソースのAPIスキャン

    ウェブアプリケーションに最適なDASTツール

    対象者:これは広範に聞こえるかもしれないが(ほとんどのDASTはウェブアプリケーション向けであるため)、ここでは特に従来のウェブアプリケーション(ウェブサイト、ポータル、eコマースサイト)、おそらくリッチユーザーインターフェースを持つもののテストに重点を置いている組織と解釈する。彼らは、このような環境においてウェブアプリの脆弱性を発見するのに最適なツールを求めています。このカテゴリでは、基本的に、「(ブラウザ、フォーム、ユーザーアカウントなどを含む)ウェブアプリケーションのセキュリティを確保することが最大の関心事である場合、全体として最も効果的なツールはどれか?

    純粋なウェブアプリのスキャン(APIや他のニッチな分野とは異なる)にとって重要な側面:

    • クロールとカバレッジ:ウェブアプリスキャナーは、スクリプトやユーザーイベントによって生成されたリンクも含め、すべてのリンクを効果的にクロールしなければならない。より優れたクロールアルゴリズム(ヘッドレスブラウザ、SPAの処理)を持つツールは、より多くのアプリをカバーする。
    • セッション管理:ウェブアプリケーションには、複雑なログインや状態(ショッピングカート、マルチステップワークフロー)があります。最高のウェブアプリDASTツールは、記録されたマクロやスクリプトロジックを介してこれらを処理することができます。
    • 脆弱性の深さ:ウェブアプリの場合、XSS、SQLi、CSRF、ファイルインクルードなどが鍵となる。ツールによっては、例えばXSS(反射型、蓄積型、DOMベース)に対して他よりも包括的なチェックを行うものもある。ストアドXSS(あるページが送信され、別のページがトリガーされるようなもの)をツールがどの程度発見できるかによって、優れたものとそうでないものが分かれる。
    • 偽陽性への対応:大規模なウェブアプリでは、何百もの発見があるかもしれません。エクスプロイト可能性を検証したり、優先順位を明確にしたりするツールは、実際の問題に焦点を当てるのに役立ちます。
    • クライアントサイドのセキュリティチェック:最近のウェブアプリには、クライアントサイドのストレージの安全でない使用や、サードパーティのスクリプトの脆弱性などの問題があるかもしれません。DASTツールの中には、サイトが既知の脆弱性を持つスクリプトを読み込んでいるかどうか、あるいはコンテンツ・セキュリティ・ポリシーが欠落していないかどうか、フラグを立てるものもあります。これらは、未知の脆弱性だけでなく、より「ウェブアプリに特化した」チェックです。

    ウェブアプリケーション用トップツール:

    • インヴィクティ (Netsparker)だ:トップクラスのウェブアプリDASTとして、Invictiの典型的なウェブアプリのクロールと脆弱性検出は優れている。複雑なシナリオであっても、XSSやSQLiを非常に確実に検出することで知られている。XSSのような問題の検証(例えば、安全なペイロードを挿入し、それが実行されたことを検出する)には自信があります。Invictiは広範なカバレッジと深さにおいて、しばしばウェブ脆弱性ベンチマークで高く評価されています。
    • バープ・スイート プロハンズオンWebアプリのテストでは、Burp Proは比類ない。そのスキャナーと、トリッキーな部分を手動でナビゲートして再スキャンする機能を組み合わせることで、奇妙なウェブアプリのロジックを扱うことができる。Burpの利点は、自動クロールがどこかで失敗しても、人間が介入してハードルを越え、Burpを続行させることができることだ。このインタラクティブなテストモデルによって、複雑なアプリでより多くの問題が発見されることがよくある。Burpはまた、パフォーマンス対徹底性のための多くのスキャンチューニングオプションを持っており、大規模なウェブアプリの最適化に役立ちます。
    • AcunetixAcunetixは、常にWebテクノロジー(WordPress、Drupalなど、CMSに特化した多くのチェックを含む)にフォーカスしていることを売りにしている。一般的なウェブサイト、特に既製のプラットフォームを使用しているウェブサイトでは、Acunetixは既知の脆弱性や誤った設定を特定することで輝きを放つ。Acunetixはオールラウンドなウェブスキャナーであり、学習曲線が低い傾向がある。
    • OWASP ZAP:無料だが、熟練者の手にかかれば、多くのウェブアプリで商用ツールに匹敵するパフォーマンスを発揮する。ZAPのアクティブ・スキャンは幅広い攻撃をカバーしている。うまく設定すれば(ログインセッショントークンなどのコンテキストを使って)、多くのことを見つけることができる。ZAPはまた、コミュニティ・ルールの恩恵も受けている。例えば、誰かが一般的なeコマースの脆弱性を特別にテストするスクリプトを投稿し、誰でもそれを使うことができる。商用ツールを買う余裕のない組織にとって、ZAPはウェブ・アプリケーション・セキュリティのための最善の策だ。
    • HCL AppScan Standard:ウェブアプリのスキャンで長年の実績がある。トリッキーなアプリのために深く設定することができる(特定のページを壊さないようにインジェクション文字列をカスタマイズしたり、特定のステップ間で一時停止したり)。AppScanのヒューリスティック・エンジンは、あまり明らかでないロジックの問題も見つけることがある。純粋なウェブ評価については、AppScanは多くのプロのセキュリティ・テスター(特にIBM AppScan時代からの人たち)に使われているベテラン・ツールだ。彼らは、ウェブアプリにおける脆弱性とその現れに関する大規模な知識ベースを持っており、それがスキャナにおける徹底的なテストケースに反映されます。

    なぜこれらなのか:これらのツールは、典型的なウェブ・アプリケーションに存在する多種多様な脆弱性を発見する最良の機会を提供します。ウェブ・アプリケーションは、様々な機能を持つ広大なものです。これらのツールは、ウェブサイト全体をエンド・ツー・エンドでスキャンすることで実証されています。InvictiとBurpのようなツールは、しばしば同時に使用されます。AcunetixやAppScanは、アナリストの手にかかれば、多くのセキュリティ・チームが企業のウェブ・アプリの定期的な評価で信頼するスキャンへの構造的なアプローチを提供する。そして、ZAPはオープンソースであるため、その能力を民主化する。

    要するに、もしあなたの目的が「このウェブポータルがあり、その中でできるだけ多くのセキュリティ問題を見つけたい」というものであれば、上記のツールはまず検討すべきものの一つである。

    REST APIに最適なDASTツール

    聴衆:これはRESTful API(上記のAPI Securityのサブセットとも考えられるが、ここでは特にREST)に焦点を絞ったものである。おそらく、モバイルアプリのバックエンドやSPAのバックエンドを含むREST API(HTTP上のJSON、ステートレス設計)を開発しているチームで、これらのAPIが脆弱でないことを確認したい人たちです。

    REST API DAST の重点分野:

    • Swagger/OpenAPIの統合:RESTにとって非常に重要である。REST APIのSwagger仕様を取り込むことができるツールは、すべてのエンドポイント、メソッド、期待されるパラメータを列挙することができ、スキャンをより効果的にする。
    • REST 特有の脆弱性:不適切な HTTP 動詞の扱い(例:GET と POST の混同)、レート制限の欠如、典型的な REST の設定ミス(HTTP PUT が許可されるべきでない場所で許可されていたり、冪等であるべきメソッドが許可されていなかったり)などをテストする。
    • パラメータ・ファジング: RESTエンドポイントはしばしばJSONボディを取る。スキャナは、インジェクションのペイロード、ネストされたJSONオブジェクトなどを持つJSONパラメータをファジングしてみるべきである。また、RESTエンドポイント( /users?filter=<script>).
    • 認証/認可:多くのREST APIはトークン(ベアラートークン)を使う。ツールはすべてのリクエストにトークンをアタッチする必要がある。さらに、RESTでの認証のテスト(URLのIDを別のユーザーのIDに変更するような)は、いくつかのDASTツールで試みられています(しかし、本当の認証ロジックのテストはDASTを超えるかもしれません)。
    • APIにおけるCSRF:多くの API は認証にクッキーを使わなければ CSRF の影響を受けないと考えていますが、クッキーを使うものもあります。スキャナは、例えばクッキーが使われるとき、状態を変更するエンドポイントに CSRF の保護があるかどうかチェックできます。

    REST API DASTのトップツール:

    • OWASP ZAP をOpenAPIアドオンと併用する:純粋なREST API(例えばSwagger JSON)の場合、ZAPのOpenAPIアドオンを使用すると、すべてのエンドポイントがインポートされる。ZAPは関連するインジェクションでそれぞれを攻撃することができる。認証ヘッダを処理するスクリプトを書く必要があるかもしれないが、ZAPのスクリプトを使えば可能だ。オープンソースであるため、おそらく多くの人がREST APIで最初に試すことになるだろう。コミュニティはAPIスキャンに特化したスクリプト例も共有している。
    • Postman + OWASP ZAP シナジー:興味深い自由なアプローチの1つは、Postmanを使って認証とAPIの通常の使用を(多分エンドポイントのコレクションを介して)行い、ZAPを通してPostmanをプロキシすることだ。そうすることで、ZAPがAPIを観察し、観察されたエンドポイントに対してZAPからアクティブスキャンを開始することができる。この組み合わせは、Postmanのスクリプトが管理する特定のシーケンスや自明でない認証ステップを必要とするRESTエンドポイントを効果的にテストできる。なぜなら、Postmanはすべてのエンドポイントを適切に(正しいデータで)ヒットするのに優れており、ZAPはセキュリティテストの部分を行うことができるからです。
    • インヴィクティ/アキュネティクス: どちらもRESTを強力にサポートしている。例えば、Swaggerファイルを受け取り、以下のような検出を含む包括的なテストを行うことができます。 RESTfulリソースレベルのアクセスに関する問題 (をテストする GET /users/123 IDを変更することで、他のユーザのデータをフェッチすることができる。)また、コンテンツ・ネゴシエーションの問題(APIがXML入力をサポートしている場合、XXEを試すなど)もテストする。これらの製品は、最新のAPIセキュリティ問題(OWASP API Top 10のような)を常に把握し、それに応じてチェックを組み込んでいる。
    • バープ・スイート Pro:Burpでは、REST APIをテストする場合、(RepeaterやSpider経由で)リクエストを送り、Scannerに任せるのが一般的だ。大規模なREST APIがある場合、拡張機能(BApp Storeにある)を使ってSwaggerをBurpにインポートすることができる。そして、そのリクエストに対してスキャナを起動することができる。Burpの利点は、微調整が必要な場合(特定のパラメータフォーマットの調整など)、手動でそれを行って再送信できることだ。自動化されたツールよりも手間がかかるが、手動でコントロールすることで、完全なカバレッジを確保することができる。
    • ワピチ:WapitiはRESTをきちんとサポートしている(あらゆるHTTPインターフェースに対応している)。JSONペイロードやURLパラメータをファジングしてくれる。Swaggerファイルを自動的に解析することはできないかもしれないが、いくつかのエントリURLを提供するか、ドキュメントページをスパイダーさせれば、エンドポイントを見つけることができる。REST APIスキャンのための完全にオープンソースのパイプラインが必要な場合、WapitiとSwaggerからエンドポイントをフィードするスクリプトを組み合わせると、実行可能なソリューションになる。
    • Tenable.io WAS:Tenableのソリューションは、やはりSwaggerをインポートできる。そして各エンドポイントをテストする。スキャン設定にカスタムヘッダや認証トークンを追加するなど、APIをテストする方法をドキュメントで強調している。Tenableはまた、APIサーバの既知の設定ミスをチェックするために脆弱性リポジトリを使用しているようだ。例えば、APIサーバーが特定のパスでディレクトリのリストを有効にしているかどうかや、既知の脆弱なAPIフレームワークがシグネチャによって検出されているかどうかをチェックするかもしれない。

    なぜこれらなのか:REST APIはどこにでもある(最近のウェブ/モバイルアプリには必ずある)。REST APIにおけるインジェクションは、壊滅的な被害をもたらす可能性があります(例えば、RESTエンドポイントにおけるSQLインジェクションは、ウェブフォームにおけるインジェクションと同じくらい悪いものです)。上記のツールは、REST に特化したテストにおいて証明された機能を持っています。その証拠に、多くのツールは現在、OWASP API Security Top 10に合致している。InvictiやQualys WASのようなツールは、これらのカバレッジについて明確に言及している(API Top 10の1位であるBOLA(Broken Object Level Authorization)のように、IDファジングによって検出を試みるスキャナもある)。

    これらのツールをREST APIに使用することで、静的コード解析では発見できないような問題(特に設定の問題やアクセス制御のミス)を発見することができる。これらのツールは実際のクライアントコールをシミュレートします。

    モバイルアプリに最適なDASTツール

    オーディエンスDASTの文脈でモバイルアプリについて語る場合、モバイルアプリが通信するバックエンドサービスや、モバイルアプリ内のウェブビューや埋め込みブラウザに関わることがほとんどです。純粋なモバイルアプリのバイナリセキュリティ(ハードコードされたキーがないかAPKをチェックするような)は別の領域(モバイルSASTかもしれません)ですが、モバイル向けのDASTは、モバイルアプリのサーバー側のインターフェースと、場合によってはネットワーク通信をテストすることを意味します。対象者は、モバイル開発者かもしれないし、モバイルクライアントとサーバーの相互作用が安全であることを保証するセキュリティテスト担当者かもしれない。

    重要な点

    • モバイルで使用されるAPIエンドポイントのテスト:多くのモバイルアプリはREST/GraphQL APIを使用している。しかし、内部APIであれば、これらのドキュメントがないかもしれないという違いがある。そのため、モバイル・トラフィックを傍受することが第一段階となる。
    • 認証フローの処理:モバイルアプリは、OAuthフローや、トークンを使ったカスタム認証を使うかもしれない。モバイル向けのDASTツールは、これらのトークンを取得して再利用する必要がある。多くの場合、最も簡単な方法は、モバイルアプリをプロキシし、認証されたセッションをキャプチャすることです。
    • ウェブビューのテスト:モバイルアプリの中には、ハイブリッド型やウェブビュー・コンポーネントを持つものがある。URLを入手できれば、通常のウェブアプリのようにテストすることができる。例えば、銀行アプリには、基本的にウェブページのウェブビューであるFAQセクションがあるかもしれません - 脆弱性がある場合、アプリを経由した攻撃ベクターになる可能性があるため、XSSなどをスキャンする必要があります。
    • 安全でないプロトコルのチェック:モバイルトラフィックを検査する DAST は、アプリが HTTPS ではなく HTTP URL を呼び出したり、無効な SSL 証明書を受け入れたりすることに気づくかもしれない(一部のツールは、無効な証明書を使って MITM テストを行い、アプリがまだ接続するかどうかを確認できる)。
    • ワークフローとステート:モバイルのインタラクションの中には、ステートフルなシーケンス(商品をカートに入れ、次に購入する)があります。これらをシミュレートするには、モバイルアプリをスクリプト化するか、自動化されたスクリプトで呼び出しを再現する必要があるかもしれません。これは複雑なので、そのようなシーケンスを記録して再生できるツールが役立ちます。

    モバイルアプリDASTのトップツール/手法:

    • バープスイート - モバイル・テストの標準:Burpはモバイルアプリのテストに広く使われている。PC上でBurpのプロキシを実行し、そのプロキシを使用するようにモバイル・デバイスを設定する(HTTPSを傍受できるように、デバイスにBurpのCA証明書をインストールする)。その後、モバイルアプリを使用すると、BurpはすべてのAPIコールをキャプチャします。そこから分析し、アクティブスキャンすることができる。Burpは、アプリが証明書のピン留めのようなことを行っているかどうかもハイライトすることができる(この場合、Burpで接続の失敗が表示される)。多くのモバイル特有の問題(不適切な証明書の検証など)は、傍受または操作できるものを見ることによって、Burpで評価することができる。Burpのリクエストを繰り返したり変更したりする機能は、モバイル入力に対するサーバーサイドの信頼をテストするのに非常に重要です。
    • OWASP ZAP - モバイルプロキシとスキャン:同様に、ZAPはモバイル・トラフィックをプロキシすることができる。デバイス上でセットアップするのに多少の手作業が必要かもしれないが、一度それが完了すれば、キャプチャしたエンドポイントを通常のウェブスキャンと同じように扱うことができる。ZAPはモバイルに特化した機能を最初から持っているわけではないが、一般的なウェブスキャンとAPIスキャンはモバイルバックエンドでも問題なく動作する。無料なので、Androidアプリをテストする個人研究者にとってはありがたい。
    • HCL AppScan モバイル・アナライザー付き:AppScan Standardには、モバイル・テストを容易にする機能があります。モバイルアプリのトラフィックを観察し(プロキシやエミュレータを通してアプリを実行する場合)、テストを実行することができる。また、IBM(そして現在はHCL)はAppScan Mobile Analyzerを提供しており、モバイルアプリのバイナリをイントロスペクションし、いくつかの動的分析を行った。しかし、DASTに焦点を当てると、AppScanは確かにモバイルアプリがヒットするウェブエンドポイントをテストすることができ、高度な使用法ではあるが、モバイルエミュレータを自動化するクライアントさえ提供している。
    • Aikido セキュリティ - 完全なAppSecプラットフォーム(モバイルを含む): Aikido 、それ自体はモバイルテストツールではないが、APIをスキャンし(APIスキャンを通じて)、モバイルコードの静的解析を行うことができるという点で、モバイルアプリのセキュリティをカバーしている(企業がソースを持っている場合)。例えば、モバイルバックエンドがあれば、そのURLをAikidoDASTに送り、結果を得ることができる。モバイル・コードがあれば、AikidoSASTは、安全でない乱数生成やハードコードされた秘密のようなものをキャッチするかもしれない。この組み合わせは、アプリのコードとアプリのウェブサービスの両方を単一のプラットフォームで管理したいモバイル・チームにとって便利だ。
    • Postman for Mobile API + ZAP:もしモバイルAPIコールを(プロキシ経由で、もしくはアプリをリバースエンジニアリングしてエンドポイントを取得することで)キャプチャできるなら、Postmanでそれらを再現し、ZAPもしくは手動でテストすることができる。MobSF(モバイル・セキュリティ・フレームワーク)と呼ばれるOWASPのプロジェクトもあり、エミュレータを実行することでいくつかの動的分析を行う。MobSFは主に静的解析を行いますが、オープンソースのモバイルセキュリティツールとして言及する価値があります。DASTについては、エンドポイントを提供すれば、基本的なAPIファジングを行うことができます。
    • ネサス / Nexpose など- 環境チェックアプリを直接テストするわけではありませんが、モバイルバックエンドをホスティングしているサーバーの脆弱性スキャンを実行したり、SSL設定をチェックしたり(Qualys SSL LabsやNessusなど)することは、多くの場合モバイルアプリテストの一部です。これにより、アプリが通信するサーバーが適切に設定されている(TLSのバージョンが古いなど)ことが確認される。Nessusのようなツールは、アプリのロジック以外のサーバーサイドの問題をカバーすることで、DASTを補完することが多いからです。

    なぜか:モバイル・アプリは、証明書のピン留めのようなユニークな課題をもたらし、DASTの妨げになることがある。しかし、上記のアプローチは、セキュリティのプロがモバイルアプリからサーバへの会話の中に入るために使用するものです。Burp Suiteは、その柔軟性から、基本的にモバイル・アプリ・ペンテストのデファクト・ツールです。ZAPは、もう少しセットアップが必要ですが、同じことを無料で実現できます。これらによって、次のような問題を見つけることができる:APIはユーザーが提供したIDを信頼しているか(データ漏洩につながる)?モバイルアプリがSSLの検証に失敗していないか(中間者攻撃を許していないか)?アプリが呼び出すエンドポイントに明らかでないものが隠れていないか?

    モバイルバックエンドでDASTを使用することで、攻撃者がモバイルアプリをバラバラにして細工したAPIリクエストを送信し始めた場合に何をするかをシミュレートすることができる。これは非常に重要だ。多くのモバイル侵害(UberのAPIリークやSnapchatの過去のAPI問題を思い浮かべてほしい)は、誰かがモバイルアプリをリバースし、APIを悪用したことに起因する。上記の方法で適用されるDASTツールは、多くの場合、攻撃者よりも先にそれらの弱点をキャッチすることができる。

    結論

    2025年のウェブ・アプリケーション・セキュリティには、プロアクティブなアプローチが必要です。攻撃者は、私たちのウェブサイト、API、モバイル・アプリの弱点を常に探っています。ダイナミック・アプリケーション・セキュリティ・テスト(DAST)ツールは、アプリケーションの脆弱性をハッカーの視点で把握できるため、プロアクティブな防御の要となります。動的に攻撃をシミュレートすることで、DASTツールは、忘れ去られたフォームのSQLインジェクションから、弱い暗号を受け入れるサーバーの誤った設定まで、静的なコードレビューでは見落としてしまうような問題を特定し、修正するのに役立ちます。

    アプリケーション・セキュリティを次のレベルに引き上げる準備はできていますか? 無料で始める Aikidoオールインワン・プラットフォームで。

    ‍

    ガイド
    2025年2月12日
    △Opengrepの立ち上げ|Semgrepをフォークした背景
    ?による
    ウィレム・デルベール
    ウィレム・デルベール

    △Opengrepの立ち上げ|Semgrepをフォークした背景

    TL;DR: 私たちはSemgrepCEのフォークであるOpengrepをオープンソースの締め出しに対応して立ち上げます。

    私たちがオープングレップの発起人です。さっそく始めましょう:先月、セムグレップはOSSプロジェクトの大幅な変更を発表しました。)

    2017年以来、Semgrepはオープンソースセキュリティコミュニティの要として、SaaS製品とともにコード解析エンジンとルールリポジトリを提供してきた。しかし、彼らの最近の動きは、「オープン」の本当の意味とは何かという疑問を提起している。

    主な変更点には、コミュニティから提供されたルールを制限付きライセンスでロックすることや、無視の追跡、LOC、フィンガープリント、必須メタ変数のような重要な機能をオープンプロジェクトから移行することが含まれる。

    これは驚くべきことではなく、Semgrepはしばらくの間、静かにオープンソースエンジンをやめていた。Semgrep OSS」から「Semgrep Community Edition」へのブランド変更は、棺桶に最後の釘を刺すような気分です。

    なぜですか?

    おそらくVCからの圧力か、オープンソースの貢献がSaaSの収益を "共食い "すると見てのことか、あるいは競合からの保護か。Semgrepは、ベンダーが競合するSaaS製品でルールとエンジンを使用するのを阻止するためだと主張している。しかし、つい昨日の「AI」の発表で、創業者は「オリジナルのSemgrepエンジンは時代遅れになりつつある」と宣言した。

    いずれにせよ、競争心は尊重するが、このオープンソースの締め付けはライバル組織を止めることにはほとんどならない。何よりも、この動きはSemgrepだけでなく、オープンソースプロジェクト全体のコミュニティの信頼を損なうものである。

    「この種の変更は、同様のオープンソース・プロジェクトすべてに害を及ぼす。すべての企業や開発者は、オープンソース・プロジェクトを採用し投資する前に、クリエイターが突然ライセンスを変更することを決めた場合に備えて、よく考える必要がある」...あるいは、機能を停止する(Opentofu)。

    このパターンはよく知られている:ElasticsearchのライセンスシフトがAWSにOpenSearchを作らせた。Opentofuの動きは、HashiCorpによるTerraformの乱立の後に生まれた。ベンダー主導のオープンソースは、"大リーグ "に進出するためにコミュニティよりも商業的利益を優先することが多い。 そしてそれは最悪だ。

    だから、私たちは行動を起こしている。

    オープンソースプロジェクトを存続させ、セキュアなソフトウェア開発をベンダーニュートラルな共有標準にするために、業界全体で協調して立ち上がる。

    Nir Valtman(Arnica、CEO)、Ali Mesdaq(Amplify Security、CEO)、Varun Badhwar(Endor Labs、CEO)、Aviram Shmueli(Jit 、CIO)、Pavel Furman(Kodem 、CTO)、Liav Caspi(Legit 、CTO)、Eitan Worcel(Mobb 、CEO)、Yoav Alon(Orca Security 、CTO)。

    Opengrepの価値観と、Aikido Securityを含むその立ち上げスポンサー





    パフォーマンスの向上、プロ専用機能のアンロック、言語サポートの拡張、重要な機能のエンジンへのマイグレーション、そして新たな進化:Windows互換性、クロスファイル分析、ロードマップは長いです。

    というのも、現実を直視しよう。セキュリティの脆弱性を発見し、自動的に素早く修正する方法を考えよう。開発者をビルドに戻すことに集中しよう。

    オープングレップについてもっと知りたいですか?

    Opengrepマニフェストを読む。
    Opengrepに貢献したり、スポンサーとして参加するには、GitHubでissueを開いてください。

    コミュニティと貢献者の方は、2月20日のオープンロードマップセッションにご参加ください。
    X.Linkedinでフォローしてください。

    「SASTの未来をオープンに」マッケンジー・ジャクソンとOpengrepで対談

    オープングレップSemgrepの再開が理にかなっている理由

       

    ニュース
    2025年1月24日
    1
    会社概要
    製品価格について採用情報お問い合わせパートナー制度
    リソース
    資料公開APIドキュメント脆弱性データベースブログインテグレーション用語集プレスリリースカスタマーレビュー
    セキュリティ
    トラストセンターセキュリティの概要クッキー設定の変更
    リーガル
    プライバシーポリシークッキーポリシー利用規約マスターサブスクリプション契約データ処理契約
    使用例
    コンプライアンスSAST & DASTASPM脆弱性管理SBOMの生成WordPressセキュリティコード保護マイクロソフトのためのAikido
    産業別
    ヘルステックメドテックフィンテックセキュリティテックリーガルテックHRテックエージェント向け企業向けPEおよびグループ会社向け
    比較する
    全ベンダーとの比較vs Snyk対Wizvs Mendvs オルカ・セキュリティvs Veracodevs GitHubアドバンスドセキュリティvs GitLab Ultimatevs Checkmarxvs Semgrepvs SonarQube
    リンクする
    hello@aikido.dev
    LinkedInX
    サブスクライブ
    すべての最新情報を入手
    まだまだ。
    👋🏻 ご登録ありがとうございます!
    チーム Aikido
    まだまだ。
    © 2025 Aikido Security BV | BE0792914919
    🇪🇺 登録住所:Coupure Rechts 88, 9000, Ghent, Belgium
    🇪🇺 事務所所在地:Gebroeders van Eyckstraat 2, 9000, Ghent, Belgium
    🇺🇸 事務所住所:95 Third St, 2nd Fl, San Francisco, CA 94103, US
    SOC 2
    コンプライアンス
    ISO 27001
    コンプライアンス