Geend / HshHelper

Hannover University of Applied Sciences and Arts - Master Project - Security competition to make a secure filesharing website.
GNU General Public License v3.0
0 stars 1 forks source link

Static Analysis #59

Closed eloquenza closed 5 years ago

eloquenza commented 6 years ago

Ich hab mich mal mit verschiedenen Static Analysis Tools beschaeftigt, einfach, um zu schauen, ob wir daraus irgendwie etwas bekommen.

Dabei habe ich benutzt:

Gerade Cigital SecureAssist haette ich sehr interessant/kompetent eingeschaetzt, da einer der beruehmtesten SecurityDudes in dieser Firma als CTO gearbeitet hat, mittlerweile Vice President Security Technology. Irgendwie alles ziemlich flach gewesen.

Ergebnisse stehen unten, meiste Zeit sehr irrelevant.

FindBugs

Settings

Analysis effort: Maximal Minimal rank: 20 - Of Concern All categories enabled, all filters enabled

findbugs_result.pdf

Cigital/Synopsis SecureAssist

Version 3.3.0 Release: 2018-01-29

Hardcoded PW

In UserManagerTest -> irrelevant

Query Injection

In DatabaseInitialization -> irrelevant

Information Leakage

Use of printStackTrace in case of an Exception

Nett zu wissen, dass das bereits Information Leakage ist, wie wir uns eh schon dachten, aber unser Application Code macht das nicht, das steht nur in ein paar schlecht geschrieben Tests von mir, bzw. Tests in denen ich mir mit IntelliJ Arbeit ersparte. Wird ausserdem nie in Production Mode passieren, da dann keine Exceptions angezeigt werden, zumindest nicht zum Nutzer.

Conclusion

Wahrscheinlich hauptsaechlich nutzlos, da keine Ahnung von Play/Scala.

SonarLint (Sonarqube)

Swap arguments

AuthenticationTests
UserManagerTests

Angeblich ganz nett, da sonst Fehlermeldungen von JUnit verwirrend klingen, aber nicht so wichtig.

Private constructors to hide implicit public ones

ConstraintValues Authentification LaggyDT Recaptcha

Unsicher, wie wichtig das ist, aber das klang sogar ggf. ganz sinnig

Make final constants

Firewall.java GroupManager (Mehrere aehnliche Strings)

Macht ggf Sinn, beim GroupManager ist nur das Problem, was wir auch in den anderen Managern haben werden, sobald wir alle vernuenftige Ausgaben fuer Fehler haben. Ggf. kann man sich hier des Play Messageskonzepts bedienen.

Pure duplicates

Specification: CanViewAllGroupsList CanViewAllUsers CanCreateUser

CanUpdatePassword CanChangePassword

Fand ich auch sehr unwichtig. Die sind ja besonders dumm geschrieben eigentlich.