Over the years, the set of skills needed to analyze malware has been expanding. After all, software is becoming more sophisticated and powerful, regardless whether it is being used for benign or malicious purposes. The expertise needed to understand malicious programs has been growing in complexity to keep up with the threats.
My perspective on this progression is based on the FOR610 reverse-engineering malware course I've been teaching at SANS Institute. Allow me to indulge in a brief retrospective on this course, which I launched over a decade ago and which has been evolving ever since.
Starting to Teach Malware Analysis
My first presentation on the topic of malware analysis was at the SANSFIRE conference in 2001 in Washington, DC. That was one of my first professional speaking gigs. SANS was willing to give me a shot, thanks to Stephen Northcutt, but I wasn’t yet a part of the faculty. My 2.5-hour session promised to:
Discuss "tools and techniques useful for understanding inner workings of malware such as viruses, worms, and trojans. We describe an approach to setting up inexpensive and flexible lab environment using virtual workstation software such as VMware, and demonstrate the process of reverse engineering a trojan using a range of system monitoring tools in conjunction with a disassembler and a debugger."
I had 96 slides. Malware analysis knowledge wasn’t yet prevalent in the general community outside of antivirus companies, which were keeping their expertise close to the chest. Fortunately, there was only so much one needed to know to analyze mainstream samples of the day.
Worried that evening session attendees would have a hard time staying alert after a day's full of classes, I handed out chocolate-covered coffee beans, which I got from McNulty’s shop in New York.
Initial Expansion of the Reverse-Engineering Course
A year later, I expanded the course to two evening sessions. It included 198 slides and hands-on labs. I was on the SANS faculty list! Slava Frid, who helped me with disassembly, was the TA. My lab included Windows NT and 2000 virtual machines. Some students had Windows 98 and ME. SoftICE was my favorite debugger. My concluding slide said:
- Too many variables to research without assistance
- Ask colleagues, search Web sites, mailing lists, virus databases
- Share your findings via personal Web sites, incidents and malware mailing lists
That advice applies today, though one of the wonderful changes in the community from those days is a much larger set of forums and blogs focused on malware analysis techniques.
By 2004, the course was two-days long and covered additional reversing approaches and browser malware. In 2008 it expanded to four days, with Mike Murr contributing materials that dove into code-level analysis of compiled executables. Pedro Bueno, Jim Shewmaker and Bojan Zdrnja shared their insights on packers and obfuscators.
In 2010, the course expanded to 5 days, incorporating contributions by Jim Clausing and Bojan Zdrnja. The new materials covered malicious document analysis and memory forensics. I released the first version of REMnux, a Linux distro for assisting malware analysts with reverse-engineering malicious software.
Around that time the course was officially categorized as a forensics discipline by SANS and was brought into the organization's digital forensics and incident response curriculum thanks to the efforts of Rob Lee.
Growting to a Full-Length Course
In 2013, the FOR610 course was expanded from five to six days, matching the duration of the majority of full-length classes at SANS. Thanks to the efforts of Jake Williams, the students were offered the opportunity to reinforce what they've learned and fine-tune their skills by spending a day solving practical capture-the-flag (CTF) challenges. The challenges were built using the NetWars tournament platform. It's a fun game. For more about this expansion, see Jake's blog and read the perspective on this tournament by Anuj Soni, who has taken over the management of the CTF materials from Jake.
Of course, the course continues to be updated regularly to keep up with malware trends and the tools available to the investigators. It's exciting to see the community of malware analysts increase as the corpus of our knowledge on this topic continues to expand. Thanks to all the individuals who have helped me grow as a part of this field and to everyone who takes the time to share their expertise with the community. There's always more for us to learn, so keep at it.