Share
Embed
Transcript
51 slides
-
NTT DATA INTELLILINK, Chia-Lung Hsieh NTTデータ先端技術 謝 佳龍 OWASP Documents
for Everyone それぞれの人のための OWASPドキュメント -
About Me • 台湾から来ました – I’m from Taiwan • Webアプリケーション診断
– I do web APP diagnosis • OWASP Top 10の日本語訳 – I translated the OWASP Top 10 2013 into Japanese About Me -
10 DOCUMENTS IN 45 MINUTES! 45分間で、10個のドキュメントを! Today we are going
to… 今日は、、、 Start! -
• 開発者? • 検証者? • 管理者? • CISO? • ハッカー?
• Developer? • Tester? • Administrator? • CISO • Haker? Who are you? -
• ASVS • Code Review Guide • Codes of Conduct
• Development Guide • Secure Coding Practices - Quick Reference Guide • SAMM • Testing Guide • Top 10 • AppSec Tutorial Series • AppSensor Project • CTF Project • Legal Project • Podcast Project • Virtual Patching Best Practices • And more more more… -
• OWASP Top 10 Risk • Software Assurance Maturity Model
(SAMM) • Development Guide • Secure Coding Practices - Quick Reference Guide • Code Review Guide • Testing Guide • Application Security Verification Standard (ASVS) • Codes of Conduct The Flagship Docs -
OWASP Code of Conduct 主旨 世の中の各組織にとって、アプリケーション・セキュ リティをやるための最低限の行動規範 The minimum baseline
for organizations to implement application security. 発端 2011, February 最新版 v1.17 @2013, March 日本語訳 なし not in Japanese ページ数 4 pages for each class of organization 対象 政府機関、教育機関、標準化団体、貿易組織、開 発組織、検証組織 For Government, Education, Standard, Trade, Certification, Development -
• take a glance! • 開発組織のために – 開発者と管理者向けの意識向上プログラムを設 ける。 –
セキュリティ・リスクの減軽をソフト開発工程の中 心に置く。 – 最新かつ堅牢なセキュリティ制御を正しく使用す る。 OWASP Code of Conduct -
OWASP Top 10 主旨 Webアプリケーションキュリティ意識向上のために、 最も重大なリスクを取り上げる有力なドキュメント A powerful awareness document
for web application security 発端 2004(2003) 最新版 v2013, June 日本語訳 あり also in Japanese ページ数 22 pages 対象 開発者、検証者、管理者、初心者、一般人。。。 For Developer, Tester, Management, Beginner, Everyone -
Secure Coding Practices Quick Reference Guide 主旨 開発者に安全な開発実務を素早く理解させるハイ レベルリファレンス A
quick checklist about secure coding for developers 発端 2010, August 最新版 v2 @2010, November 日本語訳 なし not in Japanese ページ数 17 pages 対象 開発者 For Developer -
• Quick Reference Guide – チェックリスト形式 • 技術に依存なし – 詳細な実装方法なし
– コーディングの要点だけ – 脆弱性や攻撃の観点なし Secure Coding Practices Quick Reference Guide -
• take a glance! • 入力検証 – 信頼できる場所(サーバ側)で全ての入力を検証 – 全ての入力に対し、適切な文字コードを設定
– 検証失敗した際に、入力を拒否 – 入力の範囲を検証 – 入力の長さを検証 – 可能な場合、ホワイトリストで検証 – など Secure Coding Practices Quick Reference Guide -
Developer’s Guide 主旨 OWASP最初の最もダウンロードされているドキュメ ント。安全なソフト開発工程に焦点を当てる。 The first most downloaded document.
Focusing on the secure software development. 発端 2002, June 最新版 V2.0.1, @2005, July (dramatic re-write in 2014!) 日本語訳 あるが、2002年版です。 V2002 is with Japanese ページ数 93 --> 293 pages 対象 開発者、(検証者) For Developer, Tester -
• 開発者ガイドとは言え、、、 – How to determine be vulnerable? – How
to protect ? • 2014年版が劇的に書き直されている – 脆弱性と対策 から 安全なソフト開発工程 – アーキテクトと開発者のための安全なソフト実装 – AjaxやRESTful APIを使う 現代的なWebアプリケーション – モバイルアプリケーションも勿論! Developer’s Guide -
• 安全な開発原則 • 脅威リスクのモデリング • eコマース支払い • フィッシング詐欺 • Webサービス
• 認証 • 許可 • セッション管理 • データ検証 • インジェクション • エラー処理 • ファイルシステム • 管理者インタフェース • 暗号 • サーバ設定 • Dos攻撃 • など Developer’s Guide -
• Take a glance! • Logout – 全てのアプリケーションにログアウトが必要 • 確認方法
– ログアウトボタンの有無 – ログアウト後セッションの再利用可否 • 防止方法 – ログアウトを実装 – ログアウト時セッションの無効化とクッキー削除 Developer’s Guide -
Code Review Guide 主旨 世界初の脆弱性に対するソースコードレビュー仕組 みに焦点を当てるドキュメント。OWASPの2番目売 れているドキュメント。 The World’s first
document focusing on code review of certain vulnerability. 発端 2006 最新版 V1.1, @2008 (2014からv2.0作成) 日本語訳 なし not in Japanese ページ数 220 pages 対象 開発者 For Developer -
• コードレビューとは、お金や時間がかかるかもしれないが、セキュ リティ問題を検出する最も精確な方法である。 • 認証、認可、セッション管理などのセキュリティ制御別の視点 • SQLインジェクション、XSS、CSRFなどの脆弱性別の視点 • JAVA、ASP、PHPなどの言語別の視点 •
各制御別に、サンプルコード(Javaが多い)を交え対策方法を解説 しています。 • コードレビューのプロセスだけでなく、各脆弱性に焦点を当てる – 脆弱なコードサンプル • 言語別最適な実装 – JAVA, ASP, PHP, C++, MySQL, Flash Code Review Guide -
• SDLCにおけるコードレ ビュー • アプリケーション脅威 モデリング • 認証 • 認可
• セッション管理 • 入力検証 • エラー処理 • バッファオーバーフ ロー • OSインジェクション • SQLインジェクション • クロスサイトスクリプ ティング • クロスサイトリクエスト フォージェリ • など Code Review Guide -
• Take a glance! • 入力検証 – データ検証 – ビジネス検証
– 正規化 • Bad Example • Good Example public static void main(String[] args) { File x = new File("/cmd/" + args[1]); String absPath = x.getAbsolutePath(); } public static void main(String[] args) throws IOException { File x = new File("/cmd/" + args[1]); String canonicalPath = x.getCanonicalPath(); } Code Review Guide -
Testing Guide 主旨 最適な侵入テストフレームワークと詳細な侵入テス トガイドお用いて、組織内でテスト実施できます。 A best practice framework and
low level guide of penetration test. 発端 2003 最新版 v3.0, @2008 (2013から最新版作成中) 日本語訳 あり(v3.0) also in Japanese ページ数 349 pages 対象 検証者 For Tester -
• セキュリティテストの手順 – 情報収集 – サーバ設定テスト – 認証テスト – セッション管理テスト
– 認可テスト – ビジネスロジックテスト – データ検証テスト – DoSテスト – Webサービステスト – AJAXテスト • Testing process – Information Gathering – Configuration Test – Authentication Test – Session Management Test – Authorization Test – Business Logic Test – Data Validation Test – Denial of Service Test – Web Service Test – AJAX Test Testing Guide -
• take a glance! • 認可機能の迂回テスト – 認可機能は、任意のロールから任意の機能にアクセ スする際に正しく動作しているか? –
未認証ユーザでアクセス可能? – ログアウト後にもアクセス可能? – 他の権限/ロールの機能やデータにアクセス可能? – 管理者用機能にアクセス可能? • 一般ユーザでアクセスし、機能利用可否を確認 – exaple.com/admin/addUser.jsp Testing Guide -
Application Security Verification Standard (ASVS) 主旨 市場にあるWebアプリケーション・セキュリティ検証 の範囲とレベルを正規化する。セキュリティ検証の 信頼度を確立する。 An
open standard to normalize the service level of web app security verification and to a confidence level of web app security. 発端 2008 最新版 v1.0, @2009 (2013 v2.0 betaも) 日本語訳 あり(v1.0) v1.0 is with Japanese ページ数 60 pages 対象 管理者、検証者 For Manager, Tester -
• 診断サービス提供者 と • 診断サービス発注者 の • 要件と提案を合わせる Application Security
Verification Standard (ASVS) -
• 検証手法 – Just grep? code review? tool? manual? •
アプリケーションのセキュリティ評価基準 – 自動または手動のセキュリティテスト及びコードレ ビューの要件 • 14 個セキュリティ要件 X 4個保障レベル Application Security Verification Standard (ASVS) -
• 4個セキュリティ検証レベル • Lv1:自動化検証 – 動的スキャン+コードスキャン • Lv2:手動検証 – 侵入テスト+コードレビュー
• Lv3:Lv2+脅威の視点 • Lv4:Lv3+内部検証 Application Security Verification Standard (ASVS) -
• 14個セキュリティ要件 • ドキュメント要件 • 認証要件 • セッション管理要件 • アクセス制御要件
• 入力検証要件 • 出力エンコード要件 • 暗号要件 • エラー処理要件 • データ保護要件 • コミュニケーション要件 • HTTPセキュリティ要件 • セキュリティ設定要件 • 悪意コード検出要件 • 内部セキュリティ要件 Application Security Verification Standard (ASVS) -
Software Assurance Maturity Model (SAMM) 主旨 企業のアプリケーション・セキュリティ戦略の実装に 役に立つフレームワークを提供するドキュメント。 An open
framework for organization to implement application security strategy. 発端 2008 最新版 v1.0, @2009, March 日本語訳 あり(v1.0) also in Japanese ページ数 96 pages 対象 管理者 For Manager -
• other existing models: • Microsoft SDL – Heavyweight, good
for large ISVs • Touchpoints – High-level, not enough details • CLASP – Large collection of activities, but no priority ordering • 専門家向け、一般人では使いにくい! Software Assurance Maturity Model (SAMM) -
• 安全なSDLCを目指す • 4ビジネス機能 x 3セキュリティ実装 x 3成熟度 – 既存のソフト保障の評価
– 戦略ロードマップ作成 – セキュリティ活動の実施 Software Assurance Maturity Model (SAMM) -
• OWASP Cheat Sheets – Authentication, CSRF, Input Validation, Logging,
Session Management, Transport Layer Protect, XSS, Access Control…etc. • (not) For CISO’s eyes only – CISO Survey and Report 2013 – Application Security Guide For CISOs • When contracting… – Secure Software Development Contract Annex • Top 10 Mobile Risks O-MA-KE -
• A lot to read! • ドキュメントを統合する? The Big Issue
• Why not to keep variety • それぞれ発展させましょう -
• 日本語訳を進めれば? • Inactive Projectsを引き取れば? • 日本発ドキュメント – セキュリティ要件定義書 –
OWASP ZAP マニュアル Ver.2.1.0版 The Situation -
• Start with OWASP Top 10! – OWASP Top 10から始めよう!
• Get involved! – 参加して、利用して、協力して、 – join OWASP chapter meeting! • Be aware of Web Application Security! – Webアプリケーション・セキュリティを意識して! The Next Step