SlideShare une entreprise Scribd logo
1  sur  24
Télécharger pour lire hors ligne
Webセキュリティと
W3CとIETFの仕様
Shibuya.XSS techtalk #9
@flano_yuki
自己紹介
- ゆき ( @flano_yuki )
- 趣味でW3CとIETFの仕様を読んでブログに書いてる
- IETFはオフラインミーティングに数回参加
- たまに脆弱性報告したり (CVE番号発行:1件)
- 本業はインフラエンジニア
@flano_yuki
今日お話すること
- 個人的に気になってる、W3CやIETFで議論されてる仕様を紹介します
- 仕様は策定中のものです、大いに変わる可能性があります
- 標準化に至らないものや、実装されないものもあるでしょう
(紹介しきれないものも沢山あります)
標準化というと敷居が高そうですが、少しでも楽しそうと思って頂ければ幸いです。
興味ある人、詳しい人いましたら、是非お声がけください><;
Overview W3C
- W3C
- Web Apprication Security WG (WebAppSec)
- CSP Level 3
- CSP Embedded Enforcement
- Clear Site Data
- Suborigins
- Web Incubator CG (WICG)
- HSTS Priming
- CORS and RFC1918
- Isolated Origins
- Origin Policy
Overview IETF
- IETF
- Httpbis WG
- Cookie Prefixes
- Same-Site Cookies
- Deprecate modification of 'secure' cookies from non-secure origins
- sunset4(?)
- Let 'localhost' be localhost.
- etc,,,
W3Cの仕様紹介
Content Security Policy Level 3 (1つめ)
- CSPの最新仕様、幾つかの機能追加など (13項目の変更点)
- http://example.com:80 表記が、https://example.com:443 にもマッチ
- strict-dynamic
- 指定:Content-Security-Policy: script-src 'nonce-DhcnhD3khTMePg...' 'strict-dynamic'
- <script src="https://example.com/script.js" nonce="DhcnhD3khTMePg..." >
- disown-opener
- window.openerをnullにする。他のブラウジングコンテキストから制御さ
れないようにする
- navigation-to
- ドキュメントがa, form, window.locationなどでナビゲーションできるURL
を制限する
- report-sample
- CSPに違反したスクリプトの内容を、Report APIで投げる
CSP Embedded Enforcement (2つめ)
埋め込む側が、iframeの中のコンテンツにCSPをつけるように要請する
a-example.comがiframeで
b-example.comを埋め込んでいる
1. HTMLを取得する
2. HTMLのiframeにcsp attributeが
ついてる
3. ブラウザは、そのポリシーを
Embedding-CSPヘッダにつけて送
信する
4. Embedding-CSPで指定された、ポ
リシーをCSPで指定する
Clear Site Data (3つめ)
サーバから、クライアントのCookieやキャッシュをクリアできるようにする仕様
不要なデータは消しておきたいが、覚えておくのは難しかった
Clear-Site-Data: domStorage cookies executionContexts cache;
includeSubdomains
消せるもの
- domStorage
- cookies
- cache
- executionContexts
Suborigins (4つめ)
同一オリジンで複数のアプリケーション提供される場合がある(google mapとか)一つの
オリジンでも、サブオリジンを指定し別オリジンとして扱えるようにする
HTTPヘッダでsuboriginを指定
HTTP/1.1 200 OK
…
suborigin: testing
Access-Control-Allow-Suborigin
CORS時の許可
HSTS Priming (5つめ)
Mixed Contentsでブロックする前に、該当リソースへHEADリクエストしてHSTSヘッダ
がついていれば、httpsでアクセスする。
<script src="http://origin-b/widget.js"></script>
HEAD / HTTP/1.1
Host: origin-b
...
HTTP/1.1 200 OK
...
Strict-Transport-Security: max-age=10886400;
1. https://で非httpsのリソースを読み
込もうとする
2. HEADリクエスを送る
3. HSTSのヘッダが付いてきたら、
HTTPSでアクセスし直すので、 Mixed
Contentsによるブロックを回避できる
CORS and RFC1918 (6つめ)
パブリックなネットワークから、ローカルネットワークへのCSRFをできないようにする。
CORSのpreflightのように、Access-Control-Allow-Externalをつけて明示的に許可す
る 。
Isolated Origins (7つめ)
セキュリティ要件の高いサイトを、悪意あるページなど、他のオリジンから隔離する仕様
- HTTPヘッダで「Isoration = 1」を受け取ると、UAは以下のように動作する
- Content-Security-Policy:frame-ancestors 'self'が各リソースで設定されてい
るかのように動作する
- window.topまたはwindow.parentへアクセスできない
- 各リンクとopen()でnoopenerが指定されたかのように動作する
- same-site cookies が指定されたかのように動作する
- isolated originへのナビゲーションは通常失敗する
allowIsolatedNavigation()
- 実行プロセスを分ける(実装次第)
Origin Policy(8つめ)
オリジン全体にポリシーを適応できるようにする仕様
HTTPヘッダでポリシー名を指定し、規定の場所にポリシーを置いておく
HTTP/1.1 200 OK
…
Sec-Origin-Policy: "policy-1"
{
"headers": [
{
"name": "Content-Security-Policy",
"value": "script-src 'self' https://cdn.example.com",
"type": "fallback"
},
{
"name": "Referrer-Policy",
"value": "origin-when-cross-origin",
"type": "fallback"
}
….
https://example.com/.well-known/origin-policy/policy-1HTTPレスポンス
(サイト全体にヘッダを適用する汎用的な仕
様も Site-Wide HTTP Headers )
IETFの仕様紹介
Cookie Prefixes (1つめ)
- Cookieについてる属性を確かなものにする
- 共有されているCookieについてる属性はサーバ側から確認できない
- プレフィックスに対応する属性がついてることが保証される
Set-Cookie: __Secure-SID=12345; Secure; Domain=example.com
- __Secure: Secure属性がついてること
- __Host: Domainが指定され、Pathが “/”
Same-Site Cookies (2つめ)
- Same-Siteへのリクエスト時にのみ提出されるようにする、”Same-Site” 属性
<html>
<title>csrf</title>
<img src=”example.com” >
</html>
attacker.com
このリクエストに
Cookieが付かない
example.com
Set-Cookie: SID=31d4d96e407aad42; SameSite=Strict
- Strict、クロスサイトのリクエストをブロック
- Lax、GET,HEAD,OPTIONSかつ
top-level browsing context のとき
Deprecate modification of 'secure' cookies from non-secure origins (3つめ)
Secure属性のあるCookieを、非セキュアなページから上書きできないようにする
- https://example.com で、secure属性の付いたCookieを発行したあと
- http://example.comから、同名のCookieで上書きできないようにする
Let 'localhost' be localhost. (4つめ)
localhost をループバックアドレスにする仕様
- 現状、W3Cのsecure contextの仕様は、”127.0.0.1” or “::1/128”
- secure contextで “localhost” をsecure contextにしたいというモチベーション
- 一方、RFC6761の仕様は”localhost”に対して、ループバックアドレスを返すことは
SHOULDとなってる(MUSTではない)
- “localhost”がループバックアドレスを返す事を”MUST”に変更する仕様
おわりに
それぞれ、最新仕様の追いかけ方
- W3C
- Mailing List: https://lists.w3.org/Archives/Public/public-webappsec/
- リポジトリ
- https://github.com/w3c
- https://github.com/wicg
- ブラウザのセキュリティ系Mailing Listもおすすめ
- 今日紹介したものは、だいたい GoogleのMike West氏が書いてる。アクティビティ要チェック
- IETF
- Mailing List: https://lists.w3.org/Archives/Public/ietf-http-wg/
- リポジトリ: https://github.com/httpwg
おわり
Token Binding over HTTP
- CookieやOAuthトークンといった物を、本人しか使えないようにできる
- TLS Exported Keying Material より生成された鍵で署名することで、その鍵を持っ
てる人以外が使えないようになる
OAuthなどでの利用が議論されているが、単純にCookieなどでも利用できる
CSP Pinning (非アクティブ)
- ページ毎に毎回 CSPヘッダを送信しなくて良くする仕様 (not active)
Content-Security-Policy-Pin: max-age: 10886400;
includeSubDomains;
default-src https:;
referrer no-referrer;
report-uri /csp-endpoint/pinned
CSP Cookie Controls (非アクティブ)
- Cookieの属性をCSPで制限をかける (not active)
Content-Security-Policy: cookie-scope host secure
- host: “host only”
- http: http only
- none: すべてのcookieをブロック
- secure: secure属性

Contenu connexe

Tendances

SELinuxによる攻撃防止の例
SELinuxによる攻撃防止の例SELinuxによる攻撃防止の例
SELinuxによる攻撃防止の例Hiroki Ishikawa
 
第一回 社内勉強会 PHP Application Security Checklist に学ぶ PHP セキュリティ (Excerpt)
第一回 社内勉強会 PHP Application Security Checklist に学ぶ PHP セキュリティ (Excerpt)第一回 社内勉強会 PHP Application Security Checklist に学ぶ PHP セキュリティ (Excerpt)
第一回 社内勉強会 PHP Application Security Checklist に学ぶ PHP セキュリティ (Excerpt)Yuya Takeyama
 
徳丸本に載っていないWebアプリケーションセキュリティ
徳丸本に載っていないWebアプリケーションセキュリティ徳丸本に載っていないWebアプリケーションセキュリティ
徳丸本に載っていないWebアプリケーションセキュリティHiroshi Tokumaru
 
Web packaging IETF 側
Web packaging IETF 側Web packaging IETF 側
Web packaging IETF 側yuki-f
 
Webアプリ開発者のためのHTML5セキュリティ入門
Webアプリ開発者のためのHTML5セキュリティ入門Webアプリ開発者のためのHTML5セキュリティ入門
Webアプリ開発者のためのHTML5セキュリティ入門Muneaki Nishimura
 
OSC2017 Hokkaido. MySQL今こそインストールを極めよう~改めて考える環境構築~
OSC2017 Hokkaido. MySQL今こそインストールを極めよう~改めて考える環境構築~OSC2017 Hokkaido. MySQL今こそインストールを極めよう~改めて考える環境構築~
OSC2017 Hokkaido. MySQL今こそインストールを極めよう~改めて考える環境構築~sakaik
 
講座Linux入門・サーバOSとしてのLinux
講座Linux入門・サーバOSとしてのLinux講座Linux入門・サーバOSとしてのLinux
講座Linux入門・サーバOSとしてのLinuxTokai University
 
AWSのRedHatにMySQL最速インストール
AWSのRedHatにMySQL最速インストールAWSのRedHatにMySQL最速インストール
AWSのRedHatにMySQL最速インストールsakaik
 
ConoHaオブジェクトストレージ 利用ケース
ConoHaオブジェクトストレージ 利用ケースConoHaオブジェクトストレージ 利用ケース
ConoHaオブジェクトストレージ 利用ケースJunichi Noda
 
SSHの便利な使い方〜マイナーな小技編〜
SSHの便利な使い方〜マイナーな小技編〜SSHの便利な使い方〜マイナーな小技編〜
SSHの便利な使い方〜マイナーな小技編〜ktateish
 
Rustを勉強してみた!
Rustを勉強してみた!Rustを勉強してみた!
Rustを勉強してみた!ssmylh
 
「おれのクラウド」今日から始めるオブジェクトストレージ
「おれのクラウド」今日から始めるオブジェクトストレージ「おれのクラウド」今日から始めるオブジェクトストレージ
「おれのクラウド」今日から始めるオブジェクトストレージMasahito Zembutsu
 
名古屋セキュリティ勉強会LT~学内CTFの話~
名古屋セキュリティ勉強会LT~学内CTFの話~名古屋セキュリティ勉強会LT~学内CTFの話~
名古屋セキュリティ勉強会LT~学内CTFの話~kataware
 
ownCloud 負荷測定検証レポート FUJITSU Storage ETERNUS CD10000
ownCloud 負荷測定検証レポート FUJITSU Storage ETERNUS CD10000ownCloud 負荷測定検証レポート FUJITSU Storage ETERNUS CD10000
ownCloud 負荷測定検証レポート FUJITSU Storage ETERNUS CD10000Tetsurou Yano
 
フルオープンソースでここまで出来る。OpenStackの構築と運用
フルオープンソースでここまで出来る。OpenStackの構築と運用フルオープンソースでここまで出来る。OpenStackの構築と運用
フルオープンソースでここまで出来る。OpenStackの構築と運用Ikuo Kumagai
 
RoR周辺知識15項目
RoR周辺知識15項目RoR周辺知識15項目
RoR周辺知識15項目saiwaki
 

Tendances (18)

SELinuxによる攻撃防止の例
SELinuxによる攻撃防止の例SELinuxによる攻撃防止の例
SELinuxによる攻撃防止の例
 
Play_using_Proxy
Play_using_ProxyPlay_using_Proxy
Play_using_Proxy
 
Oss dev-04
Oss dev-04Oss dev-04
Oss dev-04
 
第一回 社内勉強会 PHP Application Security Checklist に学ぶ PHP セキュリティ (Excerpt)
第一回 社内勉強会 PHP Application Security Checklist に学ぶ PHP セキュリティ (Excerpt)第一回 社内勉強会 PHP Application Security Checklist に学ぶ PHP セキュリティ (Excerpt)
第一回 社内勉強会 PHP Application Security Checklist に学ぶ PHP セキュリティ (Excerpt)
 
徳丸本に載っていないWebアプリケーションセキュリティ
徳丸本に載っていないWebアプリケーションセキュリティ徳丸本に載っていないWebアプリケーションセキュリティ
徳丸本に載っていないWebアプリケーションセキュリティ
 
Web packaging IETF 側
Web packaging IETF 側Web packaging IETF 側
Web packaging IETF 側
 
Webアプリ開発者のためのHTML5セキュリティ入門
Webアプリ開発者のためのHTML5セキュリティ入門Webアプリ開発者のためのHTML5セキュリティ入門
Webアプリ開発者のためのHTML5セキュリティ入門
 
OSC2017 Hokkaido. MySQL今こそインストールを極めよう~改めて考える環境構築~
OSC2017 Hokkaido. MySQL今こそインストールを極めよう~改めて考える環境構築~OSC2017 Hokkaido. MySQL今こそインストールを極めよう~改めて考える環境構築~
OSC2017 Hokkaido. MySQL今こそインストールを極めよう~改めて考える環境構築~
 
講座Linux入門・サーバOSとしてのLinux
講座Linux入門・サーバOSとしてのLinux講座Linux入門・サーバOSとしてのLinux
講座Linux入門・サーバOSとしてのLinux
 
AWSのRedHatにMySQL最速インストール
AWSのRedHatにMySQL最速インストールAWSのRedHatにMySQL最速インストール
AWSのRedHatにMySQL最速インストール
 
ConoHaオブジェクトストレージ 利用ケース
ConoHaオブジェクトストレージ 利用ケースConoHaオブジェクトストレージ 利用ケース
ConoHaオブジェクトストレージ 利用ケース
 
SSHの便利な使い方〜マイナーな小技編〜
SSHの便利な使い方〜マイナーな小技編〜SSHの便利な使い方〜マイナーな小技編〜
SSHの便利な使い方〜マイナーな小技編〜
 
Rustを勉強してみた!
Rustを勉強してみた!Rustを勉強してみた!
Rustを勉強してみた!
 
「おれのクラウド」今日から始めるオブジェクトストレージ
「おれのクラウド」今日から始めるオブジェクトストレージ「おれのクラウド」今日から始めるオブジェクトストレージ
「おれのクラウド」今日から始めるオブジェクトストレージ
 
名古屋セキュリティ勉強会LT~学内CTFの話~
名古屋セキュリティ勉強会LT~学内CTFの話~名古屋セキュリティ勉強会LT~学内CTFの話~
名古屋セキュリティ勉強会LT~学内CTFの話~
 
ownCloud 負荷測定検証レポート FUJITSU Storage ETERNUS CD10000
ownCloud 負荷測定検証レポート FUJITSU Storage ETERNUS CD10000ownCloud 負荷測定検証レポート FUJITSU Storage ETERNUS CD10000
ownCloud 負荷測定検証レポート FUJITSU Storage ETERNUS CD10000
 
フルオープンソースでここまで出来る。OpenStackの構築と運用
フルオープンソースでここまで出来る。OpenStackの構築と運用フルオープンソースでここまで出来る。OpenStackの構築と運用
フルオープンソースでここまで出来る。OpenStackの構築と運用
 
RoR周辺知識15項目
RoR周辺知識15項目RoR周辺知識15項目
RoR周辺知識15項目
 

En vedette

Ietf97 ソウル報告
Ietf97 ソウル報告Ietf97 ソウル報告
Ietf97 ソウル報告yuki-f
 
kintoneの検索高速化への取り組み
kintoneの検索高速化への取り組みkintoneの検索高速化への取り組み
kintoneの検索高速化への取り組みRyo Mitoma
 
トランザクションの並行処理制御
トランザクションの並行処理制御トランザクションの並行処理制御
トランザクションの並行処理制御Takashi Hoshino
 
【kintone便利に使おうシリーズ】[vol.07 プロセス管理]
【kintone便利に使おうシリーズ】[vol.07 プロセス管理]【kintone便利に使おうシリーズ】[vol.07 プロセス管理]
【kintone便利に使おうシリーズ】[vol.07 プロセス管理]Cybozucommunity
 
君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?Teppei Sato
 
Elixir-Conf-Japan-2017-session-ohr486
Elixir-Conf-Japan-2017-session-ohr486Elixir-Conf-Japan-2017-session-ohr486
Elixir-Conf-Japan-2017-session-ohr486Tsunenori Oohara
 
Chatbot for kintone Apps on Facebook Messenger
Chatbot for kintone Apps on Facebook MessengerChatbot for kintone Apps on Facebook Messenger
Chatbot for kintone Apps on Facebook MessengerPhan Anh Nguyen
 
OWASP Testing Guide からはじめよう - セキュリティ診断技術の共有、そして横展開
OWASP Testing Guide からはじめよう - セキュリティ診断技術の共有、そして横展開OWASP Testing Guide からはじめよう - セキュリティ診断技術の共有、そして横展開
OWASP Testing Guide からはじめよう - セキュリティ診断技術の共有、そして横展開Muneaki Nishimura
 
Pythonで動かして学ぶ機械学習入門_予測モデルを作ってみよう
Pythonで動かして学ぶ機械学習入門_予測モデルを作ってみようPythonで動かして学ぶ機械学習入門_予測モデルを作ってみよう
Pythonで動かして学ぶ機械学習入門_予測モデルを作ってみよう洋資 堅田
 
Type-safe Web APIs with Protocol Buffers in Swift at iOSCon
Type-safe Web APIs with Protocol Buffers in Swift at iOSConType-safe Web APIs with Protocol Buffers in Swift at iOSCon
Type-safe Web APIs with Protocol Buffers in Swift at iOSConYusuke Kita
 
Baseball Play Study 2017春(2017年春 読むべき野球本はこれだ!)
Baseball Play Study 2017春(2017年春 読むべき野球本はこれだ!) Baseball Play Study 2017春(2017年春 読むべき野球本はこれだ!)
Baseball Play Study 2017春(2017年春 読むべき野球本はこれだ!) Haruo Sato
 
A Publisher's Survival Guide for the Platform Era
A Publisher's Survival Guide for the Platform EraA Publisher's Survival Guide for the Platform Era
A Publisher's Survival Guide for the Platform EraBloomberg Media
 
アルゴリズム取引のシステムを開発・運用してみて分かったこと
アルゴリズム取引のシステムを開発・運用してみて分かったことアルゴリズム取引のシステムを開発・運用してみて分かったこと
アルゴリズム取引のシステムを開発・運用してみて分かったことSatoshi KOBAYASHI
 
FrenchWeb 500, le classement des entreprises de la tech française
FrenchWeb 500, le classement des entreprises de la tech françaiseFrenchWeb 500, le classement des entreprises de la tech française
FrenchWeb 500, le classement des entreprises de la tech françaiseFrenchWeb.fr
 
Amazon AI (March 2017)
Amazon AI (March 2017)Amazon AI (March 2017)
Amazon AI (March 2017)Julien SIMON
 
Building Great Products and Happy Teams with Experiments
Building Great Products and Happy Teams with ExperimentsBuilding Great Products and Happy Teams with Experiments
Building Great Products and Happy Teams with ExperimentsDave Pryce
 
The Marketer's Guide To Customer Interviews
The Marketer's Guide To Customer InterviewsThe Marketer's Guide To Customer Interviews
The Marketer's Guide To Customer InterviewsGood Funnel
 
20170329 container technight-第一回勉強会
20170329 container technight-第一回勉強会20170329 container technight-第一回勉強会
20170329 container technight-第一回勉強会Minehiko Nohara
 
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入Yu Nobuoka
 

En vedette (20)

Ietf97 ソウル報告
Ietf97 ソウル報告Ietf97 ソウル報告
Ietf97 ソウル報告
 
kintoneの検索高速化への取り組み
kintoneの検索高速化への取り組みkintoneの検索高速化への取り組み
kintoneの検索高速化への取り組み
 
initramfsについて
initramfsについてinitramfsについて
initramfsについて
 
トランザクションの並行処理制御
トランザクションの並行処理制御トランザクションの並行処理制御
トランザクションの並行処理制御
 
【kintone便利に使おうシリーズ】[vol.07 プロセス管理]
【kintone便利に使おうシリーズ】[vol.07 プロセス管理]【kintone便利に使おうシリーズ】[vol.07 プロセス管理]
【kintone便利に使おうシリーズ】[vol.07 プロセス管理]
 
君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?
 
Elixir-Conf-Japan-2017-session-ohr486
Elixir-Conf-Japan-2017-session-ohr486Elixir-Conf-Japan-2017-session-ohr486
Elixir-Conf-Japan-2017-session-ohr486
 
Chatbot for kintone Apps on Facebook Messenger
Chatbot for kintone Apps on Facebook MessengerChatbot for kintone Apps on Facebook Messenger
Chatbot for kintone Apps on Facebook Messenger
 
OWASP Testing Guide からはじめよう - セキュリティ診断技術の共有、そして横展開
OWASP Testing Guide からはじめよう - セキュリティ診断技術の共有、そして横展開OWASP Testing Guide からはじめよう - セキュリティ診断技術の共有、そして横展開
OWASP Testing Guide からはじめよう - セキュリティ診断技術の共有、そして横展開
 
Pythonで動かして学ぶ機械学習入門_予測モデルを作ってみよう
Pythonで動かして学ぶ機械学習入門_予測モデルを作ってみようPythonで動かして学ぶ機械学習入門_予測モデルを作ってみよう
Pythonで動かして学ぶ機械学習入門_予測モデルを作ってみよう
 
Type-safe Web APIs with Protocol Buffers in Swift at iOSCon
Type-safe Web APIs with Protocol Buffers in Swift at iOSConType-safe Web APIs with Protocol Buffers in Swift at iOSCon
Type-safe Web APIs with Protocol Buffers in Swift at iOSCon
 
Baseball Play Study 2017春(2017年春 読むべき野球本はこれだ!)
Baseball Play Study 2017春(2017年春 読むべき野球本はこれだ!) Baseball Play Study 2017春(2017年春 読むべき野球本はこれだ!)
Baseball Play Study 2017春(2017年春 読むべき野球本はこれだ!)
 
A Publisher's Survival Guide for the Platform Era
A Publisher's Survival Guide for the Platform EraA Publisher's Survival Guide for the Platform Era
A Publisher's Survival Guide for the Platform Era
 
アルゴリズム取引のシステムを開発・運用してみて分かったこと
アルゴリズム取引のシステムを開発・運用してみて分かったことアルゴリズム取引のシステムを開発・運用してみて分かったこと
アルゴリズム取引のシステムを開発・運用してみて分かったこと
 
FrenchWeb 500, le classement des entreprises de la tech française
FrenchWeb 500, le classement des entreprises de la tech françaiseFrenchWeb 500, le classement des entreprises de la tech française
FrenchWeb 500, le classement des entreprises de la tech française
 
Amazon AI (March 2017)
Amazon AI (March 2017)Amazon AI (March 2017)
Amazon AI (March 2017)
 
Building Great Products and Happy Teams with Experiments
Building Great Products and Happy Teams with ExperimentsBuilding Great Products and Happy Teams with Experiments
Building Great Products and Happy Teams with Experiments
 
The Marketer's Guide To Customer Interviews
The Marketer's Guide To Customer InterviewsThe Marketer's Guide To Customer Interviews
The Marketer's Guide To Customer Interviews
 
20170329 container technight-第一回勉強会
20170329 container technight-第一回勉強会20170329 container technight-第一回勉強会
20170329 container technight-第一回勉強会
 
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
 

Similaire à Webセキュリティと W3CとIETFの仕様

配布用Cacti running with cherokee
配布用Cacti running with cherokee配布用Cacti running with cherokee
配布用Cacti running with cherokeeyut148atgmaildotcom
 
OSC2011Tokyo/Fall OpenStack Swift入門
OSC2011Tokyo/Fall OpenStack Swift入門OSC2011Tokyo/Fall OpenStack Swift入門
OSC2011Tokyo/Fall OpenStack Swift入門irix_jp
 
Webアプリって奥が深いんです
Webアプリって奥が深いんですWebアプリって奥が深いんです
Webアプリって奥が深いんですabend_cve_9999_0001
 
Webシステム脆弱性LT資料
Webシステム脆弱性LT資料Webシステム脆弱性LT資料
Webシステム脆弱性LT資料Tomohito Adachi
 
Ssl証明書を設定したらapacheが起動しない?
Ssl証明書を設定したらapacheが起動しない?Ssl証明書を設定したらapacheが起動しない?
Ssl証明書を設定したらapacheが起動しない?denet1999
 
Silverlightをあれこれ紹介
Silverlightをあれこれ紹介Silverlightをあれこれ紹介
Silverlightをあれこれ紹介mizusawa
 
[デブサミ2012]趣味と実益の脆弱性発見
[デブサミ2012]趣味と実益の脆弱性発見[デブサミ2012]趣味と実益の脆弱性発見
[デブサミ2012]趣味と実益の脆弱性発見Yosuke HASEGAWA
 
「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップ「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップYasuhito Yabe
 
2013OSC関西@京都_CloudStackとCloudFoundaryがまるわかり!
2013OSC関西@京都_CloudStackとCloudFoundaryがまるわかり!2013OSC関西@京都_CloudStackとCloudFoundaryがまるわかり!
2013OSC関西@京都_CloudStackとCloudFoundaryがまるわかり!Midori Oge
 
初心者がOpenIndianaで自宅サーバを作ったよって話
初心者がOpenIndianaで自宅サーバを作ったよって話初心者がOpenIndianaで自宅サーバを作ったよって話
初心者がOpenIndianaで自宅サーバを作ったよって話Masataka Tsukamoto
 
OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門VirtualTech Japan Inc.
 
PlayFramework1.x基礎編
PlayFramework1.x基礎編PlayFramework1.x基礎編
PlayFramework1.x基礎編Asami Abe
 
OpenStack検証環境構築・トラブルシューティング入門 - OpenStack最新情報セミナー 2014年8月
OpenStack検証環境構築・トラブルシューティング入門 - OpenStack最新情報セミナー 2014年8月OpenStack検証環境構築・トラブルシューティング入門 - OpenStack最新情報セミナー 2014年8月
OpenStack検証環境構築・トラブルシューティング入門 - OpenStack最新情報セミナー 2014年8月VirtualTech Japan Inc.
 
Webサーバ勉強会4 nginx で php-fpm を動かしてみた
Webサーバ勉強会4 nginx で php-fpm を動かしてみたWebサーバ勉強会4 nginx で php-fpm を動かしてみた
Webサーバ勉強会4 nginx で php-fpm を動かしてみたdo_aki
 
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)Masanori Ishigami
 
HP Helion 標準搭載!! OpenStack TripleO解説課題 – OpenStack最新情報セミナー 2015年2月
HP Helion 標準搭載!! OpenStack TripleO解説課題 – OpenStack最新情報セミナー 2015年2月HP Helion 標準搭載!! OpenStack TripleO解説課題 – OpenStack最新情報セミナー 2015年2月
HP Helion 標準搭載!! OpenStack TripleO解説課題 – OpenStack最新情報セミナー 2015年2月VirtualTech Japan Inc.
 
使ってみた!ioMemoryで実現する噂のAtomic write!
使ってみた!ioMemoryで実現する噂のAtomic write!使ってみた!ioMemoryで実現する噂のAtomic write!
使ってみた!ioMemoryで実現する噂のAtomic write!IIJ
 
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011Hiroh Satoh
 

Similaire à Webセキュリティと W3CとIETFの仕様 (20)

配布用Cacti running with cherokee
配布用Cacti running with cherokee配布用Cacti running with cherokee
配布用Cacti running with cherokee
 
OSC2011Tokyo/Fall OpenStack Swift入門
OSC2011Tokyo/Fall OpenStack Swift入門OSC2011Tokyo/Fall OpenStack Swift入門
OSC2011Tokyo/Fall OpenStack Swift入門
 
Webアプリって奥が深いんです
Webアプリって奥が深いんですWebアプリって奥が深いんです
Webアプリって奥が深いんです
 
Webシステム脆弱性LT資料
Webシステム脆弱性LT資料Webシステム脆弱性LT資料
Webシステム脆弱性LT資料
 
Ssl証明書を設定したらapacheが起動しない?
Ssl証明書を設定したらapacheが起動しない?Ssl証明書を設定したらapacheが起動しない?
Ssl証明書を設定したらapacheが起動しない?
 
Silverlightをあれこれ紹介
Silverlightをあれこれ紹介Silverlightをあれこれ紹介
Silverlightをあれこれ紹介
 
[デブサミ2012]趣味と実益の脆弱性発見
[デブサミ2012]趣味と実益の脆弱性発見[デブサミ2012]趣味と実益の脆弱性発見
[デブサミ2012]趣味と実益の脆弱性発見
 
「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップ「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップ
 
2013OSC関西@京都_CloudStackとCloudFoundaryがまるわかり!
2013OSC関西@京都_CloudStackとCloudFoundaryがまるわかり!2013OSC関西@京都_CloudStackとCloudFoundaryがまるわかり!
2013OSC関西@京都_CloudStackとCloudFoundaryがまるわかり!
 
Osoljp201204
Osoljp201204Osoljp201204
Osoljp201204
 
初心者がOpenIndianaで自宅サーバを作ったよって話
初心者がOpenIndianaで自宅サーバを作ったよって話初心者がOpenIndianaで自宅サーバを作ったよって話
初心者がOpenIndianaで自宅サーバを作ったよって話
 
OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門
 
PlayFramework1.x基礎編
PlayFramework1.x基礎編PlayFramework1.x基礎編
PlayFramework1.x基礎編
 
OpenStack検証環境構築・トラブルシューティング入門 - OpenStack最新情報セミナー 2014年8月
OpenStack検証環境構築・トラブルシューティング入門 - OpenStack最新情報セミナー 2014年8月OpenStack検証環境構築・トラブルシューティング入門 - OpenStack最新情報セミナー 2014年8月
OpenStack検証環境構築・トラブルシューティング入門 - OpenStack最新情報セミナー 2014年8月
 
Webサーバ勉強会4 nginx で php-fpm を動かしてみた
Webサーバ勉強会4 nginx で php-fpm を動かしてみたWebサーバ勉強会4 nginx で php-fpm を動かしてみた
Webサーバ勉強会4 nginx で php-fpm を動かしてみた
 
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
 
HP Helion 標準搭載!! OpenStack TripleO解説課題 – OpenStack最新情報セミナー 2015年2月
HP Helion 標準搭載!! OpenStack TripleO解説課題 – OpenStack最新情報セミナー 2015年2月HP Helion 標準搭載!! OpenStack TripleO解説課題 – OpenStack最新情報セミナー 2015年2月
HP Helion 標準搭載!! OpenStack TripleO解説課題 – OpenStack最新情報セミナー 2015年2月
 
使ってみた!ioMemoryで実現する噂のAtomic write!
使ってみた!ioMemoryで実現する噂のAtomic write!使ってみた!ioMemoryで実現する噂のAtomic write!
使ってみた!ioMemoryで実現する噂のAtomic write!
 
Openstack+Ceph設定ガイド
Openstack+Ceph設定ガイドOpenstack+Ceph設定ガイド
Openstack+Ceph設定ガイド
 
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
 

Dernier

UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdffurutsuka
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 

Dernier (9)

UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 

Webセキュリティと W3CとIETFの仕様

  • 2. 自己紹介 - ゆき ( @flano_yuki ) - 趣味でW3CとIETFの仕様を読んでブログに書いてる - IETFはオフラインミーティングに数回参加 - たまに脆弱性報告したり (CVE番号発行:1件) - 本業はインフラエンジニア @flano_yuki
  • 3. 今日お話すること - 個人的に気になってる、W3CやIETFで議論されてる仕様を紹介します - 仕様は策定中のものです、大いに変わる可能性があります - 標準化に至らないものや、実装されないものもあるでしょう (紹介しきれないものも沢山あります) 標準化というと敷居が高そうですが、少しでも楽しそうと思って頂ければ幸いです。 興味ある人、詳しい人いましたら、是非お声がけください><;
  • 4. Overview W3C - W3C - Web Apprication Security WG (WebAppSec) - CSP Level 3 - CSP Embedded Enforcement - Clear Site Data - Suborigins - Web Incubator CG (WICG) - HSTS Priming - CORS and RFC1918 - Isolated Origins - Origin Policy
  • 5. Overview IETF - IETF - Httpbis WG - Cookie Prefixes - Same-Site Cookies - Deprecate modification of 'secure' cookies from non-secure origins - sunset4(?) - Let 'localhost' be localhost. - etc,,,
  • 7. Content Security Policy Level 3 (1つめ) - CSPの最新仕様、幾つかの機能追加など (13項目の変更点) - http://example.com:80 表記が、https://example.com:443 にもマッチ - strict-dynamic - 指定:Content-Security-Policy: script-src 'nonce-DhcnhD3khTMePg...' 'strict-dynamic' - <script src="https://example.com/script.js" nonce="DhcnhD3khTMePg..." > - disown-opener - window.openerをnullにする。他のブラウジングコンテキストから制御さ れないようにする - navigation-to - ドキュメントがa, form, window.locationなどでナビゲーションできるURL を制限する - report-sample - CSPに違反したスクリプトの内容を、Report APIで投げる
  • 8. CSP Embedded Enforcement (2つめ) 埋め込む側が、iframeの中のコンテンツにCSPをつけるように要請する a-example.comがiframeで b-example.comを埋め込んでいる 1. HTMLを取得する 2. HTMLのiframeにcsp attributeが ついてる 3. ブラウザは、そのポリシーを Embedding-CSPヘッダにつけて送 信する 4. Embedding-CSPで指定された、ポ リシーをCSPで指定する
  • 9. Clear Site Data (3つめ) サーバから、クライアントのCookieやキャッシュをクリアできるようにする仕様 不要なデータは消しておきたいが、覚えておくのは難しかった Clear-Site-Data: domStorage cookies executionContexts cache; includeSubdomains 消せるもの - domStorage - cookies - cache - executionContexts
  • 11. HSTS Priming (5つめ) Mixed Contentsでブロックする前に、該当リソースへHEADリクエストしてHSTSヘッダ がついていれば、httpsでアクセスする。 <script src="http://origin-b/widget.js"></script> HEAD / HTTP/1.1 Host: origin-b ... HTTP/1.1 200 OK ... Strict-Transport-Security: max-age=10886400; 1. https://で非httpsのリソースを読み 込もうとする 2. HEADリクエスを送る 3. HSTSのヘッダが付いてきたら、 HTTPSでアクセスし直すので、 Mixed Contentsによるブロックを回避できる
  • 12. CORS and RFC1918 (6つめ) パブリックなネットワークから、ローカルネットワークへのCSRFをできないようにする。 CORSのpreflightのように、Access-Control-Allow-Externalをつけて明示的に許可す る 。
  • 13. Isolated Origins (7つめ) セキュリティ要件の高いサイトを、悪意あるページなど、他のオリジンから隔離する仕様 - HTTPヘッダで「Isoration = 1」を受け取ると、UAは以下のように動作する - Content-Security-Policy:frame-ancestors 'self'が各リソースで設定されてい るかのように動作する - window.topまたはwindow.parentへアクセスできない - 各リンクとopen()でnoopenerが指定されたかのように動作する - same-site cookies が指定されたかのように動作する - isolated originへのナビゲーションは通常失敗する allowIsolatedNavigation() - 実行プロセスを分ける(実装次第)
  • 14. Origin Policy(8つめ) オリジン全体にポリシーを適応できるようにする仕様 HTTPヘッダでポリシー名を指定し、規定の場所にポリシーを置いておく HTTP/1.1 200 OK … Sec-Origin-Policy: "policy-1" { "headers": [ { "name": "Content-Security-Policy", "value": "script-src 'self' https://cdn.example.com", "type": "fallback" }, { "name": "Referrer-Policy", "value": "origin-when-cross-origin", "type": "fallback" } …. https://example.com/.well-known/origin-policy/policy-1HTTPレスポンス (サイト全体にヘッダを適用する汎用的な仕 様も Site-Wide HTTP Headers )
  • 16. Cookie Prefixes (1つめ) - Cookieについてる属性を確かなものにする - 共有されているCookieについてる属性はサーバ側から確認できない - プレフィックスに対応する属性がついてることが保証される Set-Cookie: __Secure-SID=12345; Secure; Domain=example.com - __Secure: Secure属性がついてること - __Host: Domainが指定され、Pathが “/”
  • 17. Same-Site Cookies (2つめ) - Same-Siteへのリクエスト時にのみ提出されるようにする、”Same-Site” 属性 <html> <title>csrf</title> <img src=”example.com” > </html> attacker.com このリクエストに Cookieが付かない example.com Set-Cookie: SID=31d4d96e407aad42; SameSite=Strict - Strict、クロスサイトのリクエストをブロック - Lax、GET,HEAD,OPTIONSかつ top-level browsing context のとき
  • 18. Deprecate modification of 'secure' cookies from non-secure origins (3つめ) Secure属性のあるCookieを、非セキュアなページから上書きできないようにする - https://example.com で、secure属性の付いたCookieを発行したあと - http://example.comから、同名のCookieで上書きできないようにする
  • 19. Let 'localhost' be localhost. (4つめ) localhost をループバックアドレスにする仕様 - 現状、W3Cのsecure contextの仕様は、”127.0.0.1” or “::1/128” - secure contextで “localhost” をsecure contextにしたいというモチベーション - 一方、RFC6761の仕様は”localhost”に対して、ループバックアドレスを返すことは SHOULDとなってる(MUSTではない) - “localhost”がループバックアドレスを返す事を”MUST”に変更する仕様
  • 20. おわりに それぞれ、最新仕様の追いかけ方 - W3C - Mailing List: https://lists.w3.org/Archives/Public/public-webappsec/ - リポジトリ - https://github.com/w3c - https://github.com/wicg - ブラウザのセキュリティ系Mailing Listもおすすめ - 今日紹介したものは、だいたい GoogleのMike West氏が書いてる。アクティビティ要チェック - IETF - Mailing List: https://lists.w3.org/Archives/Public/ietf-http-wg/ - リポジトリ: https://github.com/httpwg
  • 22. Token Binding over HTTP - CookieやOAuthトークンといった物を、本人しか使えないようにできる - TLS Exported Keying Material より生成された鍵で署名することで、その鍵を持っ てる人以外が使えないようになる OAuthなどでの利用が議論されているが、単純にCookieなどでも利用できる
  • 23. CSP Pinning (非アクティブ) - ページ毎に毎回 CSPヘッダを送信しなくて良くする仕様 (not active) Content-Security-Policy-Pin: max-age: 10886400; includeSubDomains; default-src https:; referrer no-referrer; report-uri /csp-endpoint/pinned
  • 24. CSP Cookie Controls (非アクティブ) - Cookieの属性をCSPで制限をかける (not active) Content-Security-Policy: cookie-scope host secure - host: “host only” - http: http only - none: すべてのcookieをブロック - secure: secure属性