Wykrywanie i klasyfikacja złośliwego oprogramowania za pomocą Amazon Rekognition PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Wykrywanie i klasyfikacja złośliwego oprogramowania za pomocą Amazon Rekognition

Zgodnie z jednym z artykuł przez Cybersecurity Ventures szkody wyrządzone przez ransomware (rodzaj złośliwego oprogramowania, które może blokować użytkownikom dostęp do ich danych, chyba że zapłacą okup) wzrosły 57 razy w 2021 r. w porównaniu z 2015 r. Ponadto przewiduje się, że będzie to kosztować ofiary 265 miliardów dolarów ( USD) rocznie do 2031 r. W chwili pisania tego tekstu, straty finansowe spowodowane atakami ransomware spadają nieco powyżej 50th pozycję na liście krajów uszeregowanych według ich PKB.

Biorąc pod uwagę zagrożenie stwarzane przez złośliwe oprogramowanie, opracowano kilka technik wykrywania i powstrzymywania ataków złośliwego oprogramowania. Dwie najczęściej stosowane obecnie techniki to wykrywanie na podstawie sygnatur i zachowań.

Wykrywanie oparte na sygnaturach ustanawia unikalny identyfikator znanego szkodliwego obiektu, dzięki czemu obiekt może zostać zidentyfikowany w przyszłości. Może to być unikalny wzorzec kodu dołączony do pliku lub skrót znanego kodu złośliwego oprogramowania. Jeśli podczas skanowania nowych obiektów zostanie wykryty znany identyfikator sygnatury (sygnatura), obiekt zostanie oznaczony jako szkodliwy. Wykrywanie oparte na sygnaturach jest szybkie i wymaga niewielkiej mocy obliczeniowej. Jednak walczy z polimorficznymi rodzajami złośliwego oprogramowania, które nieustannie zmieniają swoją postać, aby uniknąć wykrycia.

Wykrywanie oparte na zachowaniu ocenia podejrzane obiekty na podstawie ich zachowania. Artefakty, które mogą być brane pod uwagę przez produkty chroniące przed złośliwym oprogramowaniem, to interakcje procesów, zapytania DNS i połączenia sieciowe z obiektu. Technika ta skuteczniej wykrywa polimorficzne złośliwe oprogramowanie w porównaniu z techniką opartą na sygnaturach, ale ma pewne wady. Aby ocenić, czy obiekt jest złośliwy, musi działać na hoście i generować wystarczającą liczbę artefaktów, aby produkt chroniący przed złośliwym oprogramowaniem mógł go wykryć. To martwe pole może pozwolić złośliwemu oprogramowaniu zainfekować hosta i rozprzestrzenić się w sieci.

Istniejące techniki są dalekie od doskonałości. W rezultacie trwają badania mające na celu opracowanie nowych alternatywnych technik, które zwiększą nasze możliwości walki ze złośliwym oprogramowaniem. Nowatorską techniką, która pojawiła się w ostatnich latach, jest wykrywanie złośliwego oprogramowania na podstawie obrazu. Ta technika proponuje trenowanie sieci głębokiego uczenia się ze znanymi plikami binarnymi złośliwego oprogramowania przekonwertowanymi na obrazy w skali szarości. W tym poście pokazujemy, jak przeprowadzić wykrywanie złośliwego oprogramowania na podstawie obrazu za pomocą Amazon Rekognition Niestandardowe etykiety.

Omówienie rozwiązania

Aby wytrenować model wieloklasyfikacji i model wykrywania złośliwego oprogramowania, najpierw przygotowujemy uczące i testowe zestawy danych, które zawierają różne typy złośliwego oprogramowania, takie jak flooder, adware, spyware itp., a także niegroźne obiekty. Następnie konwertujemy obiekty przenośnych plików wykonywalnych (PE) na obrazy w skali szarości. Następnie trenujemy model przy użyciu obrazów z Amazon Rekognition.

Amazon Rekognition to usługa, która ułatwia przeprowadzanie różnego rodzaju analiz wizualnych aplikacji. Rekognition Image pomaga tworzyć zaawansowane aplikacje do wyszukiwania, weryfikowania i organizowania milionów obrazów.

Amazon Rekognition Custom Labels opiera się na istniejących możliwościach Rekognition, które są już wytrenowane na dziesiątkach milionów obrazów w wielu kategoriach.

Amazon Rekognition Custom Labels to w pełni zarządzana usługa, która pozwala użytkownikom analizować miliony obrazów i wykorzystywać je do rozwiązywania wielu różnych problemów uczenia maszynowego (ML), w tym klasyfikacji obrazów, wykrywania twarzy i moderacji treści. Za kulisami Amazon Rekognition opiera się na technologii głębokiego uczenia się. Usługa wykorzystuje konwolucyjną sieć neuronową (CNN), która jest wstępnie szkolona na dużym zbiorze danych z etykietami. Będąc narażonym na takie podstawowe dane, algorytm może nauczyć się rozpoznawać wzorce na obrazach z wielu różnych dziedzin i może być używany w wielu branżowych przypadkach użycia. Ponieważ AWS przejmuje odpowiedzialność za budowanie i utrzymywanie architektury modelu oraz wybór odpowiedniej metody szkolenia do danego zadania, użytkownicy nie muszą tracić czasu na zarządzanie infrastrukturą wymaganą do zadań szkoleniowych.

Architektura rozwiązania

Poniższy diagram architektury zawiera omówienie rozwiązania.

Rozwiązanie jest zbudowane przy użyciu Partia AWS, AWS-Fargate, Amazon Rekognition. AWS Batch umożliwia uruchamianie setek zadań przetwarzania wsadowego w Fargate. Fargate jest kompatybilny z obydwoma Usługa elastycznych pojemników Amazon (Amazon ECS) i Usługa Amazon Elastic Kubernetes (Amazon EKS). Niestandardowe etykiety Amazon Rekognition pozwalają używać AutoML do wizji komputerowej do trenowania niestandardowych modeli w celu wykrywania złośliwego oprogramowania i klasyfikowania różnych kategorii złośliwego oprogramowania. Funkcje krokowe AWS służą do koordynowania wstępnego przetwarzania danych.

W przypadku tego rozwiązania tworzymy zasoby przetwarzania wstępnego za pośrednictwem Tworzenie chmury AWS. Szablon stosu CloudFormation oraz kod źródłowy funkcji AWS Batch, Fargate i Step są dostępne w Repozytorium GitHub.

Dataset

Aby wytrenować model w tym przykładzie, użyliśmy następujących publicznych zestawów danych w celu wyodrębnienia złośliwych i nieszkodliwych Przenośny plik wykonywalny (PE):

Zachęcamy do uważnego przeczytania dokumentacji zestawów danych (plik README Sophos/Reversing Labs, Zbiór danych uczenia maszynowego złośliwego oprogramowania PE), aby bezpiecznie obsługiwać obiekty szkodliwego oprogramowania. W zależności od preferencji możesz także używać innych zestawów danych, o ile dostarczają one złośliwego oprogramowania i niegroźnych obiektów w formacie binarnym.

Następnie przeprowadzimy Cię przez następujące kroki rozwiązania:

  • Wstępnie przetwarzaj obiekty i konwertuj je na obrazy
  • Wdróż zasoby przetwarzania wstępnego za pomocą CloudFormation
  • Wybierz model
  • Trenuj model
  • Oceń model
  • Koszt i wydajność

Wstępnie przetwarzaj obiekty i konwertuj je na obrazy

Używamy funkcji krokowych do orkiestracji przepływu pracy wstępnego przetwarzania obiektów, który obejmuje następujące kroki:

  1. Weź meta.db Baza danych sqllite z Sorel-20m S3 wiadro i przekonwertuj go na plik .csv. Pomaga nam to załadować plik .csv do kontenera Fargate i odwoływać się do metadanych podczas przetwarzania obiektów szkodliwego oprogramowania.
  2. Weź obiekty z wiadra sorel-20m S3 i utwórz listę obiektów w formacie csv. Wykonując ten krok, tworzymy serię plików .csv, które można przetwarzać równolegle, skracając w ten sposób czas potrzebny na wstępne przetwarzanie.
  3. Konwertuj obiekty z wiadra sorel-20m S3 na obrazy z szeregiem zadań. Zadania tablicy AWS Batch mają wspólne parametry konwersji obiektów złośliwego oprogramowania na obrazy. Działają jako zbiór zadań konwersji obrazu, które są rozproszone na wielu hostach i działają jednocześnie.
  4. Wybierz z góry określoną liczbę obrazów do szkolenia modelu z tablicą zadań odpowiadających kategoriom złośliwego oprogramowania.
  5. Podobnie jak w kroku 2, bierzemy łagodne obiekty z zasobnika Benign-160k S3 i tworzymy listę obiektów w formacie csv.
  6. Podobnie jak w kroku 3, konwertujemy obiekty z segmentu Benign-160k S3 na obrazy z tablicą zadań.
  7. Ze względu na domyślny limit usługi Amazon Rekognition na szkolenie w zakresie etykiet niestandardowych (250 XNUMX obrazów) wybierz wstępnie określoną liczbę łagodnych obrazów do szkolenia modelu.
  8. Jak pokazano na poniższym obrazku, obrazy są przechowywane w zasobniku S3 podzielonym na partycje najpierw według złośliwego oprogramowania i niegroźnych folderów, a następnie złośliwe oprogramowanie jest dzielone według typów złośliwego oprogramowania.
    Łyżka treningowa S3
    Zbiór danych szkoleniowych

Wdróż zasoby przetwarzania wstępnego za pomocą CloudFormation

Wymagania wstępne

Przed kontynuowaniem należy spełnić następujące wymagania wstępne:

Wdrażanie zasobów

Stos CloudFormation utworzy następujące zasoby:

parametry

  • NAZWA_STOSU – Nazwa stosu CloudFormation
  • AWS_REGION – Region AWS, w którym zostanie wdrożone rozwiązanie
  • AWS_PROFILE – Nazwany profil, który będzie dotyczył polecenia AWS CLI
  • ARTEFACT_S3_BUCKET – Bucket S3, w którym będzie przechowywany kod infrastruktury. (Zasobnik musi zostać utworzony w tym samym regionie, w którym znajduje się rozwiązanie).
  • KONTO_AWS – Identyfikator konta AWS.

Użyj następujących poleceń, aby wdrożyć zasoby

Upewnij się, że agent platformy Docker jest uruchomiony na komputerze. Wdrożenia są wykonywane przy użyciu skryptów bash, w tym przypadku używamy następującego polecenia:

bash malware_detection_deployment_scripts/deploy.sh -s '' -b 'malware-
detection--artifacts' -p  -r "" -a

Spowoduje to zbudowanie i wdrożenie lokalnych artefaktów, do których odwołuje się szablon CloudFormation (np. cloudformation.yaml).

Trenuj model

Ponieważ Amazon Rekognition zajmuje się szkoleniem modeli, nie jest wymagana wizja komputerowa ani wysoce specjalistyczna wiedza ML. Będziesz jednak musiał dostarczyć Amazon Rekognition wiadro wypełnione odpowiednio oznaczonymi obrazami wejściowymi.

W tym poście nauczymy dwa niezależne modele klasyfikacji obrazów za pomocą funkcji etykiet niestandardowych:

  1. Model wykrywania złośliwego oprogramowania (klasyfikacja binarna) – określ, czy dany obiekt jest złośliwy, czy łagodny
  2. Model klasyfikacji złośliwego oprogramowania (klasyfikacja wieloklasowa) – identyfikuje rodzinę złośliwego oprogramowania dla danego złośliwego obiektu

Przebieg szkolenia modelowego

Czynności wymienione w poniższym instruktażu dotyczą obu modeli. W związku z tym będziesz musiał przejść przez te kroki dwa razy, aby wytrenować oba modele.

  1. Zaloguj się do Konsola zarządzania AWS i otwórz Amazon Rekognition konsola.
  2. W lewym okienku wybierz Użyj etykiet niestandardowych. Zostanie wyświetlona strona docelowa Amazon Rekognition Custom Labels.
  3. Wybierz ze strony docelowej Amazon Rekognition Custom Labels Rozpocznij.
  4. W lewym okienku wybierz opcję Wybierz Projekty.
  5. Dodaj Tworzenie projektu.
  6. In Nazwa Projektu, wprowadź nazwę swojego projektu.
  7. Dodaj Utwórz projekt aby stworzyć swój projekt.
  8. W Projekty wybierz projekt, do którego chcesz dodać zestaw danych. Zostanie wyświetlona strona ze szczegółami Twojego projektu.
  9. Dodaj Utwórz zbiór danych, Utwórz zbiór danych wyświetlana jest strona.
  10. In Rozpoczęcie konfiguracjiwybierz Zacznij od pojedynczego zestawu danych aby Amazon Rekognition podzielił zbiór danych na trening i test. Należy pamiętać, że w każdej iteracji szkolenia modelu mogą wystąpić różne próbki testowe, co spowoduje nieco inne wyniki i metryki oceny.
  11. Dodaj Importuj obrazy z zasobnika Amazon S3.
  12. In Identyfikator URI S3, wprowadź lokalizację zasobnika S3 i ścieżkę do folderu. Ten sam zasobnik S3 dostarczony z etapu przetwarzania wstępnego jest używany do tworzenia obu zestawów danych: Wykrywanie złośliwego oprogramowania i Klasyfikacja złośliwego oprogramowania. Zbiór danych wykrywania złośliwego oprogramowania wskazuje na katalog główny (tj. s3://malware-detection-training-{account-id}-{region}/) zasobnika S3, podczas gdy zestaw danych klasyfikacji złośliwego oprogramowania wskazuje na folder złośliwego oprogramowania (tj. s3://malware-detection-training-{account-id}-{region}/malware) łyżki S3. Dane treningowe
  13. Dodaj Automatycznie dołączaj etykiety do obrazów na podstawie folderu.
  14. Dodaj Twórz zestawy danych. Zostanie otwarta strona zestawów danych dla Twojego projektu.
  15. Na Trenuj model wybierz stronę Trenuj model. Nazwa zasobu Amazon (ARN) dla twojego projektu powinna znajdować się w Wybierz projekt pole edycji. Jeśli nie, wprowadź ARN dla swojego projektu.
  16. W Chcesz wyszkolić swojego modela? okno dialogowe, wybierz Trenuj model.
  17. Po zakończeniu szkolenia wybierz nazwę modelu. Trening jest zakończony, gdy status modelu to SZKOLENIE_UKOŃCZONE.
  18. W modele wybierz sekcję Użyj modelu kartę, aby rozpocząć korzystanie z modelu.

Aby uzyskać więcej informacji, sprawdź niestandardowe etykiety Amazon Rekognition Pierwsze kroki przewodnik.

Oceń model

Po ukończeniu modeli szkoleniowych można uzyskać dostęp do metryk oceny, wybierając opcję Sprawdź wskaźniki na stronie modelu. Amazon Rekognition zapewnia następujące wskaźniki: wynik F1, średnia precyzja i ogólna pamięć, które są powszechnie używane do oceny wydajności modeli klasyfikacyjnych. Te ostatnie to uśrednione metryki na podstawie liczby etykiet.

W Wydajność na etykietę możesz znaleźć wartości tych danych na etykiecie. Dodatkowo, aby uzyskać wartości Prawdziwie pozytywne, Fałszywie pozytywne i Fałszywie negatywne, wybierz Zobacz wyniki testów.

Metryki modelu wykrywania złośliwego oprogramowania

Na zrównoważonym zbiorze danych 199,750 XNUMX obrazów z dwiema etykietami (łagodny i złośliwy) otrzymaliśmy następujące wyniki:

  • Wynik F1 – 0.980
  • Średnia precyzja – 0.980
  • Ogólna pamięć – 0.980

Metryki modelu wykrywania złośliwego oprogramowania

Metryki modelu klasyfikacji złośliwego oprogramowania

Na zrównoważonym zbiorze danych obejmującym 130,609 11 obrazów z 11 etykietami (XNUMX rodzin złośliwego oprogramowania) otrzymaliśmy następujące wyniki:

  • Wynik F1 – 0.921
  • Średnia precyzja – 0.938
  • Ogólna pamięć – 0.906

Metryki modelu klasyfikacji złośliwego oprogramowania

Aby ocenić, czy model działa dobrze, zalecamy porównanie jego wydajności z innymi benchmarkami branżowymi, które zostały przeszkolone na tym samym (lub przynajmniej podobnym) zbiorze danych. Niestety w momencie pisania tego postu nie ma badań porównawczych, które rozwiązują ten problem przy użyciu tej samej techniki i tych samych zbiorów danych. Jednak w społeczności analityków danych model z wynikiem F1 powyżej 0.9 jest uważany za bardzo dobry.

Koszt i wydajność

Ze względu na bezserwerowy charakter zasobów na całkowity koszt wpływa czas korzystania z każdej usługi. Z drugiej strony na wydajność ma wpływ ilość przetwarzanych danych oraz rozmiar zestawu danych szkoleniowych przekazywany do Amazon Rekognition. Na potrzeby naszego oszacowania kosztów i wydajności rozważamy następujący scenariusz:

  • Ze zbioru danych firmy Sorel katalogowanych i przetwarzanych jest 20 milionów obiektów.
  • 160,000 XNUMX obiektów jest katalogowanych i przetwarzanych z zestawu danych uczenia maszynowego PE Malware.
  • W zasobniku szkoleniowym S240,000 zapisywanych jest około 3 160,000 obiektów: 80,000 XNUMX obiektów złośliwego oprogramowania i XNUMX XNUMX obiektów nieszkodliwych.

Na podstawie tego scenariusza średni koszt wstępnego przetwarzania i wdrażania modeli wynosi 510.99 USD. Za każdą godzinę korzystania z modelu zostanie naliczona dodatkowa opłata w wysokości 4 USD/h. Możesz znaleźć szczegółowe zestawienie kosztów w oszacowanie generowane przez Kalkulator cen AWS.

Jeśli chodzi o wydajność, oto wyniki naszego pomiaru:

  • ~2 h na zakończenie procesu wstępnego przetwarzania
  • Około 40 godzin na ukończenie szkolenia modelu wykrywania złośliwego oprogramowania
  • ~40 godzin na ukończenie szkolenia modelu klasyfikacji złośliwego oprogramowania

Sprzątać

Aby uniknąć przyszłych opłat, Zatrzymaj się i usunąć modele Amazon Rekognition i usuń zasoby przetwarzania wstępnego za pośrednictwem zniszczyć.sh scenariusz. Do pomyślnego uruchomienia skryptu wymagane są następujące parametry:

  • NAZWA_STOSU – Nazwa stosu CloudFormation
  • AWS_REGION – Region, w którym wdrażane jest rozwiązanie
  • AWS_PROFILE – Nazwany profil, który dotyczy polecenia AWS CLI

Użyj następujących poleceń, aby uruchomić ./malware_detection_deployment_scripts/destroy.sh scenariusz:

bash malware_detection_deployment_scripts/destroy.sh -s  -p
 -r 

Wnioski

W tym poście pokazaliśmy, jak przeprowadzić wykrywanie i klasyfikację złośliwego oprogramowania za pomocą Amazon Rekognition. Rozwiązania działają zgodnie ze wzorcem bezserwerowym, wykorzystując usługi zarządzane do wstępnego przetwarzania danych, orkiestracji i wdrażania modeli. Mamy nadzieję, że ten post pomoże ci w ciągłych wysiłkach na rzecz zwalczania złośliwego oprogramowania.

W przyszłym poście pokażemy praktyczny przypadek użycia wykrywania złośliwego oprogramowania, korzystając z modeli wdrożonych w tym poście.


O autorach

Edvina HallvaxhiuEdvina Hallvaxhiu jest starszym globalnym architektem bezpieczeństwa w AWS Professional Services i pasjonuje się cyberbezpieczeństwem i automatyzacją. Pomaga klientom budować bezpieczne i zgodne rozwiązania w chmurze. Poza pracą lubi podróże i sport.

Rahul ShauryaRahul Shaurya jest głównym architektem danych w AWS Professional Services. Pomaga i ściśle współpracuje z klientami budującymi platformy danych i aplikacje analityczne na AWS. Poza pracą Rahul uwielbia długie spacery ze swoim psem Barneyem.

Bruno DheftoBruno Dhefto jest globalnym architektem bezpieczeństwa w AWS Professional Services. Skupia się na pomaganiu klientom w budowaniu bezpiecznych i niezawodnych architektur w AWS. Poza pracą interesuje się nowinkami technologicznymi i podróżami.

Nadima MajedaNadima Majeda jest architektem danych w ramach profesjonalnych usług AWS. Pracuje ramię w ramię z klientami budującymi swoje platformy danych na AWS. Poza pracą Nadim gra w tenisa stołowego i uwielbia oglądać piłkę nożną.

Znak czasu:

Więcej z Uczenie maszynowe AWS