Open Web アプリケーション セキュリティプロジェクト (OWASP)によって管理される統計によると、最も一般的な 10 件のセキュリティ エラーを区別できます。 次の図は、Web アプリケーション セキュリティ調査組織 である veracode が、事前のリスク評価中にこれらの脆弱性を検出する頻度を示しています。
veracode の初期リスク評価中に OWASP トップ 10 リストからの脆弱性検出率。 ソース: [ベラコード]
OWASPに従って上記で挙げた最も一般的な脆弱性は次のとおりです。
- コマンドまたはクエリ (SQLi、OS、XXE、LDAP)の一部として、コード インタープリタに信頼されていないデータを挿入する可能性を受け入れる可能性があります。 攻撃者は、適切な許可なしに、インタプリタを裏切って、予定外のコマンドを実行したり、データにアクセスしたりする可能性があります。
- 信頼性とセッション管理のメカニズムが誤って実装されました。 これにより、攻撃者はパスワード、キー、セッション トークンを侵害したり、別のアプリケーション ユーザーの ID を乗っ取ったりすることができます。
- クロスサイト スクリプティング (XSS) は、攻撃されたページのコンテンツに JavaScript を挿入する攻撃です。 ユーザーのセッションをハイジャックしたり、危険なユーザー サイトにリダイレクトしたり、ソーシャル エンジニアリング攻撃を受けたりするために使用できます。
- システム ユーザーがアクセスできるアクセス許可とリソースに関するアクセス制御メカニズムが壊れています。 攻撃者はこの脆弱性を悪用して、権限のない機能や機密データにアクセスしたり、他のユーザーのアカウントにアクセスしたりする可能性があります。
- 不正なセキュリティ設定 – システムを適切に保護するために、アプリケーション、フレームワーク、アプリケーションサーバー、データベースサーバー、プラットフォームなどに対して適切な設定が定義され、実装されます。 また、ソフトウェアは定期的に更新する必要があります。
- 機密データの共有 – 多くの Web アプリケーションや API は 、財務データ、医療データ、個人データなどの機密データを適切に保護しません。 攻撃者は、このような不十分に保護された情報を盗んだり変更したりして、それを使用してクレジットカードを詐欺したり、身元を盗んだり、その他の犯罪を犯したりする可能性があります。 機密データは、転送と保存時に暗号化によってさらに保護する必要があります。
- 攻撃に対する不十分な保護 – 多くのシステムは、手動攻撃と自動攻撃の両方を検出、防止、対応する基本的な機能を持っていません。 入力を検証するための基本的なメカニズムを超えたメカニズムを実装し、自動検出、ログ記録、攻撃の試行のブロックを含める必要があります。 さらに、アプリ所有者は、セキュリティパッチを簡単にアップロードできる必要があります。
- クロスサイトリクエストフォージェリ (CSRF)– ユーザーのブラウザに、そのユーザーのコンテキストでサーバーにクエリを送信させることで構成されています。 これにより、被害者は、パスワードの変更、転送など、何らかの不正なアクションを実行することができます。
- 既知の脆弱性を持つコンポーネントを使用する – ライブラリ、フレームワーク、およびソフトウェアで使用される他のモジュールなどのコンポーネントは、アプリケーション自体と同じ権限で動作します。 脆弱なコンポーネントが侵害された場合、このような攻撃はデータまたはシステム全体に深刻な脅威を与える可能性があります。 既知の脆弱性を持つコンポーネントを使用するアプリケーションは、さまざまな種類の攻撃に対してアプリケーションを開くことで、アプリケーションを保護する層を削除できます。
- セキュリティで保護されていないAPI – 今日のアプリケーションは、基本的な機能 (SOAP/XML、REST/JSON、RPC、GWTなど) に加えて、それらの API と通信するためのAPIを提供することがよくあります。 これらのインターフェイスは、多くの場合、セキュリティで保護されず、多くの脆弱性を含みます。