Лабораторная работа №12. Sandbox¶
Основные теоретические сведения¶
Цель: Получение теоритических и практических навыков работы с песочницами и файловыми антивирусами.
Вредоносная программа (англ. malware, malicious software — «злонамеренное программное обеспечение») — любое программное обеспечение, предназначенное для получения несанкционированного доступа к вычислительным ресурсам самой ЭВМ или к информации, хранимой на ЭВМ, с целью несанкционированного использования ресурсов ЭВМ или причинения вреда (нанесения ущерба) владельцу информации, и/или владельцу ЭВМ, и/или владельцу сети ЭВМ, путем копирования, искажения, удаления или подмены информации. Многие антивирусы считают крэки, кейгены и прочие программы для взлома вредоносными программами, или потенциально опасными.
Песочница (англ. Sandbox) - это ограниченная среда в вашей системе для исполнения гостевых программ без доступа к главной операционной системе. Это закрытое для доступа извне виртуальное пространство, в котором можно работать с программным обеспечением без изменения системных файлов.
Песочница (от англ. Sandbox, схожие понятия — англ. honeypot, англ. fishbowl) - в компьютерной безопасности, механизм для безопасного исполнения программ. Песочницы часто используют для запуска не протестированного кода, непроверенного кода из неизвестных источников, а также для запуска и обнаружения вирусов.
Песочница — в компьютерной безопасности специально выделенная среда для безопасного исполнения компьютерных программ.
Песочница обычно представляет собой жёстко контролируемый набор ресурсов для исполнения гостевой программы — например, место на диске или в памяти. Доступ к сети, возможность сообщаться с главной операционной системой или считывать информацию с устройств ввода обычно либо частично эмулируют, либо сильно ограничивают. Песочницы представляют собой пример виртуализации. Повышенная безопасность исполнения кода в песочнице зачастую связана с большой нагрузкой на систему — именно поэтому некоторые виды песочниц используют только для не отлаженного или подозрительного кода.
Cuckoo Sandbox — система для автоматического исследования вредоносного ПО, эксплоитов, вредоносных скриптов, документов, архивов и ссылок. Система способна проверять документы pdf, doc, xls, rtf, скрипты Python, JS, DLL библиотеки, бинарники, jar и многое другое.
Файловый Антивирус — компонент модуля Защита компьютера, контролирующий файловую систему компьютера. Он запускается при старте операционной системы, постоянно находится в оперативной памяти компьютера и проверяет все открываемые, сохраняемые и запускаемые файлы. Каждый файл, к которому вы обратитесь, будет перехвачен Файловым Антивирусом и проверен на присутствие известных вирусов.
Clam AntiVirus — пакет антивирусного ПО, работающий во многих операционных системах, включая Unix-подобные ОС, OpenVMS, Microsoft Windows и Apple Mac OS X.
Главная цель Clam AntiVirus — интеграция с серверами электронной почты для проверки файлов, прикреплённых к сообщениям. В пакет входит масштабируемый многопоточный демон clamd, управляемый из командной строки сканер clamscan, а также модуль обновления сигнатур по Интернету freshclam.
Задания к лабораторной работе¶
Установите Cukoo Sandbox.
Примечание
Если будут проблемы с установкой, воспользуйтесь документацией Cukoo sandbox http://docs.cuckoosandbox.org/en/latest/installation/
* Установка зависимостей
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
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
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
cd /tmp
wget http://distorm.googlecode.com/files/distorm3.zip
unzip distorm3.zip
cd distorm3
python setup.py build
python setup.py install
add-apt-repository ppa:pi-rho/security
apt-get update
apt-get install volatility
Установка и настройка 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
Установка 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
Настройка Cuckoo Sandbox:
cd /opt/cuckoo
./utils/community.py --signatures --force
Настройка БД:
mysql -u root -p
> create database cuckoo;
> grant all privileges on cuckoo.* to cuckoo@localhost identified by 'cuck00pass' ;
> flush privileges;
> quit;
Настраиваем cuckoo::
* Файл /opt/cuckoo/conf/cuckoo.conf
Включаем запись дампа памяти:
memory_dump = on
Настраиваем подключение к бд:
connection = mysql://cuckoo:cuck00pass\@localhost/cuckoo
Увеличиваем временные лимиты:
default = 240
critical = 1200
vm_state = 600
* Файл /opt/cuckoo/conf/memory.conf
Отключаем сохранение дампов памяти:
delete_memdump = yes
* Файл /opt/cuckoo/conf/processing.conf
Включаем анализ оперативной памяти:
memory = yes
* nano /opt/cuckoo/conf/virtualbox.conf
Меняем режим работы Virtualbox:
mode = headless
Меняем названия виртуальной машины с cuckoo1 на WindowsXP:
machines = WindowsXP
[WindowsXP]
label = WindowsXP
* Файл /opt/cuckoo/conf/reporting.conf
Включим импорт отчётов в MongoDB для работы веб интерфейса
[mongodb]
enabled = yes
Примечание
- На этом настройка Cuckoo закончена, теперь приступим к Virtualbox и гостевой ОС.
Загрузка виртуальной ОС с сайта:
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 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.:
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
setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump
getcap /usr/sbin/tcpdump
ifconfig vboxnet0 192.168.56.1
- После установки и настройки Windows переходим непосредственно на саму гостевую ОС.
Предупреждение
(Если возникли проблемы с установкой виртуальной машины, можете посмотреть, как это сделано в этой статье http://gwallgofi.com/cuckoo-sandbox-part-2-installing/ )
- Следующим образом настроим подключение к сети (dns можете указать любой):
- Установим VboxTools с диска, который подключен к системе.
- Устанавливаем Pyton 2.7: http://python.org/download/
- Устанавливаем http://www.activestate.com/activepython
- Устанавливаем PIL Python модуль, для создания скриншотов: http://www.pythonware.com/products/pil/
- Отключаем автоматическое обновление Windows.
- Отключаем брандмауэер.
- Копируем агент из сетевой папки setup в папку C:Python27, Ставим агент на автозагрузку, для этого добавляем в ветку реестра(пуск->выполнить->regedit) HKLMSOFTWAREMicrosoftWindowsCurrentVersionRun строковый параметр
Имя:“Agent“
Тип:“REG_SZ“
Содержание:«C:Python27agent.pyw»
- Включаем IE, в настройках ставим домашней страницей пустую вкладку, по желанию в свойствах обозревателя выключаем все защитные механизмы.
- Отключаем SSDP: пуск->выполнить->msconfig и в разделе службы отключаем «Служба обнаружения SSDP», чтобы в отчётах не фигурировали сетевые запросы этой службы.
- Перезагружаемся и в появившемся при загрузке окне выбираем «При перезагрузке не выводить это сообщение» и ОК.
- После перезагрузки гостевой ОС, пуск->выполнить->cmd и в консоли набираем netstat –na и смотрим есть ли агент на 8000-ом порту
- По желанию устанавливаем различное уязвимое ПО старых версий (браузеры, Flash player, Java, Acrobat Reader…)
- На этом установка гостевой ОС закончена.Делаем снапшот (не выключая гостевую ОС) <vboxmanage snapshot «WindowsXP» take «WindowsXPSnap01» –pause>
- И выключаем: <vboxmanage controlvm «WindowsXP» poweroff>
- Запуск Cukoo Sandbox <python cuckoo.py>
- Загрузите вредоносное ПО, для проверки работы Cukoo Sandbox. Здесь есть небольшой список ресурсов с образцами вредоносного ПО https://zeltser.com/malware-sample-sources/ . Например, Можете загрузить с http://malshare.com/ или с https://malwr.com/ .
- Чтобы отправить файл в Cukoo на анализ используйте команду submit: <python submit.py /path/to/binary>
- Запустите web-интерфейс cukoo и просмотрите результаты <python web.py>
Вопросы к лабораторной работе¶
- Что такое песочница?
- Принцип работы песочниц.
- Где используют песочницы?
- Преимущества и недостатки песочниц.
- Альтернативы использованию песочниц.
- Что такое эмуляция?
- Что такое эвристический анализ? В чем отличия от сигнатурного анализа?
- Для чего нужен файловый антивирус?
- Что такое вредоносное ПО?
Составьте отчет о выполнении лабораторной работы.
Включите в него копии экрана и ответы на вопросы лабораторной работы.