Mais conteúdo relacionado
Semelhante a 今日からはじめるCSP(Kernel/VM@Okinawa) (20)
今日からはじめるCSP(Kernel/VM@Okinawa)
- 3. ___
/ \::/\
/。(一)::(一)。
|::。゚(_人_)゚|
\ ゚ `⌒´/゚
/ ⌒ヽ ̄ ̄ヽ゚。
/ __\ \/\ \
と__)_ヽ_つ ヽ_つ
3
- 5. About Me
• Dahlia*(だりあ)
• Twitter:@dahlia_cocoa
• その他:http://moonfire.info
• seccamp ’14 Web
5
• 専門は社会学
- 10. “Content Security Policy (CSP) は、クロ
スサイトスクリプティング (XSS) やデータイ
ンジェクション攻撃を含む、よく知られた種
類の攻撃を検出して軽減する、セキュリティ
の追加レイヤーです。これらの攻撃手法は、
データ窃盗からサイト改変、マルウェア感染
まで、すべてに使用されます。”
10
- 14. CSP #とは
• Content Security Policyの略
• XSSやクリックジャッキングなどの攻撃を軽減で
きる
• 使うときはレスポンスヘッダにContent-
Security-Policy:なんたら って追加する。
• <meta>タグにも記述可能な模様
• 外部リソースの読み込みや一部の機能に制限が
発生
14
- 16. CSP #とは
CSP導入する
→許可無しにインラインJS/スタイル使
えない
→XSSが超難しくなる
HTML/JS/CSSの分離が進む(はず)
→うれしいヽ(・∀・)ノ
16
- 18. CSP #とは
CSP導入する
→外部のリソースが使えなくなる
(必要なものだけ許可する方針で)
→外部から危ないモノをもらっちゃう心
配が減る
→外部リソースにevalとかonclick=“hoge”
とか書いてあっても止められる
→きっとうれしい(`・ω・´)
18
- 20. 制限について
20
• 外部リソース
• インラインJavaScript / スタイル
• eval
• data: URI
- 22. CSPのポリシーディレクティブ
• default-src:デフォルトはここ
22
• img-src:画像、Favicon
• script-src:JavaScriptのコード
• object-src:<object> <embed> <applet>
• media-src:<video> <canvas>
• font-src:@font-face
• style-src:CSS、Style属性
• frame-src:iframeとか(非標準?)
- 23. 外部リソース
• 許可したいリソースを指定可能
• たとえば・・・
画像やFaviconを全て
http://img.moonfire.info に置いている場合
Content-Security-Policy: default-src ‘self’;
img-src http://img.moonfire.info
23
- 24. eval
• eval 基本使えない(正確には文字列をスクリプト
として評価する系のあれこれ)
• どうしても使いたいときだけ ‘unsafe-eval’ を
付ける。
• たとえば・・・
JSの中でevalとかを使いたい場合はこんな記述を。
! Content-Security-Policy: default-src 'self';
24
script-src 'unsafe-eval'
- 25. インライン要素
• <script>alert(1);</script> とか
<p style=“color:red”> とか onclick=“alert(1);”
とか使えない。イベントはリスナーで拾うこと。
• どうしても使いたいときだけ、’unsafe-inline’ と書
き加える。(外部サービスでどうしても、とか)
• たとえば・・・どうしても<script>alert(1);</script>
と書きたいとき。
! Content-Security-Policy: default-src ‘self’;
script-src ‘unsafe-inline’
25
- 26. data: URI
• data:image/jpeg 等はデフォルトで
は使用不可
• どうしても使いたい場合は、該当の
ポリシーディレクティブにdate: と
書き加える
Content-Security-Policy: default-src ‘self’;
img-src data:
26
- 27. 違反レポートの取得
• ポリシーに違反した場合、json形式
のレポートを送信することが可能。
• report-uri [レポートを送信したい
URI] を書き加えるだけ
27
!
Content-Security-Policy: default-src 'self';
report-uri ./report/report.cgi
- 31. 参考資料(もっと詳しく知りたい人へ)
• CSP policy directives - Security | MDN https://developer.mozilla.org/ja/docs/
Security/CSP/CSP_policy_directives
• Content Security Policy Level 2 http://www.w3.org/TR/CSP2/
• IPA ISEC セキュア・プログラミング講座:Webアプリケーション編 第8章 マッシュ
アップ:クライアントサイドマッシュアップ: #4 対策に利用できる技術 http://
www.ipa.go.jp/security/awareness/vendor/programmingv2/contents/705.html
• HASHコンサルティングオフィシャルブログ: 弊社のホームページにContent Security
Policy(CSP)を導入しました http://blog.hash-c.co.jp/2013/12/Content-Security-
Policy-CSP.html
• 同一originにあるフォームを利用してCSPバイパスっぽいことをする話 - 金利0無利息
キャッシング – キャッシングできます - subtech http://subtech.g.hatena.ne.jp/
mala/20140612/1402558716
• Content Security PolicyでXSSを断ち切る | monoの開発ブログ http://
blog.monoweb.info/blog/2012/03/15/content-security-policy/
31