Domanda

Sto correndo Fortificare (2.6.5) su alcuni progetti molto grandi, ma non riesce a contrassegnare alcuni problemi chiave, che deve davvero.Sembra che fortificare sia un modello che corrisponda alle variabili nominarne qualcosa come "Password", per eseguire l'analisi del dataflow.Questo è fantastico e aiuta a garantire che le violazione della privacy non si verifichino con tali dati sensibili, come scriverli a un logger (in debug).

Questo è tutto bene e buono, ma abbiamo casi di password passate nel sistema attraverso altri nomi variabili come "credenziali", nonché altre informazioni riservate che devono essere trattate con lo stesso livello di rigidità nella gestione, come fortificare con le variabili contenenti la stringa "Password"!

C'è un modo semplice per aggiungere / configurare un tale elenco di parole chiave in modo che Fortify agisca su di loro come fa "Password"?

È stato utile?

Soluzione

"Easy" dipende dal tuo livello di comfort con regole personalizzate.È assolutamente possibile aggiungere un flag di Taint Privato + (il tasto associato alle regole di violazione della privacy) alle variabili denominate "credenziali" con una caratterizzazione.

Ecco un piccolo snippet di esempio della regola della partita strutturale di cui hai bisogno per iniziare:

            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.*")
.

Altri suggerimenti

C'è un modo più semplice per farlo con la procedura guidata delle regole personalizzate AWB.Dall'elenco dei tipi di regole, selezionare "Regola di caratterizzazione" e quindi "Caratterizzazione per fonte privata".

La tua variabile "credenziali" sarà una fonte di dati segreti o privati.Segui la procedura guidata e crea una regola con l'espressione regolare specificata.L'espressione è case sensitive e segue la dialetto di espressioni regolari Java: http://docs.oracle.com/javase/1.4.2/docs/api/java/util/regex/pattern.html

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top