пятница, 7 июня 2013 г.

Как вредонос узнает разницу между виртуальным и реальным миром?


Как вредонос узнает разницу между виртуальным и реальным миром?

Ни для кого не секрет, что отрасль информационной безопасности использует преимущества виртуализации программного обеспечения для того, чтобы исследовать угрозы безопасности. VMWare, Sandboxie, Virtual PC, Анубис, CWSandbox, JoeBox, VirtualBox, Parallels, QEMU просто только немногих из этих виртуальных машин. Рог изобилия виртуальных средах дает специалист по безопасности возможность наблюдать и анализировать вредоносного программного обеспечения в удобном и легко воспроизводимым образом. Это создает проблемы для вирусописателей и из-за этого, они часто включают в их коде двоичные файлы, чтобы сделать его более трудным для специалистов по компьютерной безопасности, чтобы проанализировать их исполняемые файлы в этих виртуальных средах. Вот некоторые из наиболее часто анти-методы виртуализации:

Проверьте наличие виртуализированного оборудования:

Виртуальные среды имеют виртуальные сетевые интерфейсы. Как и любой сетевой интерфейс, они присвоен уникальный адрес MAC, который обычно включает в себя идентификационный номер изготовителя. Например, сетевой интерфейс для VMware Workstation будет иметь адрес MAC, который начинается с 00:50:56 или 00:0 C: 29 (VMware имеет более одного организационно уникальный идентификатор или OUI). Вредоносные программы могут проверить на наличие определенных OUIs и выбрать для себя по-другому или не отображать любое злокачественное поведение вообще в виртуальной машине.

Кроме того, можно проверить на наличие GUID, которые отдают на то, что это время работы в виртуальной среде. Например: MD5: 0151c5afde070a7b194f492d26e9b3ef (Trojan.Agent-124243 от ClamAV):
 
.text:004012EA     jz      short loc_40130E
.text:004012EC     push    104h            ; size_t
.text:004012F1     push    offset a76487644317703 ; "76487-644-3177037-23510"
.text:004012F6     lea     ecx, [ebp+var_104]
.text:004012FC     push    ecx             ; char *
.text:004012FD     call    _strncmp
.text:00401302     add     esp, 0Ch
.text:00401305     test    eax, eax
.text:00401307     jnz     short loc_40130E

 Наличие HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\ProductId 76487-644-3177037-23510 показывает, что машина имеет CWSandbox.

Каждая виртуальная машина связана с определенными драйверами устройств, значения реестра, которые отдают их природу. Например:

Жесткий водитель диск (VMware):
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\IDE\DiskVMware_Virtual_IDE_Hard_
Drive___________00000001\3030303030303030303030303030303030303130\FriendlyName VMware Virtual IDE Hard Drive

Видео драйвер (VMware):
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Class\{4D36E968-E325-11CE-BFC1-08002BE10318}\0000\DriverDesc VMware SVGA II

Драйвер мыши (VMware):
%WINDIR%\system32\drivers\vmmouse.sys

Любой из них может быть использована вредоносных писателем, чтобы обнаружить присутствие в виртуальной машине.
 

Таблица дескрипторов Регистры проверки:

Существует только один регистр дескрипторной таблицы прерываний (IDTR), один Глобальная таблица дескрипторов регистр (GDTR) и один местный таблицы дескрипторов регистр (LDTR) на процессор. Поскольку существует два операционных систем, работающих в то же время (хозяин и гость), виртуальная машина должна переехать IDTR, GDTR и LDTR для гостевой ОС в другое место, чтобы избежать конфликтов. Это приведет к тому несоответствия между значениями этих регистров в виртуальную машину и на родной машине. Инструкции SIDT, SGDT и SLDT являются инструкции по сборке, которые могут соответственно быть использованы для извлечь значения IDTR, GDTR и LDTR.

Например: MD5: b27d73bfcbaec49a95f23b45e9cf9310 (W32.Virut-54 по ClamAV)


UPX2:3142A03A loc_3142A03A:              ; CODE XREF: sub_3142A02E+2 j
UPX2:3142A03A                 push    eax
UPX2:3142A03B                 sidt    fword ptr [esp+var_6+4]
UPX2:3142A040                 pop     eax
UPX2:3142A041                 mov     eax, [eax+6]
UPX2:3142A044                 shl     eax, 10h
UPX2:3142A047                 jns     short sub_3142A021

IDT по адресу:
0x80ffffff in Windows
0xe8XXXXXX in Virtual PC
0xffXXXXXX in VMware

Backdoor портов ввода / вывода:

 VMware использует порт ввода / вывода 0x5658 ("VX" в ASCII) для взаимодействия с виртуальной машиной. Вредоносная программа может обнаружить присутствие этого порта, выполнив следующие действия:


mov EAX, 564D5868h ; VMXh
xor EBX, EBX  ; set EBX to anything but 0x564D5868 (in this case 0)
mov CX, 0Ah   ; Backdoor command. 10: Get VMware version
mov DX, 5658h  ; VX
in EAX, DX  ; Read from port VX into EAX
cmp EBX, 564D5868h ; EBX should have the magic number VX is VMware is present. If not, EBX=0

 
В основном, это магическое число 0×564D5868 ("VMXh") копируется в EAX и EBX в любое положение, но 0x564D5868 . Бэкдор команда загружается в СХ и, наконец, порт ввода / вывода число 0x5658 ("VX") загружается в DX. Тогда "в" Инструкции используется для чтения из порта 0x5658 в EAX. Вне VMware (на родном хост), привилегия ошибка. Под VMware, магическое число 0x564D5868 возвращается EBX (да, в этом случае EBX влияет в EAX, DX), следовательно, инструкция CMP. 

Выход, если отлаживается:

Хотя это не является, по сути, анти-виртуализации техники, он остается популярным аа проверки произведенных вредоносной программой, чтобы увидеть, если пользователь-Land отладчик присутствует в операционной системе. Это потому, что чаще всего отладчика будет установлен в виртуальном изображение, используемое для анализа вредоносного.

Например: MD5: 74ab05d1ebdba509fd68711b360c1235 (Trojan.IRCBot-3475 по ClamAV) 


.text:004050F8     push    offset aZwquerysystemi ; "ZwQuerySystemInformation"
.text:004050FD     push    [ebp+hModule]   ; hModule
.text:00405100     call    ds:GetProcAddress
.text:00405106     mov     [ebp+var_4], eax
.text:00405109     push    offset aZwqueryinforma ; "ZwQueryInformationProcess"
.text:0040510E     push    [ebp+hModule]   ; hModule
.text:00405111     call    ds:GetProcAddress
.text:00405117     mov     [ebp+var_14], eax
.text:0040511A     cmp     [ebp+var_4], 0
.text:0040511E     jz      short loc_405147

.text:00405120     push    0
.text:00405122     push    2   ; SystemInformationLength
.text:00405124     lea     eax, [ebp+var_8]
.text:00405127     push    eax ; SystemKernelDebuggerInformation
.text:00405128     push    23h
.text:0040512A     call    [ebp+var_4] ; ZwQueryInformationProcess
.text:0040512D     test    eax, eax
.text:0040512F     jnz     short loc_405147 ; process is being debugged


Для функции ZwQuerySystemInformation Windows API, установив значение SystemInfoClass до 2 (SystemKernelDebuggerInformation) извлекает информационной системы на присутствие в пространстве пользователя отладчика.


NTSTATUS WINAPI ZwQuerySystemInformation(
__in       SYSTEM_INFORMATION_CLASS SystemInformationClass,
__inout    PVOID SystemInformation,
__in       ULONG SystemInformationLength,
__out_opt  PULONG ReturnLength
);
 
Для Windows API функции ZwQueryInformationProcess, установив значение ProcessInformationClass до 7 (ProcessDebugPort) возвращает номер порта для отладки процесса. Значение, отличное от 0 указывает, что процесс был запущен через пользователем земли отладчика.

NTSTATUS WINAPI ZwQueryInformationProcess(
__in       HANDLE ProcessHandle,
__in       PROCESSINFOCLASS ProcessInformationClass,
__out      PVOID ProcessInformation,
__in       ULONG ProcessInformationLength,
__out_opt  PULONG ReturnLength
);

 
Для начала, не устанавливайте инструментов, предоставляемых виртуальной машины в гостевой ОС. Например, VMware предоставляет набор инструментов под названием VMware Tools, который усиливает общее впечатление пользователя с гостевой ОС. Недостатком является то, что при установке VMware Tools в гостевой ОС Windows оставят много подсказок легко обнаружить с помощью кусочка вредоносных программ, которые он в настоящее время работают в виртуальной машине.

Следующий шаг заключается в редактировании ваших VMware. VMX файле. При создании нового виртуального изображения с VMware, настройки об этом хранятся в файле конфигурации с расширением. VMX. Этот файл содержит сведения о сетях, размер диска, устройства, подключенные к виртуальной машине, и т.д. .. и, как правило, расположены в каталоге, где вы создали свой виртуальный образ. С вашей гостевой ОС остановилась, редактировать VMX файл и добавить следующее.:

isolation.tools.getVersion.disable = "TRUE"
isolation.tools.getPtrLocation.disable = "TRUE"
isolation.tools.setPtrLocation.disable = "TRUE"
isolation.tools.setVersion.disable = "TRUE"
isolation.tools.getVersion.disable = "TRUE"
monitor_control.disable_directexec = "TRUE"
monitor_control.disable_chksimd = "TRUE"
monitor_control.disable_ntreloc = "TRUE"
monitor_control.disable_selfmod = "TRUE"
monitor_control.disable_reloc = "TRUE"
monitor_control.disable_btinout = "TRUE"
monitor_control.disable_btmemspace = "TRUE"
monitor_control.disable_btpriv = "TRUE"
monitor_control.disable_btseg = "TRUE"
 
Теперь запустите вашу виртуальную машину. Это позволит запускать (с очень небольшим усилием) более VMware-Aware вредоносного ПО, чем раньше.

Я укажу, что:
  1. monitor_control.disable_directexec = "TRUE" , как правило, сорвать таблицы дескрипторов регистрирует чеки. Эта настройка сделает VMware интерпретировать каждый инструкция по сборке вместо выполнения их непосредственно на процессоре. Поэтому результат SIDT команда не будет адрес в 0xffXXXXXX диапазоне, можно было бы получить без этой настройки. 
  2. isolation.tools.getVersion.disable = "TRUE" сорвет бэкдор I / O проверить.

Теперь, что если после всего этого ваша фрагмент вредоносной программы по-прежнему обнаруживает, что в настоящее время работают в виртуальной машине? Я бы прошел код, найти, где виртуальная машина проверки выполняются и патч-кода с НОП (0x90).

Наконец, если это слишком трудно, или невозможно по каким-либо причинам, управлять вашими образца на родной системы! :-) (Вы всегда можете использовать системы резервного копирования и восстановления ПО, чтобы быстро вернуть машину в исходное состояние без переустановки ОС)
 
отсюда 

вторник, 7 мая 2013 г.

Настройка Debian linux с Нуля Apache+PHP+MySQl,

первым делом обновим пакеты
apt-get update
apt-get upgrade


после нам понадобится редактор,
aptitude install mc
mc

в меню Options->Configuration выставляем галочку use Internal Editor

нам понадобится SSL, скорее всего админы вам это уже поставили если вы в консоли, но всеже если это ваш домашний сервер то вам надо сделать так

apt-get install ssh openssh-server

если не устанавливается с диска, править репозитории.
Адрес репозитория необходимо добавить в файл /etc/apt/sources.list и обновить информацию о доступных репозиториях и их пакетах:
  1. nano /etc/apt/sources.list # для редактирования
  2. aptitude update # обновляем информацию о репозиториях и пакетах

проверяем время
date


Возможно вам захочется большей безопасности, для этого ставим пакет sudo
aptitude install sudo
после чего любую операцию от имени root можно быдет выполните только через su
или так:
sudo su
теперь ваша консоль под админом. Для чего это делается, предположим консоль осталась открытой вы отошли, любой присевший за компьютер не сможет ничего сделать без пароля Я лично ставлю данный пакет в инсключительных случаях, для сервер считаю оно немного излишне, потомучто, консоль оставить очень сложно, на консоль можно попасть только через пити и только зная пароль, а если знаеш пароль то и смысл в sudo? а если злоумышлиник попал на сервер через дырку в php ему тоже не поможет sudo. Вобщем несколько бесмыслено для удаленого сервера ИХМО.


Устанавливаем MySql
apt-get install mysql-client mysql-server

Устанавливаем пароль kqgnfccykg
если при установке не спросило какой пароль задать делаем так:
mysqladmin -u root password “newpass”
либо так:
mysql -u root -p
mysql> use mysql;
mysql> UPDATE user SET Password = PASSWORD(‘newpass’) WHERE User = ‘root’;
mysql> FLUSH PRIVILEGES;



нужен ли phpmyadmin? естественно нужен, но ставить его из дистрибутива большая дикость, либо надо ставить скопировать в любое доступное для вас место и потому деинсталировать. С чем это связано, зачем вам phpmyadmin который по умолчанию, ведь все знают как его найти. А так вы можете обозвать папку как угодно разместить на любом сайте превязаном к вашему серверу тем самым увеличить пусть не на много но всеже вашу спокойную жизнь.

apt-get install phpmyadmin
копируем в любое вам нравящееся место, после чего:
apt-get autoremove phpmyadmin

или 


Вот и пришло время для установки Apache + PHP
apt-get install apache2 apache2.2-common apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-common php5-gd php5-mysql php5-imap php5-cli php5-cgi libapache2-mod-fcgid apache2-suexec php-pear php-auth php5-mcrypt mcrypt php5-imagick imagemagick libapache2-mod-suphp libapache2-mod-ruby php5-curl
Я установил модули которые счел нужными, любой модуль который мы считаете лишним просто уберите из строки. в последствии это можно сделать и по отдельности.

включаем модули
a2enmod suexec rewrite ssl actions include
a2enmod dav_fs dav auth_digest


и перезапускаем апач
/etc/init.d/apache2 restart





скачиваем пакет
wget  http://www.splitbrain.org/_media/projects/dokuwiki/dokuwiki-2012-10-13.tgz

разаривируем его
tar -xvf dokuwiki-2012-10-13.tgz


скопировать папку dokuwiki-2012-10-13 в /etc/var/www/
затем зайти на страницу установки http://dokuwiki-2012-10-13/install.php




Анализ вредоносных файлов

PDF + JavaScript

Рассмотрим вредоносный документ PDF (MD5: c251dcf3190701c46ee6a3f562df32e6), который наиболее распространён в настоящее время. Этот файл был впервые обнаружен в декабре 2009 г., сразу же попал в топ-20 вредоносных программ в Интернете[3] (Pdfka.asd - 12 место), и поднялся на две позиции топа в январе[4] (Pidief.cvl - 10 место), по-прежнему оставаясь единственным PDF-эксплойтом в пределах значимой статистики. (Примечание: экземпляры вредоносных файлов для этого и последующих примеров, а также файлы, полученные в процессе их анализа и обработки, доступны в приложенном к статье архиве).

Это файл размером около 10 Кб. Открыв его в текстовом редакторе, можно увидеть в самом начале файла типичную для PDF-документа сигнатуру: %PDF.

Структура PDF 

Структура PDF-файла проста и читается невооружённым глазом. Начальные сведения, достаточные для изучения простых PDF-эксплойтов, можно почерпнуть в статье Д. Стивенса «Анатомия вредоносных PDF-документов» (на английском)[5]. Полностью формат PDF описан в стандарте ISO 32000-1 и в соответствующем ему справочном документе, доступном для загрузки на сайте Adobe[6]

Итак, рассмотрим структуру данного вредоносного файла.


Дамп структуры PDF, оптимизированный для анализа, можно получить при помощи утилиты pdf-parser. В данном случае пользоваться ею нет необходимости, поскольку файл небольшой, и вся структура PDF в нём видна как на ладони. Мы видим стандартных набор объектов: каталог (1), содержание (2), список страниц (3), описатель отдельной страницы (4), каталог комментариев (5), встроенный JavaScript (6) и два объекта типа stream (7 и 8). В stream-объектах внутри PDF хранятся различные вложенные данные, такие как картинки, скрипты и шрифты. Чаще всего эти данные упакованы при помощи алгоритма deflate (/FlateDecode).

При анализе потенциально вредоносных PDF-файлов необходимо в первую очередь обращать внимание на активное содержимое документа. В данном случае привлекает внимание встроенный скрипт JavaScript (6), данные которого хранятся в упакованном объекте (7). Упакованный скрипт занимает всего 160 байт и практически не заметен при просмотре структуры PDF-файла.





вторник, 30 апреля 2013 г.

PDF-parser.py

Этот инструмент разбирает PDF документе на основные элементы. Это не скажется на PDF документе. Код парсера быстрый и грязный, я не рекомендую код данного парсера для разработки PDF анализаторов, но он работает.

Синтаксический анализатора изображен ниже:

Опция --stats выводит статистику значений объектов обнаруженных в PDF документе. Используйте ее, чтобы определить PDF документы с необычными/неожиданными объектами или чтобы классифицировать PDF документ. Например, я создал 2 Статистика вредоносных PDF-файлов, и хотя они были очень разные по содержанию и размеру, статистика была идентична, доказывая, что они использовали один вектор атаки и одного и тогоже же происхождения.

Опция --search=SEARCH ищет строку в косвенных объектов (не в потоке косвенных объектов). Поиск не чувствителен к регистру, и методам обфускации (так, как я еще не сталкиваться с этими методами обфускации в дикой природе).

Функция --filter применяет фильтр(ы) в поток. На данный момент, поддерживается только FlateDecode (например Zlib декомпрессия).

Опция --raw выводит исходные данные документа (например, не для печати представления Python).

--object выводит данные косвенного объекта, которого был указан ID. Этот ID не зависит от версии. Если несколько объектов имеют одинаковый идентификатор (без учета версии), все эти объекты будут выводиться.

--reference позволяет выбрать все объекты, ссылающийся на указанный косвенный объект. Этот ID не зависит от версии.

Тип Alows выбирает все объекты данного типа. Тип это имя, и является чувствительный к регистру и должно начинаться с символа слеш  (/).


Скачать:pdf-parser_V0_4_1.zip (https)
MD5: A0314C0CD8AAE376C7448E74D4A7472C

SHA256: 633B7400015B2C936103CC64C37435FB333B0F2634B2A6CD3A8949EAB1D18E9B

make-pdf tools

make-pdf-javascript.py позволяет создать простой PDF документ с внедренными JavaScript, который будет выполняться при открытии документа. По существу это клей-код mPDF.py модуль, который содержит класс с методами для создания заголовков, косвенные объекты, объектов потока, trailers и внешних ссылок.

20081109-134003

Если выполнить это без параметров, он будет генерировать PDF документа с JavaScript для отображения окна сообщения (вызов app.alert).

Предоставить собственный JavaScript, используйте опцию –javascript для скрипта в командной строке или –javascriptfile для сценария, находящегося в файле.

make-pdf-embedded.py создает PDF файл со встроенным файлом.




Download:

make-pdf_V0_1_4.zip (https)
MD5: D2630ABDE44DFFDD5640AEF391CE591D
SHA256: 11578A938F9FFCC16456519375AF8817C1F8F0D9C41C68BBF78882BFB36B8058

pdfid.py


Этот инструмент не является PDF парсером , но он будет искать определенные ключевые слова в PDF, что позволяет определить PDF документы, которые содержат (например) JavaScript или выполняет действие при открытии. PDFiD будут обрабатывать и обфускации.

Идея состоит в том, чтобы использовать этот инструмент первым, сортируя PDF документы, а затем анализировать подозрительные PDF.

Важным критерием дизайн для этой программы является простота. Для полного разбора PDF документа требуется очень сложная программа, и, следовательно, она обязана содержать много (уязвимостей) ошибок. Чтобы избежать вероятность, атака, я решил оставить эту программу очень простой (это даже проще, чем PDF-parser.py).

20090330-214223

PDFiD будет сканировать документ PDF для данного списка строк и подсчета вхождений (общая и всем) каждого слова:
  • obj
  • endobj
  • stream
  • endstream
  • xref
  • trailer
  • startxref
  • /Page
  • /Encrypt
  • /ObjStm
  • /JS
  • /JavaScript
  • /AA
  • /OpenAction
  • /JBIG2Decode
  • /RichMedia
  • /Launch
  • /XFA
Почти каждый PDF документы будут содержать первые 7 строк (объект через startxref), и в меньшей степени поток endstream. Я нашел пару PDF документы без xref или trailer, но это исключения (Кстати, это не является показателем вредоносности PDF документа).

/Page дает указание количества страниц в PDF документе. Большинство вредоносных PDF документе, имеют только одну страницу.




Download:
pdfid_v0_1_2.zip (https)
MD5: 60FC17757201F014A6ADA0744B74A740
SHA256: 1CF36C50427A2206275C322A8C098CD96A844CAF6077B105ADE9B1974789856

PDFTemplate.bt

Это шаблонов 010 Editor для PDF файлов.
Он особенно полезен для неправильных PDF файлов, как в этом примере с PDFUnknown структуры:


Download:
PDFTemplate.zip (https)
MD5: C124200C3317ACA9C17C2AE2579FCFEB
SHA256: 24C4FEAD2CABAD82EC336DDCFD404915E164D7B48FBA7BA1295E12BBAF8EB15D









Этот пост, чтобы подробно объяснить полиморфизм PDF

Это простой "Hello World"-PDF просматриваемый с помощью текстового редактора:


Он состоит из:
  • заголовка; 
  • Список объектов; 
  • таблица перекресных ссылок; 
  • Концевой словарь (Trailer). 

Описание физической структуру файла PDF.
Заголовок определяет, что это PDF файл (с указанием версии PDF файла), Trailer указывает на перекресную ссылку (начиная с позиции байта 642 в файле), и точки пересечения таблице применительно к каждому объекту (от 1 до 7 ) в файле (байт с 12 по 518). Объекты отсортированы в файле: 1, 2, 3, 4, 5, 6 и 7.


Trailer словарь
Этот словарь, проживающих в дополнении к файлу, а не в основной его части, это одна из первых вещей, которая будет обработана, программой перед чтением PDF документа. Он содержит записи таблицы перекрестных ссылок и таким образом объекты-к файлу для чтения. Его важные записи приведены в таблице 4-1 .


Ключ                Тип значения                             Значение
/Size*                  Integer                                           Общее количество записей в таблице 
                                                                                 перекрестных ссылок файла (обычно равно 
                                                                                 количеству объектов в файле плюс один).
/Root*                 Indirect reference to dictionary       ссылка на Каталога документа.
/Info                     Indirect reference to dictionary      документальная информация словаря./ID                      Array of two Strings                      Однозначно определяет файл в рабочий
                                                                                процесс. Первая строка решает, когда создается
                                                                                первый файл, второй изменены системы
                                                                                 документооборота при модификации файла.


Каталог документа является корневым объектом основного графика объект, от которого все остальные объекты могут быть достигнуты через косвенные ссылки.

Вот пример дополнения словаря:
<< 
        /Size 421 
        /Root 377 0 R 
        /Info 375 0 R 
        /ID [<75ff22189ceac848dfa2afec93deee03> <057928614d9711db835e000d937095a2>] 
>>

Как только трейлер словарь был обработан, мы можем продолжать читать словарь информационный документ и документ каталога.


Логическая структура PDF файл имеет иерархическую структуру, корневой объект идентифицируется в Trailer. Объект 1 является корнем, объекты 2 и 3 детей объекта 1, и т.д. ..., давая эту логическую структуру:


Физическая структура PDF файл может быть преобразована в другую физическую структуру, без изменения логической структуры. Вот тот же файл, но теперь объекты отсортированы от 7 до 1 (я изменил порядок, в котором объекты появляются в файле):




Также необходимо обновить перекрестные ссылки в таблице, потому что каждый объект поменял свое место. Но кроме этого, ничего не изменилось.Еще корень объект 1, и дерево то же самое. Иными словами, логическая структура файла остается неизменной, что подразумевает, что визуализация и PDF файлы идентичны. Объекты могут появляться в случайных позициях в PDF файл без влияния на логическую структуру файла (т.е. рендеринга). По этой простой файл, с 7 объектов, у меня есть 5020 5040 (это 7!) возможных физических структур, просто изменение порядка объектов. Изменение порядка объектов только один из способов мутировать физическую структуру PDF файла.

Вы можете скачать как PDF файлы здесь.

отсюда

воскресенье, 28 апреля 2013 г.

Комплекс Buster Sandbox Analyzer + SandboxIE


SandboxIE — пожалуй, одна из самых перспективных программ-песочниц из имеющихся в открытом доступе. Связано это с рядом факторов, не последними в которых является постоянная поддержка и обновление программы автором, а также доступность бесплатного варианта использования с практически полным функционалом (во всяком случае для наших целей его вполне хватит). Самое главное — это поддержка в SandboxIE подключаемых плагинов, которые расширяют функционал.

Одним из таких плагинов является Buster Sandbox Analyzer или BSA. Этот плагин работает во многом подобно уже обсуждённой CWSandbox — внедряет динамическую библиотеку в адресное пространство исследуемого процесса, позволяя отслеживать API-вызовы в ходе выполнения. Кроме того, программа позволяет отслеживать сетевую активность, производить анализ изменённых файлов и другие полезные вещи.

Чтобы оценить работу этой системы, вначале построим её. Дополнительно нужно будет скачать такие два аддона на SandboxIE: Block Process Access и Antidel. Эти плагины позволяют с одной стороны скрыть от анализируемого процесса наличие других процессов вне песочницы, а с другой — воспрепятствовать удалению файлов в ходе работы (полезно при анализе некоторых дропперов).

Далее:

1. Устанавливаем SandboxIE.

2. Создаём дополнительную песочницу через Песочница — Создать новую песочницу. Я её назвал BSA — пусть и у вас будет так же для простоты.

3. Правой кнопкой мыши щёлкаем на песочницу BSA в списке окна программы и выбираем Настройки песочницы.

4. Критично: 
   Поведение — Отображать границу вокруг окна — выбрать красный
   Recovery. — Немедленное восстановление — убрать галку И вообще убедиться, что ни одной папки нет в восстановлении.
   Delete — поснимать все галки про удаление.
   Restrictions — Доступ в Internet — поудалять все программы, пока не появится надпись «Ни одна программа не сможет получить доступ в Internet». Запомните эту опцию — для некоторых зловредов доступ нужно будет открывать, но учтите, что в этом случае все пароли и информация с хостовой машины уйдут злоумышленнику.
    Restrictions — Доступ на запуск и выполнение — разрешить всем.
   Доступ низкого уровня и аппаратные средства — все галки поснимать. Это важно, иначе низкоуровневые вирусы типа TDSS, Mebratix, Mebroot пролезут из песочницы в систему.

     Остальные опции оставить по умолчанию. В дальнейшем можно их настроить на свой вкус — там всё достаточно понятно.

5. В папке, куда установили SandboxIE, создаём папку Buster Sandbox Analyzer, куда распаковываем всё, что скачано выше.

6. В главном окне SandboxIE выбираем Настроить — Редактировать конфигурацию. В открывшемся текстовом документе находим раздел BSA сразу под этими буквами добавляем строки:

InjectDll=C:\Program Files\SandboxIE\BSA\sbiextra.dll
InjectDll=C:\Program Files\SandboxIE\BSA\antidel.dll
InjectDll=C:\Program Files\SandboxIE\BSA\LOG_API\LOG_API32.DLL
OpenWinClass=TFormBSA
NotifyDirectDiskAccess=y

Путь у вас, конечно, может отличаться. Но порядок инжектируемых библиотек обязательно должен быть такой!

Теперь обратите внимание на раздел GlobalSettings, а конкретно на параметр FileRootPath:

FileRootPath=C:\Sandbox\Admin\%SANDBOX%
(у вас может отличаться).

Запомните его значение.

8. Сохраняем текстовый файл по оригинальному пути. В главном окне SandboxIE выбираем Настроить — Перезагрузить конфигурацию.

9. В главном окне SandboxIE выбираем: Настроить — Интеграция в проводник Windows — Запустить управление SandboxIE — когда запускается программа в песочнице и Действия «запускать в песочнице» — добавить пункт контекстного меню «Запустить в песочнице» для файлов и папок.

10. Запускаем Buster Sandbox Analyzer (вручную, из одноимённой папки путём запуска bsa.exe.

11. Выбираем Options — Analysis mode — Manual и Options — Program Options — Windows Shell Intagration — Add right-click action «Run BSA».

Всё готово для работы.

Как это использовать?

1. Отключаем резидентный антивирус (если имеется).

2. Наводим мышкой на изучаемый процесс и жмём правой кнопкой Run BSA. Откроется окно BSA.

3. Убедитесь, что в строке Sandbox folder to check указана папка, которая совпадает со значением параметра FileRootPath SandboxIE (см. выше), только вместо %SANDBOX% в ней указано BSA. В моём случае при параметре

FileRootPath=C:\Sandbox\Admin\%SANDBOX%

в BSA должно стоять
C:\Sandbox\Admin\BSA

4. Нажмите Start Analysis.

5. Наводим мышкой на изучаемый процесс и жмём правой кнопкой Запустить в песочнице. В предлагаемом списке песочниц выбираем BSA.

Всё. Процесс пойдёт. Вы будете видеть лог API-вызовов в BSA и активные процессы в главном окне SandboxIE. Иногда процесс завершится, тогда в BSA жмите Finish Analysis, иногда — его нужно прибить в SandboxIE (например, для файловых инфекторов), выбрав на правой мышкой на активной песочнице BSA Завершить программы.

По окончании BSA выдаст детальный отчёт об изменениях в системе, можно также через Viewer ознакомиться с другими отчётами. Если поставите в систему WinPcap — сможете даже перехватывать пакеты из песочницы, хотя там это не очень здорово организовано, нет, например, персонализации UDP-пакетов. Но если очень хочется — то можно, но при этом на хостовой системе следует заглушить все сетевые приложения, особенно торренты.

После работы, кликнув на песочнице BSA правой мышкой можно выбрать Просмотреть содержимое и изучить все файлы, созданные или изменённые процессом в ходе работы.

Логи BSA и файлы песочницы хранятся до следующего запуска нового процесса на исследование.

Следует заметить, что возможен прямой анализ изменений, вносимых в систему изучаемым файлом. Учитывая то, что виртуализованный реестр хранится C:\Sandbox\Admin\%SANDBOX%\RegHive, то перевести его в «понятный» вид крайне просто вот таким командным скриптом:

REG LOAD HKLM\uuusandboxuuu C:\Sandbox\DefaultBox\RegHive
REG EXPORT HKLM\uuusandboxuuu C:\Sandbox\sandbox.reg
REG UNLOAD HKLM\uuusandboxuuu

Только учтите, что «DefaultBox» у каждого будет индивидуален — но об этом уже мы говорили выше.

Полученный файл sandbox.reg будет содержать все внесённые в реестр изменения, которые легко проанализировать.

Возможность SandboxIE инжектировать динамические библиотеки в процесс может быть эффективно использована зловредного кода, выполняемого не в виде PE-исполняемого файла, а виде библиотеки, инжектируемой в адресное пространство процессов или регистрируемой в качестве сервиса. Но об этом — совершенно другой и непростой разговор.

отсюда

суббота, 27 апреля 2013 г.

Платформы для атак


Ниже перечислены некоторые из наиболее распространенных платформ мишенью для вредоносных программ.

  • AM
Макро вредоносные программы для VBA в Access 97 или более поздней версии

  • AndroidOS
Вредоносные, который работает на Android OS

  • ACAD
Эксплойты, которые используют AutoCAD

  • BAT
Вредоносные программы, которые требуется DOS, Windows NT или командный интерпретатор или клон (4DOS, 4NT)

  • Boot
вредоносные программы, которые находятся в главной загрузочной записи или загрузочного сектора DOS

  • ChromeOS
вредоносные программы, которые работает на Chrome OS

  • CM
VBA макросы вредоносных программ для Corel Draw! V 9.0 или более поздней

  • CS
Вредоносные программы для переводчика CorelScript во многих продуктах Corel

  • DOS
DOS заражает COM, EXE (MZ) или SYS файлы и требует некоторой версии MS-DOS или клона

  • HLP
Вредоносные программы для WinHelp. Отметим, JS и VBS скриптовые вредоносные программы встроенные в HTML и CHM файлов должны использовать JS или VBS платформы

  • HTML
Для файлов, которые содержат только вредоносный С даты и не могут быть классифицированы как JS, PHP или других сценариев

  • МАР
Вредоносные программы для IDA Pro

  • INF
вредоносных программ, которые использует Windows, файлы INF

  • INI
Вредоносные программы для MiRC файлы INI

  • iPhoneOS
вредоносных, который работает на платформе iPhone

  • MSIL
Вредоносные программы для. NET платформы

  • Java
Вредоносные программы для Java Runtime окружающей среды (автономные или браузер встраиваемый)

  • JS
Вредоносные программы для Jscript JavaScript или переводчиком. HTML и CHM встроенного вредоносного JS попадает в эту платформу типа

  • Linux
вредоносных которие работают на любом дистрибутиве

  • MacOS
вредоносных программ, которые работает на MacOS до OSX

  • MMS
вредоносных программ, которые распространяется через мультимедийных сообщений (MMS) сообщений

  • OM
на наличие вредоносных программ, который заражает по крайней мере, два приложения в Office 97 или более поздней версии Люкс. Также включает в себя связанные с ними продукты (Visio, проекты)

  • OS2
вредоносных программ, которые работает на OS / 2

  • OSX
вредоносных, которая работает на Mac OSX

  • PM
Вредоносные программы для проектов VBA в 98 или более поздней

  • PalmOS
Вредоносные программы для PalmOS

  • Perl
вредоносных программ, которые требуется Perl включая переводчика тех под WSH и HTML Embedded Perl вредоносных

  • PHP
Вредоносные программы для PHP скрипт

  • PPM
вредоносных Макрос для VBS в PowerPoint 97 или более поздней

  • PUM
Макро вредоносных программ для VBS Издатель в 97 или более поздней

  • REG
вредоносных В Windows формат файла реестра

  • SH
вредоносных программ, которые требуется Unix (-как) скрипт переводчика. Хостинг не влияет на имя платформы. Shell вредоносных специфичные для Linux, Solaris, HP-UX или других Unix-или специфичных для КШ, КШ, Bash, Tcsh или другие переводчики все подпадают под эту платформу имя.

  • SMS
вредоносные программы, которые распространяется через Система коротких сообщений (SMS).

  • Solaris
Вредоносные программы для Solaris

  • SymbOS
Вредоносные программы для Symbian OS

  • SVL
Вредоносные программы для Microsoft Silverlight

  • SWF
Вредоносные программы для Macromedia Flash

  • Unix
вредоносных программ, которые работает на Unix, Infectors ELF файлов и т.д.

  • VBS
Вредоносные программы для Visual Basic интерпретатор сценариев. Хостинг не влияет на обозначение платформы. Автономный Infectors VBS, которые требуют под WSH VBS, HTML встраиваемый VBS вредоносных программ и вредоносных встроенных в Windows Compiled HTML Help файлов (CHM), все подпадают под эту платформу типа.

  • W16
Вредоносные программы для 16-разрядных версий Windows (родной исполняемые)

  • W32
Вредоносные программы для 32-разрядных версий Windows (родной исполняемые)

  • W64
Вредоносные программы для 64-разрядных версий Windows (родной исполняемые)

  • W128
Вредоносные программы для 128-разрядных версий Windows (родной исполняемые)

  • WM
Макро вредоносных программ для VBA в Word 97 или более поздней версии

  • WinCE
Вредоносные программы для PocketPC (Windows CE)

  • WinHEX
Вредоносные программы для WinHex

  • WMA
Windows Media Audio (WMA), как правило, под видом mp3, что при загрузке или воспроизведении, будет перенаправлен на сайт, который сообщает пользователю, чтобы загрузить и установить кодек вредоносных Для прослушивания аудио

  • WMV
Windows Media Video (WMV), как правило, под видом AVI, что при загрузке или воспроизведении, будет перенаправлен на сайт, который сообщает пользователю, чтобы загрузить и установить вредоносный кодек для просмотра видео

  • XM
Макро вредоносных программ для VBA в Excel 97 или более поздней

отсюда