LMU ☀️ CMSI 662
SECURE SOFTWARE DEVELOPMENT
HOMEWORK #2 Due: 2025-02-21

Learning Objectives

In this assignment you will demonstrate:

Read and Watch

Do the following:

Activity

Sign up for an account on PicoCTF and complete as many of the challenges from the playlist The Beginner's Guide to the picoGym as you can. Strive to complete at least 10.

Submission Instructions

Submit via BrightSpace, a text or pdf document with:

Please note that several of these questions involve research to answer questions not specifically addressed during lectures (though they may build on the big ideas introduced during class meetings).

Exercises

  1. Give the titles and URLs of the three Tom Scott security-related videos you watched (to completion), together with a sentence or two on the purpose or lesson if each video.
  2. Research the concept of Security Through Obscurity. Write up a couple paragraphs describing what this phrase refers to, give some examples, and describe why it is (generally) a bad thing. It is okay to receive help from an AI assistant; however, make sure the most important downside of STO is clearly articulated, so take care in crafting a strong prompt if you do choose to use a chatbot.
  3. Give (software) examples of (a) a failure of confidentiality, (b) a failure of integrity, and (c) a failure of availability.
  4. Capture at least 10 flags in PicoCTF. State the names of the ten challenges you completed, and for each, whether they were easy, medium, or hard.
  5. Select 3 guidelines each from the SEI CERT Guidelines in this assignment’s reading list (for C, C++, and Java). For each, give their name, their number in the CERT numbering scheme, a description of the standard in your own words and an example of your very own of code that is compliant with the selected guideline. (You may optionally include a non-compliant piece of code too, but please mark it as non-compliant.) Yes, your answer will be very much based on the code in the standard itself, but the effort you put into answering this question well, and testing the code, will help you reach the learning objectives and increase your familiarity with these useful documents. (Be careful to select 9 guidelines that are markedly different from each other.)

Grading