Upload
masaru-ogura
View
350
Download
0
Embed Size (px)
Citation preview
セキュリティ実践講座- 優しい愛をあなたに -
2015/5/30 Sat エフスタ !!AIZU
自己紹介• 名前 :小倉 大 ( おぐら まさる )• Twitter : @MasaruOgura
• 北海道出身• ネットワークエンジニア• エフスタ !!TOKYO のスタッフ• SPREAD 情報セキュリティマイスター• スイーツ大好き
アジェンダ• 目的• 留意事項• SQL インジェクションとは• デモ環境説明• デモ・解説• 対策• まとめ
目的
• SQL インジェクションを知る - 防御のために攻撃を理解する
• セキュリティへの関心を高める - 家のローカル環境で試してくれる人がいるといいな
留意事項
• インターネット上の Web サーバに攻撃してはいけません
- 法的措置をとられる可能性があります
• 私はネットワークエンジニアです
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 サーバ データベース不正なリクエスト
処理結果を取得
不正なリクエスト
不正なリクエストを処理
デモ環境説明 (1/2)
デモに BadStore.net を利用します。BadStore.net は、脆弱性をわざと作りこんである Linux です。※2015/5/6 に正規のサイトにアクセスしたのですが、接続できなかったので、もしかしたら提供が終了しているかもしれません。
Windows7 上の VMWarePlayerで、 BadStore.net を起動し、 HostOS から GuestOS に対して SQL インジェクションを実施
デモ環境説明 (2/2)
192.168.177.0/24
.254 .128
GuestOS(BadStore.net)HostOS(Windows7)
デモ・解説 (1/6)
事前に以下のユーザを作成済み
Email Address : phenixPassword : phenix
デモ・解説 (2/6)
phenix ユーザでログイン
Email Address : phenixPassword : phenix
- SQL 文のイメージselect * from <Table 名 > where email= ‘phenix’ and passwd=‘phenix’;
デモ・解説 (3/6)
Email Passwd Age Addresssatoshi konkatsu 35 Tokyophenix phenix 41 koriyamakageyama gesui 36 moriyadj kato 30 Aizuhayash sportsbar 30 Koriyama :
データベース例
デモ・解説 (4/6)
phenix ユーザがいることを知っている場合
Email Address : phenix ‘ or ‘ 1=1’ --‘Password : なし
- SQL 文のイメージselect * from <Table 名 > where email= ‘phenix ‘ or ‘ 1=1’ --‘’ and passwd=‘’;
デモ・解説 (5/6)
ユーザ情報を知らない場合
Email Address : ' or 1=1 or 'Password : なし
- SQL 文のイメージselect * from <Table 名 > where email= ‘’ or 1=1 or ‘’ and passwd=‘’;
デモ・解説 (6/6)
おまけAdmin 権限のユーザ作成
Email Address : testPassword : test
Burp Suite を経由して、リクエスト内容を変更する
※ Badstore.net User Manual
http://www.cs.umd.edu/class/fall2012/cmsc498L/materials/BadStore_net_v1_2_Manual.pdf
対策 (1/4)
脆弱性検査ツールを利用
※ IPA テクニカルウォッチ 「ウェブサイトにおける脆弱性検査手法の紹介 ( ウェブアプリケーション検査編 ) 」
https://www.ipa.go.jp/files/000035859.pdf
対策 (2/4)
OWASP ZAP 使用例
対策 (3/4)
Web サイトの管理者は、既知の脆弱性について対策を実施しましょう
Web サイトを公開する前にすること 1. 脆弱性検査ツールで脆弱性の有無を確認 2. 結果の内容を確認 3. 脆弱性がある場合、脆弱性対策を実施 4. もう一度、脆弱性検査ツールで修正を確認
※4 で脆弱性を検知する場合は、 2 ~ 4 を繰り返す
対策 (4/4)
ユーザ側でできること
・ウイルス対策ソフトを導入し、定義ファイルを最新に保つ・ OS やアプリケーションにセキュリティパッチを適用する・パスワードの使いまわしをしない
まとめ
・脆弱性があれば SQL インジェクションなどの攻撃は簡単にできる
・脆弱性の知識がなくても、ツールを利用することで、既知の脆弱性の有無を確認できる
・脆弱性対策を実施し、セキュリティリスクを低減する
ご清聴ありがとうございました
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
Appendix参考資料
IPASQL インジェクション対策についてhttp://www.ipa.go.jp/files/000024396.pdf
Badstore.net User Manualhttp://www.cs.umd.edu/class/fall2012/cmsc498L/materials/BadStore_net_v1_2_Manual.pdf