Cuckoo – собственная автоматизированная лаборатория анализа вредоносных файлов

Месяц назад портал на моей новой работе был взломан. Руководство задалось вопросом «Как?». В ходе недолгих поисков и анализу подключений к серверам, был найден ПК сотрудника, с которого устанавливалось подключение примерно в то самое время. Сотрудник ничего о взломе не знал, но в ходе беседы вспомнил один случай, ему незадолго до взлома пришёл документ от «сотрудника фирмы», который не открылся. Файл был в формате exe, с этого и началась вся история.

Начальство дирекции поставило задачу проанализировать файл и понять, что он делает и какие данные могли уйти злоумышленнику. С темой анализа вредоносных файлов я раньше не сталкивался, и самым логичным делом было найти немного информации в гугле.

За несколько дней я нашёл и прочёл огромное количество мануалов по анализу вредоносного ПО, почти все мануалы предлагали проанализировать ПО вручную, с помощью песочниц и разных утилит, но самым простым и быстрым из всех способов проанализировать вирус оказался malwr.com – сервис автоматического анализа файла в песочнице. Зарегистрировался, загрузил вирус, встал «в очередь» и стал ждать, лишь спустя сутки на главной странице появилась новость:

image

24-го июля днём, сервис прекратил свою работу на неопределённое время в связи с увеличивающейся нагрузкой.

Посмотрев страницы сайта и описание, я наткнулся на упоминание об используемой платформе анализа – Cuckoo Sandbox — и решил узнать о программе побольше.

Что же это за зверь такой «Кукушка»?

Cuckoo Sandbox — система для автоматического исследования вредоносного ПО, эксплоитов, вредоносных скриптов, документов, архивов и ссылок. Система способна проверять документы pdf, doc, xls, rtf, скрипты Python, JS, DLL библиотеки, бинарники, jar и многое другое.

Как оно работает?

В специально подготовленной виртуальной системе устанавливается Python 2.7, добавляется на автозагрузку агент Cuckoo, который будет взаимодействовать с песочницей, специальным образом настраиваются интерфейсы сети, для перехвата и дальнейшего анализа сетевого трафика. После всех манипуляций делается снимок файловой системы, он же Snapshot. Песочница загружает тестируемый файл, определяет его тип и в соответствии с типом файла производит необходимые манипуляции, все изменения внутри песочницы фиксируются в отчёт. После работы система восстанавливает снапшот и виртуальная система возвращается к своему исходному состоянию.

Cuckoo Sandbox способна на:

  • Мониторинг вызовов win32 API функций
  • Дамп сетевой активности
  • Дамп и анализ памяти
  • Создание скриншотов в ходе выполнения анализа
  • Сохранение копий всех созданных файлов и загруженных в процессе проверки
  • Трассировка инструкций, выполняемых вредоносным процессом
  • Создание удобного отчета в json, mmdef, maec, html-форматах
  • Абсолютная изолированность среды, в которой производится запуск вредоносных программ

Подогревая интерес публики, выложу небольшой скрин тех сигнатур, что песочница определила у одного файла, приложенного к спам письму:

image

Согласитесь, это даёт гораздо больше информации о любом файле, нежели классическое антивирусное срабатывание «Trojan.Gen» (можно считать это «камнем в огород» Symantec).

Вот сюда выложил анализ файла в формате HTML, каким его создаёт песочница.

Cuckoo Sandbox неплохо задокументирована и её установка в том числе, на некоторых сайтах выложены инструкции по её установке, но в данный момент ни одна инструкция не работает ровно так, как написано. В ходе настройки я столкнулся с немалым количеством проблем, после чего решил написать сюда полный и актуальный гайд по установке и настройке, со всеми нюансами, дополнениями и модификациями. Для самых ленивых я подготовил скрипт, который настроит и установит песочницу автоматически, приступим.

Установка и настройка Cuckoo, со всеми тонкостями и дополнительными утилитами.

Вся последующая установка проводилась на VPS Digitalocean (2GB Ram/40GB SSD/Ubuntu 14.04 x32).
Примечание: если вы решили попробовать собрать песочницу на том же хостинге — не стоит выбирать лондонский ДЦ, у вас возникнут проблемы с доступом к некоторым ссылкам.

Ubuntu выбран по рекомендации разработчиков, как система, на которой непосредственно и тестировалась песочница.

План установки будет выглядеть следующим образом:

  1. Установка зависимостей и пакетов, необходимых утилитам и песочнице
  2. Установка утилит и Cuckoo Sandbox
  3. Настройка Cuckoo Sandbox
  4. Установка и настройка Virtualbox
  5. Установка или загрузка виртуальной системы, её настройка
  6. Веб интерфейс
  7. Автозагрузка
  8. Дополнительные «плюшки» и возможности Cuckoo
  9. Готовый скрипт установки и настройки Cuckoo
  10. Бонус

 

Установка зависимостей и пакетов, необходимых утилитам и песочнице

Если вам лень делать это самостоятельно или читать, переходите сразу к пункту Готовый скрипт. Прошу заметить, скрипт тестировался и собирался только под Ubuntu 14.04 LTS x32, работа на других ОС не гарантирована. Если решили разобраться сами, то следующая глава для вас.

Установим все зависимости:

 

cd /tmp
apt-get update
apt-get install  git automake mongodb mingw32 dkms unzip wget python python-sqlalchemy python-bson python-pip python-dpkt python-jinja2 python-magic python-mysqldb python-gridfs python-libvirt python-bottle python-pefile python-chardet -y
apt-get install python-dev libxml2-dev libxslt1-dev libevent-dev libpcre3 libpcre3-dev zlib1g-dev libtool libpcre++-dev –y
apt-get install mariadb-server -y

Следующие установки желательно делать по одному, как я и написал:

pip install lxml
pip install cybox==2.0.1.4
pip install maec==4.0.1.0
pip install django
pip install py3compat
pip install pymongo

Примечание: Pymongo ставить только через PIP, если установить его через APT – веб интерфейс работать не будет.

Установка утилит и Cuckoo Sandbox

 

SSDEEP

(ssdeep — инструмент для рекурсивного вычисления и сравнения контекстных частичных хешей, больше известного как нечёткое хеширование)

apt-get install ssdeep python-pyrex subversion libfuzzy-dev -y
svn checkout http://pyssdeep.googlecode.com/svn/trunk/ pyssdeep
cd pyssdeep
python setup.py build
python setup.py install
pip install pydeep

 

YARA

(YARA – инструмент, помогающий вирусным аналитикам опознавать и классифицировать примеры вредоносных программ)

cd /tmp
wget https://github.com/plusvic/yara/archive/v2.1.0.tar.gz
tar xzf v2.1.0.tar.gz
cd yara-2.1.0
chmod +x build.sh
./build.sh
make install
cd yara-python
python setup.py build
python setup.py install

 

Distorm3

(Distorm3 – дизассемблер)

cd /tmp
wget http://distorm.googlecode.com/files/distorm3.zip
unzip distorm3.zip
cd distorm3
python setup.py build
python setup.py install

 

Volatility

(Volatility — фреймворк на Python, созданный для изучения дампов памяти операционной системы)

add-apt-repository ppa:pi-rho/security
apt-get update
apt-get install volatility

Примечание: Не собирайте пакет из исходников (как описано в некоторых мануалах по установке 2012-2013 годов), ставьте из репо как в этой статье, иначе web ui не будет работать, собранный Volatility из любых источников и любой версии ломает выгрузку отчётов в MongoDB (без Mongo новый веб интерфейс не заработает), с версией из репозитория такой проблемы нет.

Установим Cuckoo Sandbox

Сначала добавим пользователя:

useradd cuckoo
usermod -a -G vboxusers cuckoo 
id cuckoo

Теперь установим:
Стабильная

cd /opt
wget http://downloads.cuckoosandbox.org/1.1/cuckoo_1.1.tar.gz
tar xzf cuckoo_1.1.tar.gz

Dev

cd /opt
git clone https://github.com/cuckoobox/cuckoo.git

Примечание: В примере далее была использована стабильная версия, рекомендую так же использовать стабильную.

Настройка Cuckoo Sandbox

Настроим сигнатуры Cuckoo community

cd /opt/cuckoo
./utils/community.py --signatures --force

Теперь настраиваем БД Cuckoo:

mysql -u root -p
> create database cuckoo;
> grant all privileges on cuckoo.* to cuckoo@localhost identified by 'cuck00pass' ;
> flush privileges;
> quit;

Настраиваем cuckoo

  1. Файл /opt/cuckoo/conf/cuckoo.conf
    Включаем запись дампа памяти:

    memory_dump = on

    Настраиваем подключение к бд:

    connection = mysql://cuckoo:cuck00pass\@localhost/cuckoo

    Сервер слабый, поэтому увеличиваем временные лимиты:

    default = 240
    critical = 1200
    vm_state = 600
  2. Файл /opt/cuckoo/conf/memory.conf
    На сервере всего 40 гб, поэтому отключаем сохранение дампов памяти:

    delete_memdump = yes
  3. Файл /opt/cuckoo/conf/processing.conf
    Включаем анализ оперативной памяти:

    memory = yes

    Примечание: в параметр key можете вписать собственный API ключ сервиса virustotal.com

  4. vim /opt/cuckoo/conf/virtualbox.conf
    Меняем режим работы Virtualbox:

    mode = headless
    

    Меняем названия виртуальной машины с cuckoo1 на WindowsXP:

    machines = WindowsXP
    	[WindowsXP]
    	label = WindowsXP
    
  5. Файл /opt/cuckoo/conf/reporting.conf
    Включим импорт отчётов в MongoDB для работы веб интерфейса

    [mongodb]
    	enabled = yes
    

На этом настройка Cuckoo закончена, теперь приступим к Virtualbox и гостевой ОС.

Установка и настройка Virtualbox

 

Virtualbox и все необходимые компоненты

 

wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add –
sh -c 'echo "deb http://download.virtualbox.org/virtualbox/debian trusty contrib" >> /etc/apt/sources.list.d/virtualbox.list'
apt-get update
apt-get install virtualbox-4.3
cd /tmp
VBOX_LATEST_VERSION=$(curl http://download.virtualbox.org/virtualbox/LATEST.TXT)
wget http://download.virtualbox.org/virtualbox/${VBOX_LATEST_VERSION}/Oracle_VM_VirtualBox_Extension_Pack-{VBOX_LATEST_VERSION}.vbox-extpack
vboxmanage extpack install /tmp/Oracle_VM_VirtualBox_Extension_Pack-${VBOX_LATEST_VERSION}.vbox-extpack
cd /opt
wget http://dlc.sun.com.edgesuite.net/virtualbox/${VBOX_LATEST_VERSION}/VBoxGuestAdditions_${VBOX_LATEST_VERSION}.iso

 

Установка или загрузка виртуальной системы, её настройка

У нас есть 2 варианта установки ОС:

  1. Загрузить её с сайта
  2. Установить вручную

Первый вариант самый быстрый, но так же и не самый стабильный. Использование данной ОС в некоммерческих целях разрешено и не будет проблем с лицензией.
Второй вариант более долгий и надёжный, я выбрал последний, но опишу оба по порядку.

Загрузка виртуальной ОС с сайта

wget https://az412801.vo.msecnd.net/vhd/VMBuild_20131127/VirtualBox/IE6_WinXP/Linux/IE6.WinXP.For.LinuxVirtualBox.sfx
chmod +x IE6.WinXP.For.LinuxVirtualBox.sfx
./IE6.WinXP.For.LinuxVirtualBox.sfx
vboxmanage import IE6\ -\ WinXP.ova --vsys 0 --unit 10 --disk=/root/VirtualBox\ VMs/WindowsXP/WindowsXP.vmdk --memory 1024 --vmname WindowsXP

Установка ОС вручную

vboxmanage createvm --name "WindowsXP" --ostype WindowsXP --register
vboxmanage modifyvm "WindowsXP" --memory 1000 --acpi on --boot1 dvd
vboxmanage createhd --filename "WindowsXP.vdi" --size 20000
vboxmanage storagectl "WindowsXP" --name "IDE" --add ide --controller PIIX4
vboxmanage storageattach "WindowsXP" --storagectl "IDE" --port 0 --device 0 --type hdd --medium "WindowsXP.vdi"

Примечание: Следующие инструкции одинаково приемлемы к обеим методам.

Настраиваем сеть

vboxmanage hostonlyif create
vboxmanage modifyvm "WindowsXP" --nic1 hostonly --hostonlyadapter1 vboxnet0 --nicpromisc1 allow-all --hwvirtex off --vtxvpid off

Настраиваем общие папки

mkdir -p /opt/cuckoo/shares/setup
mkdir -p /opt/cuckoo/shares/WindowsXP
vboxmanage sharedfolder add "WindowsXP" --name "WindowsXP" --hostpath /opt/cuckoo/shares/WindowsXP --automount
vboxmanage sharedfolder add "WindowsXP" --name setup --hostpath /opt/cuckoo/shares/setup --automount --readonly
vboxmanage modifyvm "WindowsXP" --nictrace1 on --nictracefile1 /opt/cuckoo/shares/WindowsXP/dump.pcap

Включаем доступ по RDP

vboxmanage modifyvm "WindowsXP" --vrdeport 5000 --vrde on

Порт можете указать любой

На этом конфигурация виртуальных контейнеров полностью закончена, осталось настроить iptables, tcpdump и если вы выбрали установку с нуля — собственно и установить Windows.

Правила iptables и изменение параметра ядра

iptables -A FORWARD -o eth0 -i vboxnet0 -s 192.168.56.0/24 -m conntrack --ctstate NEW -j ACCEPT  
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT  
iptables -A POSTROUTING -t nat -j MASQUERADE  
sysctl -w net.ipv4.ip_forward=1

tcpdump

setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump
getcap /usr/sbin/tcpdump

Поднимем интерфейс

ifconfig vboxnet0 192.168.56.1

Теперь переходим непосредственно на саму гостевую ОС:

Установка Windows
Загрузите свой образ на сервер и подключим его к виртуальной машине:

vboxmanage storageattach "WindowsXP" --storagectl "IDE" --port 0 --device 1 --type dvddrive --medium /patch/to/licensed/windows.iso

Включаем

vboxmanage startvm "WindowsXP" --type headless

После этой команды можно подключиться к виртуальной ОС по RDP на порт 5000 и установить её. После установки подключим и установим VBoxGuestAdditions:

vboxmanage storageattach "WindowsXP" --storagectl "IDE" --port 0 --device 1 --type dvddrive --medium /opt/VBoxGuestAdditions_4.3.14.iso

Примечание: версия ваших аддонов может быть другая
Если вы загрузили готовую виртуальную систему, то в любом случае обновить GuestAdditions необходимо.
После установки перезагружаемся.

Настаиваем гостевую ОС

  1. Следующим образом настрои подключение к сети (dns можете указать любой):

    image

  2. Установим VboxTools с диска, который подключен к системе.
  3. Устанавливаем Pyton 2.7: http://python.org/download/
  4. Устанавливаем http://www.activestate.com/activepython
  5. Устанавливаем PIL Python модуль, для создания скриншотов:http://www.pythonware.com/products/pil/
  6. Отключаем автоматическое обновление Windows.
  7. Отключаем брандмауэер.
  8. Копируем агент из сетевой папки setup в папку C:\Python27,
    Ставим агент на автозагрузку, для этого добавляем в ветку реестра(пуск->выполнить->regedit) HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run строковый параметр
    Имя:’Agent’
    Тип:’REG_SZ’
    Содержание:«C:\Python27\agent.pyw»

    image

  9. Включаем IE, в настройках ставим домашней страницей пустую вкладку, по желанию в свойствах обозревателя выключаем все защитные механизмы.
  10. Отключаем SSDP: пуск->выполнить->msconfig и в разделе службы отключаем «Служба обнаружения SSDP», чтобы в отчётах не фигурировали сетевые запросы этой службы.

    image

  11. Перезагружаемся и в появившемся при загрузке окне выбираем «При перезагрузке не выводить это сообщение» и ОК.
  12. После перезагрузки гостевой ОС, пуск->выполнить->cmd и в консоли набираем netstat –na и смотрим есть ли агент на 8000-ом порту

    image

  13. По желанию устанавливаем различное уязвимое ПО старых версий (браузеры, Flash player, Java, Acrobat Reader…): http://www.oldapps.com
    Примечание: если у вас имеется лицензия на офис, лучше его установить, да и лучше установить всего побольше, скайп, ICQ, почтовый клиент, так или иначе некоторое вредоносное ПО пытается собрать данные из этих приложений или же эксплуатировать их. Например хакер, взломавший наш сайт, после нескольких неудачных попыток снова попасть в сеть собрал вирус, эксплуатирующий уязвимость CVE2012-0158, без Microsoft Office вычислить бы это не удалось.

На этом установка гостевой ОС закончена.
Делаем снапшот (не выключая гостевую ОС)

vboxmanage snapshot "WindowsXP" take "WindowsXPSnap01" --pause

И выключаем:

vboxmanage controlvm "WindowsXP" poweroff

 

Веб интерфейс

У Cuckoo Sandbox есть 2 веб интерфейса, новый и старый. Тот что постарее менее информативен, имеет меньше возможностей и гораздо менее удобен, чем новый:
Старый интерфейс:

image

Новый интерфейс:

image

Старый интерфейс поднимается без БД, без Django, просто запуском скрипта web.py из папки utils, поэтому если вам этого достаточно — используйте его, но я рекомендую потратить 5 минут вашего драгоценного времени и поднять новый веб интерфейс.
Устанавливаем Apache:

apt-get install apache2

Apache выбрал т.к. лучше его знаю и дольше с ним работал, по желанию можете настроить Nginx или Unicorn.
Файл /etc/apache2/sites-enabled/000-default.conf удаляем
Создаём файл /etc/apache2/sites-enabled/cuckoo.conf следующего содержания:

<VirtualHost *:80>
	ServerName cuckoo.local
	ServerAdmin webmaster@localhost
	DocumentRoot /opt/cuckoo/web
	ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined
	WSGIScriptAlias / /opt/cuckoo/web/web/wsgi.py
	<Directory /opt/cuckoo/web/web>
		<Files wsgi.py>
			Require all granted
		</Files>
	</Directory>
	Alias /static /opt/cuckoo/web/static
	<Directory /opt/cuckoo/web/static/>
		Require all granted
	</Directory>
</VirtualHost> 

В файле /opt/cuckoo/web/web/wsgi.py находим:

import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "web.settings")

И меняем на:

import os, sys
sys.path.append('/opt/cckoo')
sys.path.append('/opt/cuckoo/web')
os.chdir('/opt/cuckoo/web/')
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "web.settings")

поправим права:

chown -R cuckoo:cuckoo /opt/cuckoo/

Меняем пользователя, от которого будет запускаться apache в файле /etc/apache2/envvars

APACHE_RUN_USER=www-data
APACHE_RUN_GROUP=www-data

на

APACHE_RUN_USER=cuckoo
APACHE_RUN_GROUP=cuckoo

Устанавливаем модуль поддержки wsgi:

aptitude install libapache2-mod-wsgi -y

 

Автозагрузка ПО

 

Автозагрузка интерфейсов

В файл /etc/rc.local до строчки exit 0 вписать:

VBoxManage list vms > /dev/null
ifconfig vboxnet0 192.168.56.1

 

Автозагрузка песочницы

 

apt-get install supervisor

Создаём файл /etc/supervisor/conf.d/cuckoo.conf следующего содержания:

[program:cuckoo]
command=python cuckoo.py
directory=/opt/cuckoo

[program:cuckoo-api]
command=python api.py
directory=/opt/cuckoo/utils

Выполняем:

supervisord -c /etc/supervisor/supervisord.conf
supervisorctl -c /etc/supervisor/supervisord.conf reload

 

Автозагрузка правил iptables

 

apt-get install iptables-persistent

Готово, теперь после перезагрузки все службы запустятся и всё будет работать.

Дополнительные «плюшки» и возможности Cuckoo

 

Сигнатуры PEID

Установим новую базу сигнатур, в новой базе их в 2 раза больше:

cd /tmp
wget http://research.pandasecurity.com/blogs/images/userdb.txt
mv userdb.txt /opt/cuckoo/data/peutils/UserDB.TXT

 

Правила ClamAV в Yara + сигнатуры угроз APT от AlienVault Labs

Примечание: при попытке загрузки скрипта конвертации правил ClamAV-Yara с лондонского дц digitalocean возникает ошибка “Request not allowed from your country That’s all we know.”

apt-get install clamav -y
wget http://db.local.clamav.net/main.cvd
wget http://db.local.clamav.net/daily.cvd
sigtool -u main.cvd
sigtool -u daily.cvd
wget http://malwarecookbook.googlecode.com/svn-history/r5/trunk/3/3/clamav_to_yara.py
python clamav_to_yara.py -f main.ndb -o main.yar
python clamav_to_yara.py -f daily.ndb -o daily.yar 
mkdir /opt/cuckoo/data/yara/clamav
mv *.yar /opt/cuckoo/data/yara/clamav/

Сконвертированная база будет выдавать ошибку, ссылаясь на неверную сигнатуру EOL_0_94_2, удалим её:
из файла /opt/cuckoo/data/yara/clamav/main.yar удалить строчки

«rule EOL_0_94_2
{
strings:
$a0 = { This ClamAV version has reached End of Life! Please upgrade to version 0.95 or later. For more information see www.clamav.net/eol-clamav-094 and www.clamav.net/download }^M

condition:
$a0

Или просто выполнить следующие команды:

RM_EOL=$(sed -n '/EOL_0_94_2/{=}' main.yar)
for n in {1..8}; do sed -i "${RM_EOL}d" main.yar; done

Далее установим правила угроз APT от AlienVaults:

git clone https://github.com/AlienVault-Labs/AlienVaultLabs.git 
mv AlienVaultLabs/malware_analysis/ /opt/cuckoo/data/yara/

И подключим эти правила к Cuckoo:
Впишем в файл /opt/cuckoo/data/yara/index_binary.yar строчки:

include "clamav/main.yar"
include "clamav/daily.yar"
include "malware_analysis/CommentCrew/apt1.yara"
include "malware_analysis/FPU/fpu.yar"
include "malware_analysis/Georbot/GeorBotBinary.yara"
include "malware_analysis/Georbot/GeorBotMemory.yara"
include "malware_analysis/Hangover/hangover.yar"
include "malware_analysis/KINS/kins.yar"
include "malware_analysis/OSX_Leverage/leverage.yar"
include "malware_analysis/TheMask_Careto/mask.yar"
include "malware_analysis/Urausy/urausy_skypedat.yar"

 

Zer0m0n или прячем нашу песочницу

Любой вредоносный файл может попытаться перед выполнением проверить наличие отладчиков или виртуальной среды, результат будет неутешителен. Вот что показывает тест Paranoid Fish при загрузке его исполняемого файла на проверку:

image

Это можно легко поправить с помощью Zer0m0n.
zer0m0n это драйвер для Cuckoo Sandbox, который будет выполнять анализ ядра во время исполнения вредоносного ПО. Он способен практически полностью скрыть «виртуальность» ОС и позволяет обойти обнаружение Cuckoo вредоносными файлами.

Установим его:

cd /tmp
git clone https://github.com/conix-security/zer0m0n.git
cd zer0m0n/bin
cp cuckoo.patch /opt/cuckoo
cd /opt/cuckoo
patch -p1 < ./cuckoo.patch
cp /tmp/zer0m0n/bin/logs_dispatcher.exe /opt/cuckoo/analyzer/windows/dll/
cp /tmp/zer0m0n/bin/zer0m0n.sys /opt/cuckoo/analyzer/windows/dll/
cp -rf /tmp/zer0m0n/signatures/* /opt/cuckoo/modules/signatures/

Поправим права:

chown -R cuckoo:cuckoo /opt/cuckoo/

После этого в веб интерфейсе появится возможность выбора сканирования в дополнительных опциях, по дефолту — Userland или с zer0m0n Kernelland:

image

Если вы запускаете скан через консоль — используйте опцию kernel_analysis=yes

Запустим проверку ещё раз:

image

Готовый скрипт установки и настройки Cuckoo

Как и обещал, выкладываю готовый скрипт. Он автоматически настроит всё, кроме гостевой ОС. После того, как скрипт отработает, вам нужно будет вернуться на пункт по настройке гостевой ОС и сконфигурировать её.

setup_cuckoo.sh

 

Бонус

В качестве бонуса я выложу инструкцию по интеграции Cuckoo Sandbox с программой Maltego.
Интегрировать систему мы будем с REST API сервисом песочницы, который запускается у нас на порту 8090.
Я работаю на макинтоше и следующие действия проводил на mac os 10.9.4, но на любой Linux системе всё точно так же должно устанавливаться и работать без проблем:
Для начала загрузим с сайта Maltego и распакуем её в папку приложения.
После откроем программу:

image

Она предложит войти или зарегистрироваться, регистрируемся, логинимся(с капчей не возитесь, введите что угодно, она не работает), после загружаем и устанавливаем файлы, необходимые для интеграции песочницы с Maltego с репозитория разработчика:

sudo -s
git clone https://github.com/bostonlink/cuckooforcanari.git
cd cuckooforcanari
python setup.py install
canari create-profile cuckooforcanari

Теперь необходимо импортировать в Matlego конфиг cuckoo:
Кликаем на значок программы в левом верхнем углу -> import -> Import Configuration и выбираем из папки, загруженной с github-а конфигурацию:

image

Ипортируем всё:

image

Готово, теперь открываем конфигурационный файл, вписываем хост, порт и папку, куда вы будете складывать вредоносное ПО:

vim ~/.canari/cuckooforcanari.conf

Готово, теперь в программе создаём новый график, перетаскиваем на график иконку Cuckoo Malware Sample, переименовываем файл в название вашего вируса и загружаем его через Submit File For Analisys:

image

После загрузки вы увидите номер задания:

image

По завершении сканирования, вы сможете получать любые данные в виде графиков:

image

Подробнее об этом можете посмотреть в офицальном видео, от разработчика:

Ещё один бонус, книга, которую я нашёл в сети, хороший гайд по использованию Cuckoo Sandbox для анализа вредоносных файлов.

И если вы используете на работе антивирус Symantec Endpoint Protection 12.1, то можете воспользоваться консольной утилитой под Windows SEPQuarantineTool.zip которая официально не поддерживается Symantec-ом, но ссылку на неё я нашёл в их саппорте. Этой утилитой можно вытаскивать и восстанавливать файлы с карантина, через curl для Windows выгружать файлы на сервер для сканирования, используя REST API и той же утилитой класть файлы обратно на карантин. Таким образом автоматизировав анализ угроз и составив чёрные списки сайтов и серверов, куда ломятся вирусы.

В заключении хочу сказать, что этот инструмент помог выполнить все поставленные задачи, а логи и вредоносные файлы того хакера, который упоминался в самом начале статьи теперь анализируются буквально в считанные минуты и позволяют понять всю картину работы используемого хакером вредоносного ПО:

Спасибо за внимание.

Список использованных источников

docs.cuckoosandbox.org
xakep.ru/articles/57409
lanswer.blogspot.ru/2012/11/add-cucksandbox-to-ubuntu-service.html
reverselab.info/page/cuckoo-sandbox
www.alienvault.com/blogs/tag/yara
www.securitylab.ru/analytics/441524.php
www.modern.ie/ru-ru
www.aldeid.com/wiki/PEiD
blog.prowling.nu/2014/08/cuckoo-sandbox-django-interface-with.html
github.com/conix-security/zer0m0n
github.com/bostonlink/cuckooforcanari
santi-bassett.blogspot.ru/2013/01/installing-cuckoo-sandbox-on-virtualbox.html

 

@Libert

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *