サイバー攻撃は、特に中小企業で増加しています。あるレポートによると中小企業の70%が攻撃を受けた経験のあることがわかりました。
多くの中小企業では、増加するセキュリティ脅威に対する準備ができていません。実際、これらの企業の45%がサイバー攻撃を防ぐためのセキュリティ対策が不十分であると報告しています。この記事では、潜在的な欠点であるソフトウェアアプリケーションの攻撃対象領域について説明します。
中小企業は、潜在的な弱点をマッピングし、攻撃対象領域管理プログラムを実装して、脆弱性を軽減することでサイバーセキュリティを強化できます。最終的に、攻撃対象領域管理計画を実装することで、顧客の機密データやその他の貴重なアセットをサイバー攻撃から保護できます。
ソフトウェアアプリケーションの攻撃対象領域
攻撃対象領域は、組織のソフトウェア環境で発生しうるすべてのセキュリティリスクのエクスポージャーの総体です。言い換えると、攻撃対象領域とは、すべてのハードウェア、ソフトウェア、ネットワークコンポーネントに存在するあらゆる潜在的な脆弱性(既知および未知)と制御が集まったものです。
攻撃対象領域は次の3つの基本的な種類に分類できます。
- デジタル攻撃対象領域。デジタル攻撃対象領域は、組織のネットワークとソフトウェア環境全体に及びます。アプリケーション、コード、ポート、その他エントリポイントとイグジットポイントを含みます。
- 物理的攻撃対象領域。物理的攻撃対象領域には、デスクトップシステム、ノートパソコン、モバイルデバイス、USBポートなど、組織のすべてのエンドポイントデバイスが含まれます。
- ソーシャルエンジニアリング攻撃対象領域。ソーシャルエンジニアリング攻撃は、人間の脆弱性を利用します。組織に対する一般的な攻撃の種類には、スピアフィッシング、プリテキスティング、そして個人をだまして機密情報へのアクセス権を取得するために使用されるその他の手法が含まれます。
組織はすべての潜在的な脆弱性に注意する必要がありますが、ここではソフトウェアアプリケーションの攻撃対象領域に焦点を当てます。不正ユーザーまたはマルウェアの一部がアクセスできるソフトウェア環境内の任意のコードで実行できるすべての機能を説明します。
アプリケーションの攻撃対象領域の特定
アプリケーションの攻撃対象領域を特定するには、脆弱性の確認とテストが必要なすべての機能をマッピングします。これは、アプリケーションのソースコードのすべてのエントリポイントとイグジットポイントに注意することを意味します。ソフトウェアアプリケーションの攻撃対象領域が大きくなるほど、攻撃者やマルウェアは標的マシンにアクセスしてコードを簡単に実行できるようになります。
攻撃対象領域管理の実装
ソフトウェアアプリケーションでの攻撃対象領域管理は、システムの脆弱性を検知し、悪用される脆弱性を減らすことが目的です。攻撃対象領域を分析するポイントは、開発者やセキュリティ専門家がアプリケーションのリスク領域すべてを認識できるようにすることです。認識することがリスクを最小限に抑える方法を見つける最初のステップです。
最終的に、企業は攻撃対象領域分析を使用して、ネットワークセグメンテーションや同様の戦略などのコアコンセプトを通じて、ゼロトラストセキュリティと呼ばれるセキュリティモデルを実装できます。
プライマリ攻撃対象領域
攻撃対象領域は、企業がWebサイト、クラウドアプリケーション、モバイルアプリケーション、ホストなどの新しいコンポーネントを追加するたびに常に変化します。ただし、一般的に脆弱性の種類は変化しません。
ソフトウェアの脆弱性の特定
攻撃対象領域モデルの作成はサイバーセキュリティの向上につながる最初のステップです。特定のソフトウェアアプリケーションの最も脆弱なポイントが明らかになりますが、これは企業によって大きく異なります。
これらの一般的なソフトウェアの脆弱性を確認します。
- アクセスコントロールの問題。従業員がシステムにアクセスする手段が異なる場合(オンサイトやリモートなど)、アクセスコントロールは困難になります。多くの場合、ソフトウェア開発者は、簡単に暴露され悪用される可能性のある欠陥のあるコード内の複数の場所にルールを挿入することになります。アクセスコントロールの脆弱性を攻撃すると、ハッカーはコンテンツを変更、削除したり、サイト管理を乗っ取ったりすることができます。
- インジェクションの欠陥。インジェクションの欠陥には、オペレーティングシステムへのコールや、SQLを介したバックエンドデータベースへのコールが含まれます。インジェクション攻撃は、データベースやディレクトリと通信する入力フィールドを介して頻繁に発生します。多くの場合、これらのフィールドには入力フィルターがないため、攻撃に対して脆弱になります。
- 認証の問題。セッション管理や認証に関連するアプリケーションの機能が適切に実装されてない場合、攻撃者は標的のユーザーと同じ権限を使用してシステムにアクセスすることができます。そして、キーやパスワードなどを侵害する可能性があります。
- XML外部エンティティの問題。外部エンティティへの参照を含むXML入力を処理するXMLパーサーの設定に脆弱性があると、機密情報の漏洩やサービス拒否 (DoS) などの問題が発生する可能性があります。
- カスタムAPI。APIは、不備のあるユーザー認証、不備のあるオブジェクトレベル認証、大量のデータ漏洩などの問題を通じて脆弱性をさらに増やします。
- ウェブフォーム。ウェブフォームを追加すると、サーバーに直接データを送信する方法が追加されます。一般的なウェブフォームの脅威の1つにクロスサイトスクリプティング (XSS) 攻撃があります。この攻撃では、攻撃者が悪意のあるスクリプトを取得し、ユーザーのブラウザで実行します。別の攻撃方法には、攻撃者がユーザーを騙して意図しないリクエストを送信させるクロスサイトリクエストフォージェリ攻撃があります。
- 下位互換性。ソフトウェアのバージョンが増えるほど、簡単に脆弱性を発生させることができます。
一般的なプライマリ攻撃対象領域の特定
一般的に、ソフトウェアプリケーションで最も一般的なプライマリ攻撃対象領域は、リモートのエントリポイントとイグジットポイントです。これらの高リスクのポイントには、外部システムのインターフェースやインターネット(特にシステムが匿名アクセスを許可している場合)が含まれいます。
- 自律システム番号 (ASN)
- IPアドレスとIPブロック
- SSL証明書と属性
- WHOISレコード、連絡先、および履歴
- TCP/IPポート
- パブリッククラウドとプライベートクラウド
- ドメインとサブドメイン
- EメールやデータベースなどのWebサーバーサービス
攻撃対象領域と攻撃ベクトル
適切な脅威インテリジェンスを達成するには、攻撃対象領域と攻撃ベクトルの違いを理解する必要があります。これにより、企業は攻撃対象領域管理計画を策定し、サイバー攻撃を防御することができます。
攻撃ベクトルの定義
攻撃ベクトルは、不正ユーザーがデータにアクセスできるあらゆる方法のことです。悪意のあるアクターが攻撃ベクトルの適用を成功させると、データ侵害やさらなる深刻な事態になる可能性があります。
攻撃ベクトルは、パッシブ攻撃とアクティブ攻撃の2つの異なるタイプに分類されます。
パッシブ攻撃ベクトルは、システムリソースに影響を与えずにシステムにアクセスするために利用される経路です。これには、セッションのキャプチャ、ポートスキャン、またはトラフィック分析などの盗聴技術が含まれます。
アクティブ攻撃ベクトルとは、システムの動作に影響を与えるために悪用される経路です。ランサムウェア、フィッシング攻撃、および分散型サービス拒否 (DDoS) 攻撃が含まれます。
攻撃対象領域と攻撃ベクトルの区別
簡単に説明すると、攻撃対象領域とは悪意のあるアクターがアプリケーション(より広義にはシステム)で悪用できるすべてのポイントを合わせたものです。攻撃ベクトルとは、悪意のあるアクターがこれらの個別のポイントの1つを悪用するための方法です。
攻撃対象領域をマッピングすると、ソフトウェアプリケーションのすべての潜在的な弱点の概要がわかります。個々の攻撃ベクトルを分析すると、セキュリティチームは何を修正したり、強化したりするべきか情報を得ることができます。
攻撃対象領域と攻撃ベクトルの識別
デジタル攻撃対象領域は、既知の要因と未知の要因の2種類のアセットで構成されています。既知の要因は、開発者が認識しモニターしているアセットです。これらのアセットには、サブドメインと一般的なセキュリティプロセスが含まれます。
未知の要因(シャドーIT資産とも言う)は、組織のネットワークに接続している承認されていないアプリケーションやデバイスです。これには、物理デバイス(ユーザーのスマートフォンやタブレット)、メッセージングアプリケーション、クラウドストレージ、職場の効率化アプリケーションなどが含まれます。これらのアセットは、IT部門による正式なオンボーディングや精査を受けていないため、開発者のセキュリティシステムに検知されずシステムが脆弱なままになります。
攻撃対象領域管理は、攻撃対象領域にあるすべての要因(既知と未知の両方)を発見するために企業にとって重要です。
物理およびデジタル攻撃対象領域の管理
攻撃対象領域を削減するには、最初に攻撃対象領域を把握しておく必要があります。攻撃対象領域の分析により、組織のソフトウェア環境の潜在的な脆弱性を構成する既知および未知の要因がすべて明らかになります。
留意する原則の1つ:セキュリティについては、後で問題を解決するよりも、潜在的な攻撃を阻止するために積極的に防御する方が簡単です。
攻撃対象領域の削減
攻撃対象領域を削減するには、最も基本的なセキュリティソリューションから体系的に開始します。例えば、開いているTCP/IPポートは脆弱なため、アクセス可能なTCP/IPポートの数を制限するためにファイアウォールが設定されていることを確認します。関連するセキュリティ更新やパッチを適用し、HTTPS証明書とSSL証明書を使用して、暗号化を行います。
ただし、保護する必要があるソフトウェア環境に応じて、より具体的な対策を実行できます。
例えば、公開されるコードの量を制限します。すべてのコードには、悪用される可能性のある脆弱性があるため、コードが多いほど欠陥が発生する可能性が高くなります。このため、コードの量を最小限に抑えることで、企業は攻撃対象領域を削減することができます。ソフトウェアアプリケーションが向上し機能が追加されることで、主要なモジュールによってさらに多くの機能が追加される可能性があります。未使用のパラメーターを非表示にして、悪意のあるアクターが標的にする対象を減らすことができます。パラメーターを使用していない場合、削除できるかどうかを確認してください。各モジュールを慎重にレビューして、実行されないコードを特定します。
同様に、一般的にサードパーティ製アプリケーションは、広く利用できるソースコードによって攻撃対象領域が拡大するため、危険をもたらす可能性があります。サードパーティ製アプリケーションを使用している場合、そのコードを慎重にレビューしてテストしてください。コードを隠すために、それらの名前を変更するか、アイデンティティを隠すこともできます。
利用可能なエントリポイントの最小化
また、不正ユーザーがアクセスできる機能も慎重に検討してください。例えば、オンラインデモではすべてのコードが使用可能になるため、顧客や登録ユーザーのアクセス権を制限します。また、管理モジュールやコンテンツ管理モジュール、およびインスタンスモジュールやエクストラネットモジュールへのアクセス権も制限します。IP制御を適用し、あいまいなポートとクライアント証明書を使用して、管理モジュールを別のサイトに移動します。
また、エントリポイントへのアクセスを制限するために次の措置を講じることを検討します。
- Webフォーム入力を検証してサニタイズします。これにより、SQLインジェクション攻撃を防御します。
- 必要なデータのみを収集し、可能な場合は匿名化します。
- アップロード可能なファイルの種類を制限し、ファイルタイプを検証し、認証ユーザーのみがファイルをアップロードできるようにして、安全なファイルアップロードを作成します。
- ワークロード、コンテナ、Kubernetesの侵害保護を提供するクラウドワークロード保護により、クラウドセキュリティを強化します。
不要な機能をオフにする
通常、サーバーやオペレーティングシステムなどの新しいデジタル資産は、設定されていない状態で届きます。デフォルトでは、すべてのアプリケーションサービスがオンになっており、すべてのポートが開いています。さらに通常、これらのアプリケーションとポートは更新されていません。このため、これらのアセットは脆弱性をもたらす原因になります。セキュリティ手順の一部として、これらのデジタル資産を確認して、不要なアプリケーション、機能、サービスを無効にします。繰り返しますが、攻撃対象領域が小さくなるほど、悪意のあるアクターが足場を作る可能性は低くなります。
サイバー攻撃から企業を保護する方法の詳細については、Cybersecurity 101データベースを確認してください。または、サイバーセキュリティの向上については、クラウドストライクにお問い合わせください。