SlideShare ist ein Scribd-Unternehmen logo
1 von 32
Downloaden Sie, um offline zu lesen
今日からはじめるCSP 
Dahlia* 
@dahlia_cocoa 
1
2
    ___ 
   / \::/\ 
  /。(一)::(一)。 
  |::。゚(_人_)゚| 
  \ ゚ `⌒´/゚ 
  / ⌒ヽ ̄ ̄ヽ゚。 
  / __\ \/\ \ 
 と__)_ヽ_つ ヽ_つ 
3
おしながき 
4 
• CSPとは 
• 制限について 
• 注意点とまとめ
About Me 
• Dahlia*(だりあ) 
• Twitter:@dahlia_cocoa 
• その他:http://moonfire.info 
• seccamp ’14 Web 
5 
• 専門は社会学
CSPとは 
6
CSPとは 
Content Security 
Policy の略称 
7
8
https://developer.mozilla.org/ja/docs/Security/CSP 
9
“Content Security Policy (CSP) は、クロ 
スサイトスクリプティング (XSS) やデータイ 
ンジェクション攻撃を含む、よく知られた種 
類の攻撃を検出して軽減する、セキュリティ 
の追加レイヤーです。これらの攻撃手法は、 
データ窃盗からサイト改変、マルウェア感染 
まで、すべてに使用されます。” 
10
おしまい。 
11
\1分くらいで終了/ 
12
\まだつづくよ/ 
13
CSP #とは 
• Content Security Policyの略 
• XSSやクリックジャッキングなどの攻撃を軽減で 
きる 
• 使うときはレスポンスヘッダにContent- 
Security-Policy:なんたら って追加する。 
• <meta>タグにも記述可能な模様 
• 外部リソースの読み込みや一部の機能に制限が 
発生 
14
CSP #とは 
XSSを仕掛けられて痛い目を見た。 
見つけた穴を塞いでも塞いでもやられ 
てしまう。どうしよう。 
15
CSP #とは 
CSP導入する 
→許可無しにインラインJS/スタイル使 
えない 
→XSSが超難しくなる 
 HTML/JS/CSSの分離が進む(はず) 
→うれしいヽ(・∀・)ノ 
16
CSP #とは 
外部リソース経由でなんか変なモノ仕 
込まれちゃってるんですが。 
ページを開くたびにalert出るんです 
が。 
これはどうすれば。 
17
CSP #とは 
CSP導入する 
→外部のリソースが使えなくなる 
 (必要なものだけ許可する方針で) 
→外部から危ないモノをもらっちゃう心 
配が減る 
→外部リソースにevalとかonclick=“hoge” 
とか書いてあっても止められる 
→きっとうれしい(`・ω・´) 
18
制限について 
19
制限について 
20 
• 外部リソース 
• インラインJavaScript / スタイル 
• eval 
• data: URI
CSPを書くときのキーワード 
• 'self':同一オリジンへの参照 
• 'none':空要素への参照 
21 
• 'unsafe-inline' 
• 'unsafe-eval' 
※シングルクオーテーションマークも必要
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とか(非標準?)
外部リソース 
• 許可したいリソースを指定可能 
• たとえば・・・ 
画像やFaviconを全て 
http://img.moonfire.info に置いている場合 
Content-Security-Policy: default-src ‘self’; 
img-src http://img.moonfire.info 
23
eval 
• eval 基本使えない(正確には文字列をスクリプト 
として評価する系のあれこれ) 
• どうしても使いたいときだけ ‘unsafe-eval’ を 
付ける。 
• たとえば・・・ 
JSの中でevalとかを使いたい場合はこんな記述を。 
! Content-Security-Policy: default-src 'self'; 
24 
script-src 'unsafe-eval'
インライン要素 
• <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
data: URI 
• data:image/jpeg 等はデフォルトで 
は使用不可 
• どうしても使いたい場合は、該当の 
ポリシーディレクティブにdate: と 
書き加える 
Content-Security-Policy: default-src ‘self’; 
img-src data: 
26
違反レポートの取得 
• ポリシーに違反した場合、json形式 
のレポートを送信することが可能。 
• report-uri [レポートを送信したい 
URI] を書き加えるだけ 
27 
! 
Content-Security-Policy: default-src 'self'; 
report-uri ./report/report.cgi
まとめ 
28
注意点 
• しっかり指定すれば効果テキメン。 
• 外部リソースを許可するとき、 
unsafe-inline や unsafe-evalを使う 
ときは、本当に必要か吟味すべき 
→XSSが成功する可能性ががが 
29
まとめ 
• CSPはいろんな脅威に対抗できる切 
り札のひとつ 
• これまで動いていたものが動かなく 
なる可能性があるので、設定時には 
注意が必要 
• レポート送信の機能を上手に使うと 
さらに◎ 
30
参考資料(もっと詳しく知りたい人へ) 
• 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
今日からはじめるCSP(Kernel/VM@Okinawa)

Weitere ähnliche Inhalte

Was ist angesagt?

安全なPHPアプリケーションの作り方2014
安全なPHPアプリケーションの作り方2014安全なPHPアプリケーションの作り方2014
安全なPHPアプリケーションの作り方2014Hiroshi Tokumaru
 
Rubyによるクローラー開発
Rubyによるクローラー開発Rubyによるクローラー開発
Rubyによるクローラー開発しくみ製作所
 
機械学習でWebアプリの脆弱性を見つける - Reflected XSS 編 -
機械学習でWebアプリの脆弱性を見つける - Reflected XSS 編 -機械学習でWebアプリの脆弱性を見つける - Reflected XSS 編 -
機械学習でWebアプリの脆弱性を見つける - Reflected XSS 編 -Isao Takaesu
 
いまさら聞けないパスワードの取り扱い方
いまさら聞けないパスワードの取り扱い方いまさら聞けないパスワードの取り扱い方
いまさら聞けないパスワードの取り扱い方Hiroshi Tokumaru
 
HTML5のセキュリティ もうちょい詳しく- HTML5セキュリティその3 : JavaScript API
HTML5のセキュリティ もうちょい詳しく- HTML5セキュリティその3 : JavaScript APIHTML5のセキュリティ もうちょい詳しく- HTML5セキュリティその3 : JavaScript API
HTML5のセキュリティ もうちょい詳しく- HTML5セキュリティその3 : JavaScript APIYosuke HASEGAWA
 
機械学習を使ったハッキング手法
機械学習を使ったハッキング手法機械学習を使ったハッキング手法
機械学習を使ったハッキング手法Isao Takaesu
 
Capybaraで雑にWebスクレイピング
Capybaraで雑にWebスクレイピングCapybaraで雑にWebスクレイピング
Capybaraで雑にWebスクレイピングKoji Nakamura
 
MySQL 4.0で9年動き続けたサーバを リプレイスしてバージョンアップした話
MySQL 4.0で9年動き続けたサーバを リプレイスしてバージョンアップした話MySQL 4.0で9年動き続けたサーバを リプレイスしてバージョンアップした話
MySQL 4.0で9年動き続けたサーバを リプレイスしてバージョンアップした話Takahiro Okumura
 
Rubyで始めるWebスクレイピング
Rubyで始めるWebスクレイピングRubyで始めるWebスクレイピング
Rubyで始めるWebスクレイピングTakuro Sasaki
 
Webアプリでパスワード保護はどこまでやればいいか
Webアプリでパスワード保護はどこまでやればいいかWebアプリでパスワード保護はどこまでやればいいか
Webアプリでパスワード保護はどこまでやればいいかHiroshi Tokumaru
 
今日はMongoDBの話はしない
今日はMongoDBの話はしない今日はMongoDBの話はしない
今日はMongoDBの話はしないAkihiro Kuwano
 
いろいろ考えると日本語の全文検索もMySQLがいいね!
いろいろ考えると日本語の全文検索もMySQLがいいね!いろいろ考えると日本語の全文検索もMySQLがいいね!
いろいろ考えると日本語の全文検索もMySQLがいいね!Kouhei Sutou
 
JAWSUG architecture-crowler
JAWSUG architecture-crowlerJAWSUG architecture-crowler
JAWSUG architecture-crowlerTakuro Sasaki
 
Mroongaを選んだ理由と
ちょっと嬉しかった話
Mroongaを選んだ理由と
ちょっと嬉しかった話Mroongaを選んだ理由と
ちょっと嬉しかった話
Mroongaを選んだ理由と
ちょっと嬉しかった話Terui Masashi
 
Webセキュリティ入門(xss)
Webセキュリティ入門(xss)Webセキュリティ入門(xss)
Webセキュリティ入門(xss)KageShiron
 
MongoDBではじめるカジュアルなタイムラインシステム
MongoDBではじめるカジュアルなタイムラインシステムMongoDBではじめるカジュアルなタイムラインシステム
MongoDBではじめるカジュアルなタイムラインシステムHitoshi Asai
 
MySQl 5.6新機能解説@第一回 中国地方DB勉強会
MySQl 5.6新機能解説@第一回 中国地方DB勉強会MySQl 5.6新機能解説@第一回 中国地方DB勉強会
MySQl 5.6新機能解説@第一回 中国地方DB勉強会Mikiya Okuno
 

Was ist angesagt? (20)

安全なPHPアプリケーションの作り方2014
安全なPHPアプリケーションの作り方2014安全なPHPアプリケーションの作り方2014
安全なPHPアプリケーションの作り方2014
 
Reactjs
ReactjsReactjs
Reactjs
 
Rubyによるクローラー開発
Rubyによるクローラー開発Rubyによるクローラー開発
Rubyによるクローラー開発
 
機械学習でWebアプリの脆弱性を見つける - Reflected XSS 編 -
機械学習でWebアプリの脆弱性を見つける - Reflected XSS 編 -機械学習でWebアプリの脆弱性を見つける - Reflected XSS 編 -
機械学習でWebアプリの脆弱性を見つける - Reflected XSS 編 -
 
いまさら聞けないパスワードの取り扱い方
いまさら聞けないパスワードの取り扱い方いまさら聞けないパスワードの取り扱い方
いまさら聞けないパスワードの取り扱い方
 
HTML5のセキュリティ もうちょい詳しく- HTML5セキュリティその3 : JavaScript API
HTML5のセキュリティ もうちょい詳しく- HTML5セキュリティその3 : JavaScript APIHTML5のセキュリティ もうちょい詳しく- HTML5セキュリティその3 : JavaScript API
HTML5のセキュリティ もうちょい詳しく- HTML5セキュリティその3 : JavaScript API
 
MySQLの冗長化 2013-01-24
MySQLの冗長化 2013-01-24MySQLの冗長化 2013-01-24
MySQLの冗長化 2013-01-24
 
機械学習を使ったハッキング手法
機械学習を使ったハッキング手法機械学習を使ったハッキング手法
機械学習を使ったハッキング手法
 
Capybaraで雑にWebスクレイピング
Capybaraで雑にWebスクレイピングCapybaraで雑にWebスクレイピング
Capybaraで雑にWebスクレイピング
 
MySQL 4.0で9年動き続けたサーバを リプレイスしてバージョンアップした話
MySQL 4.0で9年動き続けたサーバを リプレイスしてバージョンアップした話MySQL 4.0で9年動き続けたサーバを リプレイスしてバージョンアップした話
MySQL 4.0で9年動き続けたサーバを リプレイスしてバージョンアップした話
 
Rubyで始めるWebスクレイピング
Rubyで始めるWebスクレイピングRubyで始めるWebスクレイピング
Rubyで始めるWebスクレイピング
 
Webアプリでパスワード保護はどこまでやればいいか
Webアプリでパスワード保護はどこまでやればいいかWebアプリでパスワード保護はどこまでやればいいか
Webアプリでパスワード保護はどこまでやればいいか
 
今日はMongoDBの話はしない
今日はMongoDBの話はしない今日はMongoDBの話はしない
今日はMongoDBの話はしない
 
いろいろ考えると日本語の全文検索もMySQLがいいね!
いろいろ考えると日本語の全文検索もMySQLがいいね!いろいろ考えると日本語の全文検索もMySQLがいいね!
いろいろ考えると日本語の全文検索もMySQLがいいね!
 
Mysql toranomaki
Mysql toranomakiMysql toranomaki
Mysql toranomaki
 
JAWSUG architecture-crowler
JAWSUG architecture-crowlerJAWSUG architecture-crowler
JAWSUG architecture-crowler
 
Mroongaを選んだ理由と
ちょっと嬉しかった話
Mroongaを選んだ理由と
ちょっと嬉しかった話Mroongaを選んだ理由と
ちょっと嬉しかった話
Mroongaを選んだ理由と
ちょっと嬉しかった話
 
Webセキュリティ入門(xss)
Webセキュリティ入門(xss)Webセキュリティ入門(xss)
Webセキュリティ入門(xss)
 
MongoDBではじめるカジュアルなタイムラインシステム
MongoDBではじめるカジュアルなタイムラインシステムMongoDBではじめるカジュアルなタイムラインシステム
MongoDBではじめるカジュアルなタイムラインシステム
 
MySQl 5.6新機能解説@第一回 中国地方DB勉強会
MySQl 5.6新機能解説@第一回 中国地方DB勉強会MySQl 5.6新機能解説@第一回 中国地方DB勉強会
MySQl 5.6新機能解説@第一回 中国地方DB勉強会
 

Andere mochten auch

10分で作るオリジナルサイト - CMS/blog/adiary/Wordpress
10分で作るオリジナルサイト -  CMS/blog/adiary/Wordpress10分で作るオリジナルサイト -  CMS/blog/adiary/Wordpress
10分で作るオリジナルサイト - CMS/blog/adiary/Wordpressnabe-abk
 
Phpのつたえかた (初心者編) #phpstudy
Phpのつたえかた (初心者編) #phpstudyPhpのつたえかた (初心者編) #phpstudy
Phpのつたえかた (初心者編) #phpstudycocoa_dahlia
 
Nmapの真実(ゾクゾク)
Nmapの真実(ゾクゾク)Nmapの真実(ゾクゾク)
Nmapの真実(ゾクゾク)Keigo Yamazaki
 
今日から始めるXSS
今日から始めるXSS今日から始めるXSS
今日から始めるXSSllamakko_cafe
 
セキュアコーディング方法論再構築の試み
セキュアコーディング方法論再構築の試みセキュアコーディング方法論再構築の試み
セキュアコーディング方法論再構築の試みHiroshi Tokumaru
 
複雑さに挑む!カンバンによるプロジェクト マネジメント
複雑さに挑む!カンバンによるプロジェクト マネジメント複雑さに挑む!カンバンによるプロジェクト マネジメント
複雑さに挑む!カンバンによるプロジェクト マネジメント智治 長沢
 

Andere mochten auch (8)

Word bonch lt
Word bonch ltWord bonch lt
Word bonch lt
 
10分で作るオリジナルサイト - CMS/blog/adiary/Wordpress
10分で作るオリジナルサイト -  CMS/blog/adiary/Wordpress10分で作るオリジナルサイト -  CMS/blog/adiary/Wordpress
10分で作るオリジナルサイト - CMS/blog/adiary/Wordpress
 
Phpのつたえかた (初心者編) #phpstudy
Phpのつたえかた (初心者編) #phpstudyPhpのつたえかた (初心者編) #phpstudy
Phpのつたえかた (初心者編) #phpstudy
 
Nmapの真実(ゾクゾク)
Nmapの真実(ゾクゾク)Nmapの真実(ゾクゾク)
Nmapの真実(ゾクゾク)
 
今日から始めるXSS
今日から始めるXSS今日から始めるXSS
今日から始めるXSS
 
セキュアコーディング方法論再構築の試み
セキュアコーディング方法論再構築の試みセキュアコーディング方法論再構築の試み
セキュアコーディング方法論再構築の試み
 
Angular2実践入門
Angular2実践入門Angular2実践入門
Angular2実践入門
 
複雑さに挑む!カンバンによるプロジェクト マネジメント
複雑さに挑む!カンバンによるプロジェクト マネジメント複雑さに挑む!カンバンによるプロジェクト マネジメント
複雑さに挑む!カンバンによるプロジェクト マネジメント
 

Ähnlich wie 今日からはじめるCSP(Kernel/VM@Okinawa)

ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011Hiroh Satoh
 
今必要なCSSアーキテクチャ
今必要なCSSアーキテクチャ今必要なCSSアーキテクチャ
今必要なCSSアーキテクチャMayu Kimura
 
ライブコーディングとデモで理解するWebセキュリティの基礎
ライブコーディングとデモで理解するWebセキュリティの基礎ライブコーディングとデモで理解するWebセキュリティの基礎
ライブコーディングとデモで理解するWebセキュリティの基礎Takahisa Kishiya
 
アスカン2018秋ーカイハツセキュリティ3つのレシピ-20181013
アスカン2018秋ーカイハツセキュリティ3つのレシピ-20181013 アスカン2018秋ーカイハツセキュリティ3つのレシピ-20181013
アスカン2018秋ーカイハツセキュリティ3つのレシピ-20181013 Hiroaki Kuramochi
 
ARMテンプレートでサーバーレスに挑む!
ARMテンプレートでサーバーレスに挑む!ARMテンプレートでサーバーレスに挑む!
ARMテンプレートでサーバーレスに挑む!Kazumi IWANAGA
 
Webシステム脆弱性LT資料
Webシステム脆弱性LT資料Webシステム脆弱性LT資料
Webシステム脆弱性LT資料Tomohito Adachi
 
Firefox Security Features
Firefox Security FeaturesFirefox Security Features
Firefox Security Featuresdynamis
 
情報セキュリティCAS 第三十六回放送用スライド
情報セキュリティCAS 第三十六回放送用スライド情報セキュリティCAS 第三十六回放送用スライド
情報セキュリティCAS 第三十六回放送用スライドKumasan, LLC.
 
AWSでのセキュリティ運用 ~ IAM,VPCその他
AWSでのセキュリティ運用 ~IAM,VPCその他AWSでのセキュリティ運用 ~IAM,VPCその他
AWSでのセキュリティ運用 ~ IAM,VPCその他Recruit Technologies
 
クラウドセキュリティ基礎 #seccamp
クラウドセキュリティ基礎 #seccampクラウドセキュリティ基礎 #seccamp
クラウドセキュリティ基礎 #seccampMasahiro NAKAYAMA
 
情報セキュリティCAS 第七十五回放送用スライド
情報セキュリティCAS 第七十五回放送用スライド情報セキュリティCAS 第七十五回放送用スライド
情報セキュリティCAS 第七十五回放送用スライドKumasan, LLC.
 
2017年のセキュリティ 傾向と対策講座
2017年のセキュリティ 傾向と対策講座2017年のセキュリティ 傾向と対策講座
2017年のセキュリティ 傾向と対策講座NHN テコラス株式会社
 
20181108 Participation record SANS SEC545: Cloud Security Architecture and Op...
20181108 Participation record SANS SEC545: Cloud Security Architecture and Op...20181108 Participation record SANS SEC545: Cloud Security Architecture and Op...
20181108 Participation record SANS SEC545: Cloud Security Architecture and Op...Typhon 666
 
New Layers of Web Application Security
New Layers of Web Application SecurityNew Layers of Web Application Security
New Layers of Web Application SecurityShintaro Kobori
 
実践!AWSクラウドデザインパターン
実践!AWSクラウドデザインパターン実践!AWSクラウドデザインパターン
実践!AWSクラウドデザインパターンHiroyasu Suzuki
 
すぐできるWeb制作時のセキュリティTips
すぐできるWeb制作時のセキュリティTipsすぐできるWeb制作時のセキュリティTips
すぐできるWeb制作時のセキュリティTipsyoshinori matsumoto
 
使ってみた!ioMemoryで実現する噂のAtomic write!
使ってみた!ioMemoryで実現する噂のAtomic write!使ってみた!ioMemoryで実現する噂のAtomic write!
使ってみた!ioMemoryで実現する噂のAtomic write!IIJ
 

Ähnlich wie 今日からはじめるCSP(Kernel/VM@Okinawa) (20)

ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
 
今必要なCSSアーキテクチャ
今必要なCSSアーキテクチャ今必要なCSSアーキテクチャ
今必要なCSSアーキテクチャ
 
ライブコーディングとデモで理解するWebセキュリティの基礎
ライブコーディングとデモで理解するWebセキュリティの基礎ライブコーディングとデモで理解するWebセキュリティの基礎
ライブコーディングとデモで理解するWebセキュリティの基礎
 
アスカン2018秋ーカイハツセキュリティ3つのレシピ-20181013
アスカン2018秋ーカイハツセキュリティ3つのレシピ-20181013 アスカン2018秋ーカイハツセキュリティ3つのレシピ-20181013
アスカン2018秋ーカイハツセキュリティ3つのレシピ-20181013
 
ARMテンプレートでサーバーレスに挑む!
ARMテンプレートでサーバーレスに挑む!ARMテンプレートでサーバーレスに挑む!
ARMテンプレートでサーバーレスに挑む!
 
Webシステム脆弱性LT資料
Webシステム脆弱性LT資料Webシステム脆弱性LT資料
Webシステム脆弱性LT資料
 
UShareSoft_20130425
UShareSoft_20130425UShareSoft_20130425
UShareSoft_20130425
 
UShareSoft_20130425
UShareSoft_20130425UShareSoft_20130425
UShareSoft_20130425
 
Firefox Security Features
Firefox Security FeaturesFirefox Security Features
Firefox Security Features
 
情報セキュリティCAS 第三十六回放送用スライド
情報セキュリティCAS 第三十六回放送用スライド情報セキュリティCAS 第三十六回放送用スライド
情報セキュリティCAS 第三十六回放送用スライド
 
SOPの話
SOPの話SOPの話
SOPの話
 
AWSでのセキュリティ運用 ~ IAM,VPCその他
AWSでのセキュリティ運用 ~IAM,VPCその他AWSでのセキュリティ運用 ~IAM,VPCその他
AWSでのセキュリティ運用 ~ IAM,VPCその他
 
クラウドセキュリティ基礎 #seccamp
クラウドセキュリティ基礎 #seccampクラウドセキュリティ基礎 #seccamp
クラウドセキュリティ基礎 #seccamp
 
情報セキュリティCAS 第七十五回放送用スライド
情報セキュリティCAS 第七十五回放送用スライド情報セキュリティCAS 第七十五回放送用スライド
情報セキュリティCAS 第七十五回放送用スライド
 
2017年のセキュリティ 傾向と対策講座
2017年のセキュリティ 傾向と対策講座2017年のセキュリティ 傾向と対策講座
2017年のセキュリティ 傾向と対策講座
 
20181108 Participation record SANS SEC545: Cloud Security Architecture and Op...
20181108 Participation record SANS SEC545: Cloud Security Architecture and Op...20181108 Participation record SANS SEC545: Cloud Security Architecture and Op...
20181108 Participation record SANS SEC545: Cloud Security Architecture and Op...
 
New Layers of Web Application Security
New Layers of Web Application SecurityNew Layers of Web Application Security
New Layers of Web Application Security
 
実践!AWSクラウドデザインパターン
実践!AWSクラウドデザインパターン実践!AWSクラウドデザインパターン
実践!AWSクラウドデザインパターン
 
すぐできるWeb制作時のセキュリティTips
すぐできるWeb制作時のセキュリティTipsすぐできるWeb制作時のセキュリティTips
すぐできるWeb制作時のセキュリティTips
 
使ってみた!ioMemoryで実現する噂のAtomic write!
使ってみた!ioMemoryで実現する噂のAtomic write!使ってみた!ioMemoryで実現する噂のAtomic write!
使ってみた!ioMemoryで実現する噂のAtomic write!
 

Mehr von cocoa_dahlia

ひよこさんのための
ひよこさんのための ひよこさんのための
ひよこさんのための cocoa_dahlia
 
Java使いがphp使いにクラスチェンジした話
Java使いがphp使いにクラスチェンジした話Java使いがphp使いにクラスチェンジした話
Java使いがphp使いにクラスチェンジした話cocoa_dahlia
 
TokyoWebLab.のお知らせ(JJUG CCC 懇親会LT)
TokyoWebLab.のお知らせ(JJUG CCC 懇親会LT)TokyoWebLab.のお知らせ(JJUG CCC 懇親会LT)
TokyoWebLab.のお知らせ(JJUG CCC 懇親会LT)cocoa_dahlia
 
Keynote向けテーマ「あきいろ」作った
Keynote向けテーマ「あきいろ」作ったKeynote向けテーマ「あきいろ」作った
Keynote向けテーマ「あきいろ」作ったcocoa_dahlia
 
Miyazakirb vol0 lt
Miyazakirb vol0 ltMiyazakirb vol0 lt
Miyazakirb vol0 ltcocoa_dahlia
 
OSC 2014 Tokyo/Spring LT(懇親会での没ネタ)
OSC 2014 Tokyo/Spring LT(懇親会での没ネタ)OSC 2014 Tokyo/Spring LT(懇親会での没ネタ)
OSC 2014 Tokyo/Spring LT(懇親会での没ネタ)cocoa_dahlia
 
OSC Tokyo/Spring Lightning Talk
OSC Tokyo/Spring Lightning TalkOSC Tokyo/Spring Lightning Talk
OSC Tokyo/Spring Lightning Talkcocoa_dahlia
 

Mehr von cocoa_dahlia (7)

ひよこさんのための
ひよこさんのための ひよこさんのための
ひよこさんのための
 
Java使いがphp使いにクラスチェンジした話
Java使いがphp使いにクラスチェンジした話Java使いがphp使いにクラスチェンジした話
Java使いがphp使いにクラスチェンジした話
 
TokyoWebLab.のお知らせ(JJUG CCC 懇親会LT)
TokyoWebLab.のお知らせ(JJUG CCC 懇親会LT)TokyoWebLab.のお知らせ(JJUG CCC 懇親会LT)
TokyoWebLab.のお知らせ(JJUG CCC 懇親会LT)
 
Keynote向けテーマ「あきいろ」作った
Keynote向けテーマ「あきいろ」作ったKeynote向けテーマ「あきいろ」作った
Keynote向けテーマ「あきいろ」作った
 
Miyazakirb vol0 lt
Miyazakirb vol0 ltMiyazakirb vol0 lt
Miyazakirb vol0 lt
 
OSC 2014 Tokyo/Spring LT(懇親会での没ネタ)
OSC 2014 Tokyo/Spring LT(懇親会での没ネタ)OSC 2014 Tokyo/Spring LT(懇親会での没ネタ)
OSC 2014 Tokyo/Spring LT(懇親会での没ネタ)
 
OSC Tokyo/Spring Lightning Talk
OSC Tokyo/Spring Lightning TalkOSC Tokyo/Spring Lightning Talk
OSC Tokyo/Spring Lightning Talk
 

Kürzlich hochgeladen

論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Hiroshi Tomioka
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 

Kürzlich hochgeladen (11)

論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 

今日からはじめるCSP(Kernel/VM@Okinawa)

  • 2. 2
  • 3.     ___    / \::/\   /。(一)::(一)。   |::。゚(_人_)゚|   \ ゚ `⌒´/゚   / ⌒ヽ ̄ ̄ヽ゚。   / __\ \/\ \  と__)_ヽ_つ ヽ_つ 3
  • 4. おしながき 4 • CSPとは • 制限について • 注意点とまとめ
  • 5. About Me • Dahlia*(だりあ) • Twitter:@dahlia_cocoa • その他:http://moonfire.info • seccamp ’14 Web 5 • 専門は社会学
  • 7. CSPとは Content Security Policy の略称 7
  • 8. 8
  • 10. “Content Security Policy (CSP) は、クロ スサイトスクリプティング (XSS) やデータイ ンジェクション攻撃を含む、よく知られた種 類の攻撃を検出して軽減する、セキュリティ の追加レイヤーです。これらの攻撃手法は、 データ窃盗からサイト改変、マルウェア感染 まで、すべてに使用されます。” 10
  • 14. CSP #とは • Content Security Policyの略 • XSSやクリックジャッキングなどの攻撃を軽減で きる • 使うときはレスポンスヘッダにContent- Security-Policy:なんたら って追加する。 • <meta>タグにも記述可能な模様 • 外部リソースの読み込みや一部の機能に制限が 発生 14
  • 15. CSP #とは XSSを仕掛けられて痛い目を見た。 見つけた穴を塞いでも塞いでもやられ てしまう。どうしよう。 15
  • 16. CSP #とは CSP導入する →許可無しにインラインJS/スタイル使 えない →XSSが超難しくなる  HTML/JS/CSSの分離が進む(はず) →うれしいヽ(・∀・)ノ 16
  • 17. CSP #とは 外部リソース経由でなんか変なモノ仕 込まれちゃってるんですが。 ページを開くたびにalert出るんです が。 これはどうすれば。 17
  • 18. CSP #とは CSP導入する →外部のリソースが使えなくなる  (必要なものだけ許可する方針で) →外部から危ないモノをもらっちゃう心 配が減る →外部リソースにevalとかonclick=“hoge” とか書いてあっても止められる →きっとうれしい(`・ω・´) 18
  • 20. 制限について 20 • 外部リソース • インラインJavaScript / スタイル • eval • data: URI
  • 21. CSPを書くときのキーワード • 'self':同一オリジンへの参照 • 'none':空要素への参照 21 • 'unsafe-inline' • 'unsafe-eval' ※シングルクオーテーションマークも必要
  • 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
  • 29. 注意点 • しっかり指定すれば効果テキメン。 • 外部リソースを許可するとき、 unsafe-inline や unsafe-evalを使う ときは、本当に必要か吟味すべき →XSSが成功する可能性ががが 29
  • 30. まとめ • CSPはいろんな脅威に対抗できる切 り札のひとつ • これまで動いていたものが動かなく なる可能性があるので、設定時には 注意が必要 • レポート送信の機能を上手に使うと さらに◎ 30
  • 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