Finished organization
[ssproject1617.git] / report / organization.tex
index e69de29..222cfc0 100644 (file)
@@ -0,0 +1,48 @@
+%
+% (TODO write out: dsprenkels)
+%
+% This document describes our security analysis of the (?) CMS according to the OWASP ASVS (v3.0.1), as well as an analysis of Fortify's results compared to our findings \& the OWASP ASVS categories.
+%
+% Outline: first our analysis, then a summary of Fortify's analysis and how it compares to ours etc., then some reflection.
+
+% E.g. did you split the work by files in the code, or by category of security requirements? Did you double-check important findings? Or did you use several pairs of eyeballs on the same code/ security requirement, in the hope that more eyeballs spot more problems? (How) did you integrate using the static code analysis tools into this process? Did you use other tools and methods?
+% Have you tried to run the application? (If so, was this useful, and did you find than running the application was helpful to then review the code, understanding its functionality better? But you might want to dicuss this in the Reflection section.)
+
+
+% Running the application
+Each of us has initially set up the CMS and made ourselves familiar with the
+CMS. This was easy, because one of us had made a \code{Dockerfile} for the
+others to use. This made running and installing the application trivially
+easy. Running the application made us understand the outline and components of
+the application. We could also find some spots were easy to find vulnerabilities
+could be expected. However, looking at the source code was more effective.
+
+We have chosen to split the work by category of security requirements in
+the OWASP Application Security Verification Standard. We set the goal to perform
+a sound level 2 audit on the software.
+
+% Initial approach
+We were quickly set up and started to do each own parts of the audit by hand.
+For each OWASP ASVS item specific to certain mechanisms (like login and input
+validation), we would take the source code of the CMS and follow the control
+flow to see if the application satisfies the security requirement. For more
+general requirements, we could just look at the code that is responsible for
+this requirement (like the \code{Response} class in the case of HTTP security).
+When we had found that a requirement was not satisfied, we elaborate shortly
+and move on.
+
+This went well, because with five people the individual workload is just not
+that big. Furthermore, finding vulnerabilities is a lot easier that verifying the security in a lot of cases. This speeds up the auditing process, because
+the CMS turned out to not satisfy the ASVS in most cases.
+
+% Use of Fortify
+Because we were early on track, most of the audit was already done by when we
+were introduced to the Fortify tool. Nonetheless, we used it to verify our own
+verdicts. Some of us have installed and used the Fortify tool itself. These
+students have exported a PDF report, which the others could then use.
+
+% Double-checking process
+When we finished the report, each of us has reread each others' parts to check
+if things had been missed or reported incorrect. This may not have thorough, but
+because in the end five pairs of eyes have read all verdicts, we trust that, in
+the end, all verdicts are sufficiently checked.