Upgrade to Pro — share decks privately, control downloads, hide ads and more …

StackHawkを使ってWebアプリケーションの脆弱性を診断する

Avatar for smokeymonkey smokeymonkey
November 21, 2022

 StackHawkを使ってWebアプリケーションの脆弱性を診断する

2022年11月21日(月)に開催されたDevelopersIO 2022秋 in Sapporoでお話したセッションの登壇資料です。

Avatar for smokeymonkey

smokeymonkey

November 21, 2022
Tweet

More Decks by smokeymonkey

Other Decks in Technology

Transcript

  1. ⾃⼰紹介 • 佐々⽊ ⼤輔 • クラスメソッド株式会社 取締役 • ネットワーク/セキュリティエンジニアを経て、 2014年1⽉

    クラスメソッド株式会社にジョイン。 • シニアソリューションアーキテクトとして勤務。 • 2015年よりAWS事業を統括。 • 2019年より取締役。 • 現在はグローバルビジネス及びビジネスアラ イアンスを統括 2
  2. 4 StackHawkとは •DAST(Dynamic application security testing: 動的アプ リケーション・セキュリティ・テスト)のSaaS •CI/CDプロセスに組み込むことで、pull requestごとに脆

    弱性スキャンを実施可能 • DevOpsにおけるシフトレフトを実現することで、Webアプ リケーションの品質を向上させる •世界で最も広く利⽤されているOWASP ZAPがベース
  3. 5 OWASPとは •OWASP(Open Web Application Security Project) • セキュリティ分野の情報共有と普及啓発を⽬的としたオープ ンソース・ソフトウェアコミュニティ

    • Webをはじめとするソフトウェアのセキュリティ環境に関す る研究、ガイドラインの作成、脆弱性診断ソフトウェアの開 発などの活動をしている • 世界各地に⽀部があり、⽇本ではOWASP Japanが存在
  4. 10 ZAP vs StackHawk •StackHawkの良いところ • スキャン対象のテクノロジの指定可 • スキャンのパフォーマンス最適化 •

    テスト設定をYAMLとして保存、容易に複製し別環境に展開可 能 • 診断結果を即時に修正するものと修正せずにチケット化する ものを選択可能 • 検索履歴管理が容易 • 認証済みスキャン可能(Cookieベース認証、Bearerトークン 認証、外部トークン認証をサポート)
  5. 20 StackHawk CLIのインストール ØStackHawk CLIには Java v11以上が必要 $ brew install

    openjdk $ sudo ln -sfn $(brew --prefix)/opt/openjdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk ØStackHawkのインストール $ brew install stackhawk/cli/hawk ØStackHawkのバージョン確認 % hawk version v2.9.0
  6. 24 StackHawk CLIにAPI Keyを設定 % hawk init Please enter your

    StackHawk API key. To create a new API key, visit https://app.stackhawk.com/settings/apikeys: hawk.******** Authenticated!
  7. 26 ターゲットはOWASP Juice Shop •OWASP Juice Shop • https://juice-shop.herokuapp.com/ •

    OWASPが提供する、脆弱性診断を練習するためのサイト • OWASP Top 10及び実際のWebアプリケーションでよく⾒つ かる脆弱性を内包 • OWASP⽈く”OWASP Juice Shop is probably the most modern and sophisticated insecure web application” • 誰が⾒ても偽物だと分かるくらいダサい(ダサく作られてい る)
  8. 33 StackHawk CLIの設定ファイルを作成 Ø コピーした内容をペーストして設定ファイルを作成 % vi stackhawk.yml # --

    stackhawk configuration for OWASPJS -- app: # -- An applicationId obtained from the StackHawk platform. -- applicationId: 518b2ebf-1c1a-********* # (required) # -- The environment for the applicationId defined in the StackHawk platform. -- env: Production # (required) # -- The url of your application to scan -- host: https://juice-shop.herokuapp.com # (required)
  9. 35 脆弱性診断を実⾏ % hawk scan StackHawk 🦅 HAWKSCAN - v2.9.0

    * app id: 518b2ebf-1c1a-4067-91b1-7ca5a66f44a4 * env: Production * scan id: 7d2d96dc-7c87-4030-984c-83889d0cabc6 * scan configs: ['/Users/sasaki.daisuke/stackhawk.yaml'] * app host: https://juice-shop.herokuapp.com (--snip—)
  10. 37 脆弱性診断結果 1) Cross-Domain Misconfiguration Risk: Medium Cheatsheet: Paths (9):

    [New] GET [New] GET /robots.txt [New] GET /assets/public/favicon_js.ico [New] GET /runtime.js [New] GET /sitemap.xml ... 4 more in details
  11. 38 脆弱性診断結果 2) Content Security Policy (CSP) Header Not Set

    Risk: Medium Cheatsheet: Paths (3): [New] GET [New] GET /sitemap.xml [New] GET /ftp
  12. 39 脆弱性診断結果 3) Strict-Transport-Security Header Not Set Risk: Low Cheatsheet:

    Paths (10): [New] GET [New] GET /runtime.js [New] GET /robots.txt [New] GET /assets/public/favicon_js.ico [New] GET /sitemap.xml ... 5 more in details
  13. 40 脆弱性診断結果 4) Cross-Domain JavaScript Source File Inclusion Risk: Low

    Cheatsheet: Paths (2): [New] GET [New] GET /sitemap.xml
  14. 46 Snyk Codeとの連携が可能 •Snyk Code • Snykが提供している、ソースコードのセキュリティスキャン や品質チェックといった静的解析を実⾏できるサービス •StackHawk +

    Snyk Code • DAST(動的アプリケーションセキュリティテスト)である StackHawkとSAST(静的アプリケーションセキュリティテス ト)であるSnyk Codeの2つのスキャン結果を関連付けて表⽰す ることで、問題の検出と優先順位付け、及び対応が即時に可 能になる
  15. 49