×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
@madamadaikeru22 Kobe Vulnerability Assessment
Slide 2
Slide 2 text
注意事項
Slide 3
Slide 3 text
絶対に、自分の管理下にないホストには脆弱性検 査を実行してはいけません。 www www www
Slide 4
Slide 4 text
桝谷 昌史 (ますたに まさふみ) 神戸デジタル・ラボ セキュリティソリューション事業部 Masafumi Masutani @madamadaikeru22
Slide 5
Slide 5 text
1.セキュリティ診断 ■セキュリティの意義 ■セキュリティ診断の種別 ■セキュリティ診断の利用 2.Webアプリケーション ■基礎知識 ■脆弱性 3.診断ツール ■OWASP ZAP ■機能 4.診断作業(ハンズオン)
Slide 6
Slide 6 text
1.セキュリティ診断 ■セキュリティの意義 ■セキュリティ診断の種別 ■セキュリティ診断の利用
Slide 7
Slide 7 text
意義
Slide 8
Slide 8 text
セキュリティの意義 ・安全なWebサイト運用 ・セキュリティコストの低減 ・インシデント発生の最小化
Slide 9
Slide 9 text
種別
Slide 10
Slide 10 text
セキュリティ診断の種別 ・ホワイトボックス診断 ・ブラックボックス診断
Slide 11
Slide 11 text
セキュリティ診断の種別 ・ツール診断 ・マニュアル診断
Slide 12
Slide 12 text
セキュリティ診断の種別 ・Webアプリケーション診断 ・データベース診断 ・プラットフォーム診断 ・無線LAN診断 ・スマートフォンアプリケーション診断 ・組み込み機器診断
Slide 13
Slide 13 text
利用
Slide 14
Slide 14 text
セキュリティ診断の利用 ・製品のリリース前 ・定期診断 ・基準に準拠
Slide 15
Slide 15 text
2.Webアプリケーション ■基礎知識 ■脆弱性
Slide 16
Slide 16 text
基礎知識
Slide 17
Slide 17 text
HTTP Request
Slide 18
Slide 18 text
クライアント(Webブラウザ)からWebサーバへ送信する際に送られる通信 HTTPと呼ばれるプロトコルを使用する
Slide 19
Slide 19 text
HTTPリクエストは3つに分けることができる。 リクエストライン メッセージヘッダ メッセージボディ GET / HTTP/1.1 メソッド リクエストURL プロトコルバージョン
Slide 20
Slide 20 text
(補足)URLエンコード HTTPリクエストは日本語などのマルチバイト文字には対応していない そのため文字列を変換して送信する →URLエンコードと呼ぶ %E7%A5%9E%E6%88%B8 神戸 「%」を使用してエンコードしているのが特徴
Slide 21
Slide 21 text
脆弱性
Slide 22
Slide 22 text
XSS
Slide 23
Slide 23 text
XSSとは クロス・サイト・スクリプティング(XSS)とは、利用者がWeb サイトにアクセスした際に、意図しない不正なJavaスクリ プトコードなどを実行されてしまう脆弱性である。
Slide 24
Slide 24 text
XSSの原理 • 攻撃対象(被害となる)サイト例 僕のサイトです ユーザの値を動的に表示する ユーザ/攻撃者 場合によっては XSSの脆弱性がある場 合も
Slide 25
Slide 25 text
• 攻撃事例 alert(1); をパラメータに入れて送信してみる 攻撃者 XSS脆弱性があるサイト 攻撃者が入力した alert 関数が実行された場合、 攻撃者が任意の JavaScript を実行できる可能性がある alert関数が実行された例 (表示は環境によって若干変わります)
Slide 26
Slide 26 text
任意のJavaScriptが実行されると以下のような攻撃事例が考えられる • 設定によっては Cookie が分かりログイン情報が窃取される可能性がある • 攻撃者のサイトに誘導され、誘導先で第二の攻撃が行われる可能性がある • 悪意のあるスクリプトによりブラウザが攻撃される可能性がある • マルウェア配布サイトとして利用されてしまう など
Slide 27
Slide 27 text
XSSの対策 alert(1); <script>alert(1); </script> ブラウザでは変換され、 alert(1); と表示される XSSの対策 特殊文字をHTMLエンティティに変換する
Slide 28
Slide 28 text
XSSの対策 特殊文字をHTMLエンティティに変換する 対策が推奨される 文字列 変換前 変換後 & & " " ' ' あるいは ' < < > > (補足)
Slide 29
Slide 29 text
(補足) XSSの対策 特殊文字をHTMLエンティティに変換する (例)PHPの関数 htmlspecialchars($text, ENT_QUOTES, “UTF-8”); 変換対象となる文字列 扱う文字列の文字コード (指定することを推奨) 変換オプション この場合はシングルクオートも 変換対象となる(推奨)
Slide 30
Slide 30 text
SQLインジェクション
Slide 31
Slide 31 text
SQLインジェクションが発生すると • こうなってしまうかも 攻撃者 アプリ Aの情報をください + Aさんの情報を送ります 細工したパラメータ ついでに会員情報ぜんぶください + 細工したパラメータ 個人情報の漏えいなど重大な被害に発展する 場合が多い
Slide 32
Slide 32 text
SQLインジェクションの原理 SELECT *FROM users WHERE mail = ‘
[email protected]
‘ SELECT *FROM users WHERE mail = ‘
[email protected]
‘ or 1 = ‘1‘
[email protected]
と入力する
[email protected]
‘ or 1 = ‘1’と入力する SQLの内容が変わってしまう
Slide 33
Slide 33 text
SQLインジェクションの原理 SELECT *FROM users WHERE mail = ‘
[email protected]
‘ and pass = ‘password’ SELECT *FROM users WHERE mail = ‘
[email protected]
‘ or ‘1’ = ‘1’ – ‘ and pass = ‘password’ ログイン画面 パスワードをしらなくてもログインが可能になる →レコードが返ってきたらログインOKというシステムだと ログインできる
Slide 34
Slide 34 text
3.診断ツール ■OWASP ZAP ■機能
Slide 35
Slide 35 text
No content
Slide 36
Slide 36 text
ZAP OWASP(Open Web Application Security Project)が開 発した無料のペネトレーションテストツール オープンソースライセンスとして配布されている 国内でもユーザグループがあり、活発な議論が行われて いる
Slide 37
Slide 37 text
(補足)OWASPとは OWASP – Open Web Application Security Project • Webセキュリティを取り巻く問題を解決するための国際的なコミュニティ • 企業や国境の壁はもちろんのこと、あらゆる専門知識と経験を持った スペシャリスト、またユーザのコラボレーションにより、自由に参加でき る開放された活動を展開 OWASP Foundation • 2001年から活動開始 アメリカ政府認定NPO • 200以上の拠点に支部
Slide 38
Slide 38 text
(補足) OWASP が提供しているものとして • OWASP TOP 10 3年に一度、Webアプリケーションの注意すべき脆弱性と対策をま とめて公表 • OWASP ZAP オープンソースの脆弱性診断ツール • その他多数の成果物 ソフトウェア - オープンソース ドキュメント - CC BY SA
Slide 39
Slide 39 text
ブラウザ サーバ リクエスト レスポンス ブラウザ サーバ リクエスト レスポンス プロキシ 改変した リクエスト レスポンス 通常の挙動 ZAPを使用する場合 プロキシ機能によってリクエストを改変し脆弱性を確認する ブラウザの通常操作では出来ないリクエストを試行できる
Slide 40
Slide 40 text
機能
Slide 41
Slide 41 text
・スパイダー機能 ・動的スキャン機能 ・プロキシ機能 ・ディレクトリ探査機能 ・アラート機能 ・レポート機能 ・アドオン機能 ・スキャンポリシー機能 ・証明書機能 ・強制ブラウズ機能 ・スクリプト機能 ・ブレークポイント機能 ・静的スキャン機能 ・Fuzzer機能
Slide 42
Slide 42 text
・スパイダー機能 ・動的スキャン機能 ・プロキシ機能 ・ディレクトリ探査機能 ・アラート機能 ・レポート機能 ・アドオン機能 ・スキャンポリシー機能 ・証明書機能 ・強制ブラウズ機能 ・スクリプト機能 ・ブレークポイント機能 ・静的スキャン機能 ・Fuzzer機能
Slide 43
Slide 43 text
4.診断作業(ハンズオン)
Slide 44
Slide 44 text
注意事項
Slide 45
Slide 45 text
絶対に、自分の管理下にないホストには脆弱性検 査を実行してはいけません。 www www www
Slide 46
Slide 46 text
ZAPの「クイックスタート機能」は使用しないでくださ い。
Slide 47
Slide 47 text
プロテクトモード(推奨) スコープ内のURLに対してのみ危険な操作を実行できます プロテクトモードに切り替えてください。
Slide 48
Slide 48 text
ZAPで並列スキャンはかけないでください。
Slide 49
Slide 49 text
課題
Slide 50
Slide 50 text
架空の通販サイト「野球キングダム」からセキュリ ティ診断の依頼を受けました。 このサイトは以下の脆弱性があるようです ・XSS ・SQLインジェクション ・その他設定の不備など 実際に診断をして、簡単に報告をして頂きます 報告書として必要なもの • 脅威度、問題点レベル • 発生箇所 • 問題点(発生頻度・検証コード・発生条件など) • リスク(脆弱性により発生しうる脅威) • 対策方法
Slide 51
Slide 51 text
インストールできてますか? OWASP ZAP (最新版は2.7.0) JAVA 8 ブラウザ (推奨:Firefox) (推奨:アドオン foxyproxy)
Slide 52
Slide 52 text
検証Webサイトへアクセス 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ■IPアドレス No1~ No4 13.230.237.145 No5~ No8 13.230.244.154 No9~ No12 13.231.3.217 No13~ No16 13.113.197.121 No17~ No20 13.113.172.7
Slide 53
Slide 53 text
検証Webサイトへアクセス ■hostsの登録 (当日発表IPアドレス) user(席番).kobe-training.ninja ■URL http:// user(席番).kobe-training.ninja/ ■診断用会員情報 ※追加で新規登録は出来ません ID PASS
[email protected]
suzuki
[email protected]
tanaka
Slide 54
Slide 54 text
デフォルト画面
Slide 55
Slide 55 text
Tree window ・site tab Information window ・history tab ・Alerts tab ・Active Scan tab etc... Workspace window ・Request tab ・Response tab ・Break tab
Slide 56
Slide 56 text
設定
Slide 57
Slide 57 text
ローカルプロキシ
Slide 58
Slide 58 text
ブラウザのプロキシ
Slide 59
Slide 59 text
スキャンモード ■セーフモード 危険な操作が許可されていません ■プロテクトモード(推奨) スコープ内のURLに対してのみ危険な操作を実行できます ■標準モード(デフォルト) 何でもできる ■攻撃モード スコープ内の対象へ、検出してすぐにスキャンを実行する
Slide 60
Slide 60 text
スキャンスレッド
Slide 61
Slide 61 text
Global Exclude URL
Slide 62
Slide 62 text
プロキシ
Slide 63
Slide 63 text
No content
Slide 64
Slide 64 text
No content
Slide 65
Slide 65 text
リクエストの改ざん
Slide 66
Slide 66 text
コンテキスト・スコープ
Slide 67
Slide 67 text
(参考)Structure
Slide 68
Slide 68 text
動的スキャン
Slide 69
Slide 69 text
動的スキャン開始
Slide 70
Slide 70 text
Scan Progress Dialog
Slide 71
Slide 71 text
Scan Progress Dialog
Slide 72
Slide 72 text
検証
Slide 73
Slide 73 text
アラートタブ
Slide 74
Slide 74 text
XSS
Slide 75
Slide 75 text
SQLi
Slide 76
Slide 76 text
レポート生成
Slide 77
Slide 77 text
ZAPリンク集
Slide 78
Slide 78 text
■Zap core help https://github.com/zaproxy/zap-core-help ■ OWASP ZAP ハンズオン https://speakerdeck.com/ykame/owasp-zap-hands-on-in-osaka-2015-02-10 ■開発者・運用者にむけたOWASP ZAPで脆弱性診断 https://speakerdeck.com/owaspjapan/owt2017jp-owaspzap ■ ZAP on Docker http://tech.withsin.net/2017/09/08/owasp-zap-docker/ ■亀田さん(ZAPエバンジェリスト)スライド集 https://www.owasp.org/index.php/User:Yuho_Kameda ■「ええんやで(^^)」サイト https://securitymemo.blogspot.jp/2014/11/owasp-zap-owasp-zap.html
Slide 79
Slide 79 text
実際の診断業務
Slide 80
Slide 80 text
報告 速報 実施 事前確認 見積もり
Slide 81
Slide 81 text
まとめ
Slide 82
Slide 82 text
関西に脆弱性診断(それ以外も)の 勉強会がなさすぎる! 関西をもっと盛り上げるためにも、 どんどんつながっていきましょう!
Slide 83
Slide 83 text
ご清聴ありがとうございました。 ■神戸脆弱性診断の会 フェイスブックグループ https://www.facebook.com/groups/1407869585989208/ Slackグループ() https://kobevat.slack.com