Fortify 360 - Добавление псевдонимов «пароль»? - PullRequest
0 голосов
/ 24 февраля 2012

Я запускаю Fortify (2.6.5) для нескольких очень больших проектов, но он не в состоянии пометить несколько ключевых проблем, которые он действительно должен. Кажется, будто Fortify выполняет какое-то сопоставление с образцом для переменных с именем что-то вроде «пароля», чтобы затем выполнить анализ потока данных. Это замечательно и помогает гарантировать, что нарушения конфиденциальности не происходят с такими конфиденциальными данными, такими как запись их в регистратор (при отладке).

Это все хорошо, но у нас есть случаи, когда пароли передаются в систему через другие имена переменных, такие как «учетные данные», а также другую конфиденциальную информацию, которая должна обрабатываться с одинаковым уровнем строгости при обработке. , как Fortify делает с переменными, содержащими строку «пароль»!

Есть ли какой-нибудь простой способ добавить / настроить такой список ключевых слов, чтобы Fortify действовал на них так же, как и на «пароль»?

Ответы [ 2 ]

1 голос
/ 24 февраля 2012

«Легко» зависит от вашего уровня комфорта с пользовательскими правилами. Вы можете определенно добавить флаг + PRIVATE taint (вред, связанный с правилами нарушения конфиденциальности) к переменным с именем «credential» с помощью CharacterizationRule.

Вот небольшой примерный пример правила структурного соответствия, с которым вам нужно начать:

            VariableAccess va: va.variable.name matches "(?i).*credential.*" and
                               not va in [AssignmentStatement: lhs.location is va]
                               and
                               ( va.variable.type.name == "java.lang.String" or
                                 va.variable.type.name == "java.lang.StringBuffer" or
                                 va.variable.type.name matches "byte.*" or
                                 va.variable.type.name matches "char.*")
0 голосов
/ 31 марта 2012

Существует более простой способ сделать это с помощью мастера пользовательских правил AWB. В списке типов правил выберите «Правило характеризации», а затем «Характеристика для частного источника».

Ваша переменная «учетные данные» будет источником секретных или личных данных. Просто следуйте указаниям мастера, и он создает правило с указанным вами регулярным выражением. Выражение чувствительно к регистру и соответствует диалекту регулярных выражений Java: http://docs.oracle.com/javase/1.4.2/docs/api/java/util/regex/Pattern.html

...