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

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

    View Slide

  2. ⾃⼰紹介
    • 佐々⽊ ⼤輔
    • クラスメソッド株式会社 取締役
    • ネットワーク/セキュリティエンジニアを経て、
    2014年1⽉ クラスメソッド株式会社にジョイン。
    • シニアソリューションアーキテクトとして勤務。
    • 2015年よりAWS事業を統括。
    • 2019年より取締役。
    • 現在はグローバルビジネス及びビジネスアラ
    イアンスを統括
    2

    View Slide

  3. 3
    StackHawkとは

    View Slide

  4. 4
    StackHawkとは
    •DAST(Dynamic application security testing: 動的アプ
    リケーション・セキュリティ・テスト)のSaaS
    •CI/CDプロセスに組み込むことで、pull requestごとに脆
    弱性スキャンを実施可能
    • DevOpsにおけるシフトレフトを実現することで、Webアプ
    リケーションの品質を向上させる
    •世界で最も広く利⽤されているOWASP ZAPがベース

    View Slide

  5. 5
    OWASPとは
    •OWASP(Open Web Application Security Project)
    • セキュリティ分野の情報共有と普及啓発を⽬的としたオープ
    ンソース・ソフトウェアコミュニティ
    • Webをはじめとするソフトウェアのセキュリティ環境に関す
    る研究、ガイドラインの作成、脆弱性診断ソフトウェアの開
    発などの活動をしている
    • 世界各地に⽀部があり、⽇本ではOWASP Japanが存在

    View Slide

  6. 6
    OWASP Top 10が有名
    •OWASP Top 10
    • Webアプリケーションセキュリティに関する最重要な10つの
    リスクについてのランキング

    View Slide

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

    View Slide

  8. 8
    OWASP ZAPと
    StackHawkと
    違いってなんなん

    View Slide

  9. 9
    ZAP vs StackHawk

    View Slide

  10. 10
    ZAP vs StackHawk
    •StackHawkの良いところ
    • スキャン対象のテクノロジの指定可
    • スキャンのパフォーマンス最適化
    • テスト設定をYAMLとして保存、容易に複製し別環境に展開可

    • 診断結果を即時に修正するものと修正せずにチケット化する
    ものを選択可能
    • 検索履歴管理が容易
    • 認証済みスキャン可能(Cookieベース認証、Bearerトークン
    認証、外部トークン認証をサポート)

    View Slide

  11. Pricing
    11

    View Slide

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

    • その他Pro、Enterpriseのラ
    イセンスがある
    • 費⽤は1⼈分

    View Slide

  13. やってみる
    13

    View Slide

  14. 14
    アカウントの作成

    View Slide

  15. 15
    アカウントの作成

    View Slide

  16. 16
    アカウントの作成

    View Slide

  17. 17
    アカウントの作成

    View Slide

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

    View Slide

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

    19

    View Slide

  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

    View Slide

  21. 21
    API Keyの作成

    View Slide

  22. 22
    API Keyの作成

    View Slide

  23. 23
    API Keyの作成

    View Slide

  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!

    View Slide

  25. 脆弱性診断
    してみる
    25

    View Slide

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

    View Slide

  27. 27
    OWASP Juice Shop

    View Slide

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

    View Slide

  29. 29
    StackHawkでAppを追加

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  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)

    View Slide

  34. 34
    設定画⾯を閉じる

    View Slide

  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—)

    View Slide

  36. 36
    脆弱性診断結果
    Scan results for https://juice-shop.herokuapp.com
    ------------------------------------------------------------
    Criticality: New/Triaged
    High: 0/0 Medium: 12/0 Low: 12/0
    ------------------------------------------------------------

    View Slide

  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

    View Slide

  38. 38
    脆弱性診断結果
    2) Content Security Policy (CSP) Header Not Set
    Risk: Medium
    Cheatsheet:
    Paths (3):
    [New] GET
    [New] GET /sitemap.xml
    [New] GET /ftp

    View Slide

  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

    View Slide

  40. 40
    脆弱性診断結果
    4) Cross-Domain JavaScript Source File Inclusion
    Risk: Low
    Cheatsheet:
    Paths (2):
    [New] GET
    [New] GET /sitemap.xml

    View Slide

  41. 41
    脆弱性診断結果

    View Slide

  42. 42
    脆弱性診断結果

    View Slide

  43. 43
    脆弱性診断結果

    View Slide

  44. 44
    脆弱性診断結果

    View Slide

  45. Additional
    options
    45

    View Slide

  46. 46
    Snyk Codeとの連携が可能
    •Snyk Code
    • Snykが提供している、ソースコードのセキュリティスキャン
    や品質チェックといった静的解析を実⾏できるサービス
    •StackHawk + Snyk Code
    • DAST(動的アプリケーションセキュリティテスト)である
    StackHawkとSAST(静的アプリケーションセキュリティテス
    ト)であるSnyk Codeの2つのスキャン結果を関連付けて表⽰す
    ることで、問題の検出と優先順位付け、及び対応が即時に可
    能になる

    View Slide

  47. まとめ
    47

    View Slide

  48. 48
    まとめ
    • StackHawkはCI/CDに組み込んでDevSecOpsのファクターとし
    て活⽤できるDAST SaaS
    • 更にSnyk Codeと組み合わせることでDAST/SAST両⾯からセ
    キュリティテストを実施可能
    • 1つのWebアプリケーションを対象とするならFreeライセンスで
    利⽤できる
    • ぜひ使ってみてください︕

    View Slide

  49. 49

    View Slide