13
SafeMachine projekt nechť tě síla provází Martin Hron, Jakub Jermář AVAST Software, research

SafeMachine projekt, nechť tě síla provází

Embed Size (px)

Citation preview

Page 1: SafeMachine projekt, nechť tě síla provází

SafeMachine projektnechť tě síla provázíMartin Hron, Jakub Jermář

AVAST Software, research

Page 2: SafeMachine projekt, nechť tě síla provází

Temná strana Sílymetody jak se skrýt

Obfuskovaný kód

Anti-debugging triky

Využívání nedokumentovaných vlastností CPU a OS

„Timing tricks“

Nejsilnější zbraní je šifrování a polymorfismus

Page 3: SafeMachine projekt, nechť tě síla provází

Světlá strana Sílymetody detekce

statická analýza

známé signatury

známé packery, jejich signatury a unpacking

behaviorální analýza – dynamická

spuštění v sandboxu a monitorování high level událostí

sledování na instrukční úrovni

Page 4: SafeMachine projekt, nechť tě síla provází

DeepScreenřád rytířů Jedi

avast! SandBox(virtualizace)

bezpečnost na úrovni API a OS

SafeMachine(binární translace)

vhled na instrukční úrovni

+

Page 5: SafeMachine projekt, nechť tě síla provází

NtWriteFile()

NtSetInformationKey()

NtCreateProcess()

?No jasně,

tohle znám!

Příběh Síly

Cože?

Page 6: SafeMachine projekt, nechť tě síla provází
Page 7: SafeMachine projekt, nechť tě síla provází

Binarní translace (instrumentace)rozklad kódu za běhu na „basic blocks“

vstupní bod (EP)

JMP ADDR

….….…

dis

ase

mb

ler

pře

klad

Basic Block

skok na dispečer

basic block na adrese EP

basic block na adrese ADDR

strojový kód basic blocks cache

dispečer

cache hit

cach

e m

iss

po

krač

uj n

aA

DD

R

začni na adrese EP

spustit

ADDR

JMP EP

….….…

po

krač

uj n

a EP

metadata

REÁLNÉ CPU

Page 8: SafeMachine projekt, nechť tě síla provází

Emulacevirtuální provádění instrukce po instrukci

dis

asem

ble

r

virtuální CPU

virtuální stav CPUregistry, PC, eflags....

“virtuální mikrokód”c++/c implemenatce každé instrukce

vstupní bod (EP)

JMP ADDR

….….…

strojový kód

ADDR

JMP EP

….….…

začn

i na

adre

se E

P

REÁLNÉ CPU

Instrukce na PC

Page 9: SafeMachine projekt, nechť tě síla provází

Symbióza SafeMachine s guest procesemrozklad kódu za běhu na „basic blocks“

guest proces

RIN

G0

–K

ERN

EL

injektor

vytvoření suspendovaného

guest procesu

Ntdll.dll

LdrInitializeThunk

KiUserException…

KiUserCallBack

NtContinue

NtCallbackReturn

generic syscall

guest kód

thread and process initialization

zahookovani LdrInitializeThunk

HookInicializace threadu

spuštění guest procesu

čekání na ukončení guest

procesu

vyhledání nebo vytvoření basic blocku

na daném PC

Machine (DBT translator)

BINÁRNÍ TRANSLACE

Dispatch

Callback dispatch

Exception dispatch

Hook

Hookspusť basic block

syscall ?ANO

NE

SYSTÉM VRSTEV

BA

SIC

BLO

CK

S C

AC

HE

MEMORYMANAGER

DATA FLOW

CONTROL FLOW

HOST

GUEST

Page 10: SafeMachine projekt, nechť tě síla provází

Využití a přínos pro technologii DeepScreen

- Avast! SandBox zajišťuje bezpečnost a monitorování “high level” událostí

- SafeMachine sleduje především:vznik nových paměťových stránek

modifikace obsahu pamětových stránek

vykonávání „nového“ kódu

- Statická analýza (hledání známých signatur) probíhá nad výstupem ze SafeMachine

Page 11: SafeMachine projekt, nechť tě síla provází

Demo

Page 12: SafeMachine projekt, nechť tě síla provází

Závěrem

Tato technologie je testována pravidelně na cca. 50000 virových vzorkův naší virové laboratoři.

Od verze avast! Antivirus 2014 je součástí všech edicí, tedy i edice free,

to je cca. 100 000 000 aktivních uživatelů.

Je součástí VPS, je tedy neustále vylepšována a aktualizována.

Současný podíl SafeMachine na detekčních schopnostech DeepScreen je asi 30%.

Page 13: SafeMachine projekt, nechť tě síla provází

Díky za pozornost

Otázky?

Jakub Jermář: [email protected]

Martin Hron: [email protected]

http://blog.avast.com