OWASPの主要ドキュメントである、OWASP Top10、OWASP Proactive Controls 2016、OWASP ASVS3.0.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
View Slide
ウェブアプリ開発時に考慮したい10の事前対策をまとめた資料OWASP Top10 Proactive Controls# 事前対策 事前対策概要 対応可能な脆弱性C1 早期に、繰り返しセキュリティを検証するセキュリティテスト工程になって初めてセキュリティテストを実施するという「診断して、直す」というやり方ではなく、開発プロジェクトの早い段階から、セキュリティを考慮し、繰り返し何度もセキュリティの検証を実施するA1~A10すべてC2 クエリ―のパラメータ化SQLの問合せ構文とパラメータがそれぞれ別々にデータベースに送信され、データベース上で解析されることで信頼できない入力値がSQLコマンドの一部として解釈され、悪意のあるSQLコマンドを実行されることを防げるA1C3 データのエンコーディングコマンドインジェクション、LDAPインジェクション等の様々なインジェクション系の攻撃や、クロスサイトスクリプティングの脆弱性により悪意のあるスクリプトをユーザにおいて実行されることを防げるA1、A3C4 すべての入力値を検証するすべての値は信頼できないという前提にたってすべての入力値を検証することにより攻撃コードの実行や権限の無いデータにアクセスされることを防げるA1、A3、A10C5 アイデンティティと認証管理の実装個人ないしは端末が、名乗っているとおりの本人かどうかを確認するプロセスを組み込むことにより情報の漏洩を防げる。例えば、多要素認証、パスワードリマインダ、重要な処理の際の再認証、パスワードのハッシュ化等があるA2C6 適切なアクセス制御の実装特定の機能やリソースに対するアクセスを許可するか、あるいは拒否するかを判断するプロセスであり、本来はアクセスできない機能にアクセスされることを防げるA4、A7C7 データの保護通信経路の暗号化をはじめ、データを保存する際の暗号化を施すことにより、機密性の高い情報の漏洩を防げるA6C8 ロギングと侵入検知の実装セキュリティに関するイベントや指標をログに記録して追跡することで「攻撃駆動型の防御」を実現できるようになるA1~A10すべてC9 セキュリティフレームワークやライブラリの活用セキュリティが組み込まれたライブラリやフレームワークを用いることにより、セキュリティに関する設計を行う上でも、実装ミスを防ぐことができる。ただし、フレームワークやライブラリを使う場合は、常に更新し続けることが必要A9C10 エラー処理と例外処理エラー処理や例外処理を実装することにより、品質保証やフォレンジック、あるいはインシデント・レスポンスチームが問題を発見する助けとなるA1~A10すべて出典:https://www.owasp.org/images/a/a8/OWASPTop10ProactiveControls2016-Japanese.pdf
セキュリティの取り組みを設定・確認する際に用いる資料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
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),情報の漏洩 (informationdisclosure),権限昇格 (elevation of privilege) 攻撃の対策を行っているV16 ファイルとリソースに関する検証要件! 信頼できないファイルのデータがセキュアな方法で適切に処理される! 信頼できない情報源から取得したデータは、webroot の外に保存され、アクセスが制限されるV17 モバイルに関する検証要件! サーバにおける管理策と同レベルのセキュリティ管理策をモバイルクライアントが備える! デバイス上に保存されるセンシティブな情報資産がセキュアな方法で保存されている! デバイスからのセンシティブなデータの送信はトランスポート層のセキュリティを考慮して行われるV18 WEBサービスに関する検証要件! すべての Web サービスについて,適切な認証とセッション管理,認可! 低信頼レベルから高信頼レベルへと遷移するすべてのパラメーターの入力値検証! API を提供する SOAP Web サービスレイヤーの基本的な相互運用性V19 構成! ライブラリとプラットフォームが最新である! デフォルトの設定がセキュアである! ユーザが設定をデフォルトに変更してもシステムの基盤にセキュリティ上の弱点や欠陥が生じないよう,十分ハードニングされている出典:https://www.jpcert.or.jp/securecoding/OWASP_ASVS_20160623.pdfセキュリティの取り組みを設定・確認する際に用いる資料