Ключевые слова:vmware, security, (найти похожие документы)
Автор: VIKT0R (apple) <a@1io.ru>
Newsgroups: email
Date: Mon, 1 Aug 2005 14:31:37 +0000 (UTC)
Subject: Организация Honeypot в VMware - основы
Организация Honeypot в VMware - основы
Kurt Seifried, <kurt@seifried.org.>
Перевод с дополнениями: VIKT0R <a@1io.ru.>
Сайт: http://1io.ru/
Установка Honeypot становится обычным делом, поскольку профессионалы
защиты пытаются проводить более детальное исследование методов
(искусства) нападающих. Honeypots также неоценим для изучения
побуждений нападающих, их привычек и образов поведения. К сожалению,
установка надлежащего honeypot - нетривиальная задача, и правильное
конфигурирование сетевых датчиков для фиксирования всех данных
осуществить сложно. Хорошие новости - то, что есть множество
инструментальных средств и методов, которые могут делать жизнь намного
более легкой для развертывания некоторых honeypot администраторами.
Что является VMware?
VMware - это система виртуальных машин; программный продукт разработан
как для Windows, так и для Linux систем и позволяет эмулировать
одновременную работу нескольких операционных систем, даже соединяя их
по сети. Также фирма выпускает серверный вариант, адаптированный для
одновременной работы нескольких эмулируемых (далее будем пользоваться
термином "гостевых" операционных систем). Первый минус в работе VMware
- это невозможность эмуляции центрального процессора. Система VMware
способна к эмуляции всех версий Windows, Linux, большинство BSD
семейства, Solaris для Intel, Novell, Netware, а множество других
неподдерживаемых операционных систем может быть адаптировано для
работы.
Виртуальные диски против физических (реальных)
Виртуальные диски, видимые в гостевой операционной системе как
реальные накопители, - это на самом деле набор файлов, (хотя есть
стандартные способы подключения реальных дисков). Есть несколько
преимуществ и недостатков этого. Если ваша цель - быстрое исследование
или раннее устройство предупреждения, и Вы не планируете преследовать
в судебном порядке взломщика, то использование витруальных дисков
приемлемо. В гостевой операционной системе они видны как реальные,
соответсвенно, работа с ними будет аналогичка работе с дисками Вашей
реальной системы (отныне будем называть ее "хост", супротив
виртуальной, которую мы назвали "гостевой"). Однако, если гостевая
операционная система достаточно повреждена, Вы не сможете легко
получить доступ к файлам на виртуальных дисках. Для глубокого
исследования, а тем более, если Вы планируете подать в суд на
злоумышленника, лучше в качестве жестких дисков гостевой системы
использовать реальные накопители. Я рекомендовал бы использовать
физически отдельный HDD от HDD реальной операционной системы, это
ослабит как нагрузку на диск, так уменьшит вероятность потенциального
перекрестного загрязнения. Использование настоящего накопителя
позволит, к примеру, делать реальные слепки дисков. Также желательно
поместить данный диск в лоток (Mobile Rack), чтобы успеть оперативно
извлечь устройство в случае попытки стереть важные файлы. Имеются в
виду не логи системы, обычно хранящиеся на другом компьютере, а сама
система.
Подготовка к исследованию
Вероятно наиболее важная часть подготовки, это разбивка дисков на
разделы. В случае выбора использования виртуальных дисков можно задать
размер, скажем в 6 ГБ, и это не повлечет к мгновенному появлению
файла, размером шесть гигобайт. Напротив, файл сначала будет маленьким
и увеличиваться по мере создания файлов в гостевой системе. Также
разные виртуальные диски могут быть подключены к разным гостевым
системам. Таким образом, можно создать много виртуальных систем на
сравнительно маленьком носителе. Стирать данные удобно бесплатно
утилитой от IBM: http://www.storage.ibm.com/hdd/support/download.htm
Просто распакуйте на гибкий диск, и запускайте командой "wipe x" где x
- номер (0-7) устройства. Для UNIX систем просто используют dd, чтобы
вытереть диск командой типа:
dd bs=1000k if=/dev/zero of=/dev/partitionname
Исследование данных в памяти
Энергозависимая память - одна из ведущих проблем для исследования.
Саморазмножающиеся вирусы типа CodeRed - резидент памяти и не
оставляют следов в файловой системе. Одно из главных преимуществ для
Honeypot с VMware - способность получить ahold - слепок - данных в
памяти и исследовать это.
Если рассчитывать на это, необходимо выделить гостевой системе
маленький объем оперативной памяти, например, 32 МБ или меньше. Это
вынудит использовать файл подкачки оперативной памяти, давая
возможность его исследовать. Сам файл подкачки (хоста) расположить на
отдельном томе жесткого диска. Это может казаться подозрительным, но
может часто находить оправдание в нежелании привести систему к краху
из-за ограниченной памяти.
Приостановка OS
Это - одна из моих любимых особенностей VMware, способность
приостановить гостевую операционную систему, внешне. В отличие от
реальной системы, которую можно только выключить, VMware
приостанавливает выполнение процессов на любой операционной системе и
может легко использоваться на компрометированной или тяжело
поврежденной системе. Когда работа систему приостанавливаетса
(ставится на паузу), создается дополнительный внешний файл
определенного формата со снимком памяти. Единственное препятствие -
это отсутствие свободного места на реальном HDD. Например, для
приостановки работы WindowsXP, на которой не установлено никакого ПО и
выделено 232 МБ ОЗУ (почему так много будет сказано чуть позже)
требуется около 240 МБ места на диске. Данный файл можно посмотреть
как HEX-редактором, так и с помощью команд "strings" и "grep" для
быстрого извлечения информации.
Другая главная выгода этой способности - то, что Вы можете брать
снимок компрометированной системы, копировать ее файлы на другие
машины и там просматривать в любое время. Это похоже на просмотр
фильма, сохраненного на жестком диске. Можно нажать Play, можно -
Pause или начать с начала, чтобы искать нужную информацию.
Идентификация VMware системы
В большинстве случаев система VMware не будет производить никакого
подозрения, если настроить систему очень близко к реальной. Однако
остается еще множество способов идентификации операционной системы как
виртуальной. Не важно VMware или VirtaulPC и т.п. VMware tools VMware
tools - набор утилит, упрощающих взаимодействие с гостевой системой.
Может быть элементарно вычислено, напрмер в случае установленной
Windows-honeypot, просмотром установленных программ "Applications
Add/Remove", каталога Program Files и т.д. Для UNIX есть заплаты
Xfree86, чтобы улучшить выполнение, также как законченный Xfree86
сервер, оптимизированный для гостевых операцинных систем VMware, обе
из которых могут быть идентифицированы нападающими. Гораздо более
очевидные следы также оставлены /etc/rc.d/init.d/dualconf, "Copyright
(C) 1998-99, VMware Inc" и /etc/vmware-tools/ директория. Желательно
избежать устанавливать VMware tools на VMware honeypots если есть
возможность.
AMD 1 ГГц с 32 мегабайтами ОЗУ?
Одна проблема с VMware - неспособность скрыть тип центрального
процессора; проницательный нападающий, вероятно, задастся вопросом,
почему сервер с 32 мегабайтами ОЗУ имеет ЦП 1 ГГц AMD. К сожалению это
то, что случится, и скрыть этот факт от нападающего трудно. Нападающий
может просто посмотреть, например, под Linux
cat /proc/cpuinfo
Удаление /proc поддерживаеся в Linux, однако существуют другие способы
узнать скорость центрального процессора.
BIOS компьютера
Один способ идентифицировать VMware системы - их BIOS, есть множество
свободных утилит как для UNIX-подобных, так и для Windows, которые
могут узнать параметры BIOS и даже извлекать копию BIOS VMware
системы. Радует то, что в случае использования в качестве гостевой
системы Windows NT/2000/XP прямой доступ к аппаратным средствам
блокирован. Однако Вы можете сделать запрос BIOS в гостевой
операционной системе, которая Вам будут давать следующую информацию:
BIOS ID: unknown
BIOS Date: 10/16/01
BIOS Signon: unknown
BIOS Type: PhoenixBIOS 4.0 Release 6.0 licensed to Intel
Super I/O: unknown
Chipset: Intel 440BX/ZX rev 1
Также есть множество утилит, чтобы делать копию BIOS, Мастер BIOS
доступен бесплатно и может легко делать его копию, полагая, что BIOS
VMware является относительно уникальным, становится весьма простым
проверить сигнатуру файла BIOS, чтобы видеть, является ли это VMware
BIOS. К сожалению нет почти никакого способа скрыть эту информацию от
нападающего. Это можно назвать Ахиллесовой пятой для системы VMware
honeypot. Обе эти утилиты доступны:
http://www.bioscentral.com/misc/downloads.htm Есть утилита для Linux
и BSD: http://www.cgsecurity.org/. Программное определение виртуальных
машин. Пример приведен для Windows VMware honeypot. Как для VMware,
так и для VirtualPC как самых распространенных систем виртуальных
машин.
program wvvare;
{$APPTYPE CONSOLE}
uses
SysUtils;
function IsVMwarePresent(): LongBool; stdcall;
begin
Result := False;
{$IFDEF CPU386}
try
asm
mov eax, 564D5868h
mov ebx, 00000000h
mov ebx, 00000000h
mov ecx, 0000000Ah
mov edx, 00005658h
in eax, dx
cmp ebx, 564D5868h
jne @@exit
mov Result, True
@@exit:
end;
except
Result := False;
end;
{$ENDIF}
end;
function running_inside_vpc: boolean; assembler;
asm
push ebp
mov ecx, offset @@exception_handler
mov ebp, esp
push ebx
push ecx
push dword ptr fs:[0]
mov dword ptr fs:[0], esp
mov ebx, 0
mov eax, 1
db 00Fh, 03Fh, 007h, 00Bh
mov eax, dword ptr ss:[esp]
mov dword ptr fs:[0], eax
add esp, 8
test ebx, ebx
setz al
lea esp, dword ptr ss:[ebp-4]
mov ebx, dword ptr ss:[esp]
mov ebp, dword ptr ss:[esp+4]
add esp, 8
jmp @@ret
@@exception_handler:
mov ecx, [esp+0Ch]
mov dword ptr [ecx+0A4h], -1
add dword ptr [ecx+0B8h], 4
xor eax, eax
ret
@@ret:
end;
begin
if IsVMwarePresent()
then
writeln( 'Found VMware!');
begin
if running_inside_vpc
then
writeln( 'Found VirtualPC!');
end;
end.
Код очень прост и не требует комментариев.
Потенциальные юридические ловушки
Поскольку хост (реальная операционная система) имеет доступ к
гостевой, можно предположить, что возможно заражение гостевой
операционной системы посредством реальной. Поэтому защищенность
реальной системы особенно критична. Вероятно, адвокат защиты будет
спорить, что VMware honeypot был заражен ведущей операционной
системой, или возможно непосредственно изменен ведущей операционной
системой без следа, среди нескольких возможных проблем. Например,
дисковая дефрагментация перестроила файлы виртуального диска, изменяя
данные. Обращение к другим гостевым системам также должны
регулироваться, если Вы планируете использовать результаты VMware
honeypot как доказательство. Хоть маловероятно, что гостевые
операционные системы могут находиться в противоречии или изменять друг
друга, для адвоката существует потенциал, чтобы Ваши доказательства
подвергнуть сомнению. Так что лучше, если на компьютере будет только
одна система honeypot.
Один главный фактор, который также может использоваться защитой, это
наличие любого протокола обмена информацией гостевой системы с хостом,
например, SMB (Windows), NFS (UNIX), ftp, http и другие. Также
желательно включить как можно больше регистрации и ревизии на хосте,
насколько это возможно.
Резюме
VMware - неоценимый инструмент для исследователей, желающих,
развернуть honeypot для наблюдения, ставящий целью предупреждение
нападений. Но подобно наиболее сложным инструментальным средствам это
может создать много ненужной работы или даже привести к убыткам (как и
любой honeypot), если Вы - не осторожны. Например, в случае разрешения
исходящего трафика через Вашу машину можно будет производить
сканирование и ответственность может лечь на Вас.
По поводу обнаружения злоумышленником vmware, можно еще вот что добавить. Не надо придумывать сложные способы просто загляните в /var/log/dmesg, поищите символы vmware. И все станет ясно как день.