Сергей Харюк aka ximera
Introduction into malware analysis
О себе
 Адми н и с тратор фо рума reverse4 yo u . org
 Ви рус н ый ан али т ик в Zillya !
 Кап и т ан C T F - к о манды R 0 - C rew
Что такое вирусный анализ
Этапы анализа
 Ст ат и чески й ан али з
 Баз овый
 Углублен н ый
 Д и н ами чески й ан али з
 Соз дан и е си гн ат ур
Базовый статический анализ
 О пределен ие т и па файла
 О пределен ие компи лят ора /линкера
 О пределен ие з ащи т ы н а файле
 Анали з служ ебной и нформаци и ( заголовки , секци и )
 Ан али з т абли цы и мпорт а /экспорт а
 Пои ск и ан али з ст рок
Инструменты базового анализа
 Detect it Easy
 PE Studio
 PE Tools
 CF F Explor er
Углубленный статический анализ
 Ан али з и сполн яемого кода в
ди з ассемблере /декомпилят оре
 Пои ск з ащи т ных механ и з мов
( анти вм /антиэмуль /шифрование кода)
 Пои ск вредон осн ого кода
 О пределен ие алгори т ма работ ы
Инструменты углубленного
статического анализа
 IDA
 radare2
 .Net Reflector
 IDR
Расшифровка блока данных
.text:00401526 mov edi, dword_40504C ; помещаем в EDI размер расшифровываемого блока
.text:0040152C mov esi, off_405050 ; помещаем в ESI адрес начала блока расшифроки
.text:00401532 xor ecx, ecx ; обнуляем счетки
.text:00401534 test edi, edi ; если EDI == 0
.text:00401536 jle short loc_40154E ; выходим из цикла
.text:00401538 loc_401538: ; CODE XREF: .text:0040154Cj
.text:00401538 mov eax, ecx ; помещаем в eax значение счетчика
.text:0040153A push 14h ; помещаем в стек значение 20
.text:0040153C cdq ; заполняем EDX значением старшего байта регистра EAX
.text:0040153D pop ebx ; извлекаем из стека значение 20 в EBX
.text:0040153E idiv ebx ; помещаем в EBX результат EBX%EAX
.text:00401540 mov al, [edx+405038h] ; извлекаем в AL ключ расшифровки
.text:00401546 xor [ecx+esi], al ; расшифровываем байт
.text:00401549 inc ecx ; увеличиваем счетчик
.text:0040154A cmp ecx, edi ; если счетчик меньше размера блока
.text:0040154C jl short loc_401538 ; продолжаем цикл
Тот же алгоритм на Python
def xor_decrypt_key_array(effective_address, keys, size):
counter = 0
key_counter = 0
while counter < size :
key_counter = counter % 20
patchbyte( effective_address + counter,
byte( effective_address + counter ) ^ keys [ key_counter ] )
counter += 1
.text:00401511 call sub_4018A6
.text:00401516 nop
.text:00401517 nop
.text:00401518 nop
.text:00401519 nop
.text:0040151A call sub_4018CC
.text:00401511 call sub_4018A6
.text:00401516 adc edx, [ebx]
.text:00401518 adc edx, [ebx]
.text:0040151A call sub_4018CC
Примеры зашифрованных участков кода
З аши фрованный код О ри ги нальны й код
Динамический анализ
 Исследован и е в песочн и це
 Ан али з файловой си ст емы
 Ан али з реест ра
 Анали з сетевого трафи ка
 Исследован и е под от ладчи ком
 Пошаговое и сполн ен ие
 Из учен и е прои сходящего
Рабочий день вирусного аналитика
Инструменты динамического анализа
 Песочн и цы( Sandboxes )
 cuckoo( malwr.com )
 Anubis
 Har dwar e sandboxes
 Внутренни е разработки
 О т ладчики
 O llyDbg
 X64dbg
 WinDbg
Создание сигнатур
 Пои ск и опи сан и е з акон омерност ей
 Проверка выявленных закономерностей
 Пои ск дополн ит ельных факт оров
Инструменты для поиска сигнатур
 010 Editor
 WinHex
 Вн ут рен н и е раз работ ки
Привет для Бацьки
Delphi - the best. F uck off all the r est. Neshta 1.0 Made in
Belar us .
Пры вiт ан н е усiм цiкавым беларус_кiм дз яучат ам .
Аляксандр Рыгоравiч , вам таксама :)
Восен ь - кепская пара... Алiварыя - лепшае пiва ! Best
r egar ds 2 Tommy Salo. [Nov - 2005] your s [ Dziadulja Apanas ]
Литература для изучения
 RE for beginner s - http://beginner s.re /
 Pr actical Malwar e Analysis - http://goo.gl/WwR XmS
 Malwar e Analyst's Cookbook - http:// goo.gl/tq53nr
 The IDA Pr o Book - http:// goo.gl/MP45mH
 Pr actical Rever se Engineer ing - http://goo.gl/Bi7r lS
 Secr ets of Rever se Engineer ing - http:// goo.gl/Z Kr m7a
 G r ay Hat Python - https:// goo.gl/ec5zvn
 Rootkits and Bootkits - https:// goo.gl/SUcLmm
Ресурсы для изучения
 R 0- Cr ew - >Би бли отек a - https:// goo.gl/F W2VCd
 http://www.opensecur itytr aining.info /
 wasm.r u
 exelab.r u
 Awesome Malwar e Analysis - https:// goo.gl/iLjHtT
Вопросы
Контакты
Social:
 twitter.com /ximer us
 fb.com /ximer us
 linkedin.com /ximer us
Jabber /e - mail:
 ximer a@r ever se4you.or g
Site:
 r ever se4you.or g
Спасибо за внимание

Введение в реверс-инжиниринг вредоносного ПО - Сергей Харюк

  • 1.
    Сергей Харюк akaximera Introduction into malware analysis
  • 2.
    О себе  Админ и с тратор фо рума reverse4 yo u . org  Ви рус н ый ан али т ик в Zillya !  Кап и т ан C T F - к о манды R 0 - C rew
  • 3.
  • 4.
    Этапы анализа  Стат и чески й ан али з  Баз овый  Углублен н ый  Д и н ами чески й ан али з  Соз дан и е си гн ат ур
  • 5.
    Базовый статический анализ О пределен ие т и па файла  О пределен ие компи лят ора /линкера  О пределен ие з ащи т ы н а файле  Анали з служ ебной и нформаци и ( заголовки , секци и )  Ан али з т абли цы и мпорт а /экспорт а  Пои ск и ан али з ст рок
  • 6.
    Инструменты базового анализа Detect it Easy  PE Studio  PE Tools  CF F Explor er
  • 7.
    Углубленный статический анализ Ан али з и сполн яемого кода в ди з ассемблере /декомпилят оре  Пои ск з ащи т ных механ и з мов ( анти вм /антиэмуль /шифрование кода)  Пои ск вредон осн ого кода  О пределен ие алгори т ма работ ы
  • 8.
  • 9.
    Расшифровка блока данных .text:00401526mov edi, dword_40504C ; помещаем в EDI размер расшифровываемого блока .text:0040152C mov esi, off_405050 ; помещаем в ESI адрес начала блока расшифроки .text:00401532 xor ecx, ecx ; обнуляем счетки .text:00401534 test edi, edi ; если EDI == 0 .text:00401536 jle short loc_40154E ; выходим из цикла .text:00401538 loc_401538: ; CODE XREF: .text:0040154Cj .text:00401538 mov eax, ecx ; помещаем в eax значение счетчика .text:0040153A push 14h ; помещаем в стек значение 20 .text:0040153C cdq ; заполняем EDX значением старшего байта регистра EAX .text:0040153D pop ebx ; извлекаем из стека значение 20 в EBX .text:0040153E idiv ebx ; помещаем в EBX результат EBX%EAX .text:00401540 mov al, [edx+405038h] ; извлекаем в AL ключ расшифровки .text:00401546 xor [ecx+esi], al ; расшифровываем байт .text:00401549 inc ecx ; увеличиваем счетчик .text:0040154A cmp ecx, edi ; если счетчик меньше размера блока .text:0040154C jl short loc_401538 ; продолжаем цикл
  • 10.
    Тот же алгоритмна Python def xor_decrypt_key_array(effective_address, keys, size): counter = 0 key_counter = 0 while counter < size : key_counter = counter % 20 patchbyte( effective_address + counter, byte( effective_address + counter ) ^ keys [ key_counter ] ) counter += 1
  • 11.
    .text:00401511 call sub_4018A6 .text:00401516nop .text:00401517 nop .text:00401518 nop .text:00401519 nop .text:0040151A call sub_4018CC .text:00401511 call sub_4018A6 .text:00401516 adc edx, [ebx] .text:00401518 adc edx, [ebx] .text:0040151A call sub_4018CC Примеры зашифрованных участков кода З аши фрованный код О ри ги нальны й код
  • 12.
    Динамический анализ  Исследовани е в песочн и це  Ан али з файловой си ст емы  Ан али з реест ра  Анали з сетевого трафи ка  Исследован и е под от ладчи ком  Пошаговое и сполн ен ие  Из учен и е прои сходящего
  • 13.
  • 14.
    Инструменты динамического анализа Песочн и цы( Sandboxes )  cuckoo( malwr.com )  Anubis  Har dwar e sandboxes  Внутренни е разработки  О т ладчики  O llyDbg  X64dbg  WinDbg
  • 15.
    Создание сигнатур  Поиск и опи сан и е з акон омерност ей  Проверка выявленных закономерностей  Пои ск дополн ит ельных факт оров
  • 16.
    Инструменты для поискасигнатур  010 Editor  WinHex  Вн ут рен н и е раз работ ки
  • 17.
    Привет для Бацьки Delphi- the best. F uck off all the r est. Neshta 1.0 Made in Belar us . Пры вiт ан н е усiм цiкавым беларус_кiм дз яучат ам . Аляксандр Рыгоравiч , вам таксама :) Восен ь - кепская пара... Алiварыя - лепшае пiва ! Best r egar ds 2 Tommy Salo. [Nov - 2005] your s [ Dziadulja Apanas ]
  • 18.
    Литература для изучения RE for beginner s - http://beginner s.re /  Pr actical Malwar e Analysis - http://goo.gl/WwR XmS  Malwar e Analyst's Cookbook - http:// goo.gl/tq53nr  The IDA Pr o Book - http:// goo.gl/MP45mH  Pr actical Rever se Engineer ing - http://goo.gl/Bi7r lS  Secr ets of Rever se Engineer ing - http:// goo.gl/Z Kr m7a  G r ay Hat Python - https:// goo.gl/ec5zvn  Rootkits and Bootkits - https:// goo.gl/SUcLmm
  • 19.
    Ресурсы для изучения R 0- Cr ew - >Би бли отек a - https:// goo.gl/F W2VCd  http://www.opensecur itytr aining.info /  wasm.r u  exelab.r u  Awesome Malwar e Analysis - https:// goo.gl/iLjHtT
  • 20.
  • 21.
    Контакты Social:  twitter.com /ximerus  fb.com /ximer us  linkedin.com /ximer us Jabber /e - mail:  ximer a@r ever se4you.or g Site:  r ever se4you.or g
  • 22.