SlideShare a Scribd company logo
1 of 29
Download to read offline
Softwarové protektory
Dvojsečná zbraň zabezpečení kódu
Karel Lejska, Milan Bartoš
Co můžeme ochránit?
●
Technický prostředek chránící například:
●
omezení redistribuce
●
dodržení zkušební lhůty zdarma
●
omezení funkcionality aplikace po uplynutí
zkušební lhůty
●
ochrana kódu hry proti cheaterům
Jiné způsoby
●
Copyright
– Jedna z netechnických možností ochrany
– V praxi nevynutitelný – morálka
●
Software jako služba
– kód je na serveru
●
Free to play
– nejdřív hraj, potom plať (nákupy v aplikaci)
●
Reklama v aplikaci
– cílená na uživatele
Motivace
●
Kvůli pirátství unikají peníze
– hausnumero: $63 miliard v roce 2014
– 2 z 5 kopií jsou pirátské
●
Ochrana know-how (algoritmy, kód)
●
Ochrana důvěryhodnosti
●
Studium protektorů ukazuje rovněž techniky
používané i malwarem
●
Copy protection je prý nesmysl
Životnost protekce
●
Životní cyklus klientského SW je krátký
●
Např. mobilní hry 3-4 měsíce
●
Největší prodeje těsně po vydání nové verze
SW
●
Za úspěch se považuje, pokud protekce vydrží
několik měsíců
Dvojsečnost
●
Prodražení deploymentu a supportu
●
Zneužívání malwarem
●
Antiviry mají problém s protektory a packery
Software Taggant System
●
Umožňuje protektoru podepsat ochráněný
program
●
Standard IEEE z roku 2011
●
IEEE v systému funguje jako root of trust,
uznávající producenty protektorů
●
Antiviry díky podpisu rozeznají, že jde o
"program ze známého zdroje"
Taggant vs. Authenticode
●
Authenticode: ověření vydavatele softwaru a
neporušenost souboru
●
Navzájem se nevylučují
●
Taggant hash by měl být rychlejší
●
Taggant system je určený producentům
protektorů, samotní uživatelé protektorů to
nemusí řešit
Intel Tamper Protection
●
Toolkit
●
Má chránit "kritický kód a hodnotná data" před
reverzováním a manipulací
●
Windows a Android binárky (.DLL a .SO
soubory)
●
Obfuskátor umožňuje silnou obfuskaci:
techniky sebemodifikujícího a zašifrovaného
kódu
Protektory pro Windows
●
Tradiční: packer (kompresor) s přidanou
funkcionalitou
●
S použitím VM
●
S aktivními prvky
●
Bez aktivních prvků
Rozšířená funkcionalita
●
API: např. ověření, že protekce nebyla
odstraněna
●
Integrace licenčního manageru (DRM)
●
Kontejner obsahující soubory aplikace
●
HW dongle
●
Kontrola integrity
Metody
●
Obrana proti disassemblingu a dekompilaci:
– obfuskace, transformace do vlastního
bytekódu, šifrování, komprese kódu
●
Detekce debuggeru (dynamická analýza)
●
Detekce virtualizovaného OS a emulátoru
●
Šifrování datových sekcí a resources
●
Skrytí importů
●
Přesun kódu aplikace (do loaderu či jinam)
Tradiční protektory
●
Transformují originální soubor a obalují ho
●
Protektorem přidaný kód („loader”) postupně
dešifruje originální kód a spouští ho
●
ASProtect
●
DotFix NiceProtect
●
Enigma Protector
S použitím VM
●
Převede původní kód do vlastního bytekódu,
kterému rozumí jenom přidaný virtuální stroj
●
Začíná být běžnou součástí všech protektorů
●
Zpomalení kódu ve virtualizační vrstvě
●
VMProtect
●
Denuvo
VMProtect
Nativní kód Transformovaný bytekód
CPU
Tenký virtuální stroj -
interpreter
CPU
S aktivními prvky
●
S instalací ochráněné aplikace dojde k
nainstalování systémového driveru
●
StarForce: nechvalně se proslavil jako aktivní
ochrana pro hry: systém driverů kontrolujících
čtení a zápis na disk na nejnižší úrovni vedl k
poškození dat
Bez aktivních prvků
●
Pasivní ochrana:
●
Staví hradbu s různorodými obrannými
mechanismy, nepoužívá „zvědy v terénu”
Android Java aplikace
●
Dá se snadno získat přímo ze zařízení
●
Soubor <apk>/classes.dex
●
DEX dekompilery (JEB, JADX),
●
.dex → .class a pak Java dekompilery
●
Java (DEX) bytecode se dá jednoduše
dekompilovat do původní podoby – do
zdrojového kódu
●
Menšina aplikací také v C/C++ a C#
Android C/C++ aplikace
●
Standardní JNI – nativní kód se natahuje jako
shared library
●
Jde vytvořit i čistě nativní app
(android:hasCode="false")
●
Soubory <apk>/lib/lib*.so
●
Disassembling, dekompilace:
tradiční nástroje pro nativní kód jako objdump,
IDA, gdb
Android C# aplikace
●
Mono runtime (Xamarin) jako knihovna
<apk>/lib/<jméno>.so
●
CLI (ECMA-335) standard
●
Opět jednoduše dekompilovatelný bytecode
●
Dekompilace: bězné CLI dekompilery:
●
dotPeek, ILSpy, dnSpy, ...
Android App Encryption
●
Google
●
Android 4.1 (Jelly Bean, vydán 2012)
●
Ochrana proti kopírování: placená aplikace se
nainstaluje jenom na konkrétní zařízení
●
Během instalace dojde k dešifrování APK a
jeho instalaci do /mnt/asec/ ("encrypted
container")
Android App Encryption
●
Systém se ale pokoušel některé aplikace
(např. služby) spouštět dřív, než došlo k
mountnutí /mnt/asec/
●
Reakce: nejdřív Google Play app "dočasně"
vypnula instalace do /mnt/asec/
●
Celá technologie potichu skončila
Protektory pro Android
●
Vesměs pasivní
●
DexGuard (vymakaná verze ProGuard z
Android SDK)
●
Arxan
●
DexProtector
●
SecNeo (Bangcle)
Metody
●
Java obfuskátory:
●
Obfuskace kódu
●
Reflection namísto přímého volání metod
●
Dynamické načítání „schovaných” tříd
●
Přejmenování názvů tříd, metod a
proměnných
●
Odstraňování debug info
●
Šifrování řetězců
Specificky pro Android
●
Obfuskace AndroidManifest
●
Testování „rootnutého” zařízení
●
Testování běhu na emulátoru
●
Certificate pinning – podepisovací certifikát
apk
Zvláštní pozornost
●
DexProtector
– umožňuje chránit i nativní kód
– skrývá kód jeho přesunutím z classes.dex do
jiného souboru
●
SecNeo (Bangcle)
– původní kód schovává do nativních knihoven
libsecexe a libsecmain
Závěr
●
Existuje poptávka po SW protektorech
●
Nezanedbatelné množství Windows aplikací
nějakou ochranu používá
●
Android aplikace se dají snadno cracknout
●
Jenom minimum Android aplikací používá
ochranu
Dotazy?
karel@defendio.net
milan@defendio.net
defendio.net
bytor.barebit.com
Pozvánka
●
Workshop v 13:00
●
Link na stažení materiálů na
security-session.cz

More Related Content

Similar to Softwarove protektory / KAREL LEJSKA, MILAN BARTOŠ [DEFENDIO]

Bezpečnost otevřených a uzavřených řešení (Martin Mačok)
Bezpečnost otevřených a uzavřených řešení (Martin Mačok)Bezpečnost otevřených a uzavřených řešení (Martin Mačok)
Bezpečnost otevřených a uzavřených řešení (Martin Mačok)DCIT, a.s.
 
Vývoj Windows Store aplikací pomocí HTML, CSS a Javascriptu
Vývoj Windows Store aplikací pomocí HTML, CSS a JavascriptuVývoj Windows Store aplikací pomocí HTML, CSS a Javascriptu
Vývoj Windows Store aplikací pomocí HTML, CSS a JavascriptuJindra Parus
 
Smart Cards & Devices Forum 2013 - Zabezpečení mobilních bankovnictví
Smart Cards & Devices Forum 2013 - Zabezpečení mobilních bankovnictvíSmart Cards & Devices Forum 2013 - Zabezpečení mobilních bankovnictví
Smart Cards & Devices Forum 2013 - Zabezpečení mobilních bankovnictvíOKsystem
 
Bezpečnost mobilních bankovnictví
Bezpečnost mobilních bankovnictvíBezpečnost mobilních bankovnictví
Bezpečnost mobilních bankovnictvíPetr Dvorak
 
Zabezpečení mobilních bankovnictví
Zabezpečení mobilních bankovnictvíZabezpečení mobilních bankovnictví
Zabezpečení mobilních bankovnictvíMobileMondayBratislava
 
SmartCard Forum 2011 - Systém GlobalPlatform
SmartCard Forum 2011 - Systém GlobalPlatformSmartCard Forum 2011 - Systém GlobalPlatform
SmartCard Forum 2011 - Systém GlobalPlatformOKsystem
 
Hacknutý Drupal web. A co teď?
Hacknutý Drupal web. A co teď?Hacknutý Drupal web. A co teď?
Hacknutý Drupal web. A co teď?Radim Klaška
 
Bitcoin Trezor - hardware bitcoin wallet
Bitcoin Trezor - hardware bitcoin walletBitcoin Trezor - hardware bitcoin wallet
Bitcoin Trezor - hardware bitcoin walletSecurity Session
 
Vyvoj Windows Store aplikaci pomoci HTML, CSS a Javascriptu
Vyvoj Windows Store aplikaci pomoci HTML, CSS a JavascriptuVyvoj Windows Store aplikaci pomoci HTML, CSS a Javascriptu
Vyvoj Windows Store aplikaci pomoci HTML, CSS a JavascriptuJindra Parus
 
Jak na BYOD chytře?
Jak na BYOD chytře?Jak na BYOD chytře?
Jak na BYOD chytře?www.embt.cz
 
McAfee - ochrana dat, DLP, šifrování, database security
McAfee - ochrana dat, DLP, šifrování, database securityMcAfee - ochrana dat, DLP, šifrování, database security
McAfee - ochrana dat, DLP, šifrování, database securityMarketingArrowECS_CZ
 
Odpoledne se Seznamem II - Provozní bezpečnost
Odpoledne se Seznamem II - Provozní bezpečnostOdpoledne se Seznamem II - Provozní bezpečnost
Odpoledne se Seznamem II - Provozní bezpečnostchaplin06
 
O2 Firewally nové generace
O2 Firewally nové generaceO2 Firewally nové generace
O2 Firewally nové generaceMilan Petrásek
 

Similar to Softwarove protektory / KAREL LEJSKA, MILAN BARTOŠ [DEFENDIO] (20)

Bezpečnost otevřených a uzavřených řešení (Martin Mačok)
Bezpečnost otevřených a uzavřených řešení (Martin Mačok)Bezpečnost otevřených a uzavřených řešení (Martin Mačok)
Bezpečnost otevřených a uzavřených řešení (Martin Mačok)
 
Vývoj Windows Store aplikací pomocí HTML, CSS a Javascriptu
Vývoj Windows Store aplikací pomocí HTML, CSS a JavascriptuVývoj Windows Store aplikací pomocí HTML, CSS a Javascriptu
Vývoj Windows Store aplikací pomocí HTML, CSS a Javascriptu
 
Smart Cards & Devices Forum 2013 - Zabezpečení mobilních bankovnictví
Smart Cards & Devices Forum 2013 - Zabezpečení mobilních bankovnictvíSmart Cards & Devices Forum 2013 - Zabezpečení mobilních bankovnictví
Smart Cards & Devices Forum 2013 - Zabezpečení mobilních bankovnictví
 
Bezpečnost mobilních bankovnictví
Bezpečnost mobilních bankovnictvíBezpečnost mobilních bankovnictví
Bezpečnost mobilních bankovnictví
 
TNPW2-2013-06
TNPW2-2013-06TNPW2-2013-06
TNPW2-2013-06
 
TNPW2-2012-06
TNPW2-2012-06TNPW2-2012-06
TNPW2-2012-06
 
Zabezpečení mobilních bankovnictví
Zabezpečení mobilních bankovnictvíZabezpečení mobilních bankovnictví
Zabezpečení mobilních bankovnictví
 
SmartCard Forum 2011 - Systém GlobalPlatform
SmartCard Forum 2011 - Systém GlobalPlatformSmartCard Forum 2011 - Systém GlobalPlatform
SmartCard Forum 2011 - Systém GlobalPlatform
 
Hacknutý Drupal web. A co teď?
Hacknutý Drupal web. A co teď?Hacknutý Drupal web. A co teď?
Hacknutý Drupal web. A co teď?
 
Bitcoin Trezor - hardware bitcoin wallet
Bitcoin Trezor - hardware bitcoin walletBitcoin Trezor - hardware bitcoin wallet
Bitcoin Trezor - hardware bitcoin wallet
 
Začínáme iOS vývoj
Začínáme iOS vývojZačínáme iOS vývoj
Začínáme iOS vývoj
 
TNPW2-2016-04
TNPW2-2016-04TNPW2-2016-04
TNPW2-2016-04
 
Vyvoj Windows Store aplikaci pomoci HTML, CSS a Javascriptu
Vyvoj Windows Store aplikaci pomoci HTML, CSS a JavascriptuVyvoj Windows Store aplikaci pomoci HTML, CSS a Javascriptu
Vyvoj Windows Store aplikaci pomoci HTML, CSS a Javascriptu
 
Jak na BYOD chytře?
Jak na BYOD chytře?Jak na BYOD chytře?
Jak na BYOD chytře?
 
McAfee - ochrana dat, DLP, šifrování, database security
McAfee - ochrana dat, DLP, šifrování, database securityMcAfee - ochrana dat, DLP, šifrování, database security
McAfee - ochrana dat, DLP, šifrování, database security
 
TNPW2-2014-04
TNPW2-2014-04TNPW2-2014-04
TNPW2-2014-04
 
Odpoledne se Seznamem II - Provozní bezpečnost
Odpoledne se Seznamem II - Provozní bezpečnostOdpoledne se Seznamem II - Provozní bezpečnost
Odpoledne se Seznamem II - Provozní bezpečnost
 
O2 Firewally nové generace
O2 Firewally nové generaceO2 Firewally nové generace
O2 Firewally nové generace
 
05 Standardy a nástroje.pptx
05 Standardy a nástroje.pptx05 Standardy a nástroje.pptx
05 Standardy a nástroje.pptx
 
OS & App Security
OS & App SecurityOS & App Security
OS & App Security
 

More from Security Session

Getting your hands dirty: How to Analyze the Behavior of Malware Traffic / SE...
Getting your hands dirty: How to Analyze the Behavior of Malware Traffic / SE...Getting your hands dirty: How to Analyze the Behavior of Malware Traffic / SE...
Getting your hands dirty: How to Analyze the Behavior of Malware Traffic / SE...Security Session
 
Základy reverse engineeringu a assembleru / KAREL LEJSKA, MILAN BARTOŠ [DEFEN...
Základy reverse engineeringu a assembleru / KAREL LEJSKA, MILAN BARTOŠ [DEFEN...Základy reverse engineeringu a assembleru / KAREL LEJSKA, MILAN BARTOŠ [DEFEN...
Základy reverse engineeringu a assembleru / KAREL LEJSKA, MILAN BARTOŠ [DEFEN...Security Session
 
Zabezpečení nejen SSH na serveru pomocí Fail2Ban a jednoduchého honeypotu. / ...
Zabezpečení nejen SSH na serveru pomocí Fail2Ban a jednoduchého honeypotu. / ...Zabezpečení nejen SSH na serveru pomocí Fail2Ban a jednoduchého honeypotu. / ...
Zabezpečení nejen SSH na serveru pomocí Fail2Ban a jednoduchého honeypotu. / ...Security Session
 
Insights of a brute-forcing botnet / VERONICA VALEROS [CISCO]
Insights of a brute-forcing botnet / VERONICA VALEROS [CISCO]Insights of a brute-forcing botnet / VERONICA VALEROS [CISCO]
Insights of a brute-forcing botnet / VERONICA VALEROS [CISCO]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
 
Falsifikace biometricke charakteristiky a detekce zivosti
Falsifikace biometricke charakteristiky a detekce zivostiFalsifikace biometricke charakteristiky a detekce zivosti
Falsifikace biometricke charakteristiky a detekce zivostiSecurity Session
 

More from Security Session (20)

Getting your hands dirty: How to Analyze the Behavior of Malware Traffic / SE...
Getting your hands dirty: How to Analyze the Behavior of Malware Traffic / SE...Getting your hands dirty: How to Analyze the Behavior of Malware Traffic / SE...
Getting your hands dirty: How to Analyze the Behavior of Malware Traffic / SE...
 
Základy reverse engineeringu a assembleru / KAREL LEJSKA, MILAN BARTOŠ [DEFEN...
Základy reverse engineeringu a assembleru / KAREL LEJSKA, MILAN BARTOŠ [DEFEN...Základy reverse engineeringu a assembleru / KAREL LEJSKA, MILAN BARTOŠ [DEFEN...
Základy reverse engineeringu a assembleru / KAREL LEJSKA, MILAN BARTOŠ [DEFEN...
 
Zabezpečení nejen SSH na serveru pomocí Fail2Ban a jednoduchého honeypotu. / ...
Zabezpečení nejen SSH na serveru pomocí Fail2Ban a jednoduchého honeypotu. / ...Zabezpečení nejen SSH na serveru pomocí Fail2Ban a jednoduchého honeypotu. / ...
Zabezpečení nejen SSH na serveru pomocí Fail2Ban a jednoduchého honeypotu. / ...
 
Insights of a brute-forcing botnet / VERONICA VALEROS [CISCO]
Insights of a brute-forcing botnet / VERONICA VALEROS [CISCO]Insights of a brute-forcing botnet / VERONICA VALEROS [CISCO]
Insights of a brute-forcing botnet / VERONICA VALEROS [CISCO]
 
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ž
 
Falsifikace biometricke charakteristiky a detekce zivosti
Falsifikace biometricke charakteristiky a detekce zivostiFalsifikace biometricke charakteristiky a detekce zivosti
Falsifikace biometricke charakteristiky a detekce zivosti
 

Softwarove protektory / KAREL LEJSKA, MILAN BARTOŠ [DEFENDIO]

  • 1. Softwarové protektory Dvojsečná zbraň zabezpečení kódu Karel Lejska, Milan Bartoš
  • 2. Co můžeme ochránit? ● Technický prostředek chránící například: ● omezení redistribuce ● dodržení zkušební lhůty zdarma ● omezení funkcionality aplikace po uplynutí zkušební lhůty ● ochrana kódu hry proti cheaterům
  • 3. Jiné způsoby ● Copyright – Jedna z netechnických možností ochrany – V praxi nevynutitelný – morálka ● Software jako služba – kód je na serveru ● Free to play – nejdřív hraj, potom plať (nákupy v aplikaci) ● Reklama v aplikaci – cílená na uživatele
  • 4. Motivace ● Kvůli pirátství unikají peníze – hausnumero: $63 miliard v roce 2014 – 2 z 5 kopií jsou pirátské ● Ochrana know-how (algoritmy, kód) ● Ochrana důvěryhodnosti ● Studium protektorů ukazuje rovněž techniky používané i malwarem ● Copy protection je prý nesmysl
  • 5. Životnost protekce ● Životní cyklus klientského SW je krátký ● Např. mobilní hry 3-4 měsíce ● Největší prodeje těsně po vydání nové verze SW ● Za úspěch se považuje, pokud protekce vydrží několik měsíců
  • 6. Dvojsečnost ● Prodražení deploymentu a supportu ● Zneužívání malwarem ● Antiviry mají problém s protektory a packery
  • 7. Software Taggant System ● Umožňuje protektoru podepsat ochráněný program ● Standard IEEE z roku 2011 ● IEEE v systému funguje jako root of trust, uznávající producenty protektorů ● Antiviry díky podpisu rozeznají, že jde o "program ze známého zdroje"
  • 8. Taggant vs. Authenticode ● Authenticode: ověření vydavatele softwaru a neporušenost souboru ● Navzájem se nevylučují ● Taggant hash by měl být rychlejší ● Taggant system je určený producentům protektorů, samotní uživatelé protektorů to nemusí řešit
  • 9. Intel Tamper Protection ● Toolkit ● Má chránit "kritický kód a hodnotná data" před reverzováním a manipulací ● Windows a Android binárky (.DLL a .SO soubory) ● Obfuskátor umožňuje silnou obfuskaci: techniky sebemodifikujícího a zašifrovaného kódu
  • 10. Protektory pro Windows ● Tradiční: packer (kompresor) s přidanou funkcionalitou ● S použitím VM ● S aktivními prvky ● Bez aktivních prvků
  • 11. Rozšířená funkcionalita ● API: např. ověření, že protekce nebyla odstraněna ● Integrace licenčního manageru (DRM) ● Kontejner obsahující soubory aplikace ● HW dongle ● Kontrola integrity
  • 12. Metody ● Obrana proti disassemblingu a dekompilaci: – obfuskace, transformace do vlastního bytekódu, šifrování, komprese kódu ● Detekce debuggeru (dynamická analýza) ● Detekce virtualizovaného OS a emulátoru ● Šifrování datových sekcí a resources ● Skrytí importů ● Přesun kódu aplikace (do loaderu či jinam)
  • 13. Tradiční protektory ● Transformují originální soubor a obalují ho ● Protektorem přidaný kód („loader”) postupně dešifruje originální kód a spouští ho ● ASProtect ● DotFix NiceProtect ● Enigma Protector
  • 14. S použitím VM ● Převede původní kód do vlastního bytekódu, kterému rozumí jenom přidaný virtuální stroj ● Začíná být běžnou součástí všech protektorů ● Zpomalení kódu ve virtualizační vrstvě ● VMProtect ● Denuvo
  • 15. VMProtect Nativní kód Transformovaný bytekód CPU Tenký virtuální stroj - interpreter CPU
  • 16. S aktivními prvky ● S instalací ochráněné aplikace dojde k nainstalování systémového driveru ● StarForce: nechvalně se proslavil jako aktivní ochrana pro hry: systém driverů kontrolujících čtení a zápis na disk na nejnižší úrovni vedl k poškození dat
  • 17. Bez aktivních prvků ● Pasivní ochrana: ● Staví hradbu s různorodými obrannými mechanismy, nepoužívá „zvědy v terénu”
  • 18. Android Java aplikace ● Dá se snadno získat přímo ze zařízení ● Soubor <apk>/classes.dex ● DEX dekompilery (JEB, JADX), ● .dex → .class a pak Java dekompilery ● Java (DEX) bytecode se dá jednoduše dekompilovat do původní podoby – do zdrojového kódu ● Menšina aplikací také v C/C++ a C#
  • 19. Android C/C++ aplikace ● Standardní JNI – nativní kód se natahuje jako shared library ● Jde vytvořit i čistě nativní app (android:hasCode="false") ● Soubory <apk>/lib/lib*.so ● Disassembling, dekompilace: tradiční nástroje pro nativní kód jako objdump, IDA, gdb
  • 20. Android C# aplikace ● Mono runtime (Xamarin) jako knihovna <apk>/lib/<jméno>.so ● CLI (ECMA-335) standard ● Opět jednoduše dekompilovatelný bytecode ● Dekompilace: bězné CLI dekompilery: ● dotPeek, ILSpy, dnSpy, ...
  • 21. Android App Encryption ● Google ● Android 4.1 (Jelly Bean, vydán 2012) ● Ochrana proti kopírování: placená aplikace se nainstaluje jenom na konkrétní zařízení ● Během instalace dojde k dešifrování APK a jeho instalaci do /mnt/asec/ ("encrypted container")
  • 22. Android App Encryption ● Systém se ale pokoušel některé aplikace (např. služby) spouštět dřív, než došlo k mountnutí /mnt/asec/ ● Reakce: nejdřív Google Play app "dočasně" vypnula instalace do /mnt/asec/ ● Celá technologie potichu skončila
  • 23. Protektory pro Android ● Vesměs pasivní ● DexGuard (vymakaná verze ProGuard z Android SDK) ● Arxan ● DexProtector ● SecNeo (Bangcle)
  • 24. Metody ● Java obfuskátory: ● Obfuskace kódu ● Reflection namísto přímého volání metod ● Dynamické načítání „schovaných” tříd ● Přejmenování názvů tříd, metod a proměnných ● Odstraňování debug info ● Šifrování řetězců
  • 25. Specificky pro Android ● Obfuskace AndroidManifest ● Testování „rootnutého” zařízení ● Testování běhu na emulátoru ● Certificate pinning – podepisovací certifikát apk
  • 26. Zvláštní pozornost ● DexProtector – umožňuje chránit i nativní kód – skrývá kód jeho přesunutím z classes.dex do jiného souboru ● SecNeo (Bangcle) – původní kód schovává do nativních knihoven libsecexe a libsecmain
  • 27. Závěr ● Existuje poptávka po SW protektorech ● Nezanedbatelné množství Windows aplikací nějakou ochranu používá ● Android aplikace se dají snadno cracknout ● Jenom minimum Android aplikací používá ochranu
  • 29. Pozvánka ● Workshop v 13:00 ● Link na stažení materiálů na security-session.cz