关键词 > COMPSCI7412

COMP SCI 7412 secure software engineering

发布时间:2025-09-09

Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit

Assignment 1

Assignment  1(15%)-Individual Assessment

Submission Type:PDF Document via MyUni

Assignment Description

In this assignment,you will learn about software vulnerabilities and associated systems such as   Common Vulnerabilities and Exposures(CVE),National Vulnerability Database(NVD),Common  Weakness Enumeration (CWE),Common Vulnerability Scoring System(CVSS).This assignment consists of the following two parts.

Part 1-Vulnerability Identification and fixing

Study about SQL Injection(CWE-89),OS Command Injection(CWE-78)and Code Injection(CWE-94) on Common Weakness Enumeration and related websites.Write in your own words about your

understanding of these vulnerabilities(up to 100 words for each vulnerability type)(1%)

1.2.Identify 2 GitHub repositories for each of the three vulnerabilities.The sum does not need to be 6 repositories.It is fine if a single repository has all three vulnerabilities.This means the minimum

number of repositories should be 2 and maximum 6.Each of the selected repository must satisfy the following  conditions.(2%)

·The programming languages must be either Java,JavaScript,PHP or any other programming languages

·The repository has more 100 stars and 10 contributors on GitHub

Please note that each student is expected to identify unique GitHub repositories.We will be able to

detect whether you have shared the information of your selected repositories with any other student,or the repositories are identical by chance.

Once you have identified such repositories,you will need to extract and document the following information.

A.Name of the repository

B.Number of repository stars

C.Number of contributors in the repositories

D.Type of vulnerability(CWE)

E.Link to the file

F.Link to the commit that fixes the vulnerable file

G.Name of the file

H.The programming language used in the file

1.3.Take a screenshot and underline (in red color)the code lines within the source code files you have identified that contain the vulnerabilities you found.There will be a total of 6 screenshots.For each of   the screenshot,explain(within  100 words  for each vulnerability)how the vulnerable  lines correlate to    the definition or causes of the vulnerability(e.g.,SQL injection)and how this vulnerable code can be    exploited  by  the  attacker.(3%)

1.4.Explain(within  100 words for each vulnerability)that  how each of the vulnerability can be fixed. (1%)

Part  2-Exploring  and understanding vulnerability resources.

2.1.Visit the website  and  study  about  Common  Vulnerabilities  and  Exposures(CVE),National

Vulnerability  Database(NVD),Common  Weakness  Enumeration  (CWE),Common  Vulnerability

Scoring System(CVSS).This  part  helps you to  gain  background  about the security vulnerabilities.You do not have to submit this part.

2.2.Install and  learn  how  to  use  Git  commands(e.g.,git  log,git  show,git diff).You  DO  NOT  have  to submit this part.

2.3.Register a GitHub account or reuse your existing one.

2.4.Determine the CWE(type)of each vulnerability.Include the CWE you  have found  in the  report. (1%)

CVE- ID

Project Link

Fixing Commit

CVE-

2018-

11087

https://github.com/spring=

projects/spring-amqp

(https:/lgithub.com/spring: projects/spring-amqp)_

aff4d0aefcdb99726fd739abf3b9bb96df97bOf

CVE-

2017-

14735

https://github.com/nahsralantisamy.

(https:/lgithub.com/nahsra/antisamy)_

82da009e733a989a57190cd6aa1b6824724f6d36

2.5.Study about the process of how to go from CVE-ID to the corresponding GitHub repository for

assigned vulnerability.Describe step-by-step in the report how you have found to go from vulnerability to  its  software  repository.(200-300  words)(2%)

2.6.Identify  and  describe  the  bug  report  in  the  issue  tracking  system(e.g.,Jira,BugZilla,GitHub     repository  itself)that  reports  about  the  fix of the vulnerability.Include the screenshot,link,the fixing commit and your comments about the status of the vulnerability in the report.(3%)

2.7.Compare the fixing commits you have identified for the vulnerability with the ones provided for you in the link above.If they are not matched,you have to explain (in up to 300 words)in the report.Also    put the results in the following table.(1%)

CVE-ID

CVE-2018-11087

CVE-2017-14735

Link

Fixing Commit

Type(CWE)

CVSS Version 2 metrics

CVSS Version 2 base score

Comparision with NVD

CVSS version 3 metrics

CVSS version 3 base score

Comparison with NVD

2.8.Imagine you are a developer responsible for a vulnerable project and you have found your

vulnerability.And you are going to report the vulnerability to NVD to include in their database,you may need to suggest to them an assessment of each vulnerability based on CVSS 2.0(commonly used

version)and  CVSS  3.0(new version).Include your  CVSS  (versions  2  and  3.0)metrics for each

vulnerability with detailed explanation.Then,compute the base scores of CVSS versions 2 and 3.0 and compare them with the ones provided on NVD.Make sure you compute the scores using your  reasoning first without looking at NVD.If there is no available score on NVD,then you can skip the  comparison  step.Record these  in  the  above  table.(1%)

Submission:A PDF document with Times New Roman of font size 12.

Tips about how I would go about doing this assignment:

Part  1

I will first study the vulnerabilities mentioned in the task on the Common Weakness Enumeration

website.Google is also always worth a try if l want to explore more.Then,I will try to use the name of the vulnerability and search it on GitHub.After l find the repositories,I will filter them using the above  criteria.Then,I will focus on the vulnerable files and analyze them line-by-line or use existing tools.If  there is already a fix for that vulnerability,I will include it in my report.Otherwise,I will try to see howl  can fix it using the mitigation techniques I have learned for the vulnerability.I will explain how my

findings match with the materials I have learned for that vulnerability.

Part  2

I would first study about CVE,NVD,CWE and GitHub to see how they link with each other.Afterl

understand their connection,I can  identify  CWE  and  describe the  process for the vulnerability.Then,I  can start searching for bug reports in the suggested locations above.If you cannot find it there,Google is always worth a try.After l found the bug report,I would try to find whether the developers/testers

mention the link they fixed that vulnerability.That would likely be my fixing commit.Finally,I would

compare the one l have found with the provided one.If it does not match,then I try to investigate the provided commit to see how it is related to the vulnerability I am working on and also to my identified

commit.To do this investigation step,cloning the GitHub repositories locally is a good way to go.I will use my experience and reasoning to fill in the value for each metric and then compute the score using the CVSS calculator.I will then compare my scores with the ones on NVD if they are available and

give my detailed reflections.Then,I will describe and explain in detail each task for each vulnerability in the report.