SlideShare a Scribd company logo
1 of 13
SafeMachine projekt
nechť tě síla provází
Martin Hron, Jakub Jermář
AVAST Software, research
Temná strana Síly
metody 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
Světlá strana Síly
metody 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
DeepScreen
řád rytířů Jedi
avast! SandBox
(virtualizace)
bezpečnost na úrovni API a OS
SafeMachine
(binární translace)
vhled na instrukční úrovni
+
NtWriteFile()
NtSetInformationKey()
NtCreateProcess()
?
No jasně,
tohle znám!
Příběh Síly
Cože?
Binarní translace (instrumentace)
rozklad kódu za běhu na „basic blocks“
vstupní bod (EP)
JMP ADDR
….
….
…
disasembler
překladač
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
cachemiss
pokračujnaADDR
začni na adrese EP
spustit
ADDR
JMP EP
….
….
…
pokračujnaEP
metadata
REÁLNÉ CPU
Emulace
virtuální provádění instrukce po instrukci
disasembler
virtuální CPU
virtuální stav CPU
registry, PC, eflags....
“virtuální mikrokód”
c++/c implemenatce každé instrukce
vstupní bod (EP)
JMP ADDR
….
….
…
strojový kód
ADDR
JMP EP
….
….
…
začninaadreseEP
REÁLNÉ CPU
Instrukce na PC
Symbióza SafeMachine s guest procesem
rozklad kódu za běhu na „basic blocks“
guest proces
RING0–KERNEL
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
Hook
spusť basic block
syscall ?
ANO
NE
SYSTÉM
VRSTEV
BASICBLOCKSCACHE
MEMORY
MANAGER
DATA FLOW
CONTROL FLOW
HOST
GUEST
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
Demo
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%.
Díky za pozornost
Otázky?
Jakub Jermář: jermar@avast.com
Martin Hron: hron@avast.com
http://blog.avast.com

More Related Content

More from Security Session

Softwarove protektory / KAREL LEJSKA, MILAN BARTOŠ [DEFENDIO]
Softwarove protektory / KAREL LEJSKA, MILAN BARTOŠ [DEFENDIO]Softwarove protektory / KAREL LEJSKA, MILAN BARTOŠ [DEFENDIO]
Softwarove protektory / KAREL LEJSKA, MILAN BARTOŠ [DEFENDIO]Security Session
 
Wintel Hell: průvodce devíti kruhy Dantova technologického pekla / MARTIN HRO...
Wintel Hell: průvodce devíti kruhy Dantova technologického pekla / MARTIN HRO...Wintel Hell: průvodce devíti kruhy Dantova technologického pekla / MARTIN HRO...
Wintel Hell: průvodce devíti kruhy Dantova technologického pekla / MARTIN HRO...Security Session
 
Robots against robots: How a Machine Learning IDS detected a novel Linux Botn...
Robots against robots: How a Machine Learning IDS detected a novel Linux Botn...Robots against robots: How a Machine Learning IDS detected a novel Linux Botn...
Robots against robots: How a Machine Learning IDS detected a novel Linux Botn...Security Session
 
#ochranadat pred sebou samotným / MATEJ ZACHAR [SAFETICA TECHNOLOGIES S.R.O.]
#ochranadat pred sebou samotným / MATEJ ZACHAR [SAFETICA TECHNOLOGIES S.R.O.]#ochranadat pred sebou samotným / MATEJ ZACHAR [SAFETICA TECHNOLOGIES S.R.O.]
#ochranadat pred sebou samotným / MATEJ ZACHAR [SAFETICA TECHNOLOGIES S.R.O.]Security Session
 
Co vše skrývá síťový provoz a jak detekovat kybernetické hrozby? / MARTIN ŠKO...
Co vše skrývá síťový provoz a jak detekovat kybernetické hrozby? / MARTIN ŠKO...Co vše skrývá síťový provoz a jak detekovat kybernetické hrozby? / MARTIN ŠKO...
Co vše skrývá síťový provoz a jak detekovat kybernetické hrozby? / MARTIN ŠKO...Security Session
 
Bezpečnější pošta díky protokolu DANE / ONDŘEJ CALETKA [CESNET]
Bezpečnější pošta díky protokolu DANE / ONDŘEJ CALETKA [CESNET]Bezpečnější pošta díky protokolu DANE / ONDŘEJ CALETKA [CESNET]
Bezpečnější pošta díky protokolu DANE / ONDŘEJ CALETKA [CESNET]Security Session
 
Exploitace – od minulosti po současnost - Jan Kopecký
Exploitace – od minulosti po současnost - Jan KopeckýExploitace – od minulosti po současnost - Jan Kopecký
Exploitace – od minulosti po současnost - Jan KopeckýSecurity Session
 
Kontrola uživatelských účtů ve Windows a jak ji obejít - Martin Dráb
Kontrola uživatelských účtů ve Windows a jak ji obejít - Martin DrábKontrola uživatelských účtů ve Windows a jak ji obejít - Martin Dráb
Kontrola uživatelských účtů ve Windows a jak ji obejít - Martin DrábSecurity Session
 
Research in Liveness Detection - Martin Drahanský
Research in Liveness Detection - Martin DrahanskýResearch in Liveness Detection - Martin Drahanský
Research in Liveness Detection - Martin DrahanskýSecurity Session
 
Dolování dat z řeči pro bezpečnostní aplikace - Jan Černocký
Dolování dat z řeči pro bezpečnostní aplikace - Jan ČernockýDolování dat z řeči pro bezpečnostní aplikace - Jan Černocký
Dolování dat z řeči pro bezpečnostní aplikace - Jan ČernockýSecurity Session
 
Co se skrývá v datovém provozu? - Pavel Minařík
Co se skrývá v datovém provozu? - Pavel MinaříkCo se skrývá v datovém provozu? - Pavel Minařík
Co se skrývá v datovém provozu? - Pavel MinaříkSecurity Session
 
Jak odesílat zprávy, když někdo vypne Internet - Pavel Táborský
Jak odesílat zprávy, když někdo vypne Internet - 	Pavel TáborskýJak odesílat zprávy, když někdo vypne Internet - 	Pavel Táborský
Jak odesílat zprávy, když někdo vypne Internet - Pavel TáborskýSecurity Session
 
Two Years with botnet Asprox - Michal Ambrož
Two Years with botnet Asprox - Michal AmbrožTwo Years with botnet Asprox - Michal Ambrož
Two Years with botnet Asprox - Michal AmbrožSecurity Session
 
Dejiny podvodov v bitcoinovom svete
Dejiny podvodov v bitcoinovom sveteDejiny podvodov v bitcoinovom svete
Dejiny podvodov v bitcoinovom sveteSecurity Session
 
Decentralized society and Bitcoin contracts
Decentralized society and Bitcoin contractsDecentralized society and Bitcoin contracts
Decentralized society and Bitcoin contractsSecurity Session
 
Practical steps to mitigate DDoS attacks
Practical steps to mitigate DDoS attacksPractical steps to mitigate DDoS attacks
Practical steps to mitigate DDoS attacksSecurity Session
 

More from Security Session (20)

Softwarove protektory / KAREL LEJSKA, MILAN BARTOŠ [DEFENDIO]
Softwarove protektory / KAREL LEJSKA, MILAN BARTOŠ [DEFENDIO]Softwarove protektory / KAREL LEJSKA, MILAN BARTOŠ [DEFENDIO]
Softwarove protektory / KAREL LEJSKA, MILAN BARTOŠ [DEFENDIO]
 
Wintel Hell: průvodce devíti kruhy Dantova technologického pekla / MARTIN HRO...
Wintel Hell: průvodce devíti kruhy Dantova technologického pekla / MARTIN HRO...Wintel Hell: průvodce devíti kruhy Dantova technologického pekla / MARTIN HRO...
Wintel Hell: průvodce devíti kruhy Dantova technologického pekla / MARTIN HRO...
 
Robots against robots: How a Machine Learning IDS detected a novel Linux Botn...
Robots against robots: How a Machine Learning IDS detected a novel Linux Botn...Robots against robots: How a Machine Learning IDS detected a novel Linux Botn...
Robots against robots: How a Machine Learning IDS detected a novel Linux Botn...
 
#ochranadat pred sebou samotným / MATEJ ZACHAR [SAFETICA TECHNOLOGIES S.R.O.]
#ochranadat pred sebou samotným / MATEJ ZACHAR [SAFETICA TECHNOLOGIES S.R.O.]#ochranadat pred sebou samotným / MATEJ ZACHAR [SAFETICA TECHNOLOGIES S.R.O.]
#ochranadat pred sebou samotným / MATEJ ZACHAR [SAFETICA TECHNOLOGIES S.R.O.]
 
Co vše skrývá síťový provoz a jak detekovat kybernetické hrozby? / MARTIN ŠKO...
Co vše skrývá síťový provoz a jak detekovat kybernetické hrozby? / MARTIN ŠKO...Co vše skrývá síťový provoz a jak detekovat kybernetické hrozby? / MARTIN ŠKO...
Co vše skrývá síťový provoz a jak detekovat kybernetické hrozby? / MARTIN ŠKO...
 
Bezpečnější pošta díky protokolu DANE / ONDŘEJ CALETKA [CESNET]
Bezpečnější pošta díky protokolu DANE / ONDŘEJ CALETKA [CESNET]Bezpečnější pošta díky protokolu DANE / ONDŘEJ CALETKA [CESNET]
Bezpečnější pošta díky protokolu DANE / ONDŘEJ CALETKA [CESNET]
 
Prezentace brno
Prezentace brnoPrezentace brno
Prezentace brno
 
OSINT and beyond
OSINT and beyondOSINT and beyond
OSINT and beyond
 
Exploitace – od minulosti po současnost - Jan Kopecký
Exploitace – od minulosti po současnost - Jan KopeckýExploitace – od minulosti po současnost - Jan Kopecký
Exploitace – od minulosti po současnost - Jan Kopecký
 
Kontrola uživatelských účtů ve Windows a jak ji obejít - Martin Dráb
Kontrola uživatelských účtů ve Windows a jak ji obejít - Martin DrábKontrola uživatelských účtů ve Windows a jak ji obejít - Martin Dráb
Kontrola uživatelských účtů ve Windows a jak ji obejít - Martin Dráb
 
Research in Liveness Detection - Martin Drahanský
Research in Liveness Detection - Martin DrahanskýResearch in Liveness Detection - Martin Drahanský
Research in Liveness Detection - Martin Drahanský
 
Dolování dat z řeči pro bezpečnostní aplikace - Jan Černocký
Dolování dat z řeči pro bezpečnostní aplikace - Jan ČernockýDolování dat z řeči pro bezpečnostní aplikace - Jan Černocký
Dolování dat z řeči pro bezpečnostní aplikace - Jan Černocký
 
Turris - Robert Šefr
Turris - Robert ŠefrTurris - Robert Šefr
Turris - Robert Šefr
 
Co se skrývá v datovém provozu? - Pavel Minařík
Co se skrývá v datovém provozu? - Pavel MinaříkCo se skrývá v datovém provozu? - Pavel Minařík
Co se skrývá v datovém provozu? - Pavel Minařík
 
Jak odesílat zprávy, když někdo vypne Internet - Pavel Táborský
Jak odesílat zprávy, když někdo vypne Internet - 	Pavel TáborskýJak odesílat zprávy, když někdo vypne Internet - 	Pavel Táborský
Jak odesílat zprávy, když někdo vypne Internet - Pavel Táborský
 
Two Years with botnet Asprox - Michal Ambrož
Two Years with botnet Asprox - Michal AmbrožTwo Years with botnet Asprox - Michal Ambrož
Two Years with botnet Asprox - Michal Ambrož
 
Nehacknutelny web
Nehacknutelny webNehacknutelny web
Nehacknutelny web
 
Dejiny podvodov v bitcoinovom svete
Dejiny podvodov v bitcoinovom sveteDejiny podvodov v bitcoinovom svete
Dejiny podvodov v bitcoinovom svete
 
Decentralized society and Bitcoin contracts
Decentralized society and Bitcoin contractsDecentralized society and Bitcoin contracts
Decentralized society and Bitcoin contracts
 
Practical steps to mitigate DDoS attacks
Practical steps to mitigate DDoS attacksPractical steps to mitigate DDoS attacks
Practical steps to mitigate DDoS attacks
 

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

  • 1. SafeMachine projekt nechť tě síla provází Martin Hron, Jakub Jermář AVAST Software, research
  • 2. Temná strana Síly metody 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
  • 3. Světlá strana Síly metody 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
  • 4. DeepScreen řád rytířů Jedi avast! SandBox (virtualizace) bezpečnost na úrovni API a OS SafeMachine (binární translace) vhled na instrukční úrovni +
  • 6.
  • 7. Binarní translace (instrumentace) rozklad kódu za běhu na „basic blocks“ vstupní bod (EP) JMP ADDR …. …. … disasembler překladač 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 cachemiss pokračujnaADDR začni na adrese EP spustit ADDR JMP EP …. …. … pokračujnaEP metadata REÁLNÉ CPU
  • 8. Emulace virtuální provádění instrukce po instrukci disasembler virtuální CPU virtuální stav CPU registry, PC, eflags.... “virtuální mikrokód” c++/c implemenatce každé instrukce vstupní bod (EP) JMP ADDR …. …. … strojový kód ADDR JMP EP …. …. … začninaadreseEP REÁLNÉ CPU Instrukce na PC
  • 9. Symbióza SafeMachine s guest procesem rozklad kódu za běhu na „basic blocks“ guest proces RING0–KERNEL 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 Hook spusť basic block syscall ? ANO NE SYSTÉM VRSTEV BASICBLOCKSCACHE MEMORY MANAGER DATA FLOW CONTROL FLOW HOST GUEST
  • 10. 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
  • 11. Demo
  • 12. 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%.
  • 13. Díky za pozornost Otázky? Jakub Jermář: jermar@avast.com Martin Hron: hron@avast.com http://blog.avast.com