Setting up Cuckoo Sandbox Step by Step Guide(Malware Analysis Tool)
Pomyślałem o napisaniu tego artykułu, ponieważ proces konfiguracji Cuckoo jest skomplikowany i zajęło mi to dużo czasu, aby go skonfigurować. I chciałem pomóc innym uniknąć tych problemów, ponieważ nie ma wielu przewodników, które są dokładne i aktualne.
Cuckoo jest narzędziem open-source do automatycznej analizy złośliwego oprogramowania, które pozwala na analizę wielu różnych złośliwych plików, które wpływają na różne systemy operacyjne, takie jak Windows, Linux, macOS i Android.
Jak niektórzy z was wiedzą, istnieją dwa rodzaje analizy malware,
1. Statyczna analiza malware – analiza malware bez rzeczywistego uruchomienia go. Uwzględnia takie cechy jak nazwa pliku, sumy kontrolne MD5 lub hashe, typ pliku, rozmiar pliku i rozpoznanie przez narzędzia antywirusowe.
2. Dynamiczna analiza złośliwego oprogramowania – Analizuje złośliwe oprogramowanie poprzez jego uruchomienie i analizuje jego zachowanie, takie jak wywołania API, użycie pamięci, ruch sieciowy, itp.(Cuckoo jest dynamicznym narzędziem do analizy złośliwego oprogramowania)
Co to jest Sandboxing?
W bezpieczeństwie komputerowym, uruchamiamy nieznane, niesprawdzone lub niezaufane programy lub kod, programy w środowiskach wirtualnych bez narażania na ryzyko naszego hosta lub systemu operacyjnego. Nazywa się to sandboxingiem. Cuckoo daje nam możliwość uruchomienia nieznanej i niezaufanej aplikacji lub pliku w izolowanym środowisku i przeanalizowania jego zachowania.
Ustawianie hosta
Moim hostem jest Ubuntu 18.04 z 16GB pamięci RAM. Zdecydowanie zalecam używanie maszyny z systemem Linux jako hosta. Przed zainstalowaniem Cuckoo na naszym hoście, wymagane jest zainstalowanie niektórych bibliotek Pythona i pakietów oprogramowania. Należy również pamiętać, że Python 2.7 jest wymagany do uruchomienia Cuckoo. (Cuckoo nie obsługuje starszych wersji pythona lub pythona 3).
- Uaktualnij informacje o pakietach i pobierz dostępne aktualizacje.
sudo apt-get update
sudo apt-get upgrade - Następnie zainstaluj zależności pythona wymagane dla Cuckoo:
sudo apt-get install python python-pip python-dev libffi-dev libssl-dev
sudo apt-get install python-virtualenv python-setuptools
sudo apt-get install libjpeg-dev zlib1g-dev swig - Aby móc korzystać z interfejsu WWW opartego na Django, wymagane jest MongoDB:
sudo apt-get install mongodb - Aby korzystać z PostgreSQL jako bazy danych PostgreSQL również będzie musiał być zainstalowany:
sudo apt-get install postgresql libpq-dev
Następnym krokiem jest zainstalowanie oprogramowania maszyny wirtualnej w maszynie hosta. Cuckoo zaleca używanie VirtualBox jako oprogramowania dla maszyn wirtualnych. Zalecane jest zainstalowanie VirtualBox w wersji 5.2. Możesz znaleźć dystrybucję na tej stronie tutaj lub możesz zainstalować ją poprzez aplikację Ubuntu Software.
- Instalacja tcpdump w celu zrzucenia aktywności sieciowej wykonywanej podczas wykonywania złośliwego oprogramowania.sudo apt-get install tcpdump
- Instalacja M2Crypto. Jeśli masz już zainstalowanego swiga, wystarczy uruchomić drugą komendę.
sudo apt-get install swig
sudo pip install m2crypto==0.24.0
Po zainstalowaniu tych pakietów, teraz możesz zainstalować Cuckoo w swoim systemie. Aby zainstalować uruchom następujące komendy. Lub możesz po prostu pobrać plik zip.
sudo pip install -U pip setuptools
sudo pip install -U cuckoo
Po zainstalowaniu Cuckoo, musisz poprawnie skonfigurować VirtualBox i jego sieci.
- Możesz utworzyć „Host-Only Adapter” wykonując następującą komendę:
vboxmanage hostonlyif create
Ta komenda utworzy interfejs hosta vboxnet0.
- Ustaw adres IP dla interfejsu vboxnet0, który został wcześniej utworzony.
vboxmanage hostonlyif ipconfig vboxnet0 – ip 192.168.56.1
Następnie można utworzyć maszynę wirtualną w VirtualBox i zainstalować system operacyjny. Zalecany jest Windows 7. Po zainstalowaniu systemu operacyjnego, musisz skonfigurować kartę sieciową VM na „Host Only Adapter”. Co jest łatwe do zrobienia z GUI,
Potem musisz skonfigurować przekierowanie IP, aby połączenie internetowe było kierowane z maszyny głównej do maszyny wirtualnej gościa. W tym przypadku interfejs przypisany do naszej maszyny to vboxnet0, a adres IP maszyny to 192.168.56.101, która znajduje się w podsieci 192.168.56.0/24. Natomiast interfejsem wychodzącym, który jest podłączony do internetu jest eth0. Może się to zmienić w sytuacjach, gdy jesteś podłączony do internetu przez wifi. Możesz znaleźć interfejs, który jest podłączony do Internetu za pomocą tej komendy, ifconfig. Tutaj zakładam, że interfejs podłączony do internetu to eth0,
Po wykonaniu tych komend musisz włączyć przekierowanie IP w jądrze. W tym celu należy wykonać następujące komendy:
echo 1 | sudo tee -a /proc/sys/net/ipv4/ip_forward
sudo sysctl -w net.ipv4.ip_forward=1
Te reguły będą ważne tylko do następnego restartu. Aby sprawdzić, czy ustawiłeś reguły poprawnie, możesz uruchomić to polecenie:
sudo iptables -L
Ustawianie maszyny gościa
Teraz możesz rozpocząć ustawianie maszyny gościa, na której zainstalowany jest system windows7. Najpierw należy skonfigurować ustawienia karty sieciowej w następujący sposób,
- Po zmianie konfiguracji sieci, należy wykonać następujące czynności w maszynie wirtualnej.
- Wyłącz Windows Update i Windows Firewall. (Obraz)
2. Zmiana ustawień kontroli konta użytkownika. (Obraz)
3. Zainstalowanie preferowanych wersji programów Adobe Reader, Adobe Flash Player, Microsoft Office i Java. (opcjonalnie)
4. Zainstaluj python 2.7 dla systemu Windows – Python 2.7 można pobrać stąd.
5. Prześlij plik agent.py z hosta, który można znaleźć w katalogu ~/.cuckoo/agent. Po ponownym uruchomieniu maszyny wirtualnej będziesz mógł zobaczyć terminal otwarty w maszynie wirtualnej. (Możesz włączyć funkcję przeciągnij i upuść w ustawieniach VirtualBox. Enable only to Drag and Drop from host to guest).
Change Cuckoo Software Configuration
Pliki konfiguracyjne cuckoo znajdują się w katalogu ~/.cuckoo/conf. Pliki te można otworzyć w programie gedit za pomocą tego polecenia:
sudo gedit cuckoo.conf
Wykonaj następujące zmiany w plikach conf.
cuckoo.conf
auxiliary.conf
virtualbox.conf
Zmień nazwę parametru na nazwę swojej maszyny wirtualnej. Domyślnie ustawiona nazwa to 'cuckoo1′.
processing.conf
reporting.conf
Po zakończeniu konfiguracji można uruchomić Cuckoo .
Analiza przy użyciu Cuckoo
Uruchom następujące polecenia, aby uruchomić Cuckoo i interfejs WWW Cuckoo. Wykonaj je w dwóch oddzielnych oknach terminala.
Terminal #1: cuckoo
Terminal #2: cuckoo web runserver
Następnie możesz uzyskać dostęp do interfejsu WWW wchodząc na ten adres w swojej ulubionej przeglądarce internetowej:
goto: localhost:8000
Interfejs WWW będzie wyglądał podobnie do tego po załadowaniu:
Leave a Reply