このページのトピック
脅威インテリジェンス をAWSと共有する
AWS Network Firewallを使用すると、 Network Securityのマネージド 脅威インテリジェンス のサブセットを使用して、ネットワークベースの一般的な脅威を検出および中断できます。AWS管理のネットワークインフラストラクチャを展開し、パートナーがサポートする業界をリードする 脅威インテリジェンスと組み合わせることができます。この 脅威インテリジェンス には、 AWS Network Firewall サービスの使用可能なすべてのリージョンで共有可能なリソースとルールグループが含まれています。
共有を有効にする
この共有を有効にして Network Security ルールグループを AWS Network Firewallに適用するには
-
ナビゲーションパネルで、ポリシーアイコン をクリックし、Sync Managementを選択します。
-
AWS Network Firewall セクションで、 Configure Sharingをクリックします。
-
Share Threat Intelligence with AWSダイアログで、 脅威インテリジェンス を共有するAWSアカウントIDを入力します。共有するアカウントを追加した後は、そのアカウントで 脅威インテリジェンス の共有を無効にしたり、さらに管理したりすることはできません。
-
利用規約に同意し、Enable Sharingの順にクリックします。
ルールグループの共有を確認する
次のいずれかのインタフェースを使用して、ルールグループが正常に共有されていることを確認します。
- AWS Resource Access Manager
- AWSネットワークファイアウォール
注意:
設定後にEnable Sharingをクリックすると、 AWS Resource Access Managerで、 Network Security によって共有されているルールグループを1回だけ受け入れます。ルールグループは毎週自動的に更新されます。
アカウントの管理者がアカウントの非管理者ユーザとのリソース共有を有効にするには、 AWSResourceAccessManagerResourceShareParticipantAccess
で管理者以外のIAMロールの権限を有効にして、リソースの共有への招待を受け入れる必要があります。
{
"Version": "****-**-**",
"Statement": [
{
"Action": [
"ram:AcceptResourceShareInvitation",
"ram:GetResourcePolicies",
"ram:GetResourceShareInvitations",
"ram:GetResourceShares",
"ram:ListPendingInvitationResources",
"ram:ListPrincipals",
"ram:ListResources",
"ram:RejectResourceShareInvitation"
],
"Effect": "Allow",
"Resource": "*"
}
]
}
管理者以外のユーザは、共有リソースとの関連付けを解除できません。許可しようとすると、権限エラーが表示されます。
すべてのルールは、初期設定でトラフィックをブロックするように設定されています。環境でトラフィックをブロックしている可能性のあるルールの詳細を確認するには、ナビゲーションパネルでPolicyアイコン をクリックし、Intrusion Prevention Filteringを選択して、特定のフィルタルール名またはIDを検索フィールドに入力します。
AWS Resource Access Managerページを更新して、 Network Security アカウントがShared principlesで正常に Associated
になっていることを確認します。
共有ルールグループ
AWS Network Firewall は、トラフィックを検査するためにステートフルルールとステートレスルールの両方を使用します。Amazon VPCネットワークアクセスコントロールリスト(ACL)と同様に、ステートレスルールは、フローの方向や確立された接続の有無などのコンテキスト要因に関係なく、個々のパケット自体を検査対象にします。一方、ステートフルルールによって実行される検査は、トラフィックフローのコンテキストに依存します。ステートフルルールはより複雑であり、ネットワークトラフィックだけでなくネットワーク ファイアウォール アラートもログに記録できます。
ステートレスルール
ステートレスルールグループは、次の2つの機能に分類できます。
- BLOCKルール(*-rulegroup-json )–トラフィックをブロックするだけの場合は、次のルールを使用します。
- ALLOWルール(*-rulegroup-allow-json )-トラフィックを許可し、検出されたイベントを分析およびログ用にステートフルエンジンに送信することでイベントを確認する場合は、これらのルールを使用します。
次の表は、 Network Securityによって共有されるステートレスルールグループをまとめたものです。 現在の容量の制限により、ネットワーク環境に最も適したルールグループを1つだけ選択できます。
ルールグループ | 説明 | ルール/ IP数 | AWSの処理 |
---|---|---|---|
repdv-rulegroup-json and repdv-rulegroup-allow-json |
これらのIPは、ルーティング不能なIP(完全なbogon)、スパムメール処理への既知のリンク(Spamhaus)、およびさまざまな不正プログラム/トロイの木馬によって使用される既知のIPなど、多くのソースから派生しています。 | 2388 | aws:drop and aws:forward_to_sfe |
repdv-rulegroup-tor-exits-json and repdv-rulegroup-tor-exits-allow-json |
これらのIPは、Torトラフィックがインターネットへの接続に使用するゲートウェイです。Tor出口ノードの詳細については、 CISAレポートを参照してください。 | 1331 | aws:drop and aws:forward_to_sfe |
repdv-rulegroup-wrs-top-ips-json and repdv-rulegroup-wrs-top-ips-allow-json |
メールレピュテーションサービスのメール転送エージェント(ERS MTA)の不審IPリストのうち、最もヒット数の多い5000件のIP | 5000 | aws:drop and aws:forward_to_sfe |
ステートフルルール
トラフィックフローのコンテキストでパケットを検査することで、ステートフルルールエンジンはパケット配信を遅延させ、トラフィックフロー検査のためにパケットをグループ化できます。共有ステートフルルールグループ ** snort-mrs-snort-rules-json **は、サービスに含まれる不正プログラムルールの強力なサブセットです。約128のルールで構成され、最大容量は1000です。このルールグループをファイアウォールポリシーに追加して、VPCを保護できます。詳細すべての不正プログラムルールについて侵入防御フィルタ。
ファイアウォールポリシーを作成する
Network Securityで共有されているルールグループを受け入れた後、トラフィックを Network Security ルールグループに転送できるように、ルールグループをステートレスまたはステートフルルールグループのポリシーに割り当てます。ファイアウォールポリシーの最適化に関する詳細を参照してください。
ファイアウォールポリシーを設定するときは、有効期間中にルールグループに含めると予想されるルールの数を計算してください。この制限は一度指定すると再度変更できないため、この点は重要です。ステートフルルールグループに含めることができるルールの最大数は30,000で、ステートレスルールグループの最大数は10,000です。
ファイアウォールを設定する
脅威インテリジェンス ルールグループを使用してファイアウォールポリシーを設定したら、設定済みのAWSネットワークファイアウォールにポリシーを関連付ける必要があります。
- AWS VPCから、 AWS NETWORK FIREWALL> FIREWALLS> firewallname > Firewall detailsに移動します。
- Associated policy and VPC policyパネルで、Editをクリックします。
- Associate an existing firewall policyを選択します。
- ファイアウォールに関連付けるファイアウォールポリシーを選択し、Saveをクリックします。
ログの設定
トラフィックがルール条件に一致するたびにイベントをログに記録するには
-
AWS VPCから、 AWS NETWORK FIREWALL> FIREWALLS> firewallname > Firewall detailsに移動します。
-
Loggingパネルで、Editをクリックします。
-
Log typeパネルで、Flowチェックボックスをオンにして、トラフィックのヒットを記録するかどうかを指定します。アラートを受信する場合は、Alertチェックボックスをオンにします。
-
前の手順でアラートログを設定した場合は、Log destination for alertsパネルで、ログの送信先と関連するロググループを指定します。
ルールグループのテスト
ルールグループが正しく設定されていることを確認するには、まず次の前提条件を満たしていることを確認します。
- ファイアウォールポリシーに共有ステートフルルール( networksecurity-snort-mrs-snort-rules-json )が追加されました。
- ファイアウォールポリシーがファイアウォールに関連付けられました。
- ステートレスルールグループに一致しないパケット全体をステートフルエンジンに転送して検査するようにファイアウォールを設定し、パケットがステートフルルールグループに一致するとアラートログが生成されるようにしました。
- ファイアウォールを展開して、実行中のインスタンスを少なくとも1つ含むVPCを保護します。AWS Network Firewall アーキテクチャの詳細を参照してください。
これらの前提条件を満たした後、curlクエリを使用して次の不正プログラムフィルタを実行し、ルールが機能していることを確認できます。次のフィルタはすべて、HTTPポート(ポート80)を介したアウトバウンドトラフィックを処理します。
HTTP:Trojan-Downloader.Win64.BazarLoader.A Runtime Detection(filter 25492)の場合は、次のコマンドを入力します。
curl -H 'User-Agent: sdvntyer' http://www.example.com/api/v88
次に、アラートログの出力を確認します。
{
"firewall_name": "...",
...
"event": {
"timestamp": "...",
...
"dest_ip": "93.184.216.34",
"dest_port": 80,
"proto": "TCP",
"tx_id": 0,
"alert": {
"action": "allowed",
"signature_id":...,
"rev": 1,
"signature": "Malware Trojan-Downloader.Win64.BazarLoader.A Runtime Detection - (DECRYPTED TRAFFIC)",
"category": "",
"severity": 3
},
"http": {
"hostname": "www.example.com",
"url": "/api/v88",
"http_user_agent": "sdvntyer",
"http_method": "GET",
"protocol": "HTTP/1.1",
"length": 0
},
"app_proto": "http"
}
}
HTTP:Backdoor.Shell.Dragonmuddy.A Runtime Detection(フィルタ34738)の場合は、次のコマンドを入力します。
curl 'http://www.example.com/includes/main.php?t=7d4580a3910c54d62b46f24c397c8d59&f=g2&type=cmd&id=D7CB4B6E5A21CA596DE0A7E10059C85E'
次に、アラートログの出力を確認します。
{
"firewall_name": "...",
...
"event": {
"timestamp": "...",
...
"dest_ip": "93.184.216.34",
"dest_port": 80,
"proto": "TCP",
"tx_id": 0,
"alert": {
"action": "allowed",
"signature_id": ...,
"rev": 1,
"signature": "Malware Backdoor.Shell.Dragonmuddy.A Runtime Detection",
"category": "",
"severity": 3
},
"http": {
"hostname": "www.example.com",
"url": "/includes/main.php?t=7d4580a3910c54d62b46f24c397c8d59&f=g2&type=cmd&id=D7CB4B6E5A21CA596DE0A7E10059C85E",
"http_user_agent": "curl/7.68.0",
"http_method": "GET",
"protocol": "HTTP/1.1",
"length": 0
},
"app_proto": "http"
}
}
HTTP:Worm.Python.KashmirBlack.A Runtime Detection(filter 38451)の場合は、次のコマンドを入力します。
curl -H 'User-Agent: ArcherGhost' -d 'post=eyJkYXRhIjogeyJkb21haW4iOiAiaHR0cDovL3RhcmdldDEyMy5jb20vYXNzZXRzL3ZlbmRvci9waHB1bml0L3BocHVuaXQvc3JjL1V0aWwvUEhQL3Nzc3AucGhwIiwgInNlcnZlciI6ICIxOTIuMTY4LjEwNy4xOSIsICJ0aXRsZSI6ICJqcSJ9LCAidHlwZSI6ICJzY2FubmVyIn0%3D' http://www.example.com/adeliap/404.php
次に、アラートログの出力を確認します。
{
"firewall_name": "...",
...
"event": {
"timestamp": "...",
...
"dest_ip": "93.184.216.34",
"dest_port": 80,
"proto": "TCP",
"tx_id": 0,
"alert": {
"action": "allowed",
"signature_id": ...,
"rev": 1,
"signature": "Malware Worm.Python.KashmirBlack.A Runtime Detection - (DECRYPTED TRAFFIC)",
"category": "",
"severity": 3
},
"http": {
"hostname": "www.example.com",
"url": "/adeliap/404.php",
"http_user_agent": "ArcherGhost",
"http_method": "POST",
"protocol": "HTTP/1.1",
"length": 0
},
"app_proto": "http"
}
}
これらのフィルタの詳細については、フィルタ番号(25492、34738、または38951など)を使用して検索してください。トラブルシューティングの支援が必要な場合は、右上隅から Help > Support をクリックして、サポートケースを送信してください。