今回はwebサイトの脆弱性診断ツールである「Zed Attack Proxy (ZAP)」を利用しLinuxのCLIからセキュリティテストを実行する方法についてご紹介致します。
今回は「Rocky Linux8」を使用した例となります。
Rocky Linuxについては以下の記事にて解説しております。
■OWASP ZAPとは?
■OWASP ZAPのインストール
1.依存関係のインストール
現時点(2024年11月)での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版など多くのプラットフォームで利用可能です。
CLIを利用している場合は、LinuxPackage版をダウンロードしてください。
直接パッケージの入手を行う場合は下記の公式サイトよりダウンロード可能となっております。
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段階に分類され表示されます。
危険度の高い脆弱性を優先し対策される事をお勧めいたします。