ES6時代におけるWeb開発者とセキュリティ業界の乖離

15,564 views

Published on

開発側から見たセキュリティ業界に 対する懸念と求めるもの

Published in: Internet

ES6時代におけるWeb開発者とセキュリティ業界の乖離

  1. 1. ES6時代における Web開発者と セキュリティ業界の乖離 開発側から見たセキュリティ業界に 対する懸念と求めるもの
  2. 2. 過激派 注意!
  3. 3. いまどきのWeb開発 • 静的なHTML+API • アプリとWebの共通化、SPA • コンパイルされたJS • AltJS、Closure Compiler • MV*、データバインディング • Vue.js、AngularJS • Virtual DOM • React
  4. 4. 静的なHTML+API • サーバサイドではHTMLを生成しない • スマホ用アプリとWebでバックエンドを共通化 • Single Page Applicationsの台頭 • JSON等のAPIのみのレスポンス • 脆弱性検査する側 • 「ページ単位」でのボリューム管理の破たん • 反射型、蓄積型XSSの根絶 • もちろんSQLインジェクションなども存在しない
  5. 5. コンパイルされたJS • AltJS、Closure Compiler等の利用 • TypeScript、CoffeeScript、JSX • Closure Compiler - オートエスケープ • 脆弱性検査する側 • minifyされたJavaScriptが読めない • 使用された言語上での注意すべき点がわからない
  6. 6. MV*、データバインディング • MVVM、MVCフレームワークの利用 • Vue.js、AngularJSなど • 生でDOMを触らない • HTMLへのデータバインディング機構 • 脆弱性検査する側 • DOM-based XSSさえ発生しにくい • コードが読めない • 使用されたフレームワークでの注意すべき点がわか らない (AngularJSでのカスタムディレクティブなど)
  7. 7. Virtual DOM • Reactに代表されるDOM操作の革命 • JS Objとして仮想的なDOM構造を持つ • JS ObjからDOMへの一方的な吐き出し • 脆弱性検査する側 • DOM-based XSSはほとんど根絶 • コードが読めない • 見るべき項目が分からない
  8. 8. いまどきのWeb開発 • 脆弱性検査する側 • 言語やフレームワークごとの注意すべき点というの がわからない • そもそもコードが読めない • 従来の脆弱性は原理上ほとんど発生し得ない • どういう観点で検査をすればいいのかわからない
  9. 9. よくある意見 「全員がそういう開発手法ではない」
  10. 10. 「全員がそういう開発手法ではない」 • 「従来からの開発手法が大半だから、そういう 開発者のために、これまで通りの検査が必要」 • それって「ただのツールが使えない人」だよね • 新しい開発手法ならそもそも脆弱性が発生しな い • セキュリティ向上のためには新しい手法を広め るほうが意義があるのでは

×