image

SSEXY-tool maakt leven reverse engineers zuur

maandag 28 mei 2012, 12:50 door Redactie, 13 reacties

Tijdens Hack in the Box Amsterdam heeft de Nederlandse beveiligingsonderzoeker Jurriaan Bremer een nieuwe manier gepresenteerd voor binaire obfuscatie. In zijn tool genaamd SSEXY maakt hij gebruik van de SSE-instructieset om reverse engineering te bemoeilijken. De SSE-instructieset is bedoeld voor floating point berekeningen en wordt daarmee vooral gebruikt door grafische toepassingen. Veel andere applicaties maken hierdoor geen gebruik van de SSE-instructies.

De bijbehorende XMM-registers blijven hierdoor ook ongebruikt. De XMM-registers zijn 128-bits groot, wat betekent dat twee XMM-registers genoeg zijn om alle normale registers te kunnen bevatten. De SSEXY-tool van Bremer decompileert een gegeven binair bestand en vervangt veel voorkomende opcodes voor een SSE-equivalent. Het resultaat wordt weer verwerkt tot een werkend binair bestand. Momenteel worden alleen Windows-bestanden ondersteund, hoewel ondersteuning van Linux eenvoudig is toe te voegen, aldus Jurriaan.

Reverse engineering
Door de SSE-obfuscatie groeit het aantal instructies met ongeveer een factor tien. De huidige reverse engineerings tools zoals IDA Pro lijken hier nog niet goed mee overweg te kunnen. In zijn presentatie liet Bremer zien hoe hij normale x86 instructies emuleert en wat hier bij komt kijken. Zo heeft x86 de mogelijkheid om een adres in het geheugen op te bouwen uit meerdere registers en eventueel een extra offset, wat ook moet worden geemuleerd.

Daarnaast heeft de SSE-instructieset geen mogelijkheden voor 'branching', het aanroepen van andere functies. Dit type instructie kan dan ook niet worden omgezet naar een SSE-equivalent. Tenslotte kunnen er problemen ontstaan wanneer grafische functies gebruikt worden, omdat deze wel gebruik maken van SSE-instructies. Wanneer zo'n functie gebruikt wordt, moet tijdelijk data uit de XMM-registers ergens anders opgeslagen worden.

Obfuscatie
Verder presenteerde Bremer eventuele verbeteringen bovenop de huidige obfuscatie. Zo kunnen de XMM-registers nog door elkaar worden gehaald en zou de inhoud van deze registers kunnen worden versleuteld. Voor beide technieken is het nodig de informatie te ontsleutelen en weer versleutelen elke keer dat een register gelezen, dan wel geschreven, wordt.

Buiten dat laat Bremer weten dat het mogelijk is dit soort versleuteling op een per-functie basis te doen, wat inhoudt dat elke functie een eigen
versleuteling heeft, om het nog lastiger te maken. Momenteel doet SSEXY een 1 op 1 vertaling van x86 instructies naar hun SSE-equivalent, maar door het combineren van bestaande obfuscatietechnieken met SSEXY is dit nog verder uit te werken.

Onderzoek
Vooralsnog is het voornamelijk een onderzoeksproject om de mogelijkheden van SSE-obfuscatie te verkennen en is de tool nog erg gelimiteerd. De SSEXY binaries draaien ongeveer vijf keer trager dan normaal, wat onder normale omstandigheden acceptabel is. De tool is opensource en gratis beschikbaar.

Reacties (13)
28-05-2012, 13:15 door Anoniem
"De tool is opensource en gratis beschikbaar."

Ik word een beetje moe van mensen die denken dat ze het wiel uitvinden, iedere researcher kan zoiets bedenken maar er is iets wat bijna alle intelligente mensen tegenhoudt: verantwoordelijkheidsgevoel. Ga wat nuttigs doen, zoals anti-malware maken.
28-05-2012, 14:58 door meeuw
"decompileert" moet dit niet "deassembleert" zijn, aangezien het opcodes verwisselt in plaats van source code?
28-05-2012, 15:19 door Anoniem
Door Anoniem: "De tool is opensource en gratis beschikbaar."
iedere researcher kan zoiets bedenken maar er is iets wat bijna alle intelligente mensen tegenhoudt: verantwoordelijkheidsgevoel.

Raar dat dit soort struisvogel gedrag zo vaak naar boven komt op security.nl.

Kennelijk hebben deze mensen liever dat dergelijke tools alleen beschikbaar en bekend zijn bij de bad guys.
28-05-2012, 15:42 door Anoniem
Nu zo'n tool bestaat, gaan Anti-Virus bedrijven hopelijk meer onderzoek doen naar dit soort obfuscatie. Door presentaties als deze worden er nieuwe technieken op een duidelijke manier uitgelegd, in tegenstelling tot wat er zou gebeuren als malware zulke technieken gebruiken. Zoals gezegd wordt, als de een het niet doet, doet de ander het, maar met kwaadwillende gedachten.
28-05-2012, 18:11 door Anoniem
Door Anoniem:
Door Anoniem: "De tool is opensource en gratis beschikbaar."
iedere researcher kan zoiets bedenken maar er is iets wat bijna alle intelligente mensen tegenhoudt: verantwoordelijkheidsgevoel.

Raar dat dit soort struisvogel gedrag zo vaak naar boven komt op security.nl.

Kennelijk hebben deze mensen liever dat dergelijke tools alleen beschikbaar en bekend zijn bij de bad guys.

De struisvogel is hij die script kiddies helpt met malware productie. Een mier heeft nog een beter moreel besef.

Lees verder nog eens goed. Het is niets nieuws, zulke technieken zijn al bekend sinds de vorige eeuw (lees eens vakblad). Anti-malware engineers hebben dergelijke tools niet nodig om anti-malware te maken.
28-05-2012, 19:30 door Anoniem
Door Anoniem: "De tool is opensource en gratis beschikbaar."

Ik word een beetje moe van mensen die denken dat ze het wiel uitvinden, iedere researcher kan zoiets bedenken maar er is iets wat bijna alle intelligente mensen tegenhoudt: verantwoordelijkheidsgevoel. Ga wat nuttigs doen, zoals anti-malware maken.
Volgens mij snap jij niet helemaal hoe onderzoek in zijn werk gaat. Onderzoek is zelden baanbrekend in zijn vakgebied. Je komt ergens met kleine stappen. Alle kleine stappen samen zorgt voor nieuwe inzichten, nieuwe ideeen en nieuwe oplossingen. Het feit dat de onderzoeker obfuscatie op een binary heeft gedaan is niks nieuws, dat wordt ook nergens geclaimd. Wat dit onderzoek echter wel aantoont is dat we met simpele technieken het leven van anti-virus producenten nog knap lastig kunnen maken, simpelweg omdat er momenteel geen tools zijn die hier mee overweg kunnen. In mijn ogen moet iemand dit ooit aan de kaak stellen, and it better be one of the good guys. Er worden ook artikelen gepubliceerd over nieuwe exploitation technieken, of over de beveiliging van access points bijvoorbeeld.

Zijn onderzoek toont aan op welke punten onze tools nog verbeterd kunnen worden. Verder zou ik me over scriptkiddies maar niet zo'n zorgen maken. Wat ik ervan kan zien is de tool nog nauwelijks functioneel en dus ook nog echt niet bruikbaar voor dergelijke doeleinde.

Verder snap ik je commentaar niet helemaal. Je hebt het over verantwoordelijkheidsgevoel, verwacht je echt dat malware makers hiermee gelijk aan de haal gaan? Er zijn nog 1001 andere obfuscatie technieken. En waarom moet hij iets gaan doen wat in jou ogen nuttig is? Het is zijn tijd dus die mag hij zelf indelen.
28-05-2012, 19:35 door Anoniem
Door Anoniem: Nu zo'n tool bestaat, gaan Anti-Virus bedrijven hopelijk meer onderzoek doen naar dit soort obfuscatie. Door presentaties als deze worden er nieuwe technieken op een duidelijke manier uitgelegd, in tegenstelling tot wat er zou gebeuren als malware zulke technieken gebruiken. Zoals gezegd wordt, als de een het niet doet, doet de ander het, maar met kwaadwillende gedachten.
Dit soort obfuscatie bestond al lang, in het algemeen gesproken. Deze specifieke manier is aardig, maar niet wereldschokkend. Iemand moest alleen het werk doen, het concept was er al lang. AV-bedrijven kunnen er gewoon mee omgaan; dit was een te verwachte stap. Vroeger, toen de eerste polymorphic virussen verschenen, schreven AV'ers een emulator. Daarna gingen virusschrijvers FPU instructies gebruiken, en emuleerden AV'ers dat. SSE, MMX, whatever, het zijn gewoon logische vervolgstappen. En de oorspronkelijke technieken werden eveneens helder uitgelegd, toen de virusschrijvers nog uit hobbyisten bestonden die er geen geld aan konden en wilden verdienen.
28-05-2012, 19:36 door Fwiffo
Door Anoniem: De struisvogel is hij die script kiddies helpt met malware productie. Een mier heeft nog een beter moreel besef.

Lees verder nog eens goed. Het is niets nieuws, zulke technieken zijn al bekend sinds de vorige eeuw (lees eens vakblad). Anti-malware engineers hebben dergelijke tools niet nodig om anti-malware te maken.
Je vergeet dat veel bedrijven hun intellectueel eigendom willen beschermen. Met dit soort obfusticators. Als het ook nog even snel zou zijn als de oorspronkelijke code zou het helemaal mooi zijn.

Voorbeeld: WGA van Microsoft of SecuROM van Sony. Voor een game is elke dag dat het langer duurt voordat het spel gekraakt is extra winst/verkopen. Maar ook kleine bedrijfjes gaan hiervoor om hun product te beschermen tegen disassembly/cracking. Dan is het mooi dat het gratis is.

Of je dit moet doen is aan degene die het gebruikt. Ik heb wel een zwak voor bedrijven die hun producten helemaal niet beschermen. Maar ik hoef er mijn geld niet mee te verdienen, dus ik heb makkelijk praten.
29-05-2012, 04:02 door Anoniem
Door Anoniem:
Wat dit onderzoek echter wel aantoont is dat we met simpele technieken het leven van anti-virus producenten nog knap lastig kunnen maken[/quote]
Nee, het toont niets aan dat niet al lang en breed bekend was. Dat is dezelfde fout als het maken van een virus om aan te tonen dat het kan, anno 2012. Nou, je raad het nooit, maar met miljoenen exemplaren per jaar weten we het nu wel. Het gaat hier niet om een exploit voor een softwarebeveiligingslek.

Je begrijpt ook niet hoe anti-malware werkt. Afgezien van generieke emulatoren, is die doorgaans reactief ten opzichte van nieuwe malware obfuscators. Als jij als malware schrijver een nieuwe obfuscator maakt en als deze veelvuldig wordt gebruikt, dan heb je kans dat anti-malware researchers iets maken om de obfuscatie zelf te detecteren, en dat is in dit geval makkelijk genoeg.
29-05-2012, 07:25 door Anoniem
Door Anoniem:
De struisvogel is hij die script kiddies helpt met malware productie. Een mier heeft nog een beter moreel besef.

Jij denkt dat scriptkiddies niet gewoon doen wat ze altijd zullen doen als onderzoekers hun werk gaan verhullen? Redelijk bizar gedachtepatroon. Alsof internet niet bestaat zeker? En de whitehat community lekker achter laten lopen terwijl de blackhats in alle stilte dergelijke tools bouwen die dan alsnog in handen van de scriptkiddos vallen.

Door Anoniem:
Lees verder nog eens goed. Het is niets nieuws, zulke technieken zijn al bekend sinds de vorige eeuw (lees eens vakblad). Anti-malware engineers hebben dergelijke tools niet nodig om anti-malware te maken.

Begrijp niet helemaal waarom je denkt te moeten vertellen dat het concept niets nieuws is, relevantie? Nul.

Ik denk niet dat je over het lezen van vakbladen moet beginnen wanneer je een dergelijke achterhaalde mening ventileert over het zogenaamd gebrek van moreel besef bij onderzoekers. Dacht eigenlijk dat deze discussie 10 jaar geleden al gevoerd was.
29-05-2012, 11:11 door RickDeckardt
don't feed the trolls
29-05-2012, 13:49 door Anoniem
@07:25 Je leest niet en je kunt denkbeelden niet van feiten onderscheiden. De stellingen die je verzint en doet alsof die van mij zijn voor jouw rekening. Leer eens wat over een onderwerp voordat je wat post.
01-06-2012, 17:25 door Anoniem
" De SSEXY binaries draaien ongeveer vijf keer trager dan normaal, wat onder normale omstandigheden acceptabel is. "

Volstrekte onzin dat dat acceptabel zou zijn. In feite gebruiken ze dan minimaal 5x zoveel stroom. Dat betekent wereldwijd nog eens duizenden extra energiecentrales nodig als het om elke binary zou gaan.
Reageren

Deze posting is gelocked. Reageren is niet meer mogelijk.