web-dev-qa-db-ja.com

潜在的なSSRFに対してAWSインスタンスのメタデータを保護する

AWSでWindowsインスタンスを実行しています。

インスタンスにはIISサービスが実行されています。

IISサービスにはユーザーが関連付けられており、AWSインスタンスのメタデータにアクセスする必要はありません。

私は https://aws.Amazon.com/answers/security/aws-securing-windows-instances/ を読んでいました

グループポリシーオブジェクト(GPO)を使用してWindowsファイアウォール設定を集中管理し、ネットワーク制御をさらに強化します。多くの場合、お客様はWindowsファイアウォールを使用してネットワークトラフィックをさらに可視化し、セキュリティグループフィルターを補完して、特定のアプリケーションがネットワークにアクセスするのをブロックするか、サブセットIPアドレスからのトラフィックをフィルターする高度なルールを作成します。たとえば、Windowsファイアウォールは、EC2メタデータサービスのIPアドレスへのアクセスを、特定のホワイトリストに登録されたユーザーまたはアプリケーションに制限できます。または、公開サービスは、特定のポートへのトラフィックを制限するセキュリティグループと、明示的にブロックされたIPアドレスのブラックリストを維持するためのWindowsファイアウォール。

ボールドの部分は、SSRFが使用されているシナリオに興味を持った。

  • IISサービスまたはサービスユーザーに対してのみ、サービスの可用性に影響を与えずにAWSメタデータへのアクセスを制限できますか?
  • 構成はどのようになりますか?
2

AWSがメタデータAPIへのアクセスを更新して最初にトークンを取得し、それをヘッダーに追加して、潜在的なSSRFの有用性を減らしたため、この質問は私には関係ありません。これにより、たとえば高度なWebフックが使用されるシナリオでは、SSRFが脅威として保持されます。

REF: https://aws.Amazon.com/blogs/security/defense-in-depth-open-firewalls-reverse-proxies-ssrf-vulnerabilities-ec2-instance-metadata-service/

0

実際、インスタンスメタデータサービスへのアクセスを制限したい場合-特定のユーザーリストのみがクエリできるようにするには、ネットワークレベルのコントロールではなく、OSレベルのコントロールが必要です。

その理由は単純です。usersはOSの概念であり、OSの異なるユーザーからのインスタンスメタデータサービスに到達するパケットは、ネットワークレベルでは互いに区別がつかないように見えます。

AWSからのこのドキュメントでは、インスタンスメタデータへのアクセスをrootユーザーのみに制限する(BSDでPFを使用)場合と同じユースケースを指定しています。 https://docs.aws.Amazon.com/AWSEC2/latest/UserGuide//instancedata-data-retrieval.html#w328aac17c17c25c15c19b1

私は専門家ではありませんが、Windowsファイアウォールが同じ機能を実行すると思います-インスタンスメタデータIPへのネットワークトラフィックをIISユーザーに拒否できます。これを行うことはできませんでした。セキュリティグループまたはNACL。これは、すべてのユーザー(サーバー上のすべてのエージェントを含む)からメタデータサービス全体をブロックするためです。

1
keithRozario