Nowość w Amazon GuardDuty – ochrona przed złośliwym oprogramowaniem dla Amazon EBS Volumes
Dzięki Amazon GuardDuty możesz monitorować swoje konta AWS i obciążenia w celu wykrywania złośliwej aktywności. W dzisiejszym artykule autorzy dodają do GuardDuty możliwość wykrywania malware.
Malware to złośliwe oprogramowanie, które służy do narażania obciążeń, zmiany przeznaczenia zasobów lub uzyskiwania nieautoryzowanego dostępu do danych. Gdy masz włączoną ochronę przed złośliwym oprogramowaniem –GuardDuty, skanowanie w poszukiwaniu złośliwego oprogramowania jest inicjowane, gdy GuardDuty wykryje, że jedna z instancji EC2 lub obciążeń kontenerów działających na EC2 robi coś podejrzanego. Na przykład skanowanie w poszukiwaniu złośliwego oprogramowania jest wyzwalane, gdy instancja EC2 komunikuje się z serwerem dowodzenia i kontroli, o którym wiadomo, że jest złośliwy lub przeprowadza ataki typu „odmowa usługi” (DoS) lub ataki brute-force na inne instancje EC2.
GuardDuty obsługuje wiele typów systemów plików i skanuje formaty plików, o których wiadomo, że są używane do rozprzestrzeniania lub przechowywania złośliwego oprogramowania, w tym pliki wykonywalne systemów Windows i Linux, pliki PDF, archiwa, pliki binarne, skrypty, instalatory, bazy danych e-mail i zwykłe wiadomości e-mail.
Po zidentyfikowaniu potencjalnego złośliwego oprogramowania generowane są wyniki dotyczące bezpieczeństwa, które można podjąć, wraz z informacjami, takimi jak zagrożenie i nazwa pliku, ścieżka pliku, identyfikator instancji EC2, tagi zasobów oraz w przypadku kontenerów, identyfikator kontenera i używany obraz kontenera. GuardDuty obsługuje obciążenia kontenerów działające w EC2, w tym zarządzane przez klienta klastry Kubernetes lub pojedyncze kontenery Docker. Jeśli kontener jest zarządzany przez Amazon Elastic Kubernetes Service (EKS) lub Amazon Elastic Container Service (Amazon ECS), wyniki obejmują również nazwę klastra i identyfikator zadania lub pod, dzięki czemu zespoły aplikacji i zabezpieczeń mogą szybko znaleźć zasoby kontenera, których dotyczy problem.
Podobnie jak w przypadku wszystkich innych ustaleń GuardDuty, wykrycia złośliwego oprogramowania są wysyłane do konsoli GuardDuty, przesyłane przez Amazon EventBridge, kierowane do AWS Security Hub i udostępniane w Amazon Detective w celu zbadania incydentu.
W jaki sposób działa GuardDuty Malware Protection?
Po włączeniu ochrony przed złośliwym oprogramowaniem konfigurujesz połączoną z usługą rolę AWS Identity and Access Management (IAM), która przyznaje uprawnienia GuardDuty do wykonywania skanowania w poszukiwaniu złośliwego oprogramowania. Po zainicjowaniu skanowania w poszukiwaniu złośliwego oprogramowania dla instancji EC2, GuardDuty Malware Protection wykorzystuje te uprawnienia do wykonania migawki dołączonych wolumenów Amazon Elastic Block Store (EBS), których rozmiar jest mniejszy niż 1 TB. Następnie przywraca wolumeny EBS w usłudze AWS konto w tym samym regionie AWS, aby przeskanować je w poszukiwaniu złośliwego oprogramowania. Możesz użyć tagowania, aby uwzględnić lub wykluczyć instancje EC2 z tych uprawnień i ze skanowania. W ten sposób nie musisz wdrażać oprogramowania zabezpieczającego ani agentów do monitorowania pod kątem złośliwego oprogramowania, a skanowanie wolumenów nie wpływa na działające obciążenia. Wolumeny EBS na koncie usługi i migawki na koncie są usuwane po skanowaniu. Opcjonalnie możesz zachować migawki po wykryciu złośliwego oprogramowania.
Rola połączona z usługą zapewnia GuardDuty dostęp do AWS Key Management Service (AWS KMS) używanych do szyfrowania wolumenów EBS. Jeśli wolumeny EBS dołączone do potencjalnie zaatakowanej instancji EC2 są szyfrowane kluczem zarządzanym przez klienta, ochrona przed złośliwym oprogramowaniem GuardDuty używa tego samego klucza również do szyfrowania wolumenów replik EBS. Klucze KMS, z których GuardDuty nadaje uprawnienia do konta usługi, nie mogą być wywoływane z żadnego kontekstu z wyjątkiem usługi Amazon EBS. Ponadto granty są wycofywane po zakończeniu skanowania. Jeśli wolumeny nie są zaszyfrowane, GuardDuty używa własnego klucza do szyfrowania wolumenów replik EBS, aby zapewnić, że te wolumeny utworzone przez GuardDuty są zawsze zaszyfrowane. Wolumeny zaszyfrowane kluczami zarządzanymi przez EBS nie są obsługiwane.
Bezpieczeństwo w chmurze to wspólna odpowiedzialność pomiędzy Tobą a AWS. Jako bariera, powiązana z usługą rola używana przez GuardDuty Malware Protection nie może wykonywać żadnych operacji na zasobach (takich jak migawki i woluminy EBS, instancje EC2 i klucze KMS), jeśli ma znacznik GuardDutyExcluded. Po oznaczeniu migawek z GuardDutyExcluded ustawionym na true, usługa GuardDuty nie będzie mogła uzyskać dostępu do tych migawek. Znacznik GuardDutyExcluded zastępuje wszystkie znaczniki włączenia. Uprawnienia ograniczają również sposób, w jaki GuardDuty może modyfikować migawkę, aby nie mogły zostać upublicznione, gdy są udostępniane kontu usługi GuardDuty.
Aktywacja Malware Protection dla AWS Account
Jeśli nie używasz jeszcze GuardDuty, ochrona przed złośliwym oprogramowaniem jest domyślnie włączona po aktywacji GuardDuty na swoim koncie. Ze względu na to, że autorzy używają już GuardDuty, muszą włączyć ochronę przed złośliwym oprogramowaniem z konsoli. Jeśli korzystasz z organizacji AWS, Twoje delegowane konta administratorów mogą włączyć to dla istniejących kont członkowskich i skonfigurować, czy nowe konta AWS w organizacji powinny być automatycznie rejestrowane.
W konsoli GuardDuty wybierz Malware Protection w Ustawieniach w panelu nawigacyjnym. Tam wybierz Włącz, a następnie Włącz ochronę przed złośliwym oprogramowaniem.
Migawki są automatycznie usuwane po zeskanowaniu. W zakładce General Settings znajdziesz opcję zachowania na koncie AWS migawek, w których wykryto złośliwe oprogramowanie i udostępnienia ich do dalszej analizy.
W opcjach skanowania możesz skonfigurować listę tagów włączenia, aby skanowane były tylko instancje EC2 z tymi tagami lub tagi wykluczeń, tak aby instancje EC2 z tagami na liście były pomijane.
Testowanie wyników Malware Protection GuardDuty
Aby wygenerować kilka wyników Amazon GuardDuty, w tym nowe wyniki ochrony przed złośliwym oprogramowaniem, autorzy sklonowali repozytorium Amazon GuardDuty Tester:
$ git clone https://github.com/awslabs/amazon-guardduty-tester
Najpierw utwórz stos AWS CloudFormation przy użyciu pliku guardduty-tester.template. Gdy stos jest gotowy, postępuj zgodnie z instrukcjami, aby skonfigurować klienta SSH, aby logował się do instancji testera za pośrednictwem hosta bastionu. Następnie połącz się z instancją testera:
$ ssh tester
Z instancji testowej uruchom skrypt guardduty_tester.sh, aby wygenerować wyniki:
$ ./guardduty_tester.sh
***********************************************************************
* Test #1 - Internal port scanning *
* This simulates internal reconaissance by an internal actor or an *
* external actor after an initial compromise. This is considered a *
* low priority finding for GuardDuty because its not a clear indicator*
* of malicious intent on its own. *
***********************************************************************
Starting Nmap 6.40 ( http://nmap.org ) at 2022-05-19 09:36 UTC
Nmap scan report for ip-172-16-0-20.us-west-2.compute.internal (172.16.0.20)
Host is up (0.00032s latency).
Not shown: 997 filtered ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp closed http
5050/tcp closed mmcc
MAC Address: 06:25:CB:F4:E0:51 (Unknown)
Nmap done: 1 IP address (1 host up) scanned in 4.96 seconds
-----------------------------------------------------------------------
***********************************************************************
* Test #2 - SSH Brute Force with Compromised Keys *
* This simulates an SSH brute force attack on an SSH port that we *
* can access from this instance. It uses (phony) compromised keys in *
* many subsequent attempts to see if one works. This is a common *
* techique where the bad actors will harvest keys from the web in *
* places like source code repositories where people accidentally leave*
* keys and credentials (This attempt will not actually succeed in *
* obtaining access to the target linux instance in this subnet) *
***********************************************************************
2022-05-19 09:36:29 START
2022-05-19 09:36:29 Crowbar v0.4.3-dev
2022-05-19 09:36:29 Trying 172.16.0.20:22
2022-05-19 09:36:33 STOP
2022-05-19 09:36:33 No results found...
2022-05-19 09:36:33 START
2022-05-19 09:36:33 Crowbar v0.4.3-dev
2022-05-19 09:36:33 Trying 172.16.0.20:22
2022-05-19 09:36:37 STOP
2022-05-19 09:36:37 No results found...
2022-05-19 09:36:37 START
2022-05-19 09:36:37 Crowbar v0.4.3-dev
2022-05-19 09:36:37 Trying 172.16.0.20:22
2022-05-19 09:36:41 STOP
2022-05-19 09:36:41 No results found...
2022-05-19 09:36:41 START
2022-05-19 09:36:41 Crowbar v0.4.3-dev
2022-05-19 09:36:41 Trying 172.16.0.20:22
2022-05-19 09:36:45 STOP
2022-05-19 09:36:45 No results found...
2022-05-19 09:36:45 START
2022-05-19 09:36:45 Crowbar v0.4.3-dev
2022-05-19 09:36:45 Trying 172.16.0.20:22
2022-05-19 09:36:48 STOP
2022-05-19 09:36:48 No results found...
2022-05-19 09:36:49 START
2022-05-19 09:36:49 Crowbar v0.4.3-dev
2022-05-19 09:36:49 Trying 172.16.0.20:22
2022-05-19 09:36:52 STOP
2022-05-19 09:36:52 No results found...
2022-05-19 09:36:52 START
2022-05-19 09:36:52 Crowbar v0.4.3-dev
2022-05-19 09:36:52 Trying 172.16.0.20:22
2022-05-19 09:36:56 STOP
2022-05-19 09:36:56 No results found...
2022-05-19 09:36:56 START
2022-05-19 09:36:56 Crowbar v0.4.3-dev
2022-05-19 09:36:56 Trying 172.16.0.20:22
2022-05-19 09:37:00 STOP
2022-05-19 09:37:00 No results found...
2022-05-19 09:37:00 START
2022-05-19 09:37:00 Crowbar v0.4.3-dev
2022-05-19 09:37:00 Trying 172.16.0.20:22
2022-05-19 09:37:04 STOP
2022-05-19 09:37:04 No results found...
2022-05-19 09:37:04 START
2022-05-19 09:37:04 Crowbar v0.4.3-dev
2022-05-19 09:37:04 Trying 172.16.0.20:22
2022-05-19 09:37:08 STOP
2022-05-19 09:37:08 No results found...
2022-05-19 09:37:08 START
2022-05-19 09:37:08 Crowbar v0.4.3-dev
2022-05-19 09:37:08 Trying 172.16.0.20:22
2022-05-19 09:37:12 STOP
2022-05-19 09:37:12 No results found...
2022-05-19 09:37:12 START
2022-05-19 09:37:12 Crowbar v0.4.3-dev
2022-05-19 09:37:12 Trying 172.16.0.20:22
2022-05-19 09:37:16 STOP
2022-05-19 09:37:16 No results found...
2022-05-19 09:37:16 START
2022-05-19 09:37:16 Crowbar v0.4.3-dev
2022-05-19 09:37:16 Trying 172.16.0.20:22
2022-05-19 09:37:20 STOP
2022-05-19 09:37:20 No results found...
2022-05-19 09:37:20 START
2022-05-19 09:37:20 Crowbar v0.4.3-dev
2022-05-19 09:37:20 Trying 172.16.0.20:22
2022-05-19 09:37:23 STOP
2022-05-19 09:37:23 No results found...
2022-05-19 09:37:23 START
2022-05-19 09:37:23 Crowbar v0.4.3-dev
2022-05-19 09:37:23 Trying 172.16.0.20:22
2022-05-19 09:37:27 STOP
2022-05-19 09:37:27 No results found...
2022-05-19 09:37:27 START
2022-05-19 09:37:27 Crowbar v0.4.3-dev
2022-05-19 09:37:27 Trying 172.16.0.20:22
2022-05-19 09:37:31 STOP
2022-05-19 09:37:31 No results found...
2022-05-19 09:37:31 START
2022-05-19 09:37:31 Crowbar v0.4.3-dev
2022-05-19 09:37:31 Trying 172.16.0.20:22
2022-05-19 09:37:34 STOP
2022-05-19 09:37:34 No results found...
2022-05-19 09:37:35 START
2022-05-19 09:37:35 Crowbar v0.4.3-dev
2022-05-19 09:37:35 Trying 172.16.0.20:22
2022-05-19 09:37:38 STOP
2022-05-19 09:37:38 No results found...
2022-05-19 09:37:38 START
2022-05-19 09:37:38 Crowbar v0.4.3-dev
2022-05-19 09:37:38 Trying 172.16.0.20:22
2022-05-19 09:37:42 STOP
2022-05-19 09:37:42 No results found...
2022-05-19 09:37:42 START
2022-05-19 09:37:42 Crowbar v0.4.3-dev
2022-05-19 09:37:42 Trying 172.16.0.20:22
2022-05-19 09:37:46 STOP
2022-05-19 09:37:46 No results found...
-----------------------------------------------------------------------
***********************************************************************
* Test #3 - RDP Brute Force with Password List *
* This simulates an RDP brute force attack on the internal RDP port *
* of the windows server that we installed in the environment. It uses*
* a list of common passwords that can be found on the web. This test *
* will trigger a detection, but will fail to get into the target *
* windows instance. *
***********************************************************************
Sending 250 password attempts at the windows server...
Hydra v9.4-dev (c) 2022 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).
Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2022-05-19 09:37:46
[WARNING] rdp servers often don't like many connections, use -t 1 or -t 4 to reduce the number of parallel connections and -W 1 or -W 3 to wait between connection to allow the server to recover
[INFO] Reduced number of tasks to 4 (rdp does not like many parallel connections)
[WARNING] the rdp module is experimental. Please test, report - and if possible, fix.
[DATA] max 4 tasks per 1 server, overall 4 tasks, 1792 login tries (l:7/p:256), ~448 tries per task
[DATA] attacking rdp://172.16.0.24:3389/
[STATUS] 1099.00 tries/min, 1099 tries in 00:01h, 693 to do in 00:01h, 4 active
1 of 1 target completed, 0 valid password found
Hydra (https://github.com/vanhauser-thc/thc-hydra) finished at 2022-05-19 09:39:23
-----------------------------------------------------------------------
***********************************************************************
* Test #4 - CryptoCurrency Mining Activity *
* This simulates interaction with a cryptocurrency mining pool which *
* can be an indication of an instance compromise. In this case, we are*
* only interacting with the URL of the pool, but not downloading *
* any files. This will trigger a threat intel based detection. *
***********************************************************************
Calling bitcoin wallets to download mining toolkits
-----------------------------------------------------------------------
***********************************************************************
* Test #5 - DNS Exfiltration *
* A common exfiltration technique is to tunnel data out over DNS *
* to a fake domain. Its an effective technique because most hosts *
* have outbound DNS ports open. This test wont exfiltrate any data, *
* but it will generate enough unusual DNS activity to trigger the *
* detection. *
***********************************************************************
Calling large numbers of large domains to simulate tunneling via DNS
***********************************************************************
* Test #6 - Fake domain to prove that GuardDuty is working *
* This is a permanent fake domain that customers can use to prove that*
* GuardDuty is working. Calling this domain will always generate the *
* Backdoor:EC2/C&CActivity.B!DNS finding type *
***********************************************************************
Calling a well known fake domain that is used to generate a known finding
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.amzn2.5.2 <<>> GuardDutyC2ActivityB.com any
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11495
;; flags: qr rd ra; QUERY: 1, ANSWER: 8, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;GuardDutyC2ActivityB.com. IN ANY
;; ANSWER SECTION:
GuardDutyC2ActivityB.com. 6943 IN SOA ns1.markmonitor.com. hostmaster.markmonitor.com. 2018091906 86400 3600 2592000 172800
GuardDutyC2ActivityB.com. 6943 IN NS ns3.markmonitor.com.
GuardDutyC2ActivityB.com. 6943 IN NS ns5.markmonitor.com.
GuardDutyC2ActivityB.com. 6943 IN NS ns7.markmonitor.com.
GuardDutyC2ActivityB.com. 6943 IN NS ns2.markmonitor.com.
GuardDutyC2ActivityB.com. 6943 IN NS ns4.markmonitor.com.
GuardDutyC2ActivityB.com. 6943 IN NS ns6.markmonitor.com.
GuardDutyC2ActivityB.com. 6943 IN NS ns1.markmonitor.com.
;; Query time: 27 msec
;; SERVER: 172.16.0.2#53(172.16.0.2)
;; WHEN: Thu May 19 09:39:23 UTC 2022
;; MSG SIZE rcvd: 238
*****************************************************************************************************
Expected GuardDuty Findings
Test 1: Internal Port Scanning
Expected Finding: EC2 Instance i-011e73af27562827b is performing outbound port scans against remote host. 172.16.0.20
Finding Type: Recon:EC2/Portscan
Test 2: SSH Brute Force with Compromised Keys
Expecting two findings - one for the outbound and one for the inbound detection
Outbound: i-011e73af27562827b is performing SSH brute force attacks against 172.16.0.20
Inbound: 172.16.0.25 is performing SSH brute force attacks against i-0bada13e0aa12d383
Finding Type: UnauthorizedAccess:EC2/SSHBruteForce
Test 3: RDP Brute Force with Password List
Expecting two findings - one for the outbound and one for the inbound detection
Outbound: i-011e73af27562827b is performing RDP brute force attacks against 172.16.0.24
Inbound: 172.16.0.25 is performing RDP brute force attacks against i-0191573dec3b66924
Finding Type : UnauthorizedAccess:EC2/RDPBruteForce
Test 4: Cryptocurrency Activity
Expected Finding: EC2 Instance i-011e73af27562827b is querying a domain name that is associated with bitcoin activity
Finding Type : CryptoCurrency:EC2/BitcoinTool.B!DNS
Test 5: DNS Exfiltration
Expected Finding: EC2 instance i-011e73af27562827b is attempting to query domain names that resemble exfiltrated data
Finding Type : Trojan:EC2/DNSDataExfiltration
Test 6: C&C Activity
Expected Finding: EC2 instance i-011e73af27562827b is querying a domain name associated with a known Command & Control server.
Finding Type : Backdoor:EC2/C&CActivity.B!DNS
Po kilku minutach ustalenia pojawiają się w konsoli GuardDuty. U góry możesz zauważyć złośliwe pliki znalezione przez nową funkcję ochrony przed złośliwym oprogramowaniem. Jedno z ustaleń dotyczy instancji EC2, a drugie klastra ECS.
Najpierw wybierz wyszukiwanie związane z instancją EC2. W panelu zobaczysz informacje o instancji i złośliwym pliku, takie jak nazwa pliku i ścieżka. W sekcji Szczegóły skanowania złośliwego oprogramowania identyfikator wyszukiwania wyzwalacza wskazuje na oryginalny wynik GuardDuty, który wywołał skanowanie złośliwego oprogramowania. W tym przypadku pierwotnym odkryciem było to, że ta instancja EC2 wykonywała ataki brute force RDP na inną instancję EC2.
W tej sytuacji wybierz Investigate with Detective i bezpośrednio z konsoli GuardDuty przejdź do konsoli Detective, aby zwizualizować dane przepływu AWS CloudTrail i Amazon Virtual Private Cloud (Amazon VPC) dla instancji EC2, konta AWS i adresu IP, którego dotyczy problem przez wyszukiwanie. Korzystając z usługi Detective, możesz analizować, badać i identyfikować pierwotną przyczynę podejrzanych działań wykrytych przez GuardDuty.
Kiedy wybierasz wyszukiwanie związane z klastrem ECS, posiadasz więcej informacji na temat zasobu, którego dotyczy, takich jak szczegóły klastra ECS, zadanie, kontenery i obrazy kontenerów.
Korzystanie ze skryptów testera GuardDuty ułatwia testowanie ogólnej integracji GuardDuty z innymi używanymi frameworkami bezpieczeństwa, dzięki czemu można być gotowym na wykrycie prawdziwego zagrożenia.
Porównanie GuardDuty Malware Protection z Amazon Inspector
W tym momencie możesz zadać sobie pytanie, w jaki sposób ochrona przed złośliwym oprogramowaniem GuardDuty odnosi się do Amazon Inspector, usługi, która skanuje obciążenia AWS pod kątem luk w oprogramowaniu i niezamierzonego narażenia na działanie sieci. Te dwie usługi uzupełniają się i oferują różne poziomy ochrony:
- Amazon Inspector oferuje proaktywną ochronę, identyfikując i naprawiając znane luki w oprogramowaniu i aplikacjach, które służą jako punkt wejścia dla atakujących w celu złamania zasobów i zainstalowania złośliwego oprogramowania.
- GuardDuty Malware Protection wykrywa złośliwe oprogramowanie, które jest obecne w aktywnie działających obciążeniach. W tym momencie system został już ujawniony, ale GuardDuty może ograniczyć czas „zainfekowania” i podjąć działania, zanim złamanie systemu spowoduje zdarzenie mające wpływ na biznes.
Dostępność i ceny
Usługa Amazon GuardDuty Malware Protection jest już dostępna we wszystkich regionach AWS, w których usługa GuardDuty jest dostępna, z wyjątkiem regionów AWS China (Pekin), AWS China (Ningxia), AWS GovCloud (USA-Wschód) i AWS GovCloud (USA-Zachód).
W momencie uruchomienia GuardDuty Malware Protection jest zintegrowana z następującymi ofertami partnerów:
- BitDefender;
- CloudHesive;
- Crowdstrike;
- Fortinet;
- Palo Alto Networks;
- Rapid7;
- Sophos;
- Sysdig;
- Trellix.
Dzięki GuardDuty nie musisz wdrażać oprogramowania zabezpieczającego ani agentów do monitorowania pod kątem złośliwego oprogramowania. Płacisz tylko za ilość przeskanowanych GB w systemach plików (nie za rozmiar wolumenów EBS) oraz za migawki EBS w czasie, gdy są one przechowywane na Twoim koncie. Wszystkie migawki EBS utworzone przez GuardDuty są automatycznie usuwane po przeskanowaniu, chyba że włączysz przechowywanie migawek po znalezieniu złośliwego oprogramowania. Aby uzyskać więcej informacji, zobacz Ceny GuardDuty i Ceny EBS. Należy pamiętać, że GuardDuty skanuje tylko wolumeny EBS mniejsze niż 1 TB. Aby pomóc Ci kontrolować koszty i uniknąć powtarzających się alarmów, ta sama objętość nie jest skanowana częściej niż raz na 24 godziny.
źródło: AWS