Oltre a ciò che altri hanno detto (i post di Blownie55 e Steffen Ullrich sono eccellenti), vorrei aggiungere un po 'di informazioni extra qui.
Scenario peggiore per i casi
What is the worst case scenario if someone takes advantage of this vulnerability? What is possible to do?
Se la tua applicazione è stata bersagliata con successo, allora questo attacco consente l'esecuzione di codice in remoto, il che significa che un utente malintenzionato può probabilmente qualsiasi cosa voglia al tuo sistema. Ciò consente loro di eseguire le proprie applicazioni, alterare il tuo codice non firmato, modificare il codice firmato se sono in grado di compromettere il repository di origine e, peggio ancora, accedere ai dati del cliente.
Qualsiasi macchina accessibile alla macchina compromessa dovrebbe essere considerata vulnerabile.
Nel peggiore dei casi, è essenzialmente una violazione dei dati dei clienti e / o degli utenti, o anche dei tuoi segreti commerciali - qualcosa che nessuna società legittima vorrebbe mai accadere.
Se stai utilizzando WebSphere, allora IBM ha rilasciato una patch per questo .
Determinazione della vulnerabilità
Prelevato dal sito Web di IBM : il profilo IBM WebSphere Application Server Liberty abilita solo il Collezioni Apache Commons se si utilizza UNA delle seguenti tre funzioni:
Potresti essere vulnerabile se stai utilizzando una di queste funzionalità. Per determinare se sei vulnerabile puoi cercare nel file console.log per questo messaggio:
[AUDIT ] CWWKF0012I: The server installed the following features: [xxxxx]
Se al posto di xxxxx
, non contiene nessuna di queste tre funzionalità elencate, quindi non sei vulnerabile.
Regole Snort IDS
Dovrai proteggere il tuo server dagli exploit in arrivo sulla rete. Snort è un sistema di rilevamento delle intrusioni che aiuta a prevenire l'accesso non autorizzato. Se stai usando Snort, ecco le regole che ti serviranno:
alert tcp any any -> $HOME_NET any (msg:" ETPRO EXPLOIT Serialized Java Object Calling Common Collection Function"; flow:to_server,established; content:"rO0ABXNyA"; content:"jb21tb25zLmNvbGxlY3Rpb25z"; fast_pattern; distance:0; reference:url,github.com/foxglovesec/JavaUnserializeExploits; classtype:misc-activity; sid:2814811; rev:1;)
alert tcp any any -> $HOME_NET any (msg:" ETPRO EXPLOIT Serialized Java Object Calling Common Collection Function"; flow:to_server,established; content:"|ac ed 00 05 73 72 00|"; fast_pattern; content:"commons.collections"; nocase; distance:0; reference:url,github.com/foxglovesec/JavaUnserializeExploits; classtype:misc-activity; sid:2814812; rev:1;)
alert tcp any any -> $HOME_NET any (msg:" ETPRO EXPLOIT Serialized Java Object Generated by ysoserial"; flow:to_server,established; content:"|ac ed 00 05 73 72 00|"; fast_pattern; content:"java/io/Serializable"; nocase; distance:0; content:"ysoserial/payloads/util/Gadgets"; reference:url,github.com/foxglovesec/JavaUnserializeExploits; classtype:misc-activity; sid:2814813; rev:1;)
alert tcp any any -> $HOME_NET any (msg:" ETPRO EXPLOIT Serialized Groovy Java Object Generated by ysoserial"; flow:to_server,established; content:"|ac ed 00 05 73 72 00|"; fast_pattern; content:"org.codehaus.groovy.runtime.ConversionHandler"; nocase; distance:0; content:"ysoserial/payloads/util/Gadgets"; reference:url,github.com/foxglovesec/JavaUnserializeExploits; classtype:misc-activity; sid:2814814; rev:1;)
alert tcp any any -> $HOME_NET any (msg:" ETPRO EXPLOIT Serialized Spring Java Object Generated by ysoserial"; flow:to_server,established; content:"|ac ed 00 05 73 72 00|"; fast_pattern; content:"org.springframework.core.SerializableTypeWrapper"; nocase; distance:0; content:"ysoserial/payloads/util/Gadgets"; reference:url,github.com/foxglovesec/JavaUnserializeExploits; classtype:misc-activity; sid:2814815; rev:1;)
Aftermath
Poiché questo exploit ha consentito l'esecuzione di codice in modalità remota, è necessario eseguire una scansione forense del sistema interessato e di tutte le macchine a cui ha avuto accesso. C'è una possibilità che la tana del coniglio vada molto più in profondità. Tuttavia, questo tipo di sweep è un po 'troppo ampio per questa risposta.