セキュリティツールのテストに使える脆弱性のあるアプリ
仕事でスキャナなどのセキュリティツールのテストをしたいとき、診断対象のアプリを自分で0から用意するのは工数もかかって大変です。会社のアプリをテストに利用するのは、少し不安ですし、バランス良く(?)アプリに脆弱性が含まれていないとセキュリティツールの評価をやりにくくなります。
そんな状況を解決するために世の中には、セキュリティツールのテストやエンジニアの教育向けの脆弱性の含まれたサンプルアプリが提供されています。
アプリ名 | 言語 | 場所 |
---|---|---|
OWASP Juice Shop | Node.js, express | https://github.com/bkimminich/juice-shop |
RailsGoat | Ruby, Rails | https://github.com/OWASP/railsgoat |
GoVWA | Go | https://github.com/0c34/govwa |
Vulnerable Flask Application | Python, Flask | https://github.com/we45/Vulnerable-Flask-App |
WebGoat | Java, Spring | https://github.com/WebGoat/WebGoat |
brakeman
例えば、Ruby on Rails の静的解析ツールである brakeman の動作テストをしたいのであれば、RailsGoatを使って動作確認ができます。
下記の例では、脆弱性の疑いがあるものを19個見つけています。
~/railsgoat: brakeman -f json . 2>/dev/null | head { "scan_info": { "app_path": "/xxxxxxx/railsgoat", "rails_version": "6.0.0", "security_warnings": 19, "start_time": "2022-09-06 22:16:37 +0900", "end_time": "2022-09-06 22:16:37 +0900", "duration": 0.24359, "checks_performed": [ "BasicAuth",
gitleaks
git レポジトリ内にある秘匿情報を調査する gitleaks などのツールの動作確認もできます。
下記の例では、juice-shop アプリに対してgitleaksを実行して秘匿情報の疑いのあるものを111個見つけています。
~/juice-shop: gitleaks detect -f json . ○ │╲ │ ○ ○ ░ ░ gitleaks 10:03PM INF scan completed in 4.81s 10:03PM WRN leaks found: 111