すぐできるWeb制作時のセキュリティTips
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

すぐできるWeb制作時のセキュリティTips

on

  • 5,204 views

まにゼミ ...

まにゼミ
知りませんでは通らない! 「制作者なら知っておきたいWebセキュリティの考え方」
2013/01/28

http://m2.cap-ut.co.jp/event/semi08.html

Statistics

Views

Total Views
5,204
Views on SlideShare
5,204
Embed Views
0

Actions

Likes
3
Downloads
5
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

すぐできるWeb制作時のセキュリティTips Presentation Transcript

  • 1. すぐできるWeb制作時の セキュリティTips Yoshinori Matsumoto 2013/01/28 加筆修正 2013/01/31
  • 2. 目次 • 自己紹介 • Webセキュリティの現状 • よくあるセキュリティ事例と対策 • 古いソフトウェアでの注意点 • 見逃しがちな設定すぐできるWeb制作時のセキュリティTips 2013/01/28 @ym405nm http://ym405nm.info
  • 3. 自己紹介• 名前:松本 悦宜(よしのり)• Twitter : @ym405nm• 会社:神戸デジタル・ラボ• 業務:Webプログラマー、セキュリティエンジニ ア、セキュリティコンサルタント セキュリティ JavaScript HTML5 Android Web 神戸ITフェスティバル 讃岐うどん 小ネタすぐできるWeb制作時のセキュリティTips 2013/01/28 @ym405nm http://ym405nm.info
  • 4. 自己紹介 • セキュリティ診断 事例 : ECサイト 管理者アカウントがのっとられないか 商品在庫・値段が改ざんされないか 顧客情報が漏洩しないか 攻撃の踏み台にされないか 擬似的に攻撃して検証すぐできるWeb制作時のセキュリティTips 2013/01/28 @ym405nm http://ym405nm.info
  • 5. Webセキュリティの現状 Webアプリをつくりはじめるにあたってのセキュリティの現状
  • 6. これから書き始める人の悩み • そうだ、Webアプリをつくろう! •サーバサイド •DOMツリー •JavaScript •Ajax 理解することがいっぱいある •新要素 •ブラウザ依存 •スマホ対応   などすぐできるWeb制作時のセキュリティTips 2013/01/28 @ym405nm http://ym405nm.info
  • 7. これから書き始める人の悩み • そうだ、Webアプリをつくろう! •セキュリティ?? クロスサイトスクリプティング、SQLインジェクショ ン、クロスサイトリクエストフォージェリ、バッファ・ オーバーフロー、OSコマンドインジェクション、クロ スサイトトレーシング、ブルートフォースアタック セキュリティなんてやってられへん!!すぐできるWeb制作時のセキュリティTips 2013/01/28 @ym405nm http://ym405nm.info
  • 8. これから書き始める人の悩み • 重要なサイトならともかくすべてのセキュリ ティチェックを行うのは大変! • かといって全く対策しないのも・・・ • セキュリティにも優先順位があるはず 重要なセキュリティ問題と Webアプリまわりの注意点をご紹介すぐできるWeb制作時のセキュリティTips 2013/01/28 @ym405nm http://ym405nm.info
  • 9. よくあるセキュリティ 事例と対策 よく話題にあがるセキュリティホール ついつい対策が漏れてしまうことにより、 大きな被害を与えるものを紹介
  • 10. XSS • XSS (Cross Site Scripting) • 勝手に攻撃者がJavaScriptを実行してしまう 手法 • 攻撃者が作ったコードが他の人のブラウザで も実行される • サイト改ざん、他サイトへの誘導すぐできるWeb制作時のセキュリティTips 2013/01/28 @ym405nm http://ym405nm.info
  • 11. XSS • すごい簡単なサンプル 簡易おみくじ テキストボックスに名前を入れ て、送信ボタンを押すと、 フォームの下に名前とおみくじ結 果が出力されるすぐできるWeb制作時のセキュリティTips 2013/01/28 @ym405nm http://ym405nm.info
  • 12. XSS • よくある設定漏れ 簡易おみくじ2 テキストボックスに名前を入れ て、送信ボタンを押すと、 次の画面のテキストボックス内の 初期値に名前が入っている。すぐできるWeb制作時のセキュリティTips 2013/01/28 @ym405nm http://ym405nm.info
  • 13. XSS 対策 • 出力される値がタグを作らないように、 HTMLの特殊文字をエスケープする • エスケープする関数を使用する • 自動エスケープされるフレームワークの機能を 使用するすぐできるWeb制作時のセキュリティTips 2013/01/28 @ym405nm http://ym405nm.info
  • 14. SQLインジェクション • 攻撃者がSQL文を改ざんして、勝手に好きな SQL文を追加する • 顧客情報やコンテツ情報がSQLに入っている と大きな被害になる • 情報漏えい、サイト改ざんすぐできるWeb制作時のセキュリティTips 2013/01/28 @ym405nm http://ym405nm.info
  • 15. SQLインジェクション ログインフォーム SELECT * FROM USERS WHERE ID=”___” and PASS = “___” ID, PASS SQL文 ログイン可否 結果 server DBすぐできるWeb制作時のセキュリティTips 2013/01/28 @ym405nm http://ym405nm.info
  • 16. SQLインジェクション ログインフォーム 改ざんPASS = “___” SELECT * FROM USERS WHERE ID=”___” and ログインできる 攻撃コード SQL文 ログインOK 結果 server DBすぐできるWeb制作時のセキュリティTips 2013/01/28 @ym405nm http://ym405nm.info
  • 17. SQLインジェクション • よくある事例 実装例 $query = "SELECT * FROM usr WHERE uid = $uid AND pass = $passh; $result = pg_query($conn, $query); 攻撃例 ID : taro-- コメントアウト SQL として扱われる SELECT * FROM usr WHERE uid = taro-- AND pass =eefd5bc2...すぐできるWeb制作時のセキュリティTips 2013/01/28 @ym405nm http://ym405nm.info
  • 18. SQLインジェクション 対策 • SQLとして扱われる記号をエスケープする • 文字列連結でSQLを使用しない • プレースホルダーを利用して対策するすぐできるWeb制作時のセキュリティTips 2013/01/28 @ym405nm http://ym405nm.info
  • 19. SQLインジェクション 対策 $stmt = $db->prepare(SELECT * FROM atable WHERE name=? and num=?, array(text, integer), array(text, text, integer)); $rs = $stmt->execute(array($name, $num)); // 文字列型と整数型の変数• PHPとMDB2を使った実装方法すぐできるWeb制作時のセキュリティTips 2013/01/28 @ym405nm http://ym405nm.info
  • 20. CSRF • クロスサイトリクエストフォージェリー Cross Site Request Forgeries • サイトにログインしたユーザが、悪意のある 外部サイトにより、ユーザが予期しない処理 を実行させられてしまう問題 • 「遠隔操作ウィルス」で話題にすぐできるWeb制作時のセキュリティTips 2013/01/28 @ym405nm http://ym405nm.info
  • 21. 書き込みの流れと手口 犯行声明メールや事件の経緯から見る流れは、以下のように想像できる。1:真犯人がCSRF脆弱性のあるサイトを探すCSRF脆弱性によって、外部から書き込みできる掲示板・SNSなどを探す。問題となった横浜市の掲示板はCSRF脆弱性を持っていた(現在は対策済み)。2:CSRF脆弱性を攻撃するページを作成真犯人が攻撃用のページを、独自サイトなどに作成。このページを開くと、自動的に対象の掲示板・SNSなどに決められたメッセージ(今回の場合は殺人予告)を書き込む。3:攻撃用ページへのリンクを2ちゃんねるなどに書き込む真犯人が攻撃用ページへのリンクを、2ちゃんねるなどの掲示板に書きこむ。今回の事件では、ソフトウエアのダウンロードリンクとして書き込まれたようだ。4:被害者がリンクをクリックしてしまう被害者がリンクをクリックし、攻撃用ページを開いてしまう。5:対象の掲示板・SNSに勝手にメッセージが書き込まれる (2012年10月26日    読売新聞) 対策とデモは次のセッションで時間があれば
  • 22. 古いソフトウェアでの 注意点Webアプリはいろいろなソフトウェア、ライブラリから構成されています。 実装はしっかりしているつもりでも これらのソフトウェアやライブラリが原因で セキュリティホールが作られる可能性もあります
  • 23. JAVA • Java7に任意のコードが実行される可能性が 見つかった(2013年1月) • ウェブを閲覧するだけで任意のコードが実行 し、閲覧者の端末が乗っ取られる可能性 • 大きく報道され、ブラウザでJavaを切った り、アンインストールするユーザが増えたすぐできるWeb制作時のセキュリティTips 2013/01/28 @ym405nm http://ym405nm.info
  • 24. http://jvn.jp/cert/JVNTA13-010A/
  • 25. Ruby • Ruby on railsに深刻な脆弱性(2013年1月) • 認証システムの迂回、任意のSQL挿入、任意 のコード挿入と実行、Railsアプリケーション に対するサービス妨害(DoS)攻撃などに利 用される可能性。 • Redmineにも影響があり、業務システムにも 影響。すぐできるWeb制作時のセキュリティTips 2013/01/28 @ym405nm http://ym405nm.info
  • 26. ソフトウェアの脆弱性 • 原則的に次回バージョンアップで対策 • 発見されたもののなかには、攻撃コードが公 開され、セキュリティツールにより自動化で きる可能性がある • 対策をするためには、利用者がパッチをあて るかバージョンアップをしないといけないすぐできるWeb制作時のセキュリティTips 2013/01/28 @ym405nm http://ym405nm.info
  • 27. PHPすぐできるWeb制作時のセキュリティTips 2013/01/28 @ym405nm http://ym405nm.info
  • 28. jQuery • 多くのサイトでjQueryが使用されている • jQuery, bootstrap... • ちょっと脆弱性が見つかると大変すぐできるWeb制作時のセキュリティTips 2013/01/28 @ym405nm http://ym405nm.info
  • 29. 対策 • 脆弱性情報を確認する • 更新情報に隠れている場合もあり • 無理のない範囲で、素早く対応できるように するすぐできるWeb制作時のセキュリティTips 2013/01/28 @ym405nm http://ym405nm.info
  • 30. 見逃しがちな設定 実装だけでなく、サーバの設定の注意も必要
  • 31. サーバのログイン情報 パスワード認証 ログイン&パスワード ログイン結果 server • 各サイトVPSの初期設定にするとパスワード 認証になる • パスワードの扱い方、辞書攻撃に注意が必要すぐできるWeb制作時のセキュリティTips 2013/01/28 @ym405nm http://ym405nm.info
  • 32. サーバのログイン情報 危険なパスワード例 俺調べすぐできるWeb制作時のセキュリティTips 2013/01/28 @ym405nm http://ym405nm.info
  • 33. サーバのログイン情報 対策 鍵生成、公開鍵登録 鍵認証 ログイン結果 server • 公開鍵を登録して鍵認証を行うすぐできるWeb制作時のセキュリティTips 2013/01/28 @ym405nm http://ym405nm.info
  • 34. サーバのログイン情報 サーバ情報の隠蔽 • エラーページやHTTPヘッダーに使用している ソフトウェアの名前とバージョン情報が表示さ れるすぐできるWeb制作時のセキュリティTips 2013/01/28 @ym405nm http://ym405nm.info
  • 35. サーバのログイン情報 サーバ情報の隠蔽 • 意外とphpinfo.php が残ってるサイトも。。。すぐできるWeb制作時のセキュリティTips 2013/01/28 @ym405nm http://ym405nm.info
  • 36. サーバのログイン情報 対策 • サーバの情報は出来る限り隠蔽する。特にエ ラーページとHTTPヘッダは注意 • 推測されやすいサイトにも注意する(test.php, phpinfo.php, /admin, /wp-admin など)すぐできるWeb制作時のセキュリティTips 2013/01/28 @ym405nm http://ym405nm.info
  • 37. まとめ
  • 38. まとめ • Webセキュリティは難しいが、設定1つで修 正できるものもある。 • 多くの攻撃は、簡単な実装ミス・設定ミスか ら来ているものもおおいすぐできるWeb制作時のセキュリティTips 2013/01/28 @ym405nm http://ym405nm.info
  • 39. 参考文献 安全なウェブサイトの作り方 http://www.ipa.go.jp/security/vuln/ websecurity.htmlすぐできるWeb制作時のセキュリティTips 2013/01/28 @ym405nm http://ym405nm.info