SlideShare uma empresa Scribd logo
1 de 46
これからの
Webセキュリティ
フロントエンド編
随時ツッコミ歓迎
長くなりそうなら夕食時にでも
自己紹介
自己紹介
・ChatWork でWebフロントエンドを担当
・セキュリティに関わるきっかけは
「趣味と実益のスタック破壊」
・セキュリティ関係での活動はApplicationCache
poisoningが主
なぜここにいるのか
なぜここにいるのか
・開発技術とセキュリティ技術が非常に近いところに来
ている
・開発技術抜きにセキュリティが語られなくなって来て
いる
これからの
Webセキュリティ
Webセキュリティの歴史
JVN(Japan Vulnerability Notes)
セキュリティホール memo
等から抜粋
〜2000
〜2000
・まだ「Webフロントエンド」という言葉はなかった
・ブラウザ自体を攻撃しユーザの端末を乗っ取る攻撃が主流
・「怪しいサイトは訪問しないようにしましょう」
・「セキュリティのためにJavaScriptはオフに」
〜2000
・現存していない技術を使った攻撃も多い
(JavaApplet、ActiveX、VBS、ActiveScript)
・chm、mhtml等を利用したメーラ経由の攻撃
・バッファオーバーフロー等危険な攻撃も
・iframeやwindow経由のOriginの詐称
2000〜2003
2000〜2003
・CSSの発展と攻撃手法の開発
・Object要素なども攻撃対象に
・ブラウザ機能を使っているメーラを経由したウィルスの流行
(Nimda、Klez)
・各サイトが「スクリプトによる貼り付け処理」を要求する問題
2000〜2003
・ブラウザがネット上のバイナリを自動実行する問題
・ローカルファイルの読み取り問題
・Webサイトのディレクトリindexが公開される事例が多数
(office氏事件)
・クロスサイトスクリプティング黎明期
(Namazu等、著名なものが修正される)
2003〜2005
2003〜2005
・このへんから各サイトが攻撃されるようになる
・SQL、コマンドインジェクション黎明期
・クロスサイトスクリプティングの発展
・画像処理系にいろいろ問題が見つかる
(GDI+のバッファオーバーフローとか)
2005〜2008
2005〜2008
・IPA、「安全なウェブサイトの作り方」公開
・SQLインジェクション勃興期(多数のサイトが被害を受ける)
・Wiki関係の脆弱性多数
・Flash Player関係の問題が報告され始める
・JSONの解析にevalを使う危険性が語られるようになる
2005〜2008
・E4Xに仕様上のセキュリティホールが指摘される
・クロスサイトリクエストフォージェリ黎明期(ぼくはまちちゃん)
・マルチバイトドメイン(Punycode)問題
・オレオレ認証局問題
・DOM based XSSが語られるようになる
2008〜2011
2008〜2011
・Adobe Readerの問題が増える
・E4Xのセキュリティホールが(かなり無理やり)修正される
・クロスサイトリクエストフォージェリ勃興期
・UTF-7を使ったXSS、JSON Hijackingが報告され始める
・クリックジャッキングの登場とブラウザ側の対応
・バグ報奨金制度登場
2011〜2013
2011〜2013
・E4Xのサポートが切られる
・UTF-7のサポートが切られる
・XHR2が一般化。jQuery関係でセキュリティホールの報告が増える
(jQuery Mobile等)
・WebViewの発展とネイティブアプリXSS
(WebViewクラスに関する脆弱性、アドレスバー偽装の脆弱性)
2014
2014
・Flash player経由のXSS
・文字コード
・Android WebView
・パスワードリストアタック
2015
2015
・mXSS
・ VirtualDOM
・Fingerprint
〜2015
〜2015
・Java
現在
現在
・安全性は上がっている
・ターゲットを絞った攻撃が増えてきた
・仕様レベルで安全性を確保する方向に
・常時暗号化前提の機能拡張
現在
・ClosureToolsが流れを牽引している
・Contextual Auto Escaping
(最近ではyahoo/secure-handlebarsという選択肢も)
・Strict Auto Escaping
(サーバサイドでいうScalikeJDBCのSQL Interpolation的なもの)
現在
・脆弱性報奨金制度の発展
・サイボウズ脆弱性報奨金制度
・ミクシィ脆弱性報告制度
・LINE Bug Bounty
未来
未来
・Webのアプリ化とアプリのWeb化
・CSPの普及と進化
・機能追加とパーミッションモデル
新しいセキュリティ
モデル
新しいセキュリティモデル
・セキュリティモデルの遷移
・新しいセキュリティモデルの構築
・なぜ新しいセキュリティモデルが必要なのか?
セキュリティ
エンジニアの今後
セキュリティエンジニアの今後
・バグハンター
・セキュリティアーキテクト
・セキュリティマネージャー
Webセキュリティの
「フロントエンド」
フロントエンド
・攻撃者視点
・実装者視点
・解析者視点
報奨金制度
Webフロントエンドセ
キュリティの今後
何を理解してほしいか
何を理解してほしいか
・2000年くらいからのセキュリティ史
・セキュリティの流れ
・歴史を学ぶ意味
ご静聴ありがとう
ございました

Mais conteúdo relacionado

Mais procurados

防御から謝罪まで・・・WordPressにヤマを張るっ!
防御から謝罪まで・・・WordPressにヤマを張るっ!防御から謝罪まで・・・WordPressにヤマを張るっ!
防御から謝罪まで・・・WordPressにヤマを張るっ!
yoshinori matsumoto
 
WordPressセキュリティの 心配事を吹き飛ばせ! WordCamp Kansai 2016
WordPressセキュリティの心配事を吹き飛ばせ! WordCamp Kansai 2016WordPressセキュリティの心配事を吹き飛ばせ! WordCamp Kansai 2016
WordPressセキュリティの 心配事を吹き飛ばせ! WordCamp Kansai 2016
yoshinori matsumoto
 

Mais procurados (20)

防御から謝罪まで・・・WordPressにヤマを張るっ!
防御から謝罪まで・・・WordPressにヤマを張るっ!防御から謝罪まで・・・WordPressにヤマを張るっ!
防御から謝罪まで・・・WordPressにヤマを張るっ!
 
MongoDBの脆弱性診断 - smarttechgeeks
MongoDBの脆弱性診断 - smarttechgeeksMongoDBの脆弱性診断 - smarttechgeeks
MongoDBの脆弱性診断 - smarttechgeeks
 
ソースで学ぶ脆弱性診断 - SmartTechGeeks #2
ソースで学ぶ脆弱性診断 - SmartTechGeeks #2ソースで学ぶ脆弱性診断 - SmartTechGeeks #2
ソースで学ぶ脆弱性診断 - SmartTechGeeks #2
 
OWASP Testing Guide からはじめよう - セキュリティ診断技術の共有、そして横展開
OWASP Testing Guide からはじめよう - セキュリティ診断技術の共有、そして横展開OWASP Testing Guide からはじめよう - セキュリティ診断技術の共有、そして横展開
OWASP Testing Guide からはじめよう - セキュリティ診断技術の共有、そして横展開
 
脆弱性診断って何をどうすればいいの?(おかわり)
脆弱性診断って何をどうすればいいの?(おかわり)脆弱性診断って何をどうすればいいの?(おかわり)
脆弱性診断って何をどうすればいいの?(おかわり)
 
Vulsで始めよう!DevSecOps!
Vulsで始めよう!DevSecOps!Vulsで始めよう!DevSecOps!
Vulsで始めよう!DevSecOps!
 
ビルトイン・セキュリティのススメ Dev Days 2015 Tokyo - Riotaro OKADA
ビルトイン・セキュリティのススメ Dev Days 2015 Tokyo - Riotaro OKADAビルトイン・セキュリティのススメ Dev Days 2015 Tokyo - Riotaro OKADA
ビルトイン・セキュリティのススメ Dev Days 2015 Tokyo - Riotaro OKADA
 
天職の就き方 〜 ぼくらが旅に出る理由 Part 2 #ssmjp 1501
天職の就き方 〜 ぼくらが旅に出る理由 Part 2 #ssmjp 1501天職の就き方 〜 ぼくらが旅に出る理由 Part 2 #ssmjp 1501
天職の就き方 〜 ぼくらが旅に出る理由 Part 2 #ssmjp 1501
 
脆弱性診断研究会 第34回セミナー資料
脆弱性診断研究会 第34回セミナー資料脆弱性診断研究会 第34回セミナー資料
脆弱性診断研究会 第34回セミナー資料
 
WordPressセキュリティの 心配事を吹き飛ばせ! WordCamp Kansai 2016
WordPressセキュリティの心配事を吹き飛ばせ! WordCamp Kansai 2016WordPressセキュリティの心配事を吹き飛ばせ! WordCamp Kansai 2016
WordPressセキュリティの 心配事を吹き飛ばせ! WordCamp Kansai 2016
 
第32回Websig会議「クラウドは○○を共有するサービス」
第32回Websig会議「クラウドは○○を共有するサービス」第32回Websig会議「クラウドは○○を共有するサービス」
第32回Websig会議「クラウドは○○を共有するサービス」
 
【スカイアーチ】Webサイトを脆弱性攻撃から守る
【スカイアーチ】Webサイトを脆弱性攻撃から守る【スカイアーチ】Webサイトを脆弱性攻撃から守る
【スカイアーチ】Webサイトを脆弱性攻撃から守る
 
今夜わかるWebアプリケーション脆弱性診断 (OWASP Day 758 / 2018)
今夜わかるWebアプリケーション脆弱性診断 (OWASP Day 758 / 2018)今夜わかるWebアプリケーション脆弱性診断 (OWASP Day 758 / 2018)
今夜わかるWebアプリケーション脆弱性診断 (OWASP Day 758 / 2018)
 
脆弱性スキャナVulsで始めるセキュリティ対策
脆弱性スキャナVulsで始めるセキュリティ対策脆弱性スキャナVulsで始めるセキュリティ対策
脆弱性スキャナVulsで始めるセキュリティ対策
 
Mix Leap 0214 security
Mix Leap 0214 securityMix Leap 0214 security
Mix Leap 0214 security
 
ライブコーディングとデモで理解するWebセキュリティの基礎
ライブコーディングとデモで理解するWebセキュリティの基礎ライブコーディングとデモで理解するWebセキュリティの基礎
ライブコーディングとデモで理解するWebセキュリティの基礎
 
参加しよう!Hardening Project #h10v #h・v
参加しよう!Hardening Project #h10v #h・v参加しよう!Hardening Project #h10v #h・v
参加しよう!Hardening Project #h10v #h・v
 
アプリケーションデリバリーのバリューチェイン
アプリケーションデリバリーのバリューチェインアプリケーションデリバリーのバリューチェイン
アプリケーションデリバリーのバリューチェイン
 
フリーでやろうぜ!セキュリティチェック!
フリーでやろうぜ!セキュリティチェック!フリーでやろうぜ!セキュリティチェック!
フリーでやろうぜ!セキュリティチェック!
 
セキュア開発の<s>3つの</s>敵
セキュア開発の<s>3つの</s>敵セキュア開発の<s>3つの</s>敵
セキュア開発の<s>3つの</s>敵
 

Destaque

Destaque (20)

JavaScript難読化読経
JavaScript難読化読経JavaScript難読化読経
JavaScript難読化読経
 
HTTP/2, QUIC入門
HTTP/2, QUIC入門HTTP/2, QUIC入門
HTTP/2, QUIC入門
 
SSL/TLSの基礎と最新動向
SSL/TLSの基礎と最新動向SSL/TLSの基礎と最新動向
SSL/TLSの基礎と最新動向
 
経営者・マネージャーが知るべき情報セキュリティ
経営者・マネージャーが知るべき情報セキュリティ経営者・マネージャーが知るべき情報セキュリティ
経営者・マネージャーが知るべき情報セキュリティ
 
なぜ情報漏洩事故は繰り返されるのか? ~当社の運用事例にみる、サイバー攻撃の実際と効果的な対策~ NTTコミュニケーションズ セキュリティ・エバンジェリス...
なぜ情報漏洩事故は繰り返されるのか? ~当社の運用事例にみる、サイバー攻撃の実際と効果的な対策~ NTTコミュニケーションズ セキュリティ・エバンジェリス...なぜ情報漏洩事故は繰り返されるのか? ~当社の運用事例にみる、サイバー攻撃の実際と効果的な対策~ NTTコミュニケーションズ セキュリティ・エバンジェリス...
なぜ情報漏洩事故は繰り返されるのか? ~当社の運用事例にみる、サイバー攻撃の実際と効果的な対策~ NTTコミュニケーションズ セキュリティ・エバンジェリス...
 
企業ICTのリスクマネジメントを強化する3つの視点 NTTコミュニケーションズセキュリティエバンジェリスト竹内文孝
企業ICTのリスクマネジメントを強化する3つの視点 NTTコミュニケーションズセキュリティエバンジェリスト竹内文孝企業ICTのリスクマネジメントを強化する3つの視点 NTTコミュニケーションズセキュリティエバンジェリスト竹内文孝
企業ICTのリスクマネジメントを強化する3つの視点 NTTコミュニケーションズセキュリティエバンジェリスト竹内文孝
 
IT系エンジニアのためのプレゼンテーション入門
IT系エンジニアのためのプレゼンテーション入門IT系エンジニアのためのプレゼンテーション入門
IT系エンジニアのためのプレゼンテーション入門
 
強くなるためのプログラミング -プログラミングに関する様々なコンテストとそのはじめ方-#pyconjp
強くなるためのプログラミング -プログラミングに関する様々なコンテストとそのはじめ方-#pyconjp強くなるためのプログラミング -プログラミングに関する様々なコンテストとそのはじめ方-#pyconjp
強くなるためのプログラミング -プログラミングに関する様々なコンテストとそのはじめ方-#pyconjp
 
MySQLテーブル設計入門
MySQLテーブル設計入門MySQLテーブル設計入門
MySQLテーブル設計入門
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
 
Docker入門 - 基礎編 いまから始めるDocker管理
Docker入門 - 基礎編 いまから始めるDocker管理Docker入門 - 基礎編 いまから始めるDocker管理
Docker入門 - 基礎編 いまから始めるDocker管理
 
【Interop Tokyo 2015】 DC 2: Cisco ACI とファイアウォール&ロード バランサ連携
【Interop Tokyo 2015】 DC 2: Cisco ACI とファイアウォール&ロード バランサ連携【Interop Tokyo 2015】 DC 2: Cisco ACI とファイアウォール&ロード バランサ連携
【Interop Tokyo 2015】 DC 2: Cisco ACI とファイアウォール&ロード バランサ連携
 
Seccamp 2016 チューター成果報告
Seccamp 2016 チューター成果報告Seccamp 2016 チューター成果報告
Seccamp 2016 チューター成果報告
 
Jun,2015 two months hp virtual event
Jun,2015 two months hp virtual eventJun,2015 two months hp virtual event
Jun,2015 two months hp virtual event
 
政府機関における情報セキュリティ対策について
政府機関における情報セキュリティ対策について政府機関における情報セキュリティ対策について
政府機関における情報セキュリティ対策について
 
Shell shock事件が明らかにするあなたの組織における情報セキュリティ力
Shell shock事件が明らかにするあなたの組織における情報セキュリティ力Shell shock事件が明らかにするあなたの組織における情報セキュリティ力
Shell shock事件が明らかにするあなたの組織における情報セキュリティ力
 
20150717_情報漏洩, マイナンバー, ビッグデータ/IoTセキュリティ対応を見据えた これからのセキュリティ対策のポイント by 笹原英司
20150717_情報漏洩, マイナンバー, ビッグデータ/IoTセキュリティ対応を見据えた これからのセキュリティ対策のポイント by 笹原英司20150717_情報漏洩, マイナンバー, ビッグデータ/IoTセキュリティ対応を見据えた これからのセキュリティ対策のポイント by 笹原英司
20150717_情報漏洩, マイナンバー, ビッグデータ/IoTセキュリティ対応を見据えた これからのセキュリティ対策のポイント by 笹原英司
 
インフラセキュリティブートキャンプ #seccamp
インフラセキュリティブートキャンプ #seccampインフラセキュリティブートキャンプ #seccamp
インフラセキュリティブートキャンプ #seccamp
 
SecurityCamp2015「CVE-2015-4483解説」
SecurityCamp2015「CVE-2015-4483解説」SecurityCamp2015「CVE-2015-4483解説」
SecurityCamp2015「CVE-2015-4483解説」
 
ID連携入門 (実習編) - Security Camp 2016
ID連携入門 (実習編) - Security Camp 2016ID連携入門 (実習編) - Security Camp 2016
ID連携入門 (実習編) - Security Camp 2016
 

Semelhante a これからのWebセキュリティ フロントエンド編 #seccamp

【社内LT】バイタリフィ ライトニングトーク -セキュリティについて-
【社内LT】バイタリフィ ライトニングトーク -セキュリティについて-【社内LT】バイタリフィ ライトニングトーク -セキュリティについて-
【社内LT】バイタリフィ ライトニングトーク -セキュリティについて-
Vitalify.Inc
 
Word press セキュリティ show!!
Word press セキュリティ show!!Word press セキュリティ show!!
Word press セキュリティ show!!
yoshinori matsumoto
 

Semelhante a これからのWebセキュリティ フロントエンド編 #seccamp (20)

「安全なウェブサイトの作り方」を読もう
「安全なウェブサイトの作り方」を読もう「安全なウェブサイトの作り方」を読もう
「安全なウェブサイトの作り方」を読もう
 
かんたん!わかりやすいWafのおはなし
かんたん!わかりやすいWafのおはなしかんたん!わかりやすいWafのおはなし
かんたん!わかりやすいWafのおはなし
 
DVWAで爆上げWebAppセキュリティスキル@shunaroo
DVWAで爆上げWebAppセキュリティスキル@shunarooDVWAで爆上げWebAppセキュリティスキル@shunaroo
DVWAで爆上げWebAppセキュリティスキル@shunaroo
 
【社内LT】バイタリフィ ライトニングトーク -セキュリティについて-
【社内LT】バイタリフィ ライトニングトーク -セキュリティについて-【社内LT】バイタリフィ ライトニングトーク -セキュリティについて-
【社内LT】バイタリフィ ライトニングトーク -セキュリティについて-
 
Mickey pac sec2016_final_ja
Mickey pac sec2016_final_jaMickey pac sec2016_final_ja
Mickey pac sec2016_final_ja
 
20200214 the seminar of information security
20200214 the seminar of information security20200214 the seminar of information security
20200214 the seminar of information security
 
気になる隣のセキュリティ(話してみましょう編)
気になる隣のセキュリティ(話してみましょう編)気になる隣のセキュリティ(話してみましょう編)
気になる隣のセキュリティ(話してみましょう編)
 
20160208 power cms_cloud_public
20160208 power cms_cloud_public20160208 power cms_cloud_public
20160208 power cms_cloud_public
 
20160125 power cms_cloud_public
20160125 power cms_cloud_public20160125 power cms_cloud_public
20160125 power cms_cloud_public
 
『サイバーセキュリティ経営ガイドライン』開発現場への影響の話
『サイバーセキュリティ経営ガイドライン』開発現場への影響の話『サイバーセキュリティ経営ガイドライン』開発現場への影響の話
『サイバーセキュリティ経営ガイドライン』開発現場への影響の話
 
20160209 power cms_cloud_public
20160209 power cms_cloud_public20160209 power cms_cloud_public
20160209 power cms_cloud_public
 
G-study 第6回 LT4:セキュリティパッチを放置すると・・・
G-study 第6回 LT4:セキュリティパッチを放置すると・・・G-study 第6回 LT4:セキュリティパッチを放置すると・・・
G-study 第6回 LT4:セキュリティパッチを放置すると・・・
 
通信の安全を守るためにエンジニアができること
通信の安全を守るためにエンジニアができること通信の安全を守るためにエンジニアができること
通信の安全を守るためにエンジニアができること
 
Word press セキュリティ show!!
Word press セキュリティ show!!Word press セキュリティ show!!
Word press セキュリティ show!!
 
Webセキュリティエンジニアから見るAWSセキュリティ
Webセキュリティエンジニアから見るAWSセキュリティWebセキュリティエンジニアから見るAWSセキュリティ
Webセキュリティエンジニアから見るAWSセキュリティ
 
正しく恐れるクラウドのセキュリティ
正しく恐れるクラウドのセキュリティ正しく恐れるクラウドのセキュリティ
正しく恐れるクラウドのセキュリティ
 
最近話題になったセキュリティ @ 第13回 Creators MeetUp
最近話題になったセキュリティ @ 第13回 Creators MeetUp最近話題になったセキュリティ @ 第13回 Creators MeetUp
最近話題になったセキュリティ @ 第13回 Creators MeetUp
 
2014年10月江戸前セキュリティ勉強会資料 -セキュリティ技術者になるには-
2014年10月江戸前セキュリティ勉強会資料 -セキュリティ技術者になるには-2014年10月江戸前セキュリティ勉強会資料 -セキュリティ技術者になるには-
2014年10月江戸前セキュリティ勉強会資料 -セキュリティ技術者になるには-
 
06.超初心者向けセキュリティ入門(.netの解析と対策)
06.超初心者向けセキュリティ入門(.netの解析と対策)06.超初心者向けセキュリティ入門(.netの解析と対策)
06.超初心者向けセキュリティ入門(.netの解析と対策)
 
FUJITSUファミリ会 2020 秋季大会用プレゼン #1 「新たなサイバー攻撃に 関する脅威の認知」
FUJITSUファミリ会 2020 秋季大会用プレゼン #1 「新たなサイバー攻撃に 関する脅威の認知」FUJITSUファミリ会 2020 秋季大会用プレゼン #1 「新たなサイバー攻撃に 関する脅威の認知」
FUJITSUファミリ会 2020 秋季大会用プレゼン #1 「新たなサイバー攻撃に 関する脅威の認知」
 

これからのWebセキュリティ フロントエンド編 #seccamp

Notas do Editor

  1. ・ChatWork でWebフロントエンドを担当 ブラウザ上で動くScalaを書いてます。 基本的にセキュリティとの関わりは趣味の範疇。MixiさんからAmazonギフト券もらったくらいの経験 ・きっかけは「趣味と実益のスタック破壊」 これは「いかに対象のコード上でバッファオーバーフローやヒープオーバーフローを起こすか」という視点で書かれた文書。非常に面白かった すでにサイトからは消えていてWebArchivesでのみ読める 「セキュリティが趣味になる」ということを知ったのは衝撃だった ・セキュリティ関係での活動はApplicationCache poisoningが主 ApplicationCache poisoningはけっこう昔から一般的に言われていることなので取り立てて言う話ではない DNS関係も好き
  2. 今までセキュリティとは開発とは別に考えられていた。 現在ではどういったアーキテクチャを採用するかによってセキュリティにかかるコストが大きく変わってしまっている。 セキュリティを無視して開発はできないし、開発を無視してセキュリティは語れない
  3. 「これからの」話をするということは未来の話をすることになる 未来の話をするなら過去を知らなくてはいけない
  4. まだこの頃は「フロントエンド」という分類どころか「Webセキュリティ」という分野すらなかった。 この頃の攻撃は各クライアントを直接攻撃し、ローカルにあるファイルを奪取するのが一般的だった。 実際JavaScriptを有効にしているだけで受ける攻撃も多かった。 「JavaScriptを有効にしたまま怪しいサイトを訪問する」のは危険な行為だった。
  5. 現存していない技術も多い。 この時すでにOriginの詐称が攻撃の目標として認識されていたのが興味深い。
  6. CSSもセキュリティの歴史とは無縁ではなかった。 Nimda、Klezと言ったウィルスはブラウザの脆弱性をついた攻撃も使っていた 行政系のサイトでは未だに「スクリプトによる貼り付け処理」を要求するサイトが存在している
  7. office氏はそれより前から知っていたので事件は結構衝撃だった 当時XSSはそもそも存在や危険性自体を認識できている人のほうが少数派だった
  8. この辺りから個別のWebサイトに対する攻撃が始まる。 逆にここまでWebサイトに対する標的型攻撃は少なかった。 Webサイトのドメインが価値を持ちだした時期。
  9. 「安全なウェブサイトの作り方」が2006年。 そろそろ初版から10年が経つ。 「Wiki関係」はWikipediaの話ではないです
  10. このへんで仕様レベルのセキュリティが指摘されるようになる。 「ログに残らない」、「サーバ側で対処できない」というところからDOM based XSSが単純なXSSと比べて特色があるとみなされるようになった。
  11. 仕様上のセキュリティホールがかなり無理やり修正される。
  12. セキュリティ上の問題がある場合、標準機能のサポートが切られるようになる 標準仕様の進化にともなって発生するセキュリティホールの出現 WebViewの問題は一部放置されつつ、OSの世代交代でうやむやに
  13. Flash playerはちょいちょい出つつもswf経由のXSSは過去の脆弱な実装を改めて掘り返した点で影響が大きかった。 文字コードはある継続的に報告されているが、ここまできても依然安全な実装が難しいという点では興味深い 壊れた文字コードや文字コードの強制指定は対応が難しい Android WebViewはWebViewを使っているかなりの割合のアプリが一斉にアップデートするという自体に パスワードリストアタックは過去に流出したパスワードリストが流用されているため「攻撃側に蓄積された情報によって脅威が増える」点で興味深い パスワード自体の限界が指摘されるようになる
  14. VirtualDOMに関しては後で詳しく説明します。
  15. ここまでJavaはずっとセキュリティ情報に登場し続けてきた。 もちろん機能が豊富な点も原因だとは思うが、すでにブラウザベンダー以外で一般的にブラウザに要求されるレベルのセキュアな実装を実現することは困難になっているということなのかもしれない
  16. ここまで過去の脆弱性をまとめてみました。 ここからは現在進んでいる話をしたいと思います。
  17. 暗号化通信必須のWeb標準が登場 APIレベルではServiceWorker等の暗号化時のみ可能なAPIの登場 通信レベルでもhttp2は事実上暗号化前提になっている これは仕様上要求はされていないが、途中の通信機器の影響を考えると実際には必須と考えていい 暗号化前提は機能拡張においてセキュリティ以上に大きな意味を持っている
  18. テンプレートの自動文脈解析での自動エスケープから、静的型解析からの事前検証に進みつつある。 TypeScript、flowなどからフロントエンドの静的型解析が一般化しつつある。 そこにVirtualDOMが加わることでDOMに抽象層が生まれてStrict Auto Escaping相当の事前検証が実現しつつある。 これが実現するとアプリケーション実装に起因するXSSを起こすのは非常に困難になる。 ClosureToolsは流れを牽引しているがあまり広まっていない。 使用シーンが限られており、ツールとして使いにくい。 セキュリティだけの技術、開発者を無視した技術は広まらない。
  19. ここでは国内で有名なプリケーションベンダーをあげたが、すでにブラウザベンダーでは脆弱性報奨金制度は一般化している。 さらに、ブラウザベンダーを通じて仕様策定にも影響している。 仕様策定やブラウザの実装側でもバグハンターがいる前提の開発が行われている。
  20. ここからはタイトルの話に戻って未来の話をしたいと思います。
  21. ・Webのアプリ化とアプリのWeb化 Webの進化にともなって境界が曖昧になっていく。 セキュリティでも曖昧になっていくだろう。 Webのセキュリティ問題がアプリで再現され、アプリのセキュリティが再現されるだろう。 その中間では新しい攻撃方法が登場するだろう。 ・CSPの普及と進化 結構微妙な位置づけになっている。 現状のものでは柔軟性が低かったりブラウザ互換の問題が合って使われていない。 これも「開発者を無視したセキュリティ技術は広まらない」例。 ・機能追加とパーミッションモデル これまでの機能追加は既存のセキュリティモデルの上に可能な範囲だった。 これからは「ユーザの許可を得る」という新しいセキュリティモデルの上で、より大きな権限を得ることができるようになるだろう。
  22. セキュリティモデルはこれまで端末やサービスによって変わってきた。 スマホのセキュリティモデルはPCのものと違う。 PCは共有されることを想定するが、スマホは共有されることを想定しない。 この前提がないと二段階認証を理解するのが難しい。 時計型端末でパスワードを入力させるのは難しいだろう。 リング型端末では指紋認証もできないかもしれない。 そもそも認証とはなにか?、権限とはなにか?を考える必要がある。 サービスや対象やユーザによって「何から何をどうするのか」は変わる。 今後、これを定義するのもセキュリティの範囲になるだろう。
  23. 主にこの3つに収束していくのではないか ・バグハンター 主にフリーランスでバグを狩る 仕様やOS、ブラウザ、サイト等のバグを見つけて報奨金を得る 腕試、売名目的での参加も含まれる ブラウザ、OS等に対する純粋なセキュリティ技術が求められる ・セキュリティアーキテクト 開発側と連携して、開発工程にセキュリティ機構を組み込む 開発チーム内でセキュリティを主に担当しつつ開発自体にも参加する 開発スキルが求められる 現在のSWETに近いポジションになるだろう。 ・セキュリティマネージャー 企業内でインシデントコントロールや、外部のバグハンターと連携して報奨金制度の運営などを行う 外部の監査組織と内部の開発チームとの橋渡しや、継続的なセキュリティ監査等を行う マネージメントスキルが求められる
  24. ・攻撃者視点 フロントエンドでの攻撃はログが残りづらいので攻撃が発見されづらい。試行錯誤に制限を受けない。 ソースが見えることも強い。圧縮がかかっていても大きな手がかりになる。 ・実装者視点 反射型XSSはどの入力経路から攻撃が可能かはっきりしないため値の扱いが難しい。referrerは要エスケープ?、location.hashはデコード必要? 誰がどこまでエスケープするかがはっきりしていないためXSSの原因にもなる。jQueryのCSS Selectorとか ・解析者視点 location.hash経由のDOM based XSSの場合、そもそも攻撃されていることを検知することも困難。 攻撃されていることがわかったあとも「どういう攻撃を受けたのか?」「誰が攻撃を受けたのか?」がわからない可能性が高いので被害回復が困難になる可能性が高い。
  25. すでにMozillaや仕様策定団体などはバグハンターがセキュリティリスクを見つけることを前提に開発や仕様策定を進めている 報奨金制度が広まることで、サイトの安全性を外部からある程度検証することが可能になる 「XSS一件5万」よりも「XSS一件10万」のサイトの方がXSSに関する検査が行われる頻度は高いはず (実際には「いつから運営しているのか?」、「開発速度はどのくらいか?」等に行って変わるので単純に比較はできないが) 「お金をかけて安全にする」ことができる。これまでは「機能数=検証期間=価格」だったのが、純粋に金額を積めば安全性が買えるようになった。 ただ、まだこれを運営できる人間が足りない。 実際企業で導入しようとした時に「検証ルールの策定」「金額換算」「重複申告の処理」「開発側への共有と修正までの追跡」「報告者とのコミュニケーション」等々ができる人が非常に少ない。
  26. 技術的な問題点は少なくなっていくだろう これまでのような開発者個人の技術ではなく、フレームワークの選定や設計技術の割合が大きくなっていく セキュアなフレームワークや設計を採用しているかでセキュリティに圧倒的な差が出てしまう そして、アプリケーションレイヤーの問題が主題になっていく この問題は今後も継続するだろう ただ、それはセキュリティの問題なのか? QA「品質管理」の文脈に取り込まれて行くのではないか セキュリティエンジニアの主流はバグハンターになるのではないか 実際にはセキュアな設計を採用できず、これまでのようなセキュリティエンジニアが必要な現場も多いだろう でも本来であれば一部の高スキルなバグハンターが基板部分を叩いてみんなそれに乗れる方がいい これは願望でしかないけど、「All or nothing」ではないはず
  27. ・2000年くらいからのセキュリティ史 特にWebフロントエンドのセキュリティは一時期大きな問題気なったけど、現在は解決に向けて進んでてそろそろ大きな成果になりそう。 ・セキュリティの流れ 技術的なブレークスルー 潮流はどこに向かっているのか セキュリティの攻撃方法、防衛方法、業界潮流、それぞれが遅延して流れている。 だんだん加速する流れの中で、常に先に進まなければならない。 流れの先端は攻撃方法。だからセキュリティでは防衛側も攻撃方法が必須。 自分で攻撃してみることが推奨される。 ・歴史を学ぶ意味 正直そんなにない。昔はブラウザにバッファオーバーフローがあったことを知っててもほとんど意味はない。 ただ、業界視点では意味がある。専門家として歴史を知らないことは許されない。