NiktoとOWASP ZAPによるWebアプリスキャン
NiktoとOWASP ZAPのアクティブスキャナーを使って、Webアプリケーションの一般的な脆弱性をスキャンします。
「NiktoとOWASP ZAPによるWebアプリスキャン」はCoddyKit上の無料Cyber Security Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCyber Security Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cyber Security Academyコースには全4レッスンが含まれています。
Webアプリケーションの攻撃対象領域
Webアプリケーションは、URLパラメーター、フォームフィールド、Cookie、ヘッダー、ファイルアップロード、APIなど、複雑な攻撃対象領域を公開します。自動スキャナーは、これらすべてを体系的に検査し、一般的な脆弱性を探します。
Niktoの基礎
Niktoは、危険なファイル、古いソフトウェア、安全でないヘッダー、既知のCVEをチェックするコマンドラインWebサーバースキャナーです。高速でシンプルですが、ノイズが多く、ステルス性はありません。
nikto -h http://target.com
# Key options:
# -h target host
# -p port (default 80)
# -ssl for HTTPS
# -Tuning to filter check types
# -o output file, -Format formatNiktoの出力の解釈
Niktoは検出結果の先頭に+を付けます。公開された管理インターフェース、ディレクトリ一覧、欠落しているセキュリティヘッダー、古いサーバーバージョン、/phpinfo.phpのような危険な可能性のあるファイルを確認します。
+ Server: Apache/2.4.49
+ /admin/: Admin login page found
+ /phpinfo.php: PHP info exposed
+ X-Frame-Options header missing
+ Allowed HTTP Methods: GET, POST, PUT, DELETEOWASP ZAPの概要
OWASP ZAP(Zed Attack Proxy)は、GUIとAPIを備えた高機能なWebアプリケーションセキュリティスキャナーです。プロキシ、スパイダー、アクティブスキャナーとして動作し、手動テストと自動テストの両方に適しています。
ZAPプロキシの設定
ブラウザーがZAPをプロキシ(localhost:8080)として使用するように設定します。ZAPはすべての通信を取得し、サイトマップを構築します。このパッシブフェーズでは、攻撃ペイロードを送信せずに情報を収集します。
# Start ZAP
zap.sh
# Or headless CLI
zap.sh -daemon -port 8080
# Set browser proxy:
# HTTP: 127.0.0.1:8080ZAPスパイダー
スパイダーは、リンクやフォームのアクションをたどってアプリケーションをクロールします。AJAXスパイダーは、JavaScriptを多用するシングルページアプリケーションに対応します。どちらもアクティブスキャン用の完全なサイトマップを構築します。
# CLI spider
zap-cli spider http://target.com
# AJAX spider for SPAs
# Use GUI: Tools > AJAX SpiderZAPアクティブスキャナー
アクティブスキャナーは、検出したすべての入力に攻撃ペイロード(SQLインジェクション、XSS、パストラバーサル)を送信します。リスクレベルはHigh、Medium、Low、Informationalです。
zap-cli active-scan --scanners all http://target.com
# Or via API
curl "http://localhost:8080/JSON/ascan/action/scan/?url=http://target.com"ZAPアラートの読み方
ZAPは検出結果をアラートにまとめます。各アラートには、リスクレベル、信頼度、影響を受けるURL、使用した攻撃ペイロード、レスポンス内の証拠、推奨される修正方法が表示されます。信頼度が高いほど、誤検知は少なくなります。
CI/CDパイプラインでのZAP
ZAPは、パイプラインでの自動スキャン用にDockerイメージを提供しています。zap-baseline.pyスクリプトはCIに適したパッシブスキャンを実行し、zap-full-scan.pyはアクティブスキャンを実行します。
# Docker baseline scan (passive only)
docker run -t zaproxy/zap-stable \
zap-baseline.py -t http://target.com
# Full active scan
docker run -t zaproxy/zap-stable \
zap-full-scan.py -t http://target.comNiktoとZAPの比較
Niktoは、シンプルで高速なコマンドラインツールであり、迅速なチェックやサーバーレベルの問題に適しています。ZAPは包括的なプロキシベースのツールで、複雑なアプリケーションに対応し、アプリケーションレベルの脆弱性やCI統合に適しています。
スコープと認可
所有している、またはテストの書面による許可を得ているシステムのみをスキャンしてください。被害を与える意図がなくても、無許可のスキャンは法律(CFAA、Computer Misuse Act)や利用規約に違反する可能性があります。
確認問題
ZAPのアクティブスキャナーは、パッシブスキャンとどのように異なりますか。
まとめ:Webスキャンツール
Niktoを使うと、数秒でサーバーレベルの検出結果をすばやく得られます。ZAPは、プロキシによるインターセプト、スパイダー、アクティブ攻撃を備えた、深いアプリケーションレベルのスキャンを提供します。どちらも認可が必要です。成熟したパイプラインでは、デプロイのたびにZAPのベースラインスキャンを自動実行し、リグレッションが本番環境に到達する前に検出します。
よくある質問
「NiktoとOWASP ZAPによるWebアプリスキャン」レッスンは無料ですか?
はい。「NiktoとOWASP ZAPによるWebアプリスキャン」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cyber Security Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cyber Security Academyコースには全4レッスンが含まれています。
「NiktoとOWASP ZAPによるWebアプリスキャン」で何を学びますか?
NiktoとOWASP ZAPのアクティブスキャナーを使って、Webアプリケーションの一般的な脆弱性をスキャンします。 ブラウザで直接実行するハンズオンコードでCyber Security Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Cyber Security Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCyber Security Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「NiktoとOWASP ZAPによるWebアプリスキャン」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCyber Security Academyレッスンでコードを書いて実行できますか?
はい。すべてのCyber Security Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- CVE、CWE、CVSSスコアリング
- NessusまたはOpenVASスキャンの実行
- NiktoとOWASP ZAPによるWebアプリスキャン
- 検出結果の優先順位付けと修正