Лабораторная работа №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 можете указать любой):
_images/112.png
  • Установим 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»

_images/29.png
  • Включаем IE, в настройках ставим домашней страницей пустую вкладку, по желанию в свойствах обозревателя выключаем все защитные механизмы.
  • Отключаем SSDP: пуск->выполнить->msconfig и в разделе службы отключаем «Служба обнаружения SSDP», чтобы в отчётах не фигурировали сетевые запросы этой службы.
_images/33.png
  • Перезагружаемся и в появившемся при загрузке окне выбираем «При перезагрузке не выводить это сообщение» и ОК.
  • После перезагрузки гостевой ОС, пуск->выполнить->cmd и в консоли набираем netstat –na и смотрим есть ли агент на 8000-ом порту
_images/42.png
  • По желанию устанавливаем различное уязвимое ПО старых версий (браузеры, 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>

Вопросы к лабораторной работе

  1. Что такое песочница?
  2. Принцип работы песочниц.
  3. Где используют песочницы?
  4. Преимущества и недостатки песочниц.
  5. Альтернативы использованию песочниц.
  6. Что такое эмуляция?
  7. Что такое эвристический анализ? В чем отличия от сигнатурного анализа?
  8. Для чего нужен файловый антивирус?
  9. Что такое вредоносное ПО?

Составьте отчет о выполнении лабораторной работы.

Включите в него копии экрана и ответы на вопросы лабораторной работы.