Upgrade to Pro — share decks privately, control downloads, hide ads and more …

OWASP Document Summary

OWASP Japan
March 11, 2017
1.5k

OWASP Document Summary

OWASPの主要ドキュメントである、OWASP Top10、OWASP Proactive Controls 2016、OWASP ASVS3.0.1について要約した資料です。

OWASP Japan

March 11, 2017
Tweet

Transcript

  1. ウェブアプリの10大脆弱性を学べるOWASPが誇る最高の資料 OWASP Top10 2013 # 脆弱性 脅威の例 A1 インジェクション 攻撃者の悪意のあるデータにより、意図しないコマンドの実行や適切な権限のないデータアクセスをされる

    A2 認証とセッション管理の不備 パスワードまたは鍵、セッショントークンを漏洩させたり、他の実装の不備を悪用してなりすましをされる A3 クロスサイトスクリプティング 被害者のブラウザでスクリプトを実行し、ユーザセッションのハイジャックやウェブサイトの改竄、また悪意の あるサイトにリダイレクトされる A4 安全でないオブジェクト直接参照 オブジェクトの直接参照により、アクセス権限のないデータアクセスをされる A5 セキュリティ設定のミス パスワードまたは鍵、セッショントークンを漏洩させたり、他の実装の不備を悪用してなりすましをされる A6 機密データの露出 脆弱に保護されている機密データが窃取・改変され、クレジットカード詐欺や個人情報盗難などをされる A7 機能レベルアクセス制御の欠落 リクエストを偽造して本来はアクセスできない狙った機能にアクセスをされる A8 クロスサイトリクエストフォージェリ ユーザからの正当なリクエストとして認識されるリクエストを被害者のブラウザに生成させることで被害者の ブラウザから偽造されたHTTPリクエストを送信される A9 既知の脆弱性を持つコンポーネントの使用 脆弱なコンポーネントを悪用されることで、深刻なデータ損失やサーバ則りまでに至る攻撃を実行される A10 未検証のリダイレクトとフォーワード フィッシングサイトやマルウェアサイトへリダイレクトされたり、フォワードで閲覧権限のない画面へアクセス をされる 出典:https://www.owasp.org/images/7/79/OWASP_Top_10_2013_JPN.pdf
  2. ウェブアプリ開発時に考慮したい10の事前対策をまとめた資料 OWASP Top10 Proactive Controls # 事前対策 事前対策概要 対応可能な脆弱性 C1

    早期に、繰り返しセキュリティを検証する セキュリティテスト工程になって初めてセキュリティテストを実施するという「診 断して、直す」というやり方ではなく、開発プロジェクトの早い段階から、セキュリ ティを考慮し、繰り返し何度もセキュリティの検証を実施する A1~A10すべて C2 クエリ―のパラメータ化 SQLの問合せ構文とパラメータがそれぞれ別々にデータベースに送信され、 データベース上で解析されることで信頼できない入力値がSQLコマンドの一部 として解釈され、悪意のあるSQLコマンドを実行されることを防げる A1 C3 データのエンコーディング コマンドインジェクション、LDAPインジェクション等の様々なインジェクション系 の攻撃や、クロスサイトスクリプティングの脆弱性により悪意のあるスクリプトを ユーザにおいて実行されることを防げる A1、A3 C4 すべての入力値を検証する すべての値は信頼できないという前提にたってすべての入力値を検証すること により攻撃コードの実行や権限の無いデータにアクセスされることを防げる A1、A3、A10 C5 アイデンティティと認証管理の実装 個人ないしは端末が、名乗っているとおりの本人かどうかを確認するプロセス を組み込むことにより情報の漏洩を防げる。例えば、多要素認証、パスワード リマインダ、重要な処理の際の再認証、パスワードのハッシュ化等がある A2 C6 適切なアクセス制御の実装 特定の機能やリソースに対するアクセスを許可するか、あるいは拒否するかを 判断するプロセスであり、本来はアクセスできない機能にアクセスされることを 防げる A4、A7 C7 データの保護 通信経路の暗号化をはじめ、データを保存する際の暗号化を施すことにより、 機密性の高い情報の漏洩を防げる A6 C8 ロギングと侵入検知の実装 セキュリティに関するイベントや指標をログに記録して追跡することで「攻撃駆 動型の防御」を実現できるようになる A1~A10すべて C9 セキュリティフレームワークやライブラリの活用 セキュリティが組み込まれたライブラリやフレームワークを用いることにより、セ キュリティに関する設計を行う上でも、実装ミスを防ぐことができる。ただし、フ レームワークやライブラリを使う場合は、常に更新し続けることが必要 A9 C10 エラー処理と例外処理 エラー処理や例外処理を実装することにより、品質保証やフォレンジック、ある いはインシデント・レスポンスチームが問題を発見する助けとなる A1~A10すべて 出典:https://www.owasp.org/images/a/a8/OWASPTop10ProactiveControls2016-Japanese.pdf
  3. セキュリティの取り組みを設定・確認する際に用いる資料 OWASP Application Verification Standard(ASVS) (1/2) # 検証要件 管理目標 V1 アーキテクチャ、設計、脅威モデリング

    !  アプリケーションの構成要素を把握しており、各構成要素に存在理由がある !  アーキテクチャが定義されており、コードがアーキテクチャに準拠している !  アーキテクチャと設計が存在し、使用され、機能している V2 認証に関する検証要件 !  通信の送信元のデジタル ID を検証する !  許可された者だけが認証でき,認証情報がセキュアな方法で転送される V3 セッション管理に関する検証要件 !  セッションがユーザ毎に固有であり,推測や共有ができない !  セッションは,不要になると無効になり,非アクティブ状態が続くとタイムアウトする V4 アクセス制御に関する検証要件 !  リソースにアクセスするユーザが有効な認証情報を持つ !  ユーザには,正しく定義された一連のロールと権限が割り当てられている !  ロールとアクセス許可のメタデータがリプレイや改ざんから保護されている V5 悪性入力の処理に関する検証要件 !  すべての入力が正しく,本来の目的に合致していることを確認している !  外部エンティティやクライアントから取得したデータは,決して信頼せず,適切に扱う V7 暗号化に関する検証要件 !  すべての暗号化モジュールにおいて,暗号化に失敗した場合の安全対策を施しており, エ ラー処理が適切に行われる !  ランダム性が必要とされる場合,適切な乱数生成器を使用する !  鍵に対するアクセスが安全な方法で管理されている V8 エラー処理とログの保存に関する検証要件 !  必要な場合を除き,センシティブな情報の収集やログの保存を行わない !  ログに保存されたすべての情報が,データの分類に基づいてセキュアな方法で処理され,保護 される !  ログを永続的に保存せず,有効期間をできるだけ短く設定する V9 データの保護に関する検証要件 !  機密性:送信と保存の両方で認可されていない監視や開示からデータが保護されている !  完全性:攻撃者による悪意のある作成,変更,削除からデータが保護されている !  可用性:必要なときにデータが許可されたユーザに提供される V10 通信のセキュリティに関する検証要件 !  センシティブなデータの送信には TLS を使用する !  常に協力なアルゴリズムと暗号を使用する 出典:https://www.jpcert.or.jp/securecoding/OWASP_ASVS_20160623.pdf
  4. OWASP Application Verification Standard(ASVS) (2/2) # 検証要件 管理目標 V11 HTTPのセキュリティ設定に関する検証要件 ! 

    アプリケーションサーバがデフォルトの構成よりも適切に強化されている !  HTTP レスポンスの Content-Type ヘッダが安全な文字セットで構成されている V13 悪性活動の管理に関する検証要件 !  アプリケーションの他の部分に影響が及ばないよう,悪性活動がセキュアな方法で適切に処理 される !  time bomb や他の time based 攻撃に繋がる問題を作り込んでいない !  悪性サイトや許可されていないサイトとの秘密の通信 (“phone home”)を行わない !  攻撃者が制御可能なバックドア,イースターエッグ,サラミ攻撃,ロジック上の欠陥が作り込ま れていない V15 ビジネスロジックに関する検証要件 !  ビジネスロジックが正しい順序で処理されている !  ビジネスロジックに自動攻撃を検知し防止する制限が実装されている.自動攻撃の例としては, 連続的な少額の送金や 1 度に 100 万人の友人を追加する,などがある !  高い価値を持つビジネスロジックにおいて悪用ケースや悪用する人を想定しいる。また、なりし まし (spoofing),改ざん (tampering),否認 (repudiation),情報の漏洩 (information disclosure),権限昇格 (elevation of privilege) 攻撃の対策を行っている V16 ファイルとリソースに関する検証要件 !  信頼できないファイルのデータがセキュアな方法で適切に処理される !  信頼できない情報源から取得したデータは、webroot の外に保存され、アクセスが制限される V17 モバイルに関する検証要件 !  サーバにおける管理策と同レベルのセキュリティ管理策をモバイルクライアントが備える !  デバイス上に保存されるセンシティブな情報資産がセキュアな方法で保存されている !  デバイスからのセンシティブなデータの送信はトランスポート層のセキュリティを考慮して行わ れる V18 WEBサービスに関する検証要件 !  すべての Web サービスについて,適切な認証とセッション管理,認可 !  低信頼レベルから高信頼レベルへと遷移するすべてのパラメーターの入力値検証 !  API を提供する SOAP Web サービスレイヤーの基本的な相互運用性 V19 構成 !  ライブラリとプラットフォームが最新である !  デフォルトの設定がセキュアである !  ユーザが設定をデフォルトに変更してもシステムの基盤にセキュリティ上の弱点や欠陥が生じ ないよう,十分ハードニングされている 出典:https://www.jpcert.or.jp/securecoding/OWASP_ASVS_20160623.pdf セキュリティの取り組みを設定・確認する際に用いる資料