Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

XSSの評価基準とRIPSプラグイン的なものを作った

1.016 Aufrufe

Veröffentlicht am

ゼミでタイトル通りのものを作りました

Veröffentlicht in: Technologie
  • Loggen Sie sich ein, um Kommentare anzuzeigen.

  • Gehören Sie zu den Ersten, denen das gefällt!

XSSの評価基準とRIPSプラグイン的なものを作った

  1. 1. Topics in XSS – Security Seminar 2016 Aug.8,2016
  2. 2. Roadmap 1. Introduction and Background 2. Challenges 3. Our Method 4. Demo 5. Conclusion and Future Works
  3. 3. Introduction / Background1. 0
  4. 4. Web Security Statistics1. 1 WhiteHat Security “Website Security Statistics Report”, May 2013 WhiteHat Security “Website Security Statistics Report”, May 2015 86% of all tested websites had at least one serious vulnerability. 33% of all tested websites had at least one serious vulnerability exposed every single day of 2012. 5 to 32 vulnerabilities per site in average.
  5. 5. Types of Security Vulnerabilities 1. 2 • Injection Flaws (SQL injection…etc.) • Broken Authentication / Session Management • Cross-site Scripting (XSS) • Insecure Direct Object References • Security Misconfiguration • Sensitive Data Exposure • Missing Function Level Access Control • Cross-site Request Forgery (CSRF) • Using Components with Known Vulnerabilities • Invalidated Redirects and Forwards OWASP Top 10 (2013)
  6. 6. Types of Security Vulnerabilities 1. 2 • Injection Flaws (SQL injection…etc.) • Broken Authentication / Session Management • Cross-site Scripting (XSS) • Insecure Direct Object References • Security Misconfiguration • Sensitive Data Exposure • Missing Function Level Access Control • Cross-site Request Forgery (CSRF) • Using Components with Known Vulnerabilities • Invalidated Redirects and Forwards OWASP Top 10 (2013)
  7. 7. Reflective XSS Attack Demo1. 3
  8. 8. Existing XSS Prevention Methods 1. 4 For Example: Use htmlspecialchars when needed print(htmlspecialchars("<script>document.write('a bc');</script>")); ↓ &lt;script&gt;document.write('abc');&lt;/script&gt;
  9. 9. How Reflective XSS Attacks Work 1. 5 ① 攻撃スクリプトを 含むURLを作成 攻撃者 被害者 ② URLをリクエスト ③ 攻撃スクリプトを含むページ ④ 攻撃スクリプトが実行 ウェブサイト
  10. 10. Threats of XSS Attacks 1. 6 • XSS accounts for 43% of all web security vulnerabilities Gupta, “XSS attacks and defense mechanisms: classification and state-of-the-art” (2015)
  11. 11. Threats of XSS Attacks (cont.) 1. 6 Threats include: • Session hijacking • Misinformation • Change of user settings • Cookie theft • Phishing • … and much more V. Nithya et al. ,“A Survey on Detection and Prevention of Cross-Site Scripting Attack” (2015)
  12. 12. Types of XSS Attacks 1. 7 Reflective XSS Attacks Persistent XSS Attacks DOM-Based XSS Attacks
  13. 13. Types of Analysis 1. 8 • 自動的に問題点を探すために • 静的解析 ソースコードだけを解析して、問題点を探す → すべての条件分岐について調査できる • 動的解析 コードを実行して、実行過程や結果から問題点を探す → 仕様が分からなくても結果が出せる • Fuzzing 危険そうなデータをたくさん入力して、問題が起きない か調べる
  14. 14. Static Code Analysis - RIPS 1. 9 A static code analyzer for vulnerabilities in PHP scripts.
  15. 15. Challenges2. 0
  16. 16. Challenges 2. 1 • RIPSでは、静的解析によって、脆弱性をたくさん 見つけられるが、各脆弱性の緊急度までは把握で きない。 → 各脆弱性の危険度/緊急度を点数化したい。 • 数値化する上で、共通の評価基準が必要。 → IPA/FIRSTによる、共通脆弱性評価システム CVSSを利用することを検討。
  17. 17. Challenges 2. 1 • CVSSは、情報システム全般の脆弱性に対する共 通評価基準であり、XSS攻撃の評価を十分に行う ことができない。 → XSS攻撃に特化した評価基準が欲しい。
  18. 18. Our Method3. 0
  19. 19. 3. 1 XSS攻撃に特化した評価基準が欲しい。 → XSS攻撃に特化した独自の評価基準(XVSS)を 作成し、その評価基準に基づき、Fuzzingを行い、 脆弱性の深刻度を表す数値を算出した。 その後、静的解析のツールであるRIPSに点数を 表示し、ツールとしての利便性の向上を図った。
  20. 20. 独自のXSS攻撃評価基準(XVSS) に基づいて計算する Calculating the Numeric Severity Level 3. 2 ブラウザごとに、cookieが取られたか、alertが表示されたか、 もしくは何も起きなかったかという情報を取得 RIPSの結果ページに表示する
  21. 21. Calculating the Numeric Severity Level (cont.)3. 2 大前提 この評価方法は、Webアプリケーション自体のみを対象とし、 例えばサイトの運営状況などはパラメータとして考慮しない。 仮に「あるWebアプリケーションの脆弱性が すべて列挙できた場合」を想定している。
  22. 22. Calculating the Numeric Severity Level (cont.)3. 2利用者関与の度合い 共通点数(R) Stored XSS 1 Reflective, DOM-based XSS 0.5 影響の種類 機密性(A) 完全性(B) 可用性 (C) セッションハイジャック 1 0 0 画面の書き換え 0 0.8 0.9 アラート 0 0.2 0.1 別ページが読める 0.9 0 0 クッキーの書き換え 0.35 0.6 0.4 別ページへのPOSTが可能 0 1 0.3 自身のページが読める 0.5 0 0 位置情報の取得 0.2 0 0
  23. 23. Calculating the Numeric Severity Level (cont.)3. 2点数 = R * ( 1 – ( 1 – Aの最大値 ) * ( 1 – Bの最大値) * (1 – C の最大値 ) ) ・R,A,B,Cを確率(のようなもの)と考える。 ・( 1 – Aの最大値 ) * ( 1 – Bの最大値) * (1 – C の最大値 ) 影響の種類の論理積。脆弱性のない確率(のようなもの) ・( 1 – ( 1 – Aの最大値 ) * ( 1 – Bの最大値) * (1 – C の最大値 ) ) -1 しているので、脆弱である確率 利用者関与の度合い 共通点数(R) Stored XSS 1 Reflective, DOM-based XSS 0.5 影響の種類 機密性(A) 完全生(B) 可用性(C) セッションハイジャック 1 0 0 画面の書き換え 0 0.8 0.9 アラート 0 0.2 0.1 別ページが読める 0.9 0 0 クッキーの書き換え 0.35 0.6 0.4 別ページへのPOSTが可能 0 1 0.3 自身のページが読める 0.5 0 0 位置情報の取得 0.2 0 0
  24. 24. Calculating the Numeric Severity Level (cont.)3. 2Parameters 利用者関与の度合い(R) 各影響の種類における、 機密性(A)、完全性(B)、可用性(C) R * ( 1 – ( 1 – Aの最大値 ) * ( 1 – Bの最大値) * (1 – C の最大 値 ) ) ブラウザごとに上記の点数を評価し、 シェア率を掛けて深刻度の評価点を算出する。
  25. 25. Our Method 3. 3 攻撃コードをPHPスクリプトに注入し、 ブラウザごとにcookieの奪取、alertを表示、 もしくは何も起きなかったなどを判定する 結果から脅威度の 点数を計算する 結果をRIPSの判定結果に表示する Attack Script PHP Source
  26. 26. Our Method (cont.)3. 3 攻撃コードをPHPスクリプトに注入し、 ブラウザごとにcookieの奪取、alertを表示、 もしくは何も起きなかったなどを判定する 結果から脅威度の 点数を計算する 点数、ブラウザごとの結果をRIPSの判定結果に表示する Attack Script PHP Source ブラウザごとの 安全性を評価 深刻度を計算し、 脆弱性のある箇所 とともにRIPS に表示
  27. 27. Demo Environment3. 4Windows 10 Pro (version 1511, build 10586.494) Chrome 52.0.2743.82m (64bit) Microsoft Edge 25.10586.0.0 Microsoftt EdgeHTML 13.10586 Mozilla Firefox 48.0 Internet Explorer 11.494.10586.0 Selenium ChromeDriver v2.9.248315 Microsoft WebDriver release 10586 geckodriver 0.10.0 InternetExplorerDriver 2.53.1.0 XAMPP version 5.6.23 - PHP 5.6.23 Zend Engine v2.6.0 - Apache/2.4.17 (Win32) ruby 2.3.1p112 x64-mingw32 RubyInstaller revision 54768 selenium-webdriver (3.0.0.beta2.1) ripsscanner/rips 2016.05.22 ccdd2a56dbc0077cbffd08d4aa9b14af0809831d
  28. 28. Demo4. 0
  29. 29. Conclusion / Future Works5. 0
  30. 30. Conclusion 5. 1 IPAによる共通脆弱性評価システム「CVSS」を 参考にしつつ、XSS攻撃に対する独自の評価システ ム「XVSS」を作成した。 入力したソースコードに対して、Fuzzingを自動的に 行い、その結果を、独自のXSS評価システム 「XVSS」の算出方法に基づいて分析し、ソース コードのセキュリティ上の深刻度を数値化するプロ グラムを作成した。
  31. 31. Conclusion (cont.) 5. 1 用意したXSS攻撃コードを4つの実行ブラウザ環境のう ち、Chrome上で実行した場合に、 最も低い深刻度の数値を得た。 ほかのブラウザに比べて、 ChromeではReflective XSSに対して特別な対策をして いる。
  32. 32. Future Works 5. 2 XVSSの妥当性を検討する。 現在、ブラウザから取得する状態が、 Cookie、alert、何もしないの3種類しかないので、 iframeなど種類が増やせるとより精度が良くなるかもし れない。
  33. 33. 工夫した点 / 新規性5. 3 • 点数を付けるという概念をXSSに導入した。 → 開発者が優先度の高い順番に対策出来る。 • 複数のブラウザを自動化して動的解析することで、 ブラウザごとのフィルタの挙動がわかるツールを開 発した。 →複数のブラウザに手動でテストするのは大変だが、 このツールを使うと自動でテストできる。 * 書いたコードの総数 650行

×