Obfuscation and Deobfuscation
I was on Hack The Box Academy, happily reading along when the first word of the module popped up: understanding. Good.
Next word: code. Still good.
Then the third word appeared: deobfuscation.
And I just stared at it like, “How many alphabets did they use to make this word?” I tried pronouncing it five or six times. For a moment, I genuinely believed Shashi Tharoor writes simpler words 😂. Eventually, yes, I managed to say it without hurting my tongue.
Anyway, let’s move to the topic.
Obfuscation
As the name suggest , it is process of converting simple things ( notes , words , sentences ) into complex form 😂.
More precisely , it is the process of taking a simple , clear sentence and writing it in a complex cipher, using synonyms from a dead language, and adding alot of irrelevant words. The meaning remains preserved, but it is extremely hard to understand ( same as the name of topic obfuscation) .
Defuscation
Why do we need Deobfuscation ?
(A) For Malicious Actors ( The "Bad Guy" )
- To analyze the security products : An attacker might obfuscate a malicious payload to bypass the Web Application Firewall (WAF) . Then , you as a security researcher would deobfuscate the payload to understand the attack, and update the WAF's rule.
- To steal intellectual property : To understand and copy core logic of a competitor's obfuscate the software .
(B) For Defenders and Developers ( The "Good Guys" )
- Malware Analysis : Malware authors heavily obfuscate their code to avoid detection by antivirus software and to avoid detection by hinder analysis. You as a security guy then deobfuscate the code to :
- Understand it's functionality ( What does it do ? )
- Identify it's capabilities ( keylogging , data theft , ransomware )
- Extract indicators of compromise ( IoC's like domain , IP address , file hashes )
- Develop signature and counter measure.
- Vulnerability Research : To find weakness in obfuscated software .
- Debugging and legacy code maintenance : To old or poorly documented code that has been obfuscated, either intentionally or as a side-effect of minification .
Next Blog - Obfuscation and Deobfuscation part 2 ?
Nice
ReplyDelete