An ongoing blog about my experiences with research this semester!
Fall and spring semesters of my senior year, I worked as an undergraduate research assistant on a project funded by the Airforce. The grant was to investigate ways that biological systems fight viruses and try to apply those ideas to computing. This was my first experience with research, and I learned a lot, both about the research topic and about the research process.
For most of the first semester, this experience involved reading papers and formulating ideas about how we could apply the concepts to computing. I sent monthly reports to the professor I was researching under, Anca Ralescu, detailing the papers I had read and the ideas I had come up with.
The second semester is when I was able to start applying my readings, and wrote a program to graph a program’s “walk.” This approach was Dr. Ralescu’s idea, based on similar work done for graphing DNA sequences. The advantage is it allows us to visually compare two programs, and gives us the opportunity to create a distance metric to numerically compare the programs.
The other contribution I made was creating a program to calculate the distances between two programs. This approach did not work with the graphs I created in the first approach, but rather generalized an approach by Dr. Numrich in order to calculate these distances without first running the program. Below you can see some of my results.
Figure 1. (Left and center) Two samples of malware from the same malware class. You can see that they appear visually similar. (Right) A sample of malware from a different malware class. You can see that it is visually different form the previous samples.