Malware Reverse Engineering
Download
Report
Transcript Malware Reverse Engineering
tBox : Система Предотвращения Атак
Нулевого Дня
при Рисковой Активности
Арнур Тохтабаев, CEO, T&T Security, 2014 г.
План
Технологии
AV индустрии
Проблемы пользователя
Наши решения
Проблемы
Продукт
tBox – Система предотвращения атак нулевого дня, Арнур Тохтабаев, T&T Security
Состояние AV индустрии
140 миллионов вирусов на сегодняшний день
tBox – Система предотвращения атак нулевого дня, Арнур Тохтабаев, T&T Security
Состояние AV индустрии
125,000 Вирусов в день (0-day) (15 августа, 2013)
90
80
70
60
50
40
30
20
10
0
До 80% обнаружения на уровне сигнатур, поведения и
эвристики (60% в среднем)
tBox – Система предотвращения атак нулевого дня, Арнур Тохтабаев, T&T Security
Векторы атак
Как к нам попадают зловредные коды?
Зловредные/взломанные сайты
зловредные pdf, doc
tBox – Система предотвращения атак нулевого дня, Арнур Тохтабаев, T&T Security
Флэшки, phones
Атаки на пользователя
Большинство атак происходит при прямом
участии пользователя.
“Соучастие” пользователя значительно упрощает
атаку
Используется психологический фактор:
Spear Phishing (направленный phishing)
Загрузка через браузер (drive by download)
Зловредные сайты
Взломанные легитимные сайты
Доверие социальным сетям
Facebook и Twitter черви
Доверие поисковым сервисам
Отравленный SEO (google image search)
Загрузка по воле пользователя
Fake A/V, управление страхом
Проблема пользователя
Главная уязвимость систем защиты - пользователь!
Человеческий фактор:
Непонимание угрозы
Пренебрежение защитой
Конфликт с вердиктом
системы защиты
Жертва мошенничества
tBox – Система предотвращения атак нулевого дня, Арнур Тохтабаев, T&T Security
Проблема
Ответственность ложиться на пользователя
Доверять? (Конфликт с вердиктом системы защиты)
Проблема пользователя
Доверять? (Непонимание угрозы)
tBox – Система предотвращения атак нулевого дня, Арнур Тохтабаев, T&T Security
Решения проблемы пользователя
Обучение правилам безопасности?
Постоянные
расходы (текучка кадров)
Устаревание знаний (новые угрозы)
Ошибочные решения (человеческий
фактор)
Блокирование уязвимых ресурсов?
продуктивность (Internet, USB)
Уязвимость нулевого дня
Страдает
tBox – Система предотвращения атак нулевого дня, Арнур Тохтабаев, T&T Security
Наша методология
Цель: свобода пользователя и изоляция атаки
Трансформировать ВСЕ уязвимые приложения (browser,
PDF reader, USB explorer) в детекторы и анализаторы
зловредной активности.
Снять ответственность пользователя за принятие
решений по безопасности.
Ошибки пользователя больше не влияют на
безопасность.
Опасные ресурсы доступны для пользователя без
последствий.
tBox – Система предотвращения атак нулевого дня, Арнур Тохтабаев, T&T Security
tBox – Изоляция и Самоконтроль
Основной принцип
Deploy (Развернуть)
Detect (Обнаружить)
Destroy (Уничтожить)
Каждая сессия безопасна
и в безопасности
12
Изоляция и Самоконтроль
Изоляция
Все операции пользователя с уязвимыми приложениями происходят
только в текущем, изолированном, одноразовом контейнере.
По окончании работы пользователя с приложением - контейнер
уничтожается.
Одной изоляции не достаточно для решения проблемы уязвимости
поскольку зловред может нанести вред и во время одной сессии
(например шпионская программа).
Самоконтроль
Непрерывный анализ поведения всех запущенных программ внутри
каждого контейнера.
Используется уникальная технология глубокого анализа
функциональности программ (может обнаружить сложную или скрытую
зловредную активность)
Каждый контейнер имеет свою эксклюзивную систему обнаружения
вторжения оптимизированную под приложение обслуживаемым
данным контейнером.
tBox – Система предотвращения атак нулевого дня, Арнур Тохтабаев, T&T Security
Demo
Spyware
tBox – Система предотвращения атак нулевого дня, Арнур Тохтабаев, T&T Security
Практические задачи для продукта
Блокирование (изолирование)
всех трех главных каналов
проникновения зловредов
(векторы атаки)
Интернет
Скрипт
USB
Защита от самого большого
класса атак (нулевого дня)
Spear Phishing
(направленный phishing)
Загрузка через браузер (drive
by download)
Доверие социальным сетям
Доверие поисковым
сервисам
Загрузка по воле
пользователя
Зловредные не исполняемых
файлов (PDF, MS office)
Предотвращение утечки данных
tBox – Система предотвращения атак нулевого дня, Арнур Тохтабаев, T&T Security
Ценность для пользователя
Для конечного пользователя продукт обеспечит
безопасность в тех ситуациях (режимах), когда типичные
антивирусы не могут гарантировать безопасную работу
установка неизвестного драйвера,
атака 0-дня через зловредный вебсайт (уязвимость 0-дня).
Система альтернативной (второго уровня) защиты,
дополняющая типичные антивирусные программы.
Направлена на предотвращение утечек данных при
любых сценариях активности/ошибок пользователя
tBox – Система предотвращения атак нулевого дня, Арнур Тохтабаев, T&T Security
Ценность для пользователя
Защита от атак нулевого дня на уровне клиента (уязвимости 0дня)
Почему так это важно?
Актуальность уязвимости 0-дня? (время выпуска патча)
Конкуренты
Изоляция (features)
Low
Изоляция
уязвимого
ресурса
(приложения)
High
Транспорентность
Системы защиты
Самоконтроль
на предмет
зловредной
активности внутри
каждого
контейнера
tBox
Comodo*
Avast*
VmWare
VirtualBox
* AV производят изоляцию в виде песочницы для подозрительных
программ (внутри песочницы нет детектора)
Оптимизация
Детектора под каждое
приложение
Глубокий поведенческий анализ
tBox – Система предотвращения атак нулевого дня, Арнур Тохтабаев, T&T Security
Мотивация
Сигнатуры и Функциональность
2010 - 4 500 000 +
Количество бинарных сигнатур
растет экспоненциально
(более 9 миллионов в 2011)
Количество зловредных функциональностей
не увеличивается
Проблема пользователя 1
Поведенческий анализ: Неуверенность в вердикте
Тревога! Обнаружена подозрительная программа (может быть вирус, а может и нет)
Нет
достоверности детекта (ложное срабатывание)
Как определить это вирус или нормальная программа?
Низкая/нулевая
Док-во того,
информативность пользователя
что это именно вирус?
В чем именно заключается зловредность?
Проблема пользователя 2
Поведенческий анализ: необнаруженные вирусы
Необнаруженные вирусы (а также pdf, web codes)
Причины:
не запустился (нет пока условий для запуска).
Вирус не отработал (ждет активности пользователя,
например spyware)
Поведение вируса близко к нормальному (скрытая
зловредность)
Сработала только часть вирусной активности
(например только загрузчик)
Вирус
tBox – Система предотвращения атак нулевого дня, Арнур Тохтабаев, T&T Security
Наши решения для пользователя
Проблемы
пользователя
Неуверенность в
вердикте
Наши решения
Анализ целей поведения
(полная картина)
Необнаруженные
вирусы
tBox – Система предотвращения атак нулевого дня, Арнур Тохтабаев, T&T Security
Предлагаемые решения (технологии)
Проблема: Неуверенность в вердикте (нет достоверности)
Решение : Анализ функциональности (обнаружение цели)
Цель ПО (Вердикт)
Функциональность
Потенциал данной технологии
Защищенный код
(бинарный уровень)
Системная
активность
Поведение (API)
Потенциал нынешних антивирусов
tBox – Система предотвращения атак нулевого дня, Арнур Тохтабаев, T&T Security
Анализ целей программы
Пример
logger.exe
Обычный AV: Подозрительная
программа – logger.exe
Перехват клавиатуры.
Разрешить? Да/Нет
*.txt
hotkey, cursor monitoring,
launch manager
(ICQ, Skype, Mail Agent
PuntoSwitcher)
tBox – Система предотвращения атак нулевого дня, Арнур Тохтабаев, T&T Security
Анализ целей программы
Пример
downloader.exe
IDS: Обнаружен Spyware – logger.exe
• Утечка данных в файл
• Отправка файла в сеть (IP …)
• Logger был скрытно загружен с …
Запретить отправку данных? Да/Нет
logger.exe
*.txt
Обычный AV: Подозрительная
программа – logger.exe
Перехват клавиатуры.
Разрешить? Да/Нет
tBox – Система предотвращения атак нулевого дня, Арнур Тохтабаев, T&T Security
OS Architecture (system view)
User mode
MSExcel
Virus
h=open(“reg.exe”)
Open/read
h=CreateFile(“reg.exe”)
API1
API2
Open/write
API3
Cmd /c dir
API5
API6
API7
Library
Functions
(.Net, c++)
API calls
h=NtCreateFile(“reg.exe”)
System
Calls
System Service Executive
h=
Kernel mode
Handle 1
Handle 2
Process
Objects
Memory
Sections
File Objects
Handle 1
Handle 5
Handle 1
Objects
Functionality Recognition Challenge
In natural language:
User mode
Virus
Functionality
level
Open/read
API calls
API1
API2
Bernardo:
I have seen nothing
Hamlet:
To be or not to be
MSExcel
Open/write
API3
Cmd /c dir
API5
API6
API7
To be or not to be
I have seen nothing
seen To or to nothing
not I be have be
System Calls
System Service Executive
Operations
Memory
Sections
File Objects
Handle 1
Kernel mode
Handle 2
Handle 1
Handle 5
Process
Objects
Handle 1
setonToingorothen
nhaIbeotvebe
Original and Generalized AD for File Upload
System call domain (kernel level)
color H = handle
color S = string
color P = pointer
color I = integer
var h1, h2, h3 : H
var s : S
var p : P
var c : I
const Ds = “\Device\Afd\Endpoint”
NtCreateSection
(h1,h2)
h1=FileHandle (In)
h2=SectionHanlde (Out)
NtCreateSection
(h1,h2)
NtCreateProcess
(h1,h2)
Open file and create
section
h1=ProcessHandle (In)
h2=SectionHanlde (Out)
NtCreateProcess
NtResumeThread
CreateProcess
h1=FileHandle (Out)
s=FileName
Open file, create
section and process
(h2,h3,s)
If “.exe”<=s
then 1'(h1,s)
else empty
NtCreateFile
NtOpenFile
h1=FileHandle (Out)
s=FileName
(h1,s)
Socket
Executable open
(h2,s)
h2 h2:=ThreadHandle
(h1,s)
(h2,s)
File_Section
(h1,h2)
API domain (user level)
CreateProcess
NtDeviceIOControlFile
If Ds<=s
then 1'h1,
else empty
(h1,p,c)
h2=StdIn
h3=StdOut
s=ImageName
h1=FileHandle
p=pBuffer
c=IOControlCode
(h2,h3,s)
h1
h1=Socket handle (out)
Socket
h1
Accept
NtResumeThread
File_Section_Prcess
(h1,s)
h2
Start executable
(h1,s)
(h1,h2)
NtCreateThread
(h1,h2)
Executable started
h1=ProcessHandle (In)
h2=ThreadHandle (Out)
NtCreateThread
Socket (driver)
open
h1
Connection
establishment
(h2,h3)
h2:=h1
h3:=h1
Connection
established
Accept
(h2,h3)
h2:=h1
h3:=h1
Connection
accepted
Bind accepted socket
to the process
(h1,h2,h3)
If “cmd.exe”<=s then 1'c
else empty
If “cmd.exe”<=s then 1'c
else empty
h1=ProcessHandle (In)
h2=Buffer_offset+24
h3=Buffer_offset+28
NtWriteVirtualMemory
Connect
h1
h4
h1=h2=h3
If “cmd.exe”<=s then 1'c
else empty
ReverseShell
(h1,h2,h3)
NtWriteVirtualMemory
h4
Accepting connection
(h2,h3)
(h2,h3)
h1
If c==0x12037
then 1'(h1,p),
else empty
If c==0x12020
then 1'(h1,p),
else empty
(h1,s)
Bind connected
socket to the process
Connect
NtDeviceIOControlFile
BindShell
ReverseShell
h1=h2=h3=h4
If “cmd.exe”<=s then 1'c
else empty
BindShell
Call11 (134,...)
56 Call5 (23,...)
How CPN works
90=Call22 (' cmd.exe ',...)
1
Call11 (h11
56,...)
Call8 (23,12,...)
Call8 (23,90,...)
h11in 56
h81 23, h82 90
h 134
h81 23, h82 12
in
11
Call #11
Call #8
h11in
h81 , h82
h5in , h5out
h 2 =Call5 (h1 ,...)
Call #5
h 3 =Call22 (" cmd .exe ",...)
h5in 23, h5out 56
Call8 (h1 , h 3 ,...)
1
in
h22
, s22
in
&( s22
'*.exe ')
hf 1 : h5in
Call11 (h 2 )
Call #22
out
(h81 h f 1 ) & (h82 h22
)
h11in h5out
Functionality:
out
in
h22
90, s22
' cmd.exe '
hf 1
Chain 5,11
hf 1 23
in
s f 2 : s22
Functionality
s f 2 ' cmd .exe '
Анализ целей программы
Методология
Полная картина активности
Глубокий анализ поведения
Отслеживание истории поведения
“Дело” на каждую программу (профайл активности)
Предыстория
Пост-история
Корреляция поведения разных программ
Анализ поведения программ взаимодействующих с подозрительной
Информативность отчета при обнаружении
Наша система выдаст полную картину поведения, укажет где
именно зловредность.
Обнаружение не как подозрительного, а как зловредного с
доказательный базой – отчет
“Минимизация ложных тревог” “Достоверность детекта”
“Уверенность пользователя в вердикте”
tBox – Система предотвращения атак нулевого дня, Арнур Тохтабаев, T&T Security
Principle of System Operation
AD
Specification
Generalizer
Alarm
Expert
Generic AD
CPN Constructor
Low level
CPN
CP-Net
Object Operation
Recognizer
System calls
High level
CPN
CP-Net
Functionality
Recognizer
Subsystem level
object manipulations
Information Flow
Tracer
Конкуренты
Поведенческий анализ (features)
Low
Пример
(Spyware)
US
ThreatFire
Symantec
Kaspersky
ESET
Others
High
Цель
поведения
Идентификация
подозрительного
события (API)
Анализ
“зловредного”
действия (одного)
Отслеживание
пост/пред истории
поведения
Корреляция поведения
разных
программ
Установить
перехват
клавиатуры
После перехвата
записать данные
в файл
Перехват, запись
данных в файл и
отправка фала в
интернет (утечка)
Программа A: Перехват и
запись в файл
Программа B: Оправить
файл в интернет
References
[1] A. Tokhtabayev, V. Skormin and A Dolgikh, “Expressive, Efficient and
Obfuscation Resilient Behavior Based IDS” in Proc. 15th European Symposium
on Research in Computer Security (ESORICS 2010), September, 2010 Athens,
Greece. *Top computer security conference in Europe
[2] C. Yavvari, A. Tokhtabayev, H. Rangwala, and A. Stavrou, “Malware
Characterization using Behavioral Components” in Proc. 6th International
Conference on Mathematical Methods, Models, and Architectures for Computer
Network Security, St. Petersburg, Russia, October 17-20, 2012.
[3] D. Fleck, A. Tokhtabayev, T. Nikodym, A. Alarif and A. Stavrou, “PyTrigger: A
System to Trigger & Extract User-Activated Malware Behavior” in Proc. 8th
International Conference on Availability, Reliability and Security (ARES 2013),
September, 2013, Regensburg, Germany