Kustomisasi CloudWatch peringatan Amazon untuk AWS Network Firewall - AWS Prescriptive Guidance

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Kustomisasi CloudWatch peringatan Amazon untuk AWS Network Firewall

Jason Owens, Amazon Web Services

Ringkasan

Pola ini membantu Anda menyesuaikan CloudWatch peringatan Amazon yang dihasilkan oleh AWS Network Firewall. Anda dapat menggunakan aturan yang telah ditentukan sebelumnya atau membuat aturan khusus yang menentukan pesan, metadata, dan tingkat keparahan peringatan. Anda kemudian dapat menindaklanjuti peringatan ini atau mengotomatiskan tanggapan oleh layanan Amazon lainnya, seperti Amazon. EventBridge

Dalam pola ini, Anda menghasilkan aturan firewall yang kompatibel dengan Suricata. Suricata adalah mesin pendeteksi ancaman sumber terbuka. Pertama-tama Anda membuat aturan sederhana dan kemudian mengujinya untuk mengonfirmasi bahwa CloudWatch peringatan dibuat dan dicatat. Setelah Anda berhasil menguji aturan, Anda memodifikasinya untuk menentukan pesan kustom, metadata, dan tingkat keparahan, dan Anda kemudian menguji sekali lagi untuk mengonfirmasi pembaruan.

Prasyarat dan batasan

Prasyarat

  • Aktif Akun AWS.

  • AWS Command Line Interface (AWS CLI) diinstal dan dikonfigurasi di workstation Linux, macOS, atau Windows Anda. Untuk informasi selengkapnya, lihat Menginstal atau memperbarui versi terbaru AWS CLI.

  • AWS Network Firewall diinstal dan dikonfigurasi untuk menggunakan CloudWatch Log. Untuk informasi selengkapnya, lihat Mencatat lalu lintas jaringan dari AWS Network Firewall.

  • Instans Amazon Elastic Compute Cloud (Amazon EC2) di subnet pribadi virtual private cloud (VPC) yang dilindungi oleh Network Firewall.

Versi produk

  • Untuk versi 1 AWS CLI, gunakan 1.18.180 atau yang lebih baru. Untuk versi 2 AWS CLI, gunakan 2.1.2 atau yang lebih baru.

  • File klasifikasi.config dari Suricata versi 5.0.2. Untuk salinan file konfigurasi ini, lihat bagian Informasi tambahan.

Arsitektur

Permintaan EC2 instance menghasilkan peringatan di Network Firewall, yang meneruskan peringatan ke CloudWatch

Diagram arsitektur menunjukkan alur kerja berikut:

  1. EC2 Instans Amazon di subnet pribadi membuat permintaan dengan menggunakan curl atau Wget.

  2. Network Firewall memproses lalu lintas dan menghasilkan peringatan.

  3. Network Firewall mengirimkan peringatan yang dicatat ke CloudWatch Log.

Alat

Layanan AWS

  • Amazon CloudWatch membantu Anda memantau metrik sumber AWS daya Anda dan aplikasi yang Anda jalankan AWS secara real time.

  • Amazon CloudWatch Logs membantu Anda memusatkan log dari semua sistem, aplikasi, Layanan AWS sehingga Anda dapat memantau dan mengarsipkannya dengan aman.

  • AWS Command Line Interface (AWS CLI) adalah alat sumber terbuka yang membantu Anda berinteraksi Layanan AWS melalui perintah di shell baris perintah Anda.

  • AWS Network Firewalladalah firewall jaringan stateful, dikelola, dan layanan deteksi dan pencegahan intrusi untuk cloud pribadi virtual () VPCs di. AWS Cloud 

Alat-alat lainnya

  • curl adalah alat baris perintah sumber terbuka dan perpustakaan.

  • GNU Wget adalah alat baris perintah gratis.

Epik

TugasDeskripsiKeterampilan yang dibutuhkan

Buat aturan.

  1. Di editor teks, buat daftar aturan yang ingin Anda tambahkan ke firewall. Setiap aturan harus berada pada baris terpisah. Nilai dalam classtype parameter berasal dari file konfigurasi klasifikasi Suricata default. Untuk isi file konfigurasi lengkap, lihat bagian Informasi tambahan. Berikut ini adalah dua contoh aturan.

    alert http any any -> any any (content:"badstuff"; classtype:misc-activity; sid:3; rev:1;) alert http any any -> any any (content:"morebadstuff"; classtype:bad-unknown; sid:4; rev:1;)
  2. Simpan aturan dalam file bernamacustom.rules.

Administrator sistem AWS, Administrator jaringan

Buat grup aturan.

Di AWS CLI, masukkan perintah berikut. Ini menciptakan grup aturan.

❯ aws network-firewall create-rule-group \ --rule-group-name custom --type STATEFUL \ --capacity 10 --rules file://custom.rules \ --tags Key=environment,Value=development

Berikut ini adalah output contoh. CatatRuleGroupArn, yang Anda butuhkan di langkah selanjutnya.

{ "UpdateToken": "4f998d72-973c-490a-bed2-fc3460547e23", "RuleGroupResponse": { "RuleGroupArn": "arn:aws:network-firewall:us-east-2:1234567890:stateful-rulegroup/custom", "RuleGroupName": "custom", "RuleGroupId": "238a8259-9eaf-48bb-90af-5e690cf8c48b", "Type": "STATEFUL", "Capacity": 10, "RuleGroupStatus": "ACTIVE", "Tags": [ { "Key": "environment", "Value": "development" } ] }
Administrator sistem AWS
TugasDeskripsiKeterampilan yang dibutuhkan

Dapatkan ARN dari kebijakan firewall.

Di AWS CLI, masukkan perintah berikut. Ini mengembalikan Nama Sumber Daya Amazon (ARN) dari kebijakan firewall. Rekam ARN untuk digunakan nanti dalam pola ini.

❯ aws network-firewall describe-firewall \ --firewall-name aws-network-firewall-anfw \ --query 'Firewall.FirewallPolicyArn'

Berikut ini adalah contoh ARN yang dikembalikan oleh perintah ini.

"arn:aws:network-firewall:us-east-2:1234567890:firewall-policy/firewall-policy-anfw"
Administrator sistem AWS

Perbarui kebijakan firewall.

Dalam editor teks, salin tempel kode berikut. Ganti <RuleGroupArn> dengan nilai yang Anda rekam di epik sebelumnya. Simpan file sebagai firewall-policy-anfw.json.

{ "StatelessDefaultActions": [ "aws:forward_to_sfe" ], "StatelessFragmentDefaultActions": [ "aws:forward_to_sfe" ], "StatefulRuleGroupReferences": [ { "ResourceArn": "<RuleGroupArn>" } ] }

Masukkan perintah berikut di file AWS CLI. Perintah ini memerlukan token pembaruan untuk menambahkan aturan baru. Token digunakan untuk mengonfirmasi bahwa kebijakan tidak berubah sejak terakhir kali Anda mengambilnya.

UPDATETOKEN=(`aws network-firewall describe-firewall-policy \ --firewall-policy-name firewall-policy-anfw \ --output text --query UpdateToken`) aws network-firewall update-firewall-policy \ --update-token $UPDATETOKEN \ --firewall-policy-name firewall-policy-anfw \ --firewall-policy file://firewall-policy-anfw.json
Administrator sistem AWS

Konfirmasikan pembaruan kebijakan.

(Opsional) Jika Anda ingin mengonfirmasi aturan ditambahkan dan melihat format kebijakan, masukkan perintah berikut di AWS CLI.

❯ aws network-firewall describe-firewall-policy \ --firewall-policy-name firewall-policy-anfw \ --query FirewallPolicy

Berikut ini adalah output contoh.

{ "StatelessDefaultActions": [ "aws:forward_to_sfe" ], "StatelessFragmentDefaultActions": [ "aws:forward_to_sfe" ], "StatefulRuleGroupReferences": [ { "ResourceArn": "arn:aws:network-firewall:us-east-2:1234567890:stateful-rulegroup/custom" } ] }
Administrator sistem AWS
TugasDeskripsiKeterampilan yang dibutuhkan

Hasilkan peringatan untuk pengujian.

  1. Masuk ke workstation pengujian dalam subnet firewall.

  2. Masukkan perintah yang seharusnya menghasilkan peringatan. Misalnya, Anda dapat menggunakan wget ataucurl.

    wget -U "badstuff" http://www.amazon.com -o /dev/null
    curl -A "morebadstuff" http://www.amazon.com -o /dev/null
Administrator sistem AWS

Validasi bahwa peringatan dicatat.

  1. Buka konsol CloudWatch .

  2. Arahkan ke grup log dan streaming yang benar. Untuk informasi selengkapnya, lihat Melihat data log yang dikirim ke CloudWatch Log (dokumentasi CloudWatch Log).

  3. Konfirmasikan peristiwa yang dicatat mirip dengan contoh berikut. Contoh hanya menunjukkan bagian peringatan yang relevan.

    Contoh 1

            "alert": {             "action": "allowed",             "signature_id": 3,             "rev": 1,             "signature": "",             "category": "Misc activity",             "severity": 3         }

    Contoh 2

            "alert": {             "action": "allowed",             "signature_id": 4,             "rev": 1,             "signature": "",             "category": "Potentially Bad Traffic",             "severity": 2         }
Administrator sistem AWS
TugasDeskripsiKeterampilan yang dibutuhkan

Perbarui aturan firewall.

  1. Dalam editor teks, buka custom.rules file.

  2. Ubah aturan pertama menjadi serupa dengan yang berikut ini. Aturan ini harus dimasukkan pada satu baris dalam file.

    alert http any any -> any any (msg:"Watch out - Bad Stuff!!"; content:"badstuff"; classtype:misc-activity; priority:2; sid:3; rev:2; metadata:custom-field-2 Danger!, custom-field More Info;)

    Ini membuat perubahan berikut pada aturan:

    • Menambahkan string msg (situs web Suricata) yang menyediakan informasi teks tentang tanda tangan atau peringatan. Dalam peringatan yang dihasilkan, ini memetakan ke tanda tangan. 

    • Menyesuaikan prioritas default (situs web Suricata) misc-activity dari 3 hingga 2. Untuk nilai default dari berbagaiclasstypes, lihat bagian Informasi tambahan.

    • Menambahkan metadata khusus (situs web Suricata) ke peringatan. Ini adalah informasi tambahan yang ditambahkan ke tanda tangan. Disarankan agar Anda menggunakan pasangan kunci-nilai.

    • Mengubah rev (situs web Suricata) dari 1 menjadi 2. Ini mewakili versi tanda tangan.

Administrator sistem AWS

Perbarui grup aturan.

Di AWS CLI, jalankan perintah berikut. Gunakan ARN kebijakan firewall Anda. Perintah ini mendapatkan token pembaruan dan memperbarui grup aturan dengan perubahan aturan.

❯ UPDATETOKEN=(`aws network-firewall \ describe-rule-group \ --rule-group-arn arn:aws:network-firewall:us-east-2:123457890:stateful-rulegroup/custom \ --output text --query UpdateToken`)
❯ aws network-firewall update-rule-group \ --rule-group-arn arn:aws:network-firewall:us-east-2:1234567890:stateful-rulegroup/custom \ --rules file://custom.rules \ --update-token $UPDATETOKEN

Berikut ini adalah output contoh.

{ "UpdateToken": "7536939f-6a1d-414c-96d1-bb28110996ed", "RuleGroupResponse": { "RuleGroupArn": "arn:aws:network-firewall:us-east-2:1234567890:stateful-rulegroup/custom", "RuleGroupName": "custom", "RuleGroupId": "238a8259-9eaf-48bb-90af-5e690cf8c48b", "Type": "STATEFUL", "Capacity": 10, "RuleGroupStatus": "ACTIVE", "Tags": [ { "Key": "environment", "Value": "development" } ] } }
Administrator sistem AWS
TugasDeskripsiKeterampilan yang dibutuhkan

Hasilkan peringatan untuk pengujian.

  1. Masuk ke workstation pengujian dalam subnet firewall.

  2. Masukkan perintah yang seharusnya menghasilkan peringatan. Misalnya, Anda dapat menggunakancurl.

    curl -A "badstuff" http://www.amazon.com -o /dev/null
Administrator sistem AWS

Validasi peringatan diubah.

  1. Buka konsol CloudWatch .

  2. Arahkan ke grup log dan streaming yang benar.

  3. Konfirmasikan peristiwa yang dicatat mirip dengan contoh berikut. Contoh hanya menunjukkan bagian peringatan yang relevan.

    "alert": {     "action": "allowed",     "signature_id": 3,     "rev": 2,     "signature": "Watch out - Bad Stuff!!",     "category": "Misc activity",     "severity": 2,     "metadata": {         "custom-field": [             "More Info"         ],         "custom-field-2": [             "Danger!"         ]     } }
Administrator sistem AWS

Sumber daya terkait

Referensi

Tutorial dan video

Informasi tambahan

Berikut ini adalah file konfigurasi klasifikasi dari Suricata 5.0.2. Klasifikasi ini digunakan saat membuat aturan firewall.

# config classification:shortname,short description,priority config classification: not-suspicious,Not Suspicious Traffic,3 config classification: unknown,Unknown Traffic,3 config classification: bad-unknown,Potentially Bad Traffic, 2 config classification: attempted-recon,Attempted Information Leak,2 config classification: successful-recon-limited,Information Leak,2 config classification: successful-recon-largescale,Large Scale Information Leak,2 config classification: attempted-dos,Attempted Denial of Service,2 config classification: successful-dos,Denial of Service,2 config classification: attempted-user,Attempted User Privilege Gain,1 config classification: unsuccessful-user,Unsuccessful User Privilege Gain,1 config classification: successful-user,Successful User Privilege Gain,1 config classification: attempted-admin,Attempted Administrator Privilege Gain,1 config classification: successful-admin,Successful Administrator Privilege Gain,1 # NEW CLASSIFICATIONS config classification: rpc-portmap-decode,Decode of an RPC Query,2 config classification: shellcode-detect,Executable code was detected,1 config classification: string-detect,A suspicious string was detected,3 config classification: suspicious-filename-detect,A suspicious filename was detected,2 config classification: suspicious-login,An attempted login using a suspicious username was detected,2 config classification: system-call-detect,A system call was detected,2 config classification: tcp-connection,A TCP connection was detected,4 config classification: trojan-activity,A Network Trojan was detected, 1 config classification: unusual-client-port-connection,A client was using an unusual port,2 config classification: network-scan,Detection of a Network Scan,3 config classification: denial-of-service,Detection of a Denial of Service Attack,2 config classification: non-standard-protocol,Detection of a non-standard protocol or event,2 config classification: protocol-command-decode,Generic Protocol Command Decode,3 config classification: web-application-activity,access to a potentially vulnerable web application,2 config classification: web-application-attack,Web Application Attack,1 config classification: misc-activity,Misc activity,3 config classification: misc-attack,Misc Attack,2 config classification: icmp-event,Generic ICMP event,3 config classification: inappropriate-content,Inappropriate Content was Detected,1 config classification: policy-violation,Potential Corporate Privacy Violation,1 config classification: default-login-attempt,Attempt to login by a default username and password,2 # Update config classification: targeted-activity,Targeted Malicious Activity was Detected,1 config classification: exploit-kit,Exploit Kit Activity Detected,1 config classification: external-ip-check,Device Retrieving External IP Address Detected,2 config classification: domain-c2,Domain Observed Used for C2 Detected,1 config classification: pup-activity,Possibly Unwanted Program Detected,2 config classification: credential-theft,Successful Credential Theft Detected,1 config classification: social-engineering,Possible Social Engineering Attempted,2 config classification: coin-mining,Crypto Currency Mining Activity Detected,2 config classification: command-and-control,Malware Command and Control Activity Detected,1