2015-05-29 13 views
6

Ich versuche, falsch positive Ergebnisse aus einem HP Fortify-Scan einer Java-Anwendung zu entfernen.HP Fortify - Methoden zur Kommentierung der Methode

Diese Methode führt zu einem „Datenschutzverletzung“ Problem (der Printwriter ist ein Servlet-Antwort)

private void writeOutput(String passwordRules, PrintWriter out) { 
     ... 
     out.print(passwordRules); 
     ... 
} 

Dies liegt daran, Fortify Namenskonventionen folgt, zu entscheiden, dass passwordRules private Daten enthält. Aber meine passwordRules ist keine private Daten - es enthält Sachen wie "Minimum 8 Zeichen".

Ich kann den Fehler verschwinden lassen, indem ich den Namen der Variablen ändere. Im Prinzip möchte ich jedoch die Lesbarkeit meines Codes zugunsten eines Quellcodeanalysators nicht beeinträchtigen.

erwartete ich das es zu beheben:

private void writeOutput(@FortifyNotPassword String passwordRules, PrintWriter out) ... 

Allerdings scheint es, die Anmerkung für diesen Kontext nicht geschrieben:

The annotation @FortifyNotPassword is disallowed for this location. 

Ich habe versucht:

private void writeOutput(String passwordRules, PrintWriter out) { 
     ... 
     @FortifyNotPassword String rules = passwordRules; 
     out.print(rules); 
     ... 
} 

.. Aber das beseitigt nicht das falsch-positive. (Und es kompromittiert meinen Grundsatz, Code nicht weniger lesbar zu machen).

Ich habe auch das oben mit @FortifyNotPrivate, mit den gleichen Ergebnissen versucht.

Also, was ist der richtige Weg, dies zu tun?

+0

Hoppla! Habe diesen Absatz verpasst. Entschuldigung. –

Antwort

2

Fortify bietet Ihnen zwei Möglichkeiten, um mit dieser Situation umzugehen: 1) das Problem zu unterdrücken oder 2) das Problem zu verbergen. Was Sie auswählen, hängt davon ab, was Ihrer Meinung nach am besten für Sie funktioniert.

Unterdrückte Probleme. Sie können ein Problem als unterdrückt markieren, wenn Sie sicher sind, dass die spezifische Sicherheitsanfälligkeit kein Problem darstellt. Möglicherweise möchten Sie auch Warnungen für bestimmte Arten von Problemen unterdrücken, die möglicherweise keine hohe Priorität haben oder von unmittelbarer Bedeutung sind. Sie können beispielsweise Probleme beheben, die behoben wurden, oder Probleme, die Sie in Ihrem Fall nicht beheben möchten. Unterdrückte Probleme sind nicht in den Gruppensummen enthalten, die im Themenbereich angezeigt werden. Dieser Ansatz eignet sich am besten, wenn Sie das Problembewusstsein vollständig beseitigen möchten.

Versteckte Probleme. Sie können eine Gruppe von Problemen vorübergehend ausblenden, um Ablenkung zu vermeiden, während Sie sich anderswo konzentrieren. Sie können beispielsweise alle Probleme außer denen, die Ihnen zugewiesen wurden, ausblenden. Die Personen, die zugewiesen wurden, um die Probleme zu behandeln, die Sie in Ihrer Ansicht ausgeblendet haben, können weiterhin auf sie zugreifen. Die Gruppensummen, die im Themenbereich angezeigt werden, enthalten ausgeblendete Probleme. Wenn Sie ein Problem in einer Ordnerliste finden, die Sie ausblenden oder in einen anderen Ordner verweisen möchten, können Sie einen neuen Filter mithilfe des Filterassistenten erstellen. Der Filterassistent zeigt alle Attribute mit übereinstimmenden Bedingungen für den Filter an. P 29 des Dokuments HP_Fortify_Audit_Workbench_User_Guide_4.30; Diese Dokumentation gehört zu Ihren Fortify-Programmdateien. Diese Alternative ist möglicherweise vorzuziehen, wenn Sie möchten, dass andere sich der Probleme bewusst sind, auch wenn Sie sie ignorieren.

Behobene Probleme. Diese Alternative ist nicht besonders relevant für Ihre Situation, aber ich präsentiere es der Vollständigkeit halber. Wenn mehrere Scans für ein Projekt im Laufe der Zeit ausgeführt werden, werden Probleme häufig behoben oder werden überflüssig.Beim Zusammenführen der Scan-Ergebnisse markiert der Static Code Analyzer Probleme, die bei einem früheren Scan aufgedeckt wurden, aber in den letzten SCA-Analyseergebnissen nicht mehr als "Entfernt" angezeigt werden. Entfernte Probleme sind nicht in den Gruppensummen enthalten, die im Themenbereich angezeigt werden. Da Sie dieses Problem nicht beheben möchten, wird es kein "entferntes Problem".

Verwenden Sie das Optionsmenü, um unterdrückte, ausgeblendete und entfernte Probleme anzuzeigen oder auszublenden. Sichtbarkeitsfilter zeigen oder verbergen Probleme.

+0

Danke, aber ich weiß bereits, wie man Probleme manuell unterdrückt/versteckt. Diese Frage bezieht sich insbesondere auf das Kommentieren von Java, so dass falsche Positive nicht nur unterdrückt werden, sondern auch nicht existieren. Fortify-Berichte geben an, wie viele unterdrückte Probleme vorhanden sind, und warnen, dass große Mengen davon verdächtig sind. – slim

+0

Unterdrücken und verbergen sind die "Buchlösungen" laut Fortify. Wie wäre es mit einem Synonym für Passwort wie "Credential?" – WaltHouser

+0

Ich weiß nicht, was Sie mit "Buchlösung" meinen. Annotation ist eine unterstützte Technik - siehe 'Samples/advanced/java_annotations' im Fortify-Verzeichnis. @FortifyNotPassword funktioniert für lokale Variablen und Felder - ich möchte das Gleiche mit einem Methodenparameter tun. – slim

Verwandte Themen