Recommended
20181117-一般的な脆弱性の概要・対策を知り、ZAPで見つけてみよう!
owasp_evening_okinawa_7_owasp_top_10-2017_injection
フリーでできるセキュリティWeb編(SQLMあpを楽しもう)
徳丸本に載っていないWebアプリケーションセキュリティ
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2012
Iss seminar 2010709#1-upload
ここが変だよ、グローバルスタンダードの脆弱性対策~入力値の考え方~
Railsエンジニアのためのウェブセキュリティ入門
WordPressとリスク管理 at 第42回 WordBench大阪
More Related Content
20181117-一般的な脆弱性の概要・対策を知り、ZAPで見つけてみよう!
What's hot (17)
owasp_evening_okinawa_7_owasp_top_10-2017_injection
フリーでできるセキュリティWeb編(SQLMあpを楽しもう)
徳丸本に載っていないWebアプリケーションセキュリティ
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2012
Iss seminar 2010709#1-upload
ここが変だよ、グローバルスタンダードの脆弱性対策~入力値の考え方~
Railsエンジニアのためのウェブセキュリティ入門
WordPressとリスク管理 at 第42回 WordBench大阪
Viewers also liked (20)
ジーノ先生の文系的オブジェクト指向(2) - コンストラクタの引数
ジーノ先生の文系的オブジェクト指向(1) - ジーノ誕生
20120602 JavaOO道場 オブジェクト指向概論
第8回勉強会 開発プロセス 「計画ゲーム~ふりかえり」
デジタルメディア創作部勉強会「オブジェクト指向入門1」
Similar to 第9回勉強会 Webセキュリティー (20)
ライブコーディングとデモで理解するWebセキュリティの基礎
20090218 第5回「PhpによるWebアプリケーションのセキュリティ入門」
今日こそわかる、安全なWebアプリの作り方2010
libinjection : SQLi から XSS へ by ニック・ガルブレス
デブサミ2013【15-A-6】増加するセキュリティ脆弱性の解決策
最低限知っておきたい Webセキュリティーについて@MT関西
著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則
HTML5 Web アプリケーションのセキュリティ
第9回勉強会 Webセキュリティー2. 本日の予定
19:00 〜 19:10 自社・自己紹介な
ど
19:10 〜 19:50 WEBセキュリティ
19:50 〜 20:00 休憩
20:00 〜 20:30 WEBセキュリティ
20:30 〜 20:40 まとめ
20:40 〜 後片付け(終了)
3. 本日の勉強会内容の
対象者目安
・対象
1.Webアプリケーションを作ったことがない。
2.セキュリティについて何も知らない。
3.セキュリティについての基本は幾つか知ってはいるが、
意識したことは無い。
・非対象
4.セキュリティの基礎についてしっかりと把握し、意識して
コードを書いている。
5.セキュリティについての最新動向もしっかりと学習し
開発に生かしている。
6. Webアプリケーション数と
脆弱性報告数
出典元 IPA
(http://www.ipa.go.jp/security/vuln/report/vuln2012q3.html)
14. Backdoor & Debug Options
(バックドアとデバッグオプション)
Client Side Comment
(クライアント側コメント)
上記の2つは主に開発中に開発者のミスで生まれる
脆弱性。
開発中に仕込んでいた、本来踏むべき手順を無視
し、実行できるルートを削除し忘れていたため、本
来ならば起こり得ない事象を生む。
HTMLコメントは、攻撃者の格好のヒントになってし
まう恐れも。。。
15. SQL Injection / Second Order Injection(SQLの挿
入)
OS Command Injection(OSコマンドの挿入)
SQLやOSコマンドを入力欄に入力し、本来で
あればエスケープすべきSQL文をしていない
それらの文字列がサーバによってコマンド
として実行されてしまう現象。
例)
ログイン画面、パスワード入力欄などに
SQLを
書きサーバに送信
23. PHPでの対策
出力時、
htmlspecialchars関数で
簡単に出来ます!
24. XSS(クロスサイトスクリプティン
グ)
詳細(1)より
ここでスクリプトを
無害化できる
正規のWEBページ
偽の関連サイト 等
(悪意のある第三者) 一般ユーザ
25. SQLインジェクション
詳細(1)
SQLインジェクション例)
ID
ここの値を
$SQL = “Select * from user where id = ‘”.$id. ”’”;
なんて形でやっていると・・・・
26. SQLインジェクション
詳細(2)
SQLインジェクション例)
ID A‘ or ‘A’ = ‘A’
と入力されると展開後の文字列は
Select * from user where id = ‘A’ or ‘A’ = ‘A’;
となり入力情報が
なんであっても通ってしまう
28. SQLインジェクション
詳細(4)
SQLは;(セミコロン)で区切ることが出来るので
ID ‘;delete from user
と入力されると
後ろに続くdelete文が実行されま
す!!
こんな事されたらもう・・・・
29. SQLインジェクション
(5)
対策として(;や‘は)
エスケープすること!
特殊文字として認識させないように
文字列として内部で扱う
また、入力時の禁止文字列としての
対応も対策のひとつ!
32. セカンドオーダインジェクション
(2)
例として例えば以下の様な
形でユーザ登録できる
webアプリがあったとします。
ID : admin’--
pass : password
33. セカンドオーダインジェクション
(3)
もし、このWEBアプリがパスを変更できる
としたら流れるクエリはこんな形
Update user set pass = ‘pass’ where id = ‘admin’—’;
SQLは-をコメントとしているので、上記の
SQLではadminのアカウントの
パスワードが変更されてしまう。
34. セカンドオーダインジェクション
(4)
外部入力時のみではなく
読み出しの値に対しても
エスケープ処理を忘れずに!
(全てのクエリに対してエスケープは必須で
す)
36. セキュリティーまとめ
XSSはHTML出力時、サニタイジングを!
SQLインジェクションは、SQL生成時全ての場合に
おいてエスケープ処理を!
昨今の開発ではフレームワークを使用している為、
脆弱性を生むような自体は避けられてはいる。
が、バージョンアップなどの動向については常に
チェックするよう心がける。