Diese Präsentation wurde erfolgreich gemeldet.
Die SlideShare-Präsentation wird heruntergeladen. ×

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

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Nächste SlideShare
Implementace systemu HIPS
Implementace systemu HIPS
Wird geladen in …3
×

Hier ansehen

1 von 29 Anzeige

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

Herunterladen, um offline zu lesen

Security by obscurity nemůže fungovat. Nebo ano? Softwarové protektory prošly během 16 let prudkým vývojem. Zhodnotíme, jaká je situace v roce 2016. Podíváme se, jak fungují dnešní protektory pro Windows a Android, ukážeme, co se snaží řešit a současně jaké problémy jejich nasazení přináší. Přednáška bude zajímavá i pro ty, které zajímá problematika malware.

Security by obscurity nemůže fungovat. Nebo ano? Softwarové protektory prošly během 16 let prudkým vývojem. Zhodnotíme, jaká je situace v roce 2016. Podíváme se, jak fungují dnešní protektory pro Windows a Android, ukážeme, co se snaží řešit a současně jaké problémy jejich nasazení přináší. Přednáška bude zajímavá i pro ty, které zajímá problematika malware.

Anzeige
Anzeige

Weitere Verwandte Inhalte

Ähnlich wie Softwarove protektory / KAREL LEJSKA, MILAN BARTOŠ [DEFENDIO] (20)

Weitere von Security Session (20)

Anzeige

Aktuellste (19)

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

  1. 1. Softwarové protektory Dvojsečná zbraň zabezpečení kódu Karel Lejska, Milan Bartoš
  2. 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. 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. 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. 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. 6. Dvojsečnost ● Prodražení deploymentu a supportu ● Zneužívání malwarem ● Antiviry mají problém s protektory a packery
  7. 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. 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. 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. 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. 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. 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. 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. 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. 15. VMProtect Nativní kód Transformovaný bytekód CPU Tenký virtuální stroj - interpreter CPU
  16. 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. 17. Bez aktivních prvků ● Pasivní ochrana: ● Staví hradbu s různorodými obrannými mechanismy, nepoužívá „zvědy v terénu”
  18. 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. 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. 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. 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. 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. 23. Protektory pro Android ● Vesměs pasivní ● DexGuard (vymakaná verze ProGuard z Android SDK) ● Arxan ● DexProtector ● SecNeo (Bangcle)
  24. 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. 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. 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. 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
  28. 28. Dotazy? karel@defendio.net milan@defendio.net defendio.net bytor.barebit.com
  29. 29. Pozvánka ● Workshop v 13:00 ● Link na stažení materiálů na security-session.cz

×