CSC 449/649 Secure Software Development

Course Syllabus

Spring 2021

Course Information

Meeting Dates:   Tuesdays / Fridays, 1/19/21 – 5/4/21

Class Hours: 11:20 AM-12:35 PM

Credit Hours: 3 credits

Room: Online

Professor

Dr. Charles Pak

Office hours:  By appointment

[email protected]

Mobile phone: (410)805-2110

Course Description

Secure software development addresses the real software issues from the inception of the software lifecycle. Software security is a new security concept that had been ignored for many years when developing software. Software security deals with the vulnerabilities in software design from the requirement analysis phase of the software design life cycle (SDLC). We find most of the software vulnerabilities while using the software in operation. However, many of these software vulnerabilities are induced from the life cycle of software from the development to maintenance phases. This course explores the real software security issues to minimize the impacts to an organization.

Course Objectives

Upon successful conclusion of this course, students will be able to:

· assess software security requirements to prevent data loss;

· design software to meet software security requirements;

· develop strategies to mitigate security vulnerabilities;

· develop guidelines for operational security;

· conduct software security reviews and audits; and

· develop a software security monitoring policy.

Required Text

Van Wyk, K. R., Graff, M. G., Peters, D. S., & Burley, D. L. (2014). Enterprise software security: A confluence of disciplines. ISBN-13: 978-0321604118

Course Structure

Secure Software Design and Development is a three-credit online course consisting of seven modules. Modules include an overview, topics, learning objectives, study materials, and activities. Module titles are listed below.

1: Software Vulnerabilities
2: Designing Secure Software
3: Testing Software Vulnerability in SDLC
4: Mitigating Software Vulnerabilities in SDLC
5: Operating Software Security
6: Maintaining Software Securely

7: Review of Software Security

The method of instruction will combine the following elements:

Discussion Participation

Secure Software Design Phase in SDLC Paper

Secure Coding Phase in SDLC Paper

Secure Software Testing in SDLC Paper

Lab1 - Virus and Worm VIPRE Antivirus Internet Security

Lab2 – Denial of Service Using Wireshark

Lab3 – Nessus Scanner

Project Topic

Draft Project Paper

Final Course Project

Secure Software Design Phase in SDLC Paper

Your paper should include a novel or practical approach of secure software design phase of the SDLC. Your paper should describe the current secure software design methodologies in cyberspace and recommend the best approach to securely design software.

Secure Coding Phase in SDLC Paper

Your paper should include a novel or practical approach of secure software coding phase of the SDLC. Your paper should describe the current secure coding methodologies in cyberspace and recommend the best approach to securely code software.

Secure Software Testing in SDLC Paper

Your paper should include a novel or practical approach of secure software testing phase of the SDLC. Your paper should describe available secure software testing methodologies and recommend the best approach to securely test software.

Policy on Paper Submission

Papers are due on the date they are due. Up until midnight of that night, no penalty will accrue. Please note that life emergencies happen. Do NOT wait until the last moment to start on your paper. If you do that and something comes up to impede your progress, it will hamper your ability to turn in your paper on time. Papers MUST be submitted electronically online.

Final Course Project - Secure Software Design and Development

OVERVIEW

In recent years, we have seen cyberattacks on national critical infrastructure, corporate networks, and government organizations. The Stuxnet worm was one of the Cyberterrorism exploitations that raised many controversial issues in politics, academia, and industry. Russia has exercised its cyber capabilities against its neighbors by attacking power grids with cyberattacks. An Indian city lost power for several days due to a cyberattack. India believes it was an act of cyberterrorism.

Considering these prevalent cyber vulnerabilities, we must ensure our software is secure enough to operate critical infrastructure systems such as power grids, water system, transportation, communication, and others. The Department of Homeland Security (DHS) is chartered with protecting these national critical infrastructure systems.

Our supervisory control and data acquisition systems (SCADA) that manage the national critical infrastructure are interconnected to Cyberspace for management, configuration, and monitoring. Any failure in one of these systems can present a debilitating consequence to national security, economy, health, and others.

The student will research and write a 10-15 page, APA formatted, paper on software security to include the prominent security issues, especially the issues in software deployed in national critical infrastructure systems. The paper will include recommendations to mitigate these security issues in the SDLC process.

GUIDELINES

● You should follow accepted scholarly essay paper outlines and citation format (APA).

● Your paper should be well developed and convey your understanding of the essay and the concepts learned.

● Your paper should be organized, coherent, and unified.

● Your paper should be free of spelling and grammatical errors.

● Be sure to document all contentions and “facts” mentioned in an academically acceptable manner. (See writing resources below).

Course Requirements

Participation:

With this being an adult educational experience, my expectations are that we have a robust discussion that presents differing views of the various topics each Module.  Everyone is expected to participate in the discussion.

Attendance:

This is a highly participatory course and class attendance is mandatory. Students are expected to attend all classes. Absences and delayed Blackboard required submissions due to work or medical requirements should be discussed with the instructor prior to the missed class or late assignments, if possible.

Reading Assignments:

In order to prepare you for the discussions in class, all reading assignments must be completed prior to class meetings.  Other readings will be posted or handed out in class for discussion.

Grading Policy:

The overall course grade will be established as follows:

Grading Criteria

Percentage

Discussion Participation

10

Essay Paper 1 – Software Vulnerabilities

10

Essay Paper 2 - Secure Software Design Phase in SDLC

10

Essay Paper 3 -Secure Software Testing in SDLC

10

Essay Paper 4 -Secure Software Mitigation Methodologies

10

Lab1 - Nessus Scanner

10

Lab2 – Denial of Service Using Wireshark

10

Lab3 – Virus and Worm VIPRE Antivirus Internet Security

10

Final Course Project Paper

20

Total

100

Grading Scale:

A   = 93-100 A-  =  90-92 B+ =  87-89 B   =  83-86 B-  =  80-82 C+ =  77-79

C   = 73-76 C-  =  70-72 D+ =  67-69 D   =  63-66 D-  =  60-62 F    = <59

Academic Integrity

The University community, in order to fulfill its purposes, must establish and maintain guidelines of academic behavior.  All members of the community are expected to exhibit honesty and competence in their academic work.  Incoming students have a special responsibility to acquaint themselves with, and make use of, all proper procedures for doing research, writing papers, and taking examinations.  Members of the community will be presumed to be familiar with the proper academic procedures and held responsible for applying them.  Deliberate failure to act in accordance with such procedures will be considered academic dishonesty.  Acts of academic dishonesty are a legal, moral, and intellectual offense against the community and will be prosecuted through the proper University channels.  Copies of the University code of Academic Integrity can be obtained from the following officers:  all department chairs, all academic deans, the Registrar, and the Vice President for Academic Affairs.

Plagiarism Policy

Course writing assignments are designed to teach you to write and research responsibly and ethically.  To learn strategies for researching, compiling, and presenting your writing, you must complete all stages of the work yourself.  Taking the words of others, or presenting the ideas of others, as your own not only prohibits you from learning the skills of academic research, it also violates the University's Code of Academic Integrity. The University defines academic dishonesty as "cheating of any kind, including misrepresenting one's own work, taking credit for the work of others without crediting them and without appropriate authorization, and the fabrication of information."

Course Schedule and Agenda*

*Changes to the syllabus may occur at any time during the semester.  Changes will be announced in class and/or on Blackboard as soon as possible.

Module Objectives, Discussion Topics, Assignments Schedule

SECURE SOFTWARE DEVELOPMENT

Module 1 – Software Vulnerabilities; Week 1-2 (1/19-2/1)

Class Orientation

§ Introductions

§ Course overview and introduction, review of syllabus and readings, assignments

§ Instruction Components and Learning Styles

§ Paper – Format, Expectations, Some Pointers

§ Research Paper Assignments

§ Lab Assignments

In this module, the student will analyze the prevalent software vulnerabilities in the cyberspace and explore the future trends in software attacks.

Module 1 Discussion Topics.

Malicious software exploitation in the cyberspace

Web Server Vulnerabilities

Malicious software attacks in Cyber Terrorism

Inherent software vulnerabilities

Module 1 Objectives

After successfully completing Module 1, students should be able to:

· evaluate malicious software in the cyberspace;

· assess mission critical software for vulnerabilities;

· critique embedded firmware vulnerabilities.

Introduction Forum

In the Introductions Forum, start a discussion topic titled “Introductions/[Your Name].” In your posting, please address any of the following topics or anything about yourself that you would like to share with the class so that we can get to know you better. Reply to at least two classmates’ responses by the end of Module 1.

Your reasons for taking this course

Your interest in Secure Software Design and Development

Your background in general

Your experience with online learning

Your expectations from this course

Note: The Introductions Forum is not graded but required

Discussion Forum 1

In Discussion Forum 1, post your response to the following discussion topic. Reply to at least two classmates’ responses by the end of Module 1.

Software vulnerabilities in cyberspace can range from the simple outdated security patches on national critical infrastructure systems to poorly designed defense missile control systems. When these industrial control systems, military weapon control systems, air control transportation systems are designed without security built into the software, their security vulnerabilities are paramount to the national security, economy, and human health.

Do research on the latest prominent software vulnerabilities and share your literature review findings with the class.

Textbook Readings

Van Wyk, et al. (2015) - Chapters 1.

Reading Assignment – Read Chapter 1

Written Assignment1: Software Vulnerabilities

Software vulnerabilities can cause debilitating consequences in our national critical infrastructure, mission critical applications in a corporate network, and in health and transportation systems. It is paramount to mitigate these vulnerabilities in the initial stages of software design. Do your research on software vulnerabilities and write a 5-10 page, APA formatted, research paper on software vulnerabilities that have devastated our networks.

Considering the impacts of software vulnerabilities, do a literature review to select at least five sources, other than the course’s textbook, that discuss the current software vulnerabilities in cyberspace.

After analyzing your findings on the impacts of cyber vulnerabilities, write a 5-10 page APA formatted paper [not including Title Page, References Lists, etc.], based on your research, in which you identify and analyze cyber vulnerabilities that have inflicted our society with grave consequences.

Your paper, should include:

a brief summary of the selected articles;

a clear description of cyber vulnerabilities you have identified from your research;

details on how these vulnerabilities had been exploited.

any implications or problems you have identified for the affected environment;

a summary section that provides any conclusions you have reached as a result of doing the research and writing the paper; and

a reference page.

Note: The research findings included in the written assignment paper, may reference, or be related to, the topic discussed in Discussion Forum 1.

Module 2—Designing Secure Software; Week 3-4: (2/2-2/15)

In this module, the student will examine security controls in the software requirements to ensure software will be designed with “security built-in.” The student will analyze the software functions and security controls to provide well-balanced software.

Module Topics

Module 2 covers the following topics:

Security requirements

Security balance

Code review

Security mechanisms and controls

Assignment – Read Chapter 2, Review Paper Topics

After successfully completing Module 2, students should be able to:

Module 2 Objectives

· analyze security requirements in software;

· ensure security controls and mechanisms are applied;

· develop security safeguards in software design.

Textbook Readings

Van Wyk, et al. (2015) - Chapters 2-3.

Discussion Forum 2

In Discussion Forum 2, post your response to the following discussion question. Reply to at least two classmates’ responses by the end of Module 1.

In this forum, the student will research the best secure software design methodologies to prevent vulnerabilities and share his/her findings with the class. The student will post a literature review on a researched ACM or IEEE paper.

Building security in the design phase of the software development lifecycle (SDLC) is important to be successful in securing software. What is the right approach in securing SDLC phases so that we can identify software issues early and mitigate them while designing software? Explain what implications we may face if we don’t identify and mitigate security issues in the SDLC phases.

Written Assignment 2

Secure Software Design Methodologies – The student will write a 1-2 page, APA formatted, literature review paper on secure software design methodologies. The paper topic may be related to the discussion topic.

Write your research paper based on your findings on secure software design methodologies. You will recommend the best software security design methodology that can prevent security issues while designing the software in the SDLC phases rather than after the software deployment phase. Further, justify why your approach is better than others with realistic benefits.

Assignment - Lab1 - Nessus Scanner

You have access to the Lab 1- Nessus Scanner document in assignment folder. Please following the instruction to complete the lab and provide your findings and results in your lab activities. Your lab report should be prepared in APA. Please see the lab instruction documents.

Module 3—Testing Software Vulnerability in SDLC: Week 5-6: (2/16-3/1)

In this module, the student will analyze, test, and recognize software vulnerabilities using security testing tools.

Module Objectives

After successfully completing Module 3, students should be able to:

· assess software security vulnerabilities;

· test security vulnerabilities in software;

· utilize software vulnerability testing methodology.

Textbook Readings

Van Wyk, et al. (2015) - Chapters 4-5.

Discussion Forum 3

In Discussion Forum 3, post your response to the following discussion question. Reply to at least two classmates’ responses by the date indicated in the Course Calendar.

In this forum, the student will research a proven software security testing methodology to discover software vulnerabilities and share his/her findings with the class. The student will post a literature review on a researched ACM or IEEE paper.

Research for proven software security testing methodologies to discover software vulnerabilities. Select one that can be effective in an organization and justify why your selected testing methodology is best for a specific organization.

Written Assignment 3

Secure Software Testing Methodologies – The student will write a 1-2 page, APA formatted, literature review paper on a secure software testing methodology. The paper topic may be related to the discussion topic.

There are many software security testing methodologies as such as risk-based, agile, and other structured testing methodologies. In your research, synthesize your findings of best software security testing methodologies that can be adopted by organizations to defend the asymmetric cyber threats

Module 4—Mitigating Software Vulnerabilities in SDLC: Week 7-8; (3/2-3/15)

OVERVIEW

In this module, the student will mitigate software vulnerabilities using security tools. In this module, the student will mitigate software vulnerabilities using security tools.

Chapter 4 Code Review with a Tool:

Module 4 covers the following topics:

Software vulnerabilities

Software security tools

Software vulnerability mitigation

OBJECTIVES

After successfully completing Module 4, students should be able to:

· mitigate security vulnerabilities in SDLC phases;

· utilize security mitigation tools in removing vulnerabilities;

· leverage proven methodologies in mitigating vulnerabilities.

STUDY MATERIALS

Textbook Readings

Van Wyk, et al. (2015) - Chapters 4-5.

Discussion Forum 4

In Discussion Forum 4, post your response to the following discussion question. Reply to at least two classmates’ responses by the date indicated in the Course Calendar.

In this forum, the student will research the best secure software mitigation methodologies using tools and share his/her findings with the class. The student will post a literature review on a researched ACM or IEEE paper.

Automation is key to our success in security to minimize manual processes and avoid errors. Research any automation we can apply in software security; especially, in the initial stages of the SDLC phases. Software errors and bugs discovered in the SDLC will save the program cost and engineers’ effort in mitigation them after deployment. Provides evidence of benefits of using the automation or tools in your post.

Written Assignment 4

Secure Software Mitigation Methodologies – The student will write a 1-2 page, APA formatted, research paper on secure software mitigation methodologies using tools. The paper topic may be related to the discussion topic.

From your research, write a security software mitigation methodology using a tool. Benefits from the automation can empower the security professionals in cost reduction and efficient automation in mitigating software vulnerabilities. Describe the best security mitigation methodology to automate the vulnerability removal process using a tool.

Assignment – Lab2 - Denial of Service Using Wireshark

You have access to the Lab 1- Nessus Scanner document in assignment folder. Please following the instruction to complete the lab and provide your findings and results in your lab activities. Your lab report should be prepared in APA.

Week 8: Project Paper Outline

The outline should include, at a minimum:

ü Title and References pages;

ü a brief summary of the articles used;

ü a statement of the key problem(s) with SDLC phases;

ü a discussion of the importance of testing SDLC phases;

ü an explanation of software related cyber vulnerabilities;

ü recommendations on how to mitigate cyber vulnerabilities;

ü the real software security issues;

ü recommendations for secure software development and deployment; and

ü conclusions.

Module 5—Operating Software Security: Week 9-10 (3/16-3/29)

OVERVIEW

In this module, the student will operate software securely using security tools.

TOPICS

Module 5 covers the following topics:

Security Thresholds

Intrusion Detection

Mission Critical Applications

Incident Response