メインコンテンツへスキップ
  1. ブログ/

Linux CLIから「Zed Attack Proxy」でセキュリティテストを実行する方法

·
セキュリティ
目次

OWASP ZAPとは
#

OWASP ZAPは、Webアプリケーションのセキュリティ診断を行う多機能なツールとなります。

プロジェクトはオープンソース(OSS)として公開されておりJava言語で開発されています。

また、クロスプラットフォームに対応しておりGUIやCLIでも利用できることから幅広い層に支持されています。

以下は公式リポジトリとなっております。

zaproxy/zaproxy

The ZAP by Checkmarx Core project

Java
13554
2360

検出可能な脆弱性
#

以下はZAPで検出できる主な脆弱性の一覧となっております。

脆弱性の種類 説明
XSS(クロスサイトスクリプティング) 悪意あるスクリプトがブラウザ上で実行されるリスク
SQLインジェクション 入力値を通じて不正なSQLが実行される可能性
セッション管理の不備 セッションIDの漏洩や不適切な保持設定など
セキュリティヘッダー欠如 保護用HTTPヘッダーが設定されていない状態
CSRF対策不足 悪意あるリクエストが第三者から実行される恐れがある
古いライブラリの使用 既知の脆弱性があるJavaScriptやフレームワークの検出

OWASP ZAPのインストール
#

1.依存関係のインストール
#

現時点でのZAPのインストール要件としてはJava 11以降が必要となっております。

ただしmacOSバージョンを利用される場合はJava 11が含まれている為、本項目は不要となります。

はじめに、dnfコマンドを使用しJava11のインストールを行います。

dnf install java-11-openjdk

インストールが完了したら以下のコマンドにてバージョン確認を行います。

java -version

上記を実行すると下記のようにバージョン情報が表示され、問題なくインストールが完了している事が確認できます。

openjdk version "11.0.25" 2024-10-15 LTS
OpenJDK Runtime Environment (Red_Hat-11.0.25.0.9-1) (build 11.0.25+9-LTS)
OpenJDK 64-Bit Server VM (Red_Hat-11.0.25.0.9-1) (build 11.0.25+9-LTS, mixed mode, sharing)

2.実行ユーザーの作成
#

次に実行ユーザーの作成を行います。

ZAPはroot(管理者)アカウントでも実行可能となっております。

しかし、Linuxの運用においてセキュリティ上の理由からrootアカウントの使用は避けるべきとなっておりますので、今回は専用アカウントを作成し進めます。

adduser zap

3.パッケージのダウンロード
#

次にZAPパッケージのダウンロードを行います。

ZAPはWindows版、macOS版、Linux版など多くのプラットフォームで利用可能です。

Linux環境でCLIを利用したい場合は、LinuxPackage版をダウンロードしてください。

直接パッケージの入手を行う場合は下記の公式サイトよりダウンロード可能となっております。

ZAP公式サイト

今回はwgetコマンドで2.15.0バージョンのパッケージを入手しインストールを行います。

cd /home/zap
wget https://github.com/zaproxy/zaproxy/releases/download/v2.15.0/ZAP_2.15.0_Linux.tar.gz

4.パッケージの解凍
#

次に先ほど入手した「tar.gz」形式のパッケージの解凍を行います。

以下コマンドにて解凍可能です。

tar -zxvf ZAP_2.15.0_Linux.tar.gz

以上で準備完了となります。

セキュリティテスト
#

LinuxのCLIよりzapを実行する場合は「daemon」や「cmd」オプションを使用し実行する必要がございます。

また、「ホスト」と「ポート番号」についても指定が必要となります。

ホスト名、ポート番号はZAPのAPIが利用する値となります。

以上を踏まえ以下コマンドにてセキュリティテストを実施する事ができます。

警告 許可なく他人のサイトをスキャンすると、法的な問題になる可能性があります。

daemonを使用する場合
#

./zap.sh -daemon -port [ポート番号] -host [ホスト名]  -quickurl [チェック対象サイト] -quickout [レポート出力先]

cmdを使用する場合
#

./zap.sh -cmd -port [ポート番号] -host [ホスト名]  -quickurl [チェック対象サイト] -quickout [レポート出力先]

レポート結果を確認する
#

上記にてセキュリティを診断を実施した場合、結果としてHTML形式の解析レポートが出力されます。

注意点として、日本語出力は非対応となっており英語形式での出力となります。

必要に応じて翻訳を実施し内容の確認を行なってください。

脆弱性のリスクレベルは4段階に分類され表示されます。

以下はリスク別の説明となっております。

レベル 説明 優先度の目安
High 深刻な脆弱性。 最優先で対応
Medium 悪用されると被害が生じる可能性がある。 早期対応を推奨
Low 影響は軽微だが、セキュリティ的には改善が望ましい項目。 余裕があれば対応
Informational 実害はないが、セキュリティ上の参考情報や設定ミスの可能性を示唆。 任意で確認

危険度の高い脆弱性を優先し対策される事をお勧めいたします。

関連記事

cyrus-sasl(サイラスサスル)とは
Linux セキュリティ
総当たり攻撃の最大時間を計算してみた
セキュリティ
SPFレコードのルール(qualifier )を指定する方法
セキュリティ DNS
【初心者向け解説】SELinuxの状態を確認する方法
Linux SELinux セキュリティ
AlmaLinux8でPHP-FPMをソースからビルドする方法
PHP ビルド
Mailmanのバージョンを確認する方法
Linux メール