You are on page 1of 6

CS 3240 - Spring 2021 / Maintenance & Security Quiz

Computing ID Name

rpr6at Ryan Robinson

On my honor as a student, I have neither given nor received unauthorized assistance on


this assessment.

Signature: Ryan Robinson

For all questions, we expect you to answer in full sentences unless specifically directed
otherwise.

The best answers to questions will:


● Use good grammatical structure with complete sentences
● Be succinct and direct
● Show understanding of the material
● Not contain superfluous information
● Be professionally stated

Instructions: Please make a copy of this document into your own personal Google Drive folder.
Then type your answers underneath the associated question. Export your final submission as a
PDF and upload to the appropriate assignment in Gradescope.

When you upload, you MUST choose the correct page(s) for each question! If you do not
do this, we may miss your questions and not grade them!

This quiz is open notes/slides/videos. You may reference any material from the course that you
like. Indicate on each question at the bottom of the page what material you referenced, if any.
You may take as much time as you require, but please don’t go overboard and spend hours on
this when you have other things to do. The quiz is intended to take around one hour. If you do
not do well on the quiz, remember that you will have a chance to retake these questions as a
part of the final exam to earn any XP you did not get on this quiz. Just do your best!

You are on your honor not to discuss this quiz with any other students or share answers in any
way! Copying any text from any source word for word (including course slides or any
website) will earn 0 XP and a professionalism penalty.

You may post questions privately on Piazza, but note that there are VERY few questions that we
will answer. We need to make sure that everyone has the same information to be fair to all.
Further, no late work is accepted since quizzes can be retaken as a part of the final exam.

Good luck!
CS 3240 - S21 / Maintenance & Security Quiz

1. Discuss why maintenance is the most expensive of the phases of development. (2000 XP)
Maintenance is the most expensive phase of development because it takes far more time to
effectively integrate new features, changes, or fixes into an existing code base than it does to
just make it from scratch. This is because the new features need to be implemented carefully
without breaking or changing anything and developers are limited by the constraints of the
current system (for example you can’t just change your backend framework). In addition, devs
assigned to maintenance need to have a good understanding of the code base. This is an issue
because oftentimes the newer devs with less experience are assigned to maintenance. This
cultural problem leads to more inefficiency and higher costs.

2. Discuss the concepts of authentication versus authorization in the context of your specific
semester-long project (e.g. roommate finder, what’s changed, etc.). What could be the potential
consequences/impact if there were failures with either authentication or authorization? (2500
XP)
Authentication is when you verify to the system who you are, and authorization is what the
system allows you to do. Our project is a mapping application that allows you to leave reviews
on notable UVA locations. Authentication through a google login is used to tie users with the
reviews that they leave. It allows the system and other users to verifiably know who is leaving
specific reviews. Authorization is used so that only specific google accounts (namely the
developers) can add new locations to the database.

If the authentication failed, users would be able to leave reviews as any student they wanted.
This is incredibly dangerous as one could impersonate another student and leave a review that
does not reflect their opinions or views. There would be no way to track back the review to the
impersonator. If the authorization failed, any student could add new locations to the database.
This would be detrimental as well. Fake, non-UVA, or duplicate locations could be added which
would make it very difficult for normal users to effectively use the application. If someone was
malicious, they could add a large amount of fake or duplicate locations which would make it
very difficult for users to use the app as intended.

2/6
CS 3240 - S21 / Maintenance & Security Quiz

Read the Quiz 6 Scenario on the next few pages.

3. We discussed how software security isn’t something that can just be “bolted on” to a project -
it has to be carefully considered and implemented throughout the development process. Why
is this the case? Consider the potential security implications of StewDoor. Using what we
discussed regarding security and general risk assessment and mitigation strategies, describe
what you would do during each stage of development to ensure the security of StewDoor.
(NOTE: just repeating back general advice from the videos will not be acceptable - be specific! -
also note that cat doors are not big enough for humans to crawl through, so that *isn’t* the type
of security risk we are thinking of...) (4000 XP)

To keep software as secure as possible, developers need to think about how their software can
be misused from the very start. In every phase of the software development life cycle it needs to
be something that is in the discussion because there is no special “wrapper” you can just put on
a project after it’s done to be secure. If you waited until the end of a project to make it secure,
you could find out a package you’re using has a huge security exploit and there would be
nothing you could do short of rewriting the application. Security should have been in the
discussion while you were choosing what packages to use.

For the requirements stage, it would be essential to communicate with Schlage and determine
what data they want to keep safe so StewDoor is consistent with other products. The most
important data would likely be the token that identifies pets and opens the door. While not as
important, the pet analytical data (how long pets are out, when they come and go, etc.) should
also be protected as that could theoretically be misused. For the design stage, each new added
package/module should be investigated before being put into the design. ChloeSoft could try to
use the packages that Schlage already uses which have hopefully already been vetted (ChloeSoft
should verify this). This would reduce the number of potential attack vectors. The system
should be designed keeping the levels of protection in mind from the requirements stage, and
output data should be insulated and only return what is needed (the module that retrieves the
analytics shouldn’t need the pet identifying ID for example). For the implementation, code
reviews using in house Chloesoft employees should be frequent. If possible, the Schlage security
testing and risk assessment people should be brought in after major milestones to evaluate and
test the software for vulnerabilities. This testing, with or without the help of the Schlage
security team, should be done throughout the development of the project and not just in one
specific phase. Testers should attempt to retrieve Pet ID and Analytics data as an outside user.
For maintenance, the ChloeSoft team should have a constant open channel of communication
with the Schlage team regarding security loopholes. Hopefully StewDoor and the rest of the
Schlage products will have been implemented with most of the same packages, so if Schlage
detects a loophole/exploit with their system or a system they depend on they should tell
ChloeSoft immediately. Chloesoft should continuously monitor its system and the systems it
depends on for new exploits/bugs and should be prepared to go through the entire security
design process again should schlage add a new feature that needs to be accommodated.

3/6
CS 3240 - S21 / Maintenance & Security Quiz

4. What are some potential maintenance activities that ChloeSoft may have to perform in the
future? Give one example for each of the categories below, explaining how and why ChloeSoft
would perform that type of maintenance. (500 XP each)

a. Adaptive: If Schlage changed the way you retrieve data from its webserver API, ChloeSoft
would have to update their system to retrieve data using the new method so it could continue to
work with the Schlage system.

b. Perfective: If Schlage wanted to integrate the stewdoor opening functionality with their
phone app, ChloeSoft would have to change their system to be able to retrieve data from the app
and open the door accordingly in order to add the new functionality.

c. corrective: If a bug is discovered where two pets walking through at the same time confuses
the analytics tracker, Chloesoft would have to find and fix the issue so that the analytics system
could continue to work as intended.

4/6
CS 3240 - S21 / Maintenance & Security Quiz

APPENDIX: Quiz 6 Scenario ( 🤷 - Yup, same scenario...)


Background
ChloeSoft is a small start-up company based in Richmond, VA. Started by a mix of UVA, GMU,
and VT grads (and, strangely, one WVU grad?) in 2019, the company was founded with one
driving principle: the creation of “smart home” technology… for cats. Yes, indeed - the
untapped feline market. Cats who like to come and go as they please and owners willing to pay
big bucks to make it happen.

The development team is made up of 10 cat enthusiasts who graduated in 2019. Many of them
had internships at Microsoft, Google, and Amazon, so they feel pretty confident in their coding
and management skills. All 10 of these developers work together in a single open office in
downtown Richmond (right near Bottoms Up Pizza, if you are familiar with the Shockoe Bottom
area of Richmond). While they all have their own desk and work area, all desks are in one,
large open space, with separate rooms for making private phone calls as needed.

Project
ChloeSoft’s latest and greatest idea is the StewDoor, an automatic cat door that could be installed
in an external home door. A StewDoor would detect a cat approaching by a sensor attached to
the cat’s collar. The door would then dynamically unlock and open, allowing the cat in question
access to the home.

Schlage, a company known for making locks of all shapes and sizes (including smart locks), has
taken an interest in StewDoor and wants to partner with ChloeSoft. Schlage would like to add
StewDoor to an all-in-one smart home lock kit that would come with smart locks for two
external doors in addition to one StewDoor. This all-in-one system would have to integrate with
the latest in smart home technology, working with Google Home, Alexa and Apple Home, in
addition to working with Schage’s own smart lock mobile app.

The development team is thrilled by this amazing opportunity, but is really nervous. None of
them have ever tied a system like what they are building into an established system like
Schlage’s, let alone ALL of the smart home systems on the market! Schlage has provided a
detailed tech guide that you have to follow in order to get StewDoor ready for integration, but a
lot of it is unfamiliar. ChloeSoft decides to hire 5 more developers to help with this project -
folks that have experience with smart home tech. The individuals you find have a lot of
experience, but are scattered all over the United States and one in Germany.

The contract from Schlage states that StewDoor has to be ready in 8 months, or else you forfeit a
lot of money. The contract doesn’t say if they will be providing any further technical or testing
support. However, there is a rather rigorous certification process your system will have to go
through, which includes a review of all testing procedures and a detailed design document.

5/6
CS 3240 - S21 / Maintenance & Security Quiz

New Information for Quiz 2


Your team has been pouring over the contract and product documentation that Schlage has sent
you for the past week. The engineers at Schlage really want you to ensure that StewDoor is fully
integrated into their system, which includes things like branding, analytics, and interface
design. From a functionality perspective, they (of course) are a huge fan of the transmitter on
the cat’s collar that will unlock the pet door. But they would also like for the pet door to unlock
if the main door to the house is unlocked by the owner as well.

Schlage’s all-in-one system also has a robust analytics component. Owners can check to see the
percentage of time doors are locked or unlocked and the number of times a door is locked or
unlocked during a given time frame, for instance. StewDoor needs to work seamlessly with this
analytics system as well. Schlage also wants you to add the capability to recognize multiple
different pets as they come and go, recording that data appropriately so that analytics can be
performed on individual pets.

New Information for Quiz 5


Schalge has provided you with more information about their all-in-one system. Specifically,
they have given you a general architecture diagram (which you quickly gloss over) and a
detailed REST API. Apparently, the main hub of the all-in-one system has a small web server /
webapp running on it that accepts HTTP REST calls and responds with JSON. It’s up to you to
figure out how to design a version of StewDoor to work specifically with their system,
connecting to that API. Make sure to look back over the information from previous quizzes to
see all the features Schlage is expecting!

You can assume any normal, basic functions for the API that you think are relevant for your
design. The objective is not to model Schlage’s system, but the StewDoor system, which just
happens to have a connection to Schalge’s all-in-one. Also, you do not need to consider any
software running on the sensor on the cat’s collar. You can think of it generically like a passive
transmitter that’s always sending out a simple ID value (kind of like NFC).

New Information for Quiz 6


The contract ChloeSoft signed indicates that your team will provide support and updates for the
StewDoor system for five years, with the opportunity to renew that contract. During the five
years, your team is required to prepare appropriate documentation (both in the code and in
external design documents) for StewDoor so that if the contract is not renewed, Schlage can
continue to provide support on their own.

Schlage has required that you provide any results from security testing and risk assessment
efforts that you have performed. They plan on performing their own thorough security testing
and risk assessment and are keenly interested in what potential attack vectors you anticipate.

6/6

You might also like