Slide 1

Slide 1 text

セキュリティ実践講座 -優しい愛をあなたに- 2015/5/30 Sat エフスタ!!AIZU

Slide 2

Slide 2 text

自己紹介 • 名前 :小倉 大 (おぐら まさる) • Twitter :@MasaruOgura • 北海道出身 • ネットワークエンジニア • エフスタ!!TOKYOのスタッフ • SPREAD情報セキュリティマイスター • スイーツ大好き

Slide 3

Slide 3 text

アジェンダ • 目的 • 留意事項 • SQLインジェクションとは • デモ環境説明 • デモ・解説 • 対策 • まとめ

Slide 4

Slide 4 text

目的 • SQLインジェクションを知る - 防御のために攻撃を理解する • セキュリティへの関心を高める - 家のローカル環境で試してくれる人がいるといいな

Slide 5

Slide 5 text

留意事項 • インターネット上のWebサーバに攻撃し てはいけません - 法的措置をとられる可能性があります • 私はネットワークエンジニアです

Slide 6

Slide 6 text

SQLインジェクションとは ※SQLインジェクション - Wikipedia http://ja.wikipedia.org/wiki/SQL%E3%82%A4%E3%83%B3%E3%82%B8%E3%82%A7%E3%82 %AF%E3%82%B7%E3%83%A7%E3%83%B3 SQLインジェクションとは、アプリケーションのセキュリ ティ上の不備を意図的に利用し、アプリケーションが想定 しないSQL文を実行させることにより、データベースシス テムを不正に操作する攻撃方法のこと。また、その攻撃を 可能とする脆弱性のこと。 悪意のある攻撃者 Webサーバ データベース 不正なリクエスト 処理結果を取得 不正なリクエスト 不正なリクエスト を処理

Slide 7

Slide 7 text

デモ環境説明 (1/2) デモにBadStore.netを利用します。 BadStore.net は、脆弱性をわざと作りこん である Linuxです。 ※2015/5/6に正規のサイトにアクセスしたのですが、接続できなかっ たので、もしかしたら提供が終了しているかもしれません。

Slide 8

Slide 8 text

Windows7上のVMWarePlayerで、 BadStore.netを起動し、HostOSから GuestOSに対してSQLインジェクションを 実施 デモ環境説明 (2/2) 192.168.177.0/24 .254 .128 GuestOS(BadStore.net) HostOS(Windows7)

Slide 9

Slide 9 text

デモ・解説 (1/6) 事前に以下のユーザを作成済み Email Address : phenix Password : phenix

Slide 10

Slide 10 text

デモ・解説 (2/6) phenixユーザでログイン Email Address : phenix Password : phenix - SQL文のイメージ select * from where email= ‘phenix’ and passwd=‘phenix’;

Slide 11

Slide 11 text

デモ・解説 (3/6) Email Passwd Age Address satoshi konkatsu 35 Tokyo phenix phenix 41 koriyama kageyama gesui 36 moriya dj kato 30 Aizu hayash sportsbar 30 Koriyama : データベース例

Slide 12

Slide 12 text

デモ・解説 (4/6) phenixユーザがいることを知っている場合 Email Address : phenix ‘ or ‘ 1=1’ --‘ Password : なし - SQL文のイメージ select * from where email= ‘phenix ‘ or ‘ 1=1’ --‘’ and passwd=‘’;

Slide 13

Slide 13 text

デモ・解説 (5/6) ユーザ情報を知らない場合 Email Address : ' or 1=1 or ' Password : なし - SQL文のイメージ select * from where email= ‘’ or 1=1 or ‘’ and passwd=‘’;

Slide 14

Slide 14 text

デモ・解説 (6/6) おまけ Admin権限のユーザ作成 Email Address : test Password : test Burp Suiteを経由して、リクエスト内容を 変更する ※ Badstore.net User Manual http://www.cs.umd.edu/class/fall2012/cmsc498L/materials/BadStore_net_v1_2_Manual.pdf

Slide 15

Slide 15 text

対策 (1/4) 脆弱性検査ツールを利用 ※ IPAテクニカルウォッチ 「ウェブサイトにおける脆弱性検査手法の紹介(ウェブアプリケーション検査編)」 https://www.ipa.go.jp/files/000035859.pdf

Slide 16

Slide 16 text

対策 (2/4) OWASP ZAP使用例

Slide 17

Slide 17 text

対策 (3/4) Webサイトの管理者は、既知の脆弱性について対 策を実施しましょう Webサイトを公開する前にすること 1. 脆弱性検査ツールで脆弱性の有無を確認 2. 結果の内容を確認 3. 脆弱性がある場合、脆弱性対策を実施 4. もう一度、脆弱性検査ツールで修正を確認 ※4で脆弱性を検知する場合は、2~4を繰り返す

Slide 18

Slide 18 text

対策 (4/4) ユーザ側でできること ・ウイルス対策ソフトを導入し、定義ファイルを 最新に保つ ・OSやアプリケーションにセキュリティパッチを 適用する ・パスワードの使いまわしをしない

Slide 19

Slide 19 text

まとめ ・脆弱性があればSQLインジェクションなどの攻 撃は簡単にできる ・脆弱性の知識がなくても、ツールを利用するこ とで、既知の脆弱性の有無を確認できる ・脆弱性対策を実施し、セキュリティリスクを低 減する

Slide 20

Slide 20 text

ご清聴ありがとうございました

Slide 21

Slide 21 text

Appendix 参考資料 「わざと脆弱性を持たせたWebアプリ」で練習を http://www.atmarkit.co.jp/fsecurity/column/ueno/59.html 警察庁 サイバー犯罪対策 不正アクセス行為の禁止等に関する法律の解説 https://www.npa.go.jp/cyber/legislation/pdf/1_kaisetsu.pdf IPA 知っていますか?脆弱性 - 1. SQLインジェクション http://www.ipa.go.jp/security/vuln/vuln_contents/sql.html IPA 安全なウェブサイトの作り方 http://www.ipa.go.jp/security/vuln/websecurity.html

Slide 22

Slide 22 text

Appendix 参考資料 IPA SQLインジェクション対策について http://www.ipa.go.jp/files/000024396.pdf Badstore.net User Manual http://www.cs.umd.edu/class/fall2012/cmsc498L/materials/BadStore_net_ v1_2_Manual.pdf