Localhost(127.0.0.1)にバインドされているサービスを実行していて、ローカルクライアントのみを許可することを目的としている(つまり、同じマシンからのみ)
このセキュリティを破るにはどのような手法が使用される可能性がありますか?それを実施するために使用できる追加の手段はありますか?
まず重要なことは、ホストのファイアウォールが、送信元または宛先アドレスが127.0.0.1に設定された着信パケットを適切にドロップするように構成されていることを確認することです。
通常の状況では、ネットワークから送信され、そのようなアドレスを示すパケットはありません。ただし、攻撃者はローカルのリスニングサービスに到達するために、このようなパケットを偽造しようと試みる可能性があります。
マシンでリッスンしている他の種類のサービスはわかりませんが、サービスをリレーとして使用できる場合は、ローカルのリッスンサービスに何もリレーしないように適切に構成する必要があります。
たとえば、このホストでHTTPプロキシを実行している場合、攻撃者はこのプロキシを使用してホスト「127.0.0.1」をリクエストできます。ファイアウォールの観点から、これはネットワークからプロキシサービスへの正当な接続です。ローカルでは、これは2つのローカルサービス(プロキシと対象のローカルポート)間の正当な通信になります。ここでのHTTPプロキシは一例にすぎません。このような手法は、接続の中継が主な機能ではないサービスを含む他のサービスでも機能する可能性があります(たとえば、このような脅威の典型的な例は FTPバウンス攻撃 です) 。
潜在的な脆弱性は、低い特権のアカウント/サービスを侵害し、ローカルホストにバインドされたサービスにアクセスするためのピボットとしてそれを使用することです。
ユーザーやグループのアクセス許可を適用できるため、通常はその目的でUNIXソケットを使用します(OSによって透過的に処理され、ユーザーはさらに別のパスワードを保持する必要がありません)。さらに、同じマシンでIPCを使用する場合に適しています。
ソケットの許可 一部のUNIXバリアントでは常に考慮されない およびOS固有のチューニングが必要になる場合があることに注意してください(ソケットごとに許可される接続の数を増やすなど)。
サービスがWebインターフェースを提供する場合、CSRF攻撃、XSS攻撃、または "同じサイト"スクリプト に対して脆弱である可能性があります。これらはすべて、攻撃者の外部Webサイトにアクセスするだけで引き起こされる可能性があり、それ自体がマルバタイジングやフィッシングによって引き起こされる可能性があります。これらの攻撃の場合、サービスがローカルホストでのみリッスンしているかどうかは重要ではありません。なぜなら、ホストがローカルWebブラウザーから到達可能である必要があるだけだからです。外部からのイントラネットホストの攻撃にも同じ問題が存在します。
ホスト名localhostはIP 127.0.0.1と完全に同じではないことも考慮してください(当然、最初に解決する必要があります)。ほとんどの場合、hostsファイルのエントリまたは127.0を解決できるresolver/dnsサーバーに依存します。 .0.1。したがって、セキュリティ対策を実装するときは、localhostの代わりに127.0.0.1を厳密に指定できることを確認してください。そうしないと、リゾルバでセキュリティ問題を後退して考慮する必要があります。
答えはさまざまな要因によって異なります。適用される場合と適用されない場合があるいくつか: