Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
20191128 - Security Testing Workshop
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
脆弱性診断研究会
November 28, 2019
Technology
1.2k
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
20191128 - Security Testing Workshop
第79回脆弱性診断ええんやで:脆弱性診断の混沌と秩序
脆弱性診断研究会
November 28, 2019
More Decks by 脆弱性診断研究会
See All by 脆弱性診断研究会
OWASP ZAPのAPIとCLI / 20190830 - Security Testing Workshop
security_testing_workshop
3
1.9k
何故「思ってたのと違う」⾒積額が提⽰されるのか / 20190725 - Security Testing Workshop
security_testing_workshop
2
1.3k
OWASP ZAP Maniacs #6
security_testing_workshop
2
2.2k
Other Decks in Technology
See All in Technology
すぐできる衛星通信対応 あとは山奥に行くだけ
tatetate55
0
110
GoCon2026 - Open Source, Open World
sanposhiho
4
3.2k
AI時代だからこそ、スケールしないことをやろう
yutashigemura
1
140
安心して変更できるWebフロントエンドの作り方
pirosikick
1
540
多層防御と最⼩権限で実現する、安全なAIエージェント設計パターン
lycorptech_jp
PRO
1
260
Claude Code本って、 読む必要あるの?
oikon48
2
400
Adaptive Warehouse を今すぐ導入すべき理由と迷ったときの判断基準
__allllllllez__
0
180
全員がプロダクトへ向き合う組織を持続成長させるために——組織づくりのフライホイールと4象限 / The Flywheel Model and Four Quadrants for Organizational Design
hiro_torii
4
980
深夜のクラウド懺悔室 1:29:300 or 1:0:0
kazzpapa3
1
230
AIで開発は速くなったのに、なぜ現場は楽にならないのか 〜あなたの組織のボトルネックを突き止めるワークショップ〜
jacopen
1
330
GoにおけるFFIのこれまでとこれから
goccy
5
2.5k
AIオーケストレーションを活用した 開発ワークフローの設計と実践
bqnq
0
130
Featured
See All Featured
Navigating Team Friction
lara
192
16k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
2
3.8k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
270
Measuring & Analyzing Core Web Vitals
bluesmoon
9
990
Side Projects
sachag
456
43k
Heart Work Chapter 1 - Part 1
lfama
PRO
9
36k
The Pragmatic Product Professional
lauravandoore
37
7.4k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
2.8k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
How to make the Groovebox
asonas
2
2.4k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.3k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.6k
Transcript
第79回ハンズオンセミナー 脆弱性診断ええんやで(^^) 脆弱性診断の 混沌と秩序 2019年11⽉28⽇(⽊) 脆弱性診断研究会 (Security Testing Workshop)
脆弱性診断研究会とは Webアプリケーションの脆弱性を診断 する⼿法や脆弱性診断ツールの使⽤法 などを研究するコミュニティ。コワー キングスペース茅場町Co-Edo様にて第 1回セミナーを2014年8⽉に開催して 以来2019年10⽉現在で78回のセミナー を実施。 © 2019
脆弱性診断研究会 Security Testing Workshop 2 2019/11/28
アジェンダ • ⾃⼰紹介 • 脆弱性? 脆弱性診断? • OWASP? OWASP ZAP?
• 脆弱性の混沌と秩序 • まとめ 3 © 2019 脆弱性診断研究会 Security Testing Workshop 2019/11/28
⾃⼰紹介 松本 隆則 @nilfigo(ニルフィーゴ、ニルフィ) • 脆弱性診断研究会 主宰 • EGセキュアソリューションズ株式会社 •
OWASP Japan プロモーションチーム • ZAP Evangelist (New!) 4 © 2019 脆弱性診断研究会 Security Testing Workshop 2019/11/28
ZAP Evangelist https://github.com/zaproxy/zaproxy/wiki/ZapEvangelists いつでもどこでもOWASP ZAPや脆弱性診断などについてお話しします! お気軽にお声掛けください! @nilfigo (Twitter or Facebook)
5 © 2019 脆弱性診断研究会 Security Testing Workshop 2019/11/28
閑話休題 © 2019 脆弱性診断研究会 Security Testing Workshop 2019/11/28 6
脆弱性? 脆弱性(ぜいじゃくせい)とは、コンピュータのOSやソフトウェアにお いて、プログラムの不具合や設計上のミスが原因となって発生し た情報セキュリティ上の欠陥のことを言います。 • 「総務省 安⼼してインターネットを使うために 国⺠のための情報セキュリティサイト」より引⽤ http://www.soumu.go.jp/main_sosiki/joho_tsusin/security/basic/risk/11.html •
⽂中の強調はスライド作成者による © 2019 脆弱性診断研究会 Security Testing Workshop 2019/11/28 7
脆弱性診断? ちょい足し異常系テスト © 2019 脆弱性診断研究会 Security Testing Workshop 2019/11/28 8
例)郵便番号⼊⼒欄のテスト 正常系 © 2019 脆弱性診断研究会 Security Testing Workshop 2019/11/28 9
104-0033 東京都中央区新川 105-0001 東京都港区⻁ノ⾨ 003-0000 北海道札幌市⽩⽯区 906-0000 沖縄県宮古島市
例)郵便番号⼊⼒欄のテスト 異常系 © 2019 脆弱性診断研究会 Security Testing Workshop 2019/11/28 10
999-9999 存在しない ABC-WXYZ 数字じゃない 01-12345 桁数が正しくない 104−0003 半⾓じゃない (これって異常!?)
例)郵便番号⼊⼒欄のテスト ちょい⾜し異常系 © 2019 脆弱性診断研究会 Security Testing Workshop 2019/11/28 11
104-0033' and 'a'='a SQLインジェクション 003-0000;cat /etc/passwd OSコマンド・インジェクション 906-0000%0D%0ACc:
[email protected]
メールヘッダ・インジェクション 105-0001"><script>alert()</script> クロスサイト・スクリプティング
ちょい⾜しに便利なツール OWASP ZAP © 2019 脆弱性診断研究会 Security Testing Workshop 2019/11/28
12
OWASP ってナニ︖ The O pen W eb A pplication S
ecurity P roject 13 © 2019 脆弱性診断研究会 Security Testing Workshop 2019/11/28
OWASP ってナニ︖ The Open Web Application Security Project (OWASP) is
a 501(c)(3) worldwide not-for- profit charitable organization focused on improving the security of software. Our mission is to make software security visible, so that individuals and organizations are able to make informed decisions. OWASP is in a unique position to provide impartial, practical information about AppSec to individuals, corporations, universities, government agencies, and other organizations worldwide. Operating as a community of like-minded professionals, OWASP issues software tools and knowledge-based documentation on application security. https://www.owasp.org/index.php/Main_Page より引⽤ 14 © 2019 脆弱性診断研究会 Security Testing Workshop 2019/11/28
501(c)団体ってナニ︖ 501(c)団体(ごーまるいちしーだんたい、英語: 501(c) organization)は、アメリカ合衆国の内国歳⼊ 法(USC 26)第501条C項の規定により課税を免除される⾮営利団体である。同項では、連邦所得税 が免除される29種類の⾮営利団体が規定されている。同法第503条〜505条では、こうした課税免除が 適⽤される要件を詳述している。アメリカ合衆国の多くの州が、州税を免除される団体の定義に、内 国歳⼊法第501条C項を挙げている。501(c)団体は、個⼈、法⼈、および組合から無制限に寄付を受け ることができる。
最も⼀般的なタイプの免税⾮営利団体は、内国歳⼊法第501条C項3号に基づく団体(「501(c)(3)」と 呼ばれる団体)である。同号では、「慈善」、「宗教」、「教育」、「科学」、「⽂学」、「公共の 安全のための検査」、「アマチュアスポーツ競技の振興」、「⼦供または動物に対する虐待の防⽌」 のいずれかを⽬的とした活動を⾏う⾮営利団体の連邦所得税を免除することを定めている。 https://ja.wikipedia.org/wiki/501(c)%E5%9B%A3%E4%BD%93 より引⽤ 15 © 2019 脆弱性診断研究会 Security Testing Workshop 2019/11/28
OWASP ZAP ってナニ? • https://www.owasp.org/index.php/OWASP_Zed_Attack_ Proxy_Project • 世界中のエンジニアによって開発されている セキュリティ診断⽤プロキシツール •
ZAP = Zed Attack Proxy プロキシとして動作して、ブラウザとWebアプリケーショ ン間の通信の閲覧および改変が可能 • オープンソース(Apache License 2.0) • 商⽤・⾮商⽤問わず無償で利⽤可能 © 2019 脆弱性診断研究会 Security Testing Workshop 2019/11/28 16
OWASP ZAPの基本設定 nモード • セーフモード • プロテクトモード • 標準モード •
攻撃モード © 2019 脆弱性診断研究会 Security Testing Workshop 2019/11/28 17
OWASP ZAPの基本設定 【重要】プロテクトモード以外は使⽤禁⽌!! なぜなら 管理外のサイトへの診断を実⾏する危険性が⾼い © 2019 脆弱性診断研究会 Security Testing
Workshop 2019/11/28 18
OWASP ZAPの基本設定 nオプション • ローカル・プロキシ • Address、ポート • スパイダー •
動的スキャン © 2019 脆弱性診断研究会 Security Testing Workshop 2019/11/28 19
OWASP ZAPの基本設定 nアドオン • インストール • アップデート nポリシー • スキャンポリシー
© 2019 脆弱性診断研究会 Security Testing Workshop 2019/11/28 20
ここから本題 © 2019 脆弱性診断研究会 Security Testing Workshop 2019/11/28 21
脆弱性診断の混沌と秩序 ① 対象選定⽅法 ② 脆弱性の順序 ③ 機能の順序 © 2019 脆弱性診断研究会
Security Testing Workshop 2019/11/28 22
脆弱性診断の混沌と秩序 以降の「順序」は原則。 例外あり! © 2019 脆弱性診断研究会 Security Testing Workshop 2019/11/28
23
① 対象選定⽅法 1. 新たに追加した機能 2. 修正した既存の機能 3. 未修正の既存の機能 © 2019
脆弱性診断研究会 Security Testing Workshop 2019/11/28 24
脆弱性の順序 1. サイト全体に影響する脆弱性 2. すべての画⾯で診断が必要な脆弱性 3. 特定の画⾯でのみ診断が必要な脆弱性 © 2019 脆弱性診断研究会
Security Testing Workshop 2019/11/28 25
② 脆弱性の順序 「ウェブ健康診断仕様」に採⽤されている 12の脆弱性について順序を考えてみる。 © 2019 脆弱性診断研究会 Security Testing Workshop
2019/11/28 26
ウェブ健康診断仕様 © 2019 脆弱性診断研究会 Security Testing Workshop 2019/11/28 27 (A)
SQLインジェクション (G) パス名パラメータの未チェック/ ディレクトリ・トラバーサル (B) クロスサイト・スクリプティング (H) 意図しないリダイレクト (C) CSRF(クロスサイト・リクエス ト・フォージェリ) (I) HTTPヘッダ・インジェクション (D) OSコマンドインジェクション (J) 認証 (E) ディレクトリリスティング (K) セッション管理の不備 (F) メールヘッダ・インジェクション (L) 認可制御の不備、⽋落
1. サイト全体に影響 1. (E) ディレクトリリスティング 2. (K) セッション管理の不備 © 2019
脆弱性診断研究会 Security Testing Workshop 2019/11/28 28
2. すべての画⾯で診断が必要 1. インジェクション系 • (A) SQLインジェクション • (B) クロスサイト・スクリプティング
• (D) OSコマンドインジェクション • (I) HTTPヘッダ・インジェクション © 2019 脆弱性診断研究会 Security Testing Workshop 2019/11/28 29
3. 特定の画⾯でのみ診断が必要 1. (C) CSRF(クロスサイト・リクエスト・フォージェリ) 2. (F) メールヘッダ・インジェクション 3. (G)
パス名パラメータの未チェック/ディレクトリ・トラバーサル 4. (H) 意図しないリダイレクト 5. (K) セッション管理の不備 6. (L) 認可制御の不備、⽋落 ※終盤に診断! 7. (J) 認証 ※必ず最後に診断! © 2019 脆弱性診断研究会 Security Testing Workshop 2019/11/28 30
3. 特定の画⾯でのみ診断が必要 6. (L) 認可制御の不備、⽋落 ※終盤に診断! 認可制御に不備がある場合、診断対象機能が取り扱うデー タにアクセスできなくなってしまう恐れがあるため。 © 2019
脆弱性診断研究会 Security Testing Workshop 2019/11/28 31
3. 特定の画⾯でのみ診断が必要 7. (J) 認証 ※必ず最後に診断! 検出パターン6:意図的に 10 回パスワードを間違える アカウントロック機能が正常に実装されている場合、診断に
使⽤しているアカウントがロックされて診断作業を進めるこ とができなくなるため。 © 2019 脆弱性診断研究会 Security Testing Workshop 2019/11/28 32
③ 機能の順序 「CRUD」という考え⽅ © 2019 脆弱性診断研究会 Security Testing Workshop 2019/11/28
33
機能の順序 - CRUD © 2019 脆弱性診断研究会 Security Testing Workshop 2019/11/28
34 C Create 新規作成 R Read, Refer 参照 U Update 更新 D Delete 削除
CRUDの例 「ユーザ管理」 © 2019 脆弱性診断研究会 Security Testing Workshop 2019/11/28 35
C Create 新規ユーザ登録 R Read, Refer ユーザ情報参照 U Update ユーザ情報編集 D Delete ユーザ削除、退会
③ 機能の順序 診断実施後の影響を考慮 © 2019 脆弱性診断研究会 Security Testing Workshop 2019/11/28
36
ユーザ管理機能の推奨診断順序 1.【R】ユーザ情報参照 2.【U】ユーザ情報編集 3.【C】新規ユーザ登録 4.【D】ユーザ削除、退会 2019/11/28 © 2019 脆弱性診断研究会 Security
Testing Workshop 37
まとめ 2019/11/28 © 2019 脆弱性診断研究会 Security Testing Workshop 38
まとめ ① 対象選定⽅法 機能ごとの診断優先度を考慮! ② 脆弱性の順序 闇雲に進めると途中で詰む ③ 機能の順序 更新系機能は順序に注意!
© 2019 脆弱性診断研究会 Security Testing Workshop 2019/11/28 39
おつかれさまでした 2019/11/28 © 2019 脆弱性診断研究会 Security Testing Workshop 40