Detecting PowerShell obfuscation using machine learning
Description
Full text not available
Abstract
PowerShell har blitt veldig populært blant angripere. Grunnen er at PowerShell gir muligheten til å "leve av landet" i et kompromittert system, og enkelheten ved å utføre såkalte filløse angrep, ved å holde skadelige payloads kun til minnet, og ikke skrive dem til disk. For å kunne skjule angrep med PowerShell fra regelbasert deteksjon blir obfuskering benyttet for å maskere handlingene til den skadelige koden. En hypotese blir presentert om at tilstedeværelsen av obfuskering i PowerShell er in indikasjon på skadelig aktivitet. Obfuskering er enkel å få øye på for mennesker, men mindre enkel å oppdage for regelbasert deteksjonsmekanismer, siden obfuskeringen lett kan varieres for å omgå nye regler for å oppdage det. Ved å bruke maskinlæring er det mulig å trene en modell til å oppdage og gjenkjenne tilstedeværelsen av obfusering. En metodikk blir presentert for å finne viktige attributter ved obfuskert PowerShell-kode, og for å trene en maskinlæringsmodell til å oppdage obfuskering basert på disse atributtene. De attributtene dette resulterer blir diskutert, om de er robuste og vil forbli valide dersom metoden for obfuskering endres, eller om de er svake, og lett kan omgås ved å endre på obfuskeringen. Maskinlæringsmodellen blir diskutert, og svakheter ved den blir pekt ut, og potensielle løsninger for å styrke maskinlæringsmetoden blir foreslått for fremtidig arbeid. PowerShell has become very popular for attackers. The reason for this is that PowerShell provides them with the opportunity to "live off the land" in compromised systems, and the ease of performing so called fileless attacks, by keeping malicious payloads i memory only, and not writing them to disk. In order to hide their attacks from rule based detection, obfuscation is used to mask the actions of the malicious code. A hypothesis is presented that the presence of obfuscation in PowerShell is an indicator of malicious activity. Obfuscation is easy to spot for humans, but less so for rule based detection mechanisms, as the obfuscation is easy to vary in order to circumvent new rules to detect it. Using machine learning it is possible to train a model to detect the recognise the presence of obfuscation. A methodology is presented for finding important features of obfuscated PowerShell, and for training a machine learning classifier to detect obfuscation based on these features. The resulting features will be discussed, whether they are robust and remain valid if the method of obfuscation is altered, or if they are weak, and easily circumvented by changes in the obfuscation. The classification method is discussed, and weaknesses of it pointed out, and solutions for strengthening the method in future work is proposed.