Characterizing the Strength of Software Obfuscation Against Automated Attacks

Sebastian Bănescu · mediaTUM – the media and publications repository of the Technical University Munich (Technical University Munich) · 2017

Softwareverschleierung bezeichnet eine Art der Transformationstechniken f ür Computercode, die von Software Entwicklern eingesetzt wird, um digitales Eigentum (z.B. proprietäre Algorithmen, geheime Schl üssel, etc.) gegen b öswillige Endbenutzer zu sch ützen.In den letzten drei Jahrzehnten sind Dutzende Verschleierungstransformationen in der Literatur beschrieben worden.Einige Forscher haben sich darauf konzentriert, die Stärken dieser Transformationen gegen semi-automatisierte Analysen zu beschreiben und zu messen.Im Vergleich dazu wurden weniger Fortschritte darin gemacht, die Stärken dieser Transformationen gegen voll-automatisierte Angriffen zu beschreiben und zu messen.Der hauptsächliche Grund hierf ür ist, dass die übliche Form der Softwaredistribution (auch "Software Monokultur" genannt), davon ausgeht, dass eine Anwendung einmal verschleiert wird und die gleiche ausf ührbare Datei an alle Endnutzer verteilt wird.Daher kann, falls ein b öswilliger Endnutzer in der Lage ist die sch ützende Verschleierung zu überwinden, der gleiche Angriff bei allen anderen Endnutzern der gleichen Anwendung angewendet werden.Mit dem Aufkommen der Softwarediversität erhalten verschiedene Endnutzer der Software verschiedene, aber funktionsgleiche, Versionen des gleichen Programms, die mit verschiedenen Kombinationen von Transformationen verschleiert wurden.Idealerweise bedeutet das, dass ein und derselbe Angriff nicht mehr auf alle Endnutzer anwendbar ist und semi-automatisierte Analysen mit den Millionen verschiedenen Varianten eines Programms, die jeden Tag erscheinen, nicht mehr mithalten k önnen.Softwarediversität wird in großen Maßen von Schadsoftware-Entwicklern eingesetzt, um nicht von Antiviren-Scannern entdeckt zu werden.Auch ist Softwarediversität mit Hilfe von Verschleierung als Abwehrmechanismus f ür gutartige Programme gegen Angriffe vorgeschlagen worden, die darauf abzielen, die Integrität der Anwendung durch Manipulationen am Computercode (engl."Tampering"), das Einf ügen von Computercode oder dem Wiederverwenden von Computercode zu verletzen.Nichtsdestotrotz stehen Fachleute dem Einsatz von Verschleierung zum Schutz ihrer eigenen Software skeptisch gegen über.Dies liegt zum Teil daran, dass nicht klar ist, wie die Stärke von Software Verschleierung charakterisiert werden kann.In dieser Dissertation entwickeln wir eine Grundstruktur, in der wir die automatische Analyse als Suchprobleme formalisieren, deren Komplexität von Eigenschaften der Software abhängt.Mit dieser Grundstruktur lassen sich die Stärken gegen Angriffe durch automatisierte Analyse beschreiben und vergleichen.Dies hilft Entwicklern dabei, die Verschleierungtransformationen auszuwählen, die die Eigenschaften der Software so verändern, dass Heuristiken nicht mehr angewendet werden k önnen oder der ben ötigte Aufwand f ür die Suche aus wirtschaftlicher Sicht nicht mehr attraktiv ist.Wir stellen mehrere Fallstudien unter Einbezug von verschiedenen Software-Anwendungen, Verschleierungstransformationen und einem automatisierten Angriff bassierend auf symbolischer Ausf ührung vor, die unsere Hypothese untermauern.Mit Hilfe der Erkenntnisse unseres Ansatzes zur Charakterisierung der Stärken von Verschleierung, sind wir in der Lage den Stand der Technik bei Verschleierungstransformationen voranzutreiben.

Read the paper · More papers on PaperTik