This material is for graduate students and undergraduate students doing “contract honors” for this class only.
Research activities are divided into two parts: single paper reviews with provided papers, and a self-directed research paper on a topic of your choice. For general background into standards and practice of research in computer security, see the Research in Computer Science and Computer Security overview.
For part of this course, you will be given current research papers to read and review. In general, you will be given 2 weeks to read these papers and consider the results, and write a 1-2 page summary of each paper.
In your review, you should (briefly!) address the following issues:
These points should be clearly woven into a narrative report – don’t make a bullet list or answer these as if they were individual questions! In your review, remember that everything you write should be your own words, so don’t copy any text (including conclusions) from the paper.
Report due Thursday, Feb 10: L. Szekeres, M. Payer, T. Wei and D. Song, “SoK: Eternal War in Memory,” 2013 IEEE Symposium on Security and Privacy, 2013, pp. 48-62, doi: 10.1109/SP.2013.13.
Report due Thursday, Feb 24: P. Godefroid, M. Y. Levin, and D. Molnar, “Automated Whitebox Fuzz Testing,” 16th Annual Network and Distributed System Security Symposium (NDSS), 2008. Online version
Report due Thursday, March 24: B. Eriksson, G. Pellegrino and A. Sabelfeld, “Black Widow: Blackbox Data-driven Web Scanning,” 2021 IEEE Symposium on Security and Privacy (SP), 2021, pp. 1125-1142. Author’s online version
For this part, you are to select a security research topic that you are interested in, locate research papers to read to learn about current research in that topic, and then write a paper summarizing current state-of-the-art research related to that topic. To keep this “current,” your primary references should be publications from within the past five years. If at any point you are uncertain about what is expected, or if you would like some guidance, please contact me – don’t just make guesses about what you should do! The major “project milestones” are explained below.
Topic selection (due Tuesday, March 29): Submit a basic description of your project topic in Canvas. All I need is a very brief (couple of sentences) description of your project topic, but if you want to provide more information then I can give you feedback on that. I will hand out a list of potential projects in class, but you are not restricted to those topics.
Progress report (due Tuesday, April 19): By the time of the progress report your project should be pretty well investigated, meaning you’ve collected and read the main reference papers, and thought through what you’re going to write about in your report. You should turn in a progress report that contains the introduction section to your project report (this should describe the topic you’re studying at a high level and describe what you will be giving details on), as well as an outline of your report and a list of bibliographic references that you plan on using. You need at least two solid references (peer-reviewed conference or journal papers). Make sure you use appropriate citation styles (including full conference/journal names, dates, and page numbers).
The progress report is graded, and counts for 20% of your overall project grade. However, the most important part of the progress report is that I will provide comments and suggestions in Canvas soon after you submit it. This is where I tell you if you are going in the right direction, and give suggestions for things you should include for a good final report. You can turn in your progress report at any point, and I will provide feedback promptly. You are encouraged to turn in your progress report before the deadline so you can get early feedback on the direction you are taking!
Final report (due Tuesday, May 3, 3:30 PM): Your final report is due at the scheduled final exam time.
This is intended to be a research oriented project, not a technology description. A topic which describes a product or system but without any significant underlying research question is not appropriate. For instance, a report on a tool like the AFL fuzzer isn’t appropriate, but a report on new techniques introduced in that fuzzer along with summarizing experimental results and comparisons with other techniques would be good.
Keep in mind that this is a computer science class, and technical depth is important. Formulas, theorems, proofs, and analysis are certainly important and should be included as appropriate. Since this is a research topic, it’s also important to think about (and write about) what questions are left unanswered by the current research that should be investigated (“open problems”). As for the length of the paper, something around 10 pages (11 or 12 point font, single spaced) should be enough to cover the important parts. There’s no need to try to write about everything that’s out there related to your topic.
Remember that the writing should be entirely your own – it is not acceptable to copy text from a paper or the web. My general advice to people is this: Investigate and read as much about the topic as you can until you really understand it, taking some light notes. Then you should know the topic well enough to put aside all your references, and do the writing without looking at the original material. That ensures that the writing is coming from you and not the reference material.
The following are some of the leading security conferences, all of which publish research papers in software security (and many other security topics) and provide excellent material. You don’t have to restrict yourself to just security conferences, of course – excellent work in software security is also published in software engineering and programming languages conferences. Note that while most recent papers are “open access,” some are only available to subscribers. UNCG has subscriptions to all these sources, so they should be accessible from on-campus computers, or through the UNCG Library Proxy.