導入
侵入テストは、コンピュータ システムまたはネットワークのセキュリティを評価する方法です。
この方法は通常、悪意のあるユーザー、さらにはマルウェアからの攻撃をシミュレートすることで構成されます。次に、システムの不適切な構成、プログラミングの欠陥、さらにはテストされたソリューションに関連する脆弱性によって引き起こされる潜在的なリスクを分析します。侵入テスト中、私たちは潜在的な攻撃者の立場にいることになります。この作戦の主な目的は、システムのセキュリティを向上させるためのアクション プランを提案することを目的として、悪用可能な脆弱性を見つけることです。
単純なセキュリティ監査との違いは、その人が欠陥を悪用するまでの動機を持ち、それによって脆弱性を明らかにすることです。もちろん、悪用の目的はシステムを破壊したり損傷したりすることではありませんが、システムに関連するリスクの程度を判断することが可能になります。
分析は次の 3 つのケースで実行できます。

テスターには情報がありません (またはブラックボックス)
財団
最初のステップは、企業、個人、またはその他のデータに関する情報を検索して、ターゲットが本当に侵入しようとしているものであることを確認することです。地理的な位置、企業やそのインターネット サービスプロバイダーの一般情報を知ることはおそらく些細なことですが、それでも無視すべきではありません。実際、この小さな情報からターゲットについてさらに詳しく知ることができます。
このために、テスターにはいくつかのツールがあります。
- ウェブ: 取るに足らないように見えるかもしれませんが、特定のターゲット (物理的または法人) に関する情報 (電子メール アドレス、住所、電話番号など) の本当の鉱山になる可能性があります。ソーシャル ネットワークや検索エンジンでは、この行為は簡単になります。
- nslookupおよび dig ツールを介した DNS サービスは、DNS サーバーにクエリを実行して、ドメイン名に基づいてIP アドレスを取得したり、その逆、または電子メールが通過するサーバーのドメイン名を取得したりします。さらに、DNS レコードは多くの有用な情報を提供します。
この一連の非侵入型技術により、ターゲットに関する公開情報を取得することが可能になります。ただし、それらの一部は機密である場合があります (ただし、通常は間違いまたは不注意によって公開されます)。それらの回復は、常にターゲットによって検出できるわけではありませんが、いわゆる受動的認識の枠組み内に収まります。
- ツールと、特に IP アドレスの地理位置情報の取得や、テスターのステーションとテスト対象機器の間のフィルタリング機器の検出を可能にする、 tracerouteを含む ICMP通信プロトコルの使用。
- ソーシャルエンジニアリングは、おそらくテスターが最小限の時間でターゲットに関する最大の情報を取得するための最良のツールであり続けます。
これらの最後の 2 つのテクニックは、侵入的ではありませんが、ターゲットによって検出可能になり、いわゆるセミアクティブ認識の枠組みに収まります。
次に、テストするシステムの位置と範囲を図示できるようにする必要があります。つまり、マップを作成できる必要があります。システムの一部をテストするだけではなく、このような分析を実行することで、動作モードとその所有者の推論を理解することができます。さらに、広域ネットワークシステムには、より高度なセキュリティが必要です。ネットワーク上の 1 台のコンピュータが侵入すると、他のすべてのコンピュータがより簡単に侵入できるようになります。
1 台のコンピュータの侵害 (脆弱性の悪用、権限の昇格、ルートキットのインストール) により、次のことが可能になります。
- クリアな通信プロトコルの識別子とパスワードの回復を可能にするスニファの実装。
- したがって、たとえば SNMP、RPC、SMB プロトコルのプロパティを使用すると、内部からのネットワークのマップと利用可能なリソースのインベントリがはるかに簡単かつ詳細になります。
- Nessus などのツールを使用した自動脆弱性検出の実装…
- 痕跡を消す。
これらの最新の技術は非常に侵入的であり、能動的な認識の枠組みに当てはまります。
ネットワーク
ネットワークをマッピングすることは、特にネットワークが十分に保護されている場合には、必ずしも簡単であるとは限りません。その結果、ネットワークへの侵入を可能にする別の脆弱性が見つかる可能性が非常に高くなります。そうすれば、地図を作成するのがはるかに簡単になります。
情報システムに関連する情報が決定され、見つかるのはこのマッピング段階です。実際には、これには主に次のことが含まれます。
- TCP/IP スタックのフィンガープリントを使用して、TCP/IP スタックの実装によるさまざまな応答を調査し、インストールされているオペレーティング システムとバージョンを特定します。
- ポート スキャンとファイアウォークにより、開いているポートとマシン フィルタリング ルールを検出します。
- これらのポートの背後で実行されているサービスとその後の悪用のためにそのバージョンを識別するための、情報バナーの取得とプロトコルの識別。
現在、これは、完全でユーザーフレンドリーなインターフェイスを提供することでこれらの操作を簡単に実行できるNmapのようなツールを使用すれば、比較的簡単です。
これらの技術は、特に侵入検知システムを使用すると簡単に検知でき、半受動的認識の枠組みにも当てはまります。
テスターはネットワークをテストする必要があります。つまり、特にこのアクション中にファイアウォールを破壊しようとするため、テストはまだ完了していません。ポートをスキャンした後、提供されるサービスのプロトコルを使用する必要がある、開いているポートとフィルタリングされたポートも調べます。
例: Web サーバーにサービスを提供するための http 通信プロトコル。インターネット ユーザー間の会話のための irc 通信プロトコル。
一部のプロトコルには本質的に誤りがあり、その場合、サブジェクトが標準に従っていると、ポートの背後にあるサービスが簡単に破壊されてしまいます。ファイアウォールまたは IDS が存在することがわかっていると、それをバイパスするか破損する必要があるため、この手順は重要です。腐敗は、いわゆるポイズンパケットを通じて実行されます。特定の方法に応じて、これらのパケットを受信するファイアウォールまたは IDS は、 を通過させることで反応します。
IP および DNS スプーフィングは、このような状況で効果を発揮するテクニックです。ネットワーク上のマシンが信頼できるゾーンにある場合、そのマシンの ID を横取りするだけで、同じゾーンに入れることができます。
したがって、攻撃者にとって、独自のパッケージを偽造する方法、特に生のソケットを使用する方法を知ることが重要です。
応用
それは一段階の問題ではなく、全体の問題です。別のネットワークと通信するアクティブなプログラムを見つけた後、これらのアプリケーションの欠陥を見つけると、短期間でシステム全体が破損する可能性があります。アプリケーションの欠陥を見つけることは非常に複雑で、多くの時間がかかる場合があります。とはいえ、アプリケーションへの攻撃は非常に効果的です。テスターにとって、オペレーティング システムアーキテクチャとアセンブリ言語についての確かな知識を持つことが依然として重要です。もちろん、これらは侵入しようとしているシステムの種類によって異なります。
多くの場合、プログラムを破壊しようとする人はそれを見つけて研究します。ソースを入手できる場合は、アセンブルされたコードを読む必要がないか、ほとんど読まないため、作業がさらに簡単になります。プログラミングのエラーを見つけるのがずっと簡単になります。
ここでの目標は、アプリケーションを破壊して、通常はアセンブリ言語で指定された独自のコードを実行させることです。現在までに知られている最大の脆弱性は BOF (バッファ オーバーフロー) です。しかし、少なくとも同じくらい危険で悪用可能な可能性のあるものは他にもたくさんあります。
ウェブ
システムが同じネットワーク上に Web サーバーを備えている場合、さまざまな可能性が考えられます。当然のことながら、アクティブなサービスの数が増えると、攻撃対象領域も大きくなります。したがって、サービスが 1 つ増えると、潜在的な脆弱性が発生します。このWeb サービスはハッカーや初心者によって最も悪用されるサービスの 1 つであるため、適切なセキュリティを確保することが不可欠です。特に、システム内の他の欠陥を探すよりもこのタイプの攻撃を好む攻撃者が多数いるため、 Web サイトのセキュリティははるかに危険にさらされています。
Web 上に存在する脆弱性のすべてではないにしても、そのほとんどは、提供されるサービスのプログラミングが不十分であることが原因です。 SQL インジェクション、CSRF の欠陥など、これまでに複数の脆弱性が知られています。
攻撃者はサイト上で自分の権利を完全に昇格させることができることに加えて、脆弱性によってはシステム全体で自分の権利を昇格させることも可能であり、その結果システムを簡単に破壊することができます。これを行うには、利用可能な通信プロトコル、この場合は Web サイトの HTTP を完全に習得する必要があります。
攻撃者と疑われる者は、サイト全体、主に URL、フォームと変数 (GET、POST リクエスト)、ヘッダーなどをテストします。攻撃はリクエストとその応答を通じて実行されるため、ネットワーク セクションに分類できます。
システム、サービス、構成
LinuxまたはMicrosoft Windows (またはその他) システムで作業している場合、その構成は非常に重要です。システムのネットワークの構成、そのサービス、およびイベントへの反応方法。 Windowsシステムの場合、システム コードは違法でなければ変更できないため、構成はさらに制限されます。
オペレーティング システムでは毎日新しい欠陥が発見されており、アプリケーションの欠陥についてよく話されますが、幻想に陥ってはいけません。それらはネットワークを運用しているサービスでも発見されています。
