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 full-size slide

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

    View full-size slide

  3. 3
    StackHawkとは

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  9. 9
    ZAP vs StackHawk

    View full-size slide

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

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

    View full-size slide

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

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

    View full-size slide

  12. やってみる
    13

    View full-size slide

  13. 14
    アカウントの作成

    View full-size slide

  14. 15
    アカウントの作成

    View full-size slide

  15. 16
    アカウントの作成

    View full-size slide

  16. 17
    アカウントの作成

    View full-size slide

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

    View full-size slide

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

    19

    View full-size slide

  19. 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 full-size slide

  20. 21
    API Keyの作成

    View full-size slide

  21. 22
    API Keyの作成

    View full-size slide

  22. 23
    API Keyの作成

    View full-size slide

  23. 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 full-size slide

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

    View full-size slide

  25. 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 full-size slide

  26. 27
    OWASP Juice Shop

    View full-size slide

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

    View full-size slide

  28. 29
    StackHawkでAppを追加

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  32. 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 full-size slide

  33. 34
    設定画⾯を閉じる

    View full-size slide

  34. 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 full-size slide

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

    View full-size slide

  36. 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 full-size slide

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

    View full-size slide

  38. 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 full-size slide

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

    View full-size slide

  40. 41
    脆弱性診断結果

    View full-size slide

  41. 42
    脆弱性診断結果

    View full-size slide

  42. 43
    脆弱性診断結果

    View full-size slide

  43. 44
    脆弱性診断結果

    View full-size slide

  44. Additional
    options
    45

    View full-size slide

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

    View full-size slide

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

    View full-size slide