Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
OwaspZap
Search
MarkUP
November 02, 2018
0
82
OwaspZap
MarkUP
November 02, 2018
Tweet
Share
More Decks by MarkUP
See All by MarkUP
burpsuite_badstore
markup
0
39
boot2root_kalilinux_bulldog
markup
0
22
boot2root_kalilinux_droopy
markup
0
25
侵入検知のファーストステップ
markup
0
640
Featured
See All Featured
Navigating Team Friction
lara
184
15k
Measuring & Analyzing Core Web Vitals
bluesmoon
7
390
Side Projects
sachag
452
42k
Optimizing for Happiness
mojombo
377
70k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
119
51k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.8k
Making the Leap to Tech Lead
cromwellryan
133
9.2k
Why You Should Never Use an ORM
jnunemaker
PRO
55
9.3k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
47
2.5k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.4k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
120k
Writing Fast Ruby
sferik
628
61k
Transcript
@madamadaikeru22 Kobe Vulnerability Assessment
注意事項
絶対に、自分の管理下にないホストには脆弱性検 査を実行してはいけません。 www www www
桝谷 昌史 (ますたに まさふみ) 神戸デジタル・ラボ セキュリティソリューション事業部 Masafumi Masutani @madamadaikeru22
1.セキュリティ診断 ▪セキュリティの意義 ▪セキュリティ診断の種別 ▪セキュリティ診断の利用 2.Webアプリケーション ▪基礎知識 ▪脆弱性 3.診断ツール ▪OWASP ZAP
▪機能 4.診断作業(ハンズオン)
1.セキュリティ診断 ▪セキュリティの意義 ▪セキュリティ診断の種別 ▪セキュリティ診断の利用
意義
セキュリティの意義 ・安全なWebサイト運用 ・セキュリティコストの低減 ・インシデント発生の最小化
種別
セキュリティ診断の種別 ・ホワイトボックス診断 ・ブラックボックス診断
セキュリティ診断の種別 ・ツール診断 ・マニュアル診断
セキュリティ診断の種別 ・Webアプリケーション診断 ・データベース診断 ・プラットフォーム診断 ・無線LAN診断 ・スマートフォンアプリケーション診断 ・組み込み機器診断
利用
セキュリティ診断の利用 ・製品のリリース前 ・定期診断 ・基準に準拠
2.Webアプリケーション ▪基礎知識 ▪脆弱性
基礎知識
HTTP Request
クライアント(Webブラウザ)からWebサーバへ送信する際に送られる通信 HTTPと呼ばれるプロトコルを使用する
HTTPリクエストは3つに分けることができる。 リクエストライン メッセージヘッダ メッセージボディ GET / HTTP/1.1 メソッド リクエストURL プロトコルバージョン
(補足)URLエンコード HTTPリクエストは日本語などのマルチバイト文字には対応していない そのため文字列を変換して送信する →URLエンコードと呼ぶ %E7%A5%9E%E6%88%B8 神戸 「%」を使用してエンコードしているのが特徴
脆弱性
XSS
XSSとは クロス・サイト・スクリプティング(XSS)とは、利用者がWeb サイトにアクセスした際に、意図しない不正なJavaスクリ プトコードなどを実行されてしまう脆弱性である。
XSSの原理 • 攻撃対象(被害となる)サイト例 <html> <head> <title> 僕のサイトです </title> </head> <body>
</body> </html> ユーザの値を動的に表示する ユーザ/攻撃者 場合によっては XSSの脆弱性がある場 合も
• 攻撃事例 <script>alert(1);</script> をパラメータに入れて送信してみる 攻撃者 XSS脆弱性があるサイト 攻撃者が入力した alert 関数が実行された場合、 攻撃者が任意の
JavaScript を実行できる可能性がある alert関数が実行された例 (表示は環境によって若干変わります)
任意のJavaScriptが実行されると以下のような攻撃事例が考えられる • 設定によっては Cookie が分かりログイン情報が窃取される可能性がある • 攻撃者のサイトに誘導され、誘導先で第二の攻撃が行われる可能性がある • 悪意のあるスクリプトによりブラウザが攻撃される可能性がある •
マルウェア配布サイトとして利用されてしまう など
XSSの対策 <script>alert(1);</script> <script>alert(1); </script> ブラウザでは変換され、 <script>alert(1);</script> と表示される XSSの対策 特殊文字をHTMLエンティティに変換する
XSSの対策 特殊文字をHTMLエンティティに変換する 対策が推奨される 文字列 変換前 変換後 & & " "
' ' あるいは ' < < > > (補足)
(補足) XSSの対策 特殊文字をHTMLエンティティに変換する (例)PHPの関数 htmlspecialchars($text, ENT_QUOTES, “UTF-8”); 変換対象となる文字列 扱う文字列の文字コード (指定することを推奨)
変換オプション この場合はシングルクオートも 変換対象となる(推奨)
SQLインジェクション
SQLインジェクションが発生すると • こうなってしまうかも 攻撃者 アプリ Aの情報をください + Aさんの情報を送ります 細工したパラメータ ついでに会員情報ぜんぶください
+ 細工したパラメータ 個人情報の漏えいなど重大な被害に発展する 場合が多い
SQLインジェクションの原理 SELECT *FROM users WHERE mail = ‘user1@example.co.jp‘ SELECT *FROM
users WHERE mail = ‘user1@example.co.jp‘ or 1 = ‘1‘ user1@example.co.jpと入力する user1@example.co.jp‘ or 1 = ‘1’と入力する SQLの内容が変わってしまう
SQLインジェクションの原理 SELECT *FROM users WHERE mail = ‘user1@example.co.jp ‘ and
pass = ‘password’ SELECT *FROM users WHERE mail = ‘user1@example.co.jp‘ or ‘1’ = ‘1’ – ‘ and pass = ‘password’ ログイン画面 パスワードをしらなくてもログインが可能になる →レコードが返ってきたらログインOKというシステムだと ログインできる
3.診断ツール ▪OWASP ZAP ▪機能
None
ZAP OWASP(Open Web Application Security Project)が開 発した無料のペネトレーションテストツール オープンソースライセンスとして配布されている 国内でもユーザグループがあり、活発な議論が行われて いる
(補足)OWASPとは OWASP – Open Web Application Security Project • Webセキュリティを取り巻く問題を解決するための国際的なコミュニティ
• 企業や国境の壁はもちろんのこと、あらゆる専門知識と経験を持った スペシャリスト、またユーザのコラボレーションにより、自由に参加でき る開放された活動を展開 OWASP Foundation • 2001年から活動開始 アメリカ政府認定NPO • 200以上の拠点に支部
(補足) OWASP が提供しているものとして • OWASP TOP 10 3年に一度、Webアプリケーションの注意すべき脆弱性と対策をま とめて公表 •
OWASP ZAP オープンソースの脆弱性診断ツール • その他多数の成果物 ソフトウェア - オープンソース ドキュメント - CC BY SA
ブラウザ サーバ リクエスト レスポンス ブラウザ サーバ リクエスト レスポンス プロキシ 改変した
リクエスト レスポンス 通常の挙動 ZAPを使用する場合 プロキシ機能によってリクエストを改変し脆弱性を確認する ブラウザの通常操作では出来ないリクエストを試行できる
機能
・スパイダー機能 ・動的スキャン機能 ・プロキシ機能 ・ディレクトリ探査機能 ・アラート機能 ・レポート機能 ・アドオン機能 ・スキャンポリシー機能 ・証明書機能 ・強制ブラウズ機能
・スクリプト機能 ・ブレークポイント機能 ・静的スキャン機能 ・Fuzzer機能
・スパイダー機能 ・動的スキャン機能 ・プロキシ機能 ・ディレクトリ探査機能 ・アラート機能 ・レポート機能 ・アドオン機能 ・スキャンポリシー機能 ・証明書機能 ・強制ブラウズ機能
・スクリプト機能 ・ブレークポイント機能 ・静的スキャン機能 ・Fuzzer機能
4.診断作業(ハンズオン)
注意事項
絶対に、自分の管理下にないホストには脆弱性検 査を実行してはいけません。 www www www
ZAPの「クイックスタート機能」は使用しないでくださ い。
プロテクトモード(推奨) スコープ内のURLに対してのみ危険な操作を実行できます プロテクトモードに切り替えてください。
ZAPで並列スキャンはかけないでください。
課題
架空の通販サイト「野球キングダム」からセキュリ ティ診断の依頼を受けました。 このサイトは以下の脆弱性があるようです ・XSS ・SQLインジェクション ・その他設定の不備など 実際に診断をして、簡単に報告をして頂きます 報告書として必要なもの • 脅威度、問題点レベル
• 発生箇所 • 問題点(発生頻度・検証コード・発生条件など) • リスク(脆弱性により発生しうる脅威) • 対策方法
インストールできてますか? OWASP ZAP (最新版は2.7.0) JAVA 8 ブラウザ (推奨:Firefox) (推奨:アドオン foxyproxy)
検証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
検証Webサイトへアクセス ▪hostsの登録 (当日発表IPアドレス) user(席番).kobe-training.ninja ▪URL http:// user(席番).kobe-training.ninja/ ▪診断用会員情報 ※追加で新規登録は出来ません ID
PASS suzuki@example.com suzuki tanaka@example.com tanaka
デフォルト画面
Tree window ・site tab Information window ・history tab ・Alerts tab
・Active Scan tab etc... Workspace window ・Request tab ・Response tab ・Break tab
設定
ローカルプロキシ
ブラウザのプロキシ
スキャンモード ▪セーフモード 危険な操作が許可されていません ▪プロテクトモード(推奨) スコープ内のURLに対してのみ危険な操作を実行できます ▪標準モード(デフォルト) 何でもできる ▪攻撃モード スコープ内の対象へ、検出してすぐにスキャンを実行する
スキャンスレッド
Global Exclude URL
プロキシ
None
None
リクエストの改ざん
コンテキスト・スコープ
(参考)Structure
動的スキャン
動的スキャン開始
Scan Progress Dialog
Scan Progress Dialog
検証
アラートタブ
XSS
SQLi
レポート生成
ZAPリンク集
▪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
実際の診断業務
報告 速報 実施 事前確認 見積もり
まとめ
関西に脆弱性診断(それ以外も)の 勉強会がなさすぎる! 関西をもっと盛り上げるためにも、 どんどんつながっていきましょう!
ご清聴ありがとうございました。 ▪神戸脆弱性診断の会 フェイスブックグループ https://www.facebook.com/groups/1407869585989208/ Slackグループ() https://kobevat.slack.com