$30 off During Our Annual Pro Sale. View Details »

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

smokeymonkey
November 21, 2022

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

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

smokeymonkey

November 21, 2022
Tweet

More Decks by smokeymonkey

Other Decks in Technology

Transcript

  1. StackHawkを使って Webアプリケーションの 脆弱性を診断する クラスメソッド株式会社 佐々⽊ ⼤輔(@smokeymonkey) 2022/11/21 DevelopersIO 2022秋 in

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

    クラスメソッド株式会社にジョイン。 • シニアソリューションアーキテクトとして勤務。 • 2015年よりAWS事業を統括。 • 2019年より取締役。 • 現在はグローバルビジネス及びビジネスアラ イアンスを統括 2
  3. 3 StackHawkとは

  4. 4 StackHawkとは •DAST(Dynamic application security testing: 動的アプ リケーション・セキュリティ・テスト)のSaaS •CI/CDプロセスに組み込むことで、pull requestごとに脆

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

    • Webをはじめとするソフトウェアのセキュリティ環境に関す る研究、ガイドラインの作成、脆弱性診断ソフトウェアの開 発などの活動をしている • 世界各地に⽀部があり、⽇本ではOWASP Japanが存在
  6. 6 OWASP Top 10が有名 •OWASP Top 10 • Webアプリケーションセキュリティに関する最重要な10つの リスクについてのランキング

  7. 7 OWASP ZAPとは •OWASPが提供するWebアプリケーションの脆弱性診断 ツール • OSS(オープンソースソフトウェア)として提供 • 静的スキャンと動的スキャンのどちらにも対応 •

    GUIアプリケーションも提供されている
  8. 8 OWASP ZAPと StackHawkと 違いってなんなん

  9. 9 ZAP vs StackHawk

  10. 10 ZAP vs StackHawk •StackHawkの良いところ • スキャン対象のテクノロジの指定可 • スキャンのパフォーマンス最適化 •

    テスト設定をYAMLとして保存、容易に複製し別環境に展開可 能 • 診断結果を即時に修正するものと修正せずにチケット化する ものを選択可能 • 検索履歴管理が容易 • 認証済みスキャン可能(Cookieベース認証、Bearerトークン 認証、外部トークン認証をサポート)
  11. Pricing 11

  12. 12 Pricing • 料⾦体系は3モデル • Freeライセンスで1アプリ ケーションを対象に利⽤可 能 • その他Pro、Enterpriseのラ

    イセンスがある • 費⽤は1⼈分
  13. やってみる 13

  14. 14 アカウントの作成

  15. 15 アカウントの作成

  16. 16 アカウントの作成

  17. 17 アカウントの作成

  18. 18 アカウントが出来た

  19. StackHawk CLIをイン ストールす る 19

  20. 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
  21. 21 API Keyの作成

  22. 22 API Keyの作成

  23. 23 API Keyの作成

  24. 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!
  25. 脆弱性診断 してみる 25

  26. 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” • 誰が⾒ても偽物だと分かるくらいダサい(ダサく作られてい る)
  27. 27 OWASP Juice Shop

  28. 28 ⽇本語版もあります

  29. 29 StackHawkでAppを追加

  30. 30 Webアプリケーションの詳細を設定

  31. 31 Webアプリケーションのタイプを設定

  32. 32 設定ファイルの内容をコピー

  33. 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)
  34. 34 設定画⾯を閉じる

  35. 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—)
  36. 36 脆弱性診断結果 Scan results for https://juice-shop.herokuapp.com ------------------------------------------------------------ Criticality: New/Triaged High:

    0/0 Medium: 12/0 Low: 12/0 ------------------------------------------------------------
  37. 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
  38. 38 脆弱性診断結果 2) Content Security Policy (CSP) Header Not Set

    Risk: Medium Cheatsheet: Paths (3): [New] GET [New] GET /sitemap.xml [New] GET /ftp
  39. 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
  40. 40 脆弱性診断結果 4) Cross-Domain JavaScript Source File Inclusion Risk: Low

    Cheatsheet: Paths (2): [New] GET [New] GET /sitemap.xml
  41. 41 脆弱性診断結果

  42. 42 脆弱性診断結果

  43. 43 脆弱性診断結果

  44. 44 脆弱性診断結果

  45. Additional options 45

  46. 46 Snyk Codeとの連携が可能 •Snyk Code • Snykが提供している、ソースコードのセキュリティスキャン や品質チェックといった静的解析を実⾏できるサービス •StackHawk +

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

  48. 48 まとめ • StackHawkはCI/CDに組み込んでDevSecOpsのファクターとし て活⽤できるDAST SaaS • 更にSnyk Codeと組み合わせることでDAST/SAST両⾯からセ キュリティテストを実施可能

    • 1つのWebアプリケーションを対象とするならFreeライセンスで 利⽤できる • ぜひ使ってみてください︕
  49. 49