Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

3 StackHawkとは

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

9 ZAP vs StackHawk

Slide 10

Slide 10 text

10 ZAP vs StackHawk •StackHawkの良いところ • スキャン対象のテクノロジの指定可 • スキャンのパフォーマンス最適化 • テスト設定をYAMLとして保存、容易に複製し別環境に展開可 能 • 診断結果を即時に修正するものと修正せずにチケット化する ものを選択可能 • 検索履歴管理が容易 • 認証済みスキャン可能(Cookieベース認証、Bearerトークン 認証、外部トークン認証をサポート)

Slide 11

Slide 11 text

Pricing 11

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

やってみる 13

Slide 14

Slide 14 text

14 アカウントの作成

Slide 15

Slide 15 text

15 アカウントの作成

Slide 16

Slide 16 text

16 アカウントの作成

Slide 17

Slide 17 text

17 アカウントの作成

Slide 18

Slide 18 text

18 アカウントが出来た

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

21 API Keyの作成

Slide 22

Slide 22 text

22 API Keyの作成

Slide 23

Slide 23 text

23 API Keyの作成

Slide 24

Slide 24 text

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!

Slide 25

Slide 25 text

脆弱性診断 してみる 25

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

27 OWASP Juice Shop

Slide 28

Slide 28 text

28 ⽇本語版もあります

Slide 29

Slide 29 text

29 StackHawkでAppを追加

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

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)

Slide 34

Slide 34 text

34 設定画⾯を閉じる

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

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

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

41 脆弱性診断結果

Slide 42

Slide 42 text

42 脆弱性診断結果

Slide 43

Slide 43 text

43 脆弱性診断結果

Slide 44

Slide 44 text

44 脆弱性診断結果

Slide 45

Slide 45 text

Additional options 45

Slide 46

Slide 46 text

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

Slide 47

Slide 47 text

まとめ 47

Slide 48

Slide 48 text

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

Slide 49

Slide 49 text

49