03 - Open Source03a - Java04 - System Administration04f - Sicurezza

Log4J Vulnerability e IBM i

Last Updated on 26 Dicembre 2021 by Roberto De Pedrini

Aggiornamenti del 26 Dicembre 2021

Sulla vulnerabilità della Apache Log4j Library (conosciuto anche come Log4Shell) sono già stati scritti migliaia di post nei blog e nei diversi social. Addirittura giornali e telegioranli ne stanno parlando.

Effettivamente è un “baco” che potrebbe creare non pochi problemi, considerando che questa libreria Open Source è utilizzata in migliaia o forse milioni di applicazioni, dai server ai desktop fino a tutto il mondo IOT.

Non essendo un esperto di sicurezza mi sono limitato a cercare di capire quanto questa vulnerabilità possa influire sui sistemi IBM i miei e dei miei clienti seguendo i consigli degli esperti del settore.

Iniziamo subito con mettere i puntini sulle i … stiamo parlando di Apache ma non confondiamolo con Apache Web Server, quest’ultimo non è soggetto al problema Log4Shell! (vedi https://www.seidengroup.com/2021/12/13/no-apache-isnt-vulnerable-to-the-log4j-vulnerability/?utm_source=hootsuite&utm_medium=AlanLI&utm_term=&utm_content=&utm_campaign=blog)

IBM Product Security Incident Response (Psirt)

Cerchiamo maggioni info sul sito IBM IBM Product Security Incident Response PSIRT che raccoglie importanti informazioni riguardo alla sicurezza della varie soluzioni IBM che negli ultimi periodi si concentra principalmente proprio su questa vulnerabilità: https://www.ibm.com/blogs/psirt/

(Aggiornamenti del 26 Dicembre 2021)

DB2 Web Query

Tra i prodotti molto utilizzati in ambito IBM i troviamo DB2 Web Query per il quale sono disponibili appositi aggiornamenti disponibili al seguente link: https://www.ibm.com/support/pages/node/6529238?myns=ibmivers&mync=E&cm_sp=ibmivers-_-NULL-_-E

ACS Access Client Solution

Anche ACS, applicazione Java, utilizza naturalmente Log4J, anche se ancora alla versione 1.2.17 (non soggetta al problema). IBM ha comunque rilasciato la versione 1.1.8.8 di ACS aggiornando la versione di Log4J (https://www.ibm.com/support/pages/ibm-i-access-client-solutions), che vi invito a scaricare al più presto

A questo link (https://www.ibm.com/blogs/psirt/an-update-on-the-apache-log4j-cve-2021-44228-vulnerability/#list-of-products) troviamo anche una lista di prodotti non soggetti a questo problema.

Per quanto concerne IBM i troviamo soluzioni come Websphere Application Server, HMC Hardware Management Console e chissà quanti prodotti di vendor indipendenti.

Sicurezza e PTF di sistema operativo

Come primo consiglio, al di là di questo specifico problema Log4J, IBM e gli esperti sistemisti della piattaforma ci hanno sempre consigliato di stare aggiornati con le versioni di Sistema Operativo e con le relative PTF di aggiornamento… non solo per avere a disposizione le ultime funzionalità messe a disposizione dai laboratori di Rochester ma anche per installare le apposite patch di sicurezza.

Il vostro sistema è aggiornato con le ultime group-PTF?

Un controllo veloce è possibile farlo con un semplice script SQL (naturalmente disponibile solo sulle ultime versioni di sistema operativo con accesso ad Internet!)

-- Check Group PTF Status
select PTF_GROUP_ID "Group ID", 
       PTF_GROUP_TITLE "Description", 
       PTF_GROUP_CURRENCY "Update state", 
       PTF_GROUP_STATUS_ON_SYSTEM "Status", 
       PTF_GROUP_LEVEL_INSTALLED "Installed Level",
       PTF_GROUP_LEVEL_AVAILABLE "Available Level", 
       PTF_GROUP_LAST_UPDATED_BY_IBM "Last Updated By IBM"
   from SYSTOOLS.GROUP_PTF_CURRENCY
   order by PTF_GROUP_CURRENCY desc, 
            PTF_GROUP_ID;

Nella schermata sopra, relativa ad un sistema 7.4 aggiornato proprio in questi giorni dove vediamo che sono già disponibili nuove PTF dei gruppi relativi a IBM HTTP Server, Security ecc.

Quali versioni di Log4J sono potenzialmente a rischio?

Le versioni di Log4J potenzialmente a rischio per questa vulnerabilità sono quelle dalla versione 2.10 alla versione 2.15 … le vecchie versioni 1.x, utilizzate in moltissime applicazioni anche IBM i, non risultano invece vulnerabili riguardo a questo “exploit” (ma, potenzialmente, sono a rischio per diverse altre vulnerabilità del passato!)

L’ultima versione di Log4j 2.16 (per Java 8) è stata recentemente aggiornata dalla Apache Foundation proprio a per risolvere il problema qui discusso (https://logging.apache.org/log4j/2.x/index.html)

Quali versioni di Log4J sono installate (ed utilizzate) nel nostro sistema IBM i?

Se vogliamo fare un controllo sul nostro sistema per capire se e quali versioni di Log4J sono presenti (poi bisognerebbe capire anche se sono utilizzate!), possiamo scaricare questo ottimo script SQL messo ad disposizione da Scott Forstie nel suo Github Gist: (https://gist.github.com/forstie/9662d4c302f5224c66b7a4c409141a2c).

Lo script permette di fare una ricerca di tutti gli oggetti del nostro IFS che contengono la parola “log4j” nel nome file. Oltre a questo potrebbero esserci delle librerie e oggetti Java con Log4j embeddato nei pacchetti è consigliabile anche fare le ricerche riportate un po’ sotto.

Provo a far girare lo script di Scott Forstie su qualche sistema e scopro vedo comparire la stringa “log4j” in diversi files e directories. Andando a guardare meglio trovo diversi log4j alla versione 1.x (tranquillo ma non troppo!) e qualche log4j alla versione 2.8 per Websphere Application Server …. che vado quindi ad aggiornare seguendo le istruzioni di questo sito: https://www.ibm.com/support/pages/node/6526686

Come accennato sopra … questa ricerca evidenzia solo i files con “log4j” nel nome … Se la libreria log4j è “embeddata” in qualche pacchetto EAR o WAR di Java non verrebbe trovata …. possiamo allora ricorrere ad una ricerca con “find” da ambiente QSH o meglio ancora da una sessione SSH … dalla quale vengono evidenziati diversi .ear/.war con log4j … nel mio caso sempre legati a Websphere Application Server!

# Start looking for log4j files using jndi
cd /
for i in `find . | grep log4j | grep '\.jar$'`; do echo $i; jar tf $i | grep -i jndi; done


# Now look for .ear files that contains a log4j ... if you see "log4j"
# appear, unpack that .ear using jar -xf filename.ear in a temp dir and
# examine the log4j* jar
for i in `find . | grep \.ear$`; do echo $i; jar tf $i | grep -i log4j; done



# Now look for .war files that contains a log4j ... if you see "log4j"
# appear, unpack that .ear using jar -xf filename.war in a temp dir and
# examine the log4j* jar
for i in `find . | grep \.war$`; do echo $i; jar tf $i | grep -i log4j; done






Come tutelarsi dal “log4shell”?

Naturalmente installando le ultime PTF o aggiornando i software di terze parti che utilizzano questa la libreria Java log4j.

Una cosa che comunque possiamo fare da subito a costo zero è quella di disabilitare le funzionalità incriminate di log4j … operazione che ha effetto, purtroppo, solo sulle versioni log4j dalla 2.10 alla 2.15 …. le precedenti versioni 2.x ignorano invece queste impostazioni… insomma… una pezza che copre solo parzialmente il buco … ma meglio di niente!

Seguiamo quindi le istruzioni di Jesse Gorzinski e settiamo la variabile di ambiente e le system default proprieties Java: https://github.com/ThePrez/IBMiOSS-utils/blob/master/avoid_log4shell.sh

Altri prodotti corretali a IBM i

Riguardo ad altri prodotti in un certo modo correlati ai nostri “IBM i” e utilizzati spesso da sviluppatori e sistemisti possiamo citare:

Isphere TN5250: Probabilmente tutti noi che usiamo Rational Rdi abbiamo installato l’ottimo plugin Isphere… Isphere non è a rischio, di per sè, non facendo uso di “log4j” … ma l’emulatore 5250 che possiamo scaricare nei download di Isphere usa Log4j anche se ad una versione 1.2x … Thomas Raddatz di Isphere ha già reso disponibilo gli aggiornamenti di Isphere alla versione 4.2.3.r …. vi invitiamo ad aggiornare Isphere sul vostro Rational Rdi!

Ardgate – Jvagate: Ottima soluzione Open Source per integrare database come Oracle, MS SQL Server ecc nelle nostre applicazioni IBM i. Applicazione Java che utilizza Log4j, ma, anche qui, ad una versione precedente non soggetta in particolare ai rischi log4shell.

Java POI: Anche le Java POI, librerie di servizi Java utilizzate spesso per leggere o generare file Excel da IBM i utilizzano Log4j , anche se a versioni 1.x …

X-Analysis: Anche questo ottimo tool di Fresche utilizza Log4j ma Fresche ha reso prontamente disponibile una patch di aggiornamento (comunicata tempestivamente ai possessori del prodotto) .

Conclusione

Avendo IBM i, noto proprio per la sua affidabilità e sicurezza, generalmente ci sentiamo abbastanza tranquilli da un punto di vista virus. Non è sempre così, se hardware e software di sistema, se tenuti opportunamente aggiornati, sono sicuramente una bella certezza, non possiamo garantirlo per tutte quelle applicazioni nostre, o di terze parti, che ormai fanno sempre più uso di librerie disponibili a livello globale, come nel caso di Log4j … che porebbero quindi mettere a rischio milioni di sistemi e apparecchiature (non solo server e PC ma anche tablet, smartphone, stampanti fino ad arrivare all’automobile o all’impianto di riscaldamento!

Antenne sempre alzate, insomma!

Approfondimenti

Vi lascio qualche link per approfondire l’argomento, se volete saperne di più su questa vulnerabilità:

https://www.fastly.com/blog/digging-deeper-into-log4shell-0day-rce-exploit-found-in-log4j

https://www.govcert.ch/blog/zero-day-exploit-targeting-popular-java-library-log4j/

https://www.databreachtoday.com/how-to-patch-log4j-now-that-version-216-has-been-released-a-18129?rf=2021-12-16_ENEWS_ACQ_DBT__Slot1_ART18129&mkt_tok=MDUxLVpYSS0yMzcAAAGBYxtXlP-wk1pSxrYCW4h6e_4Uz_HwB8MxQDVcijXyMkbCEGEuhVROn9c6SmpHziCigrjoXoxkGTIlKZvNm9wu0hanEh7oZJv9nmHxUdHpIWCCcpU

https://www.itechsol.com/ipower-hour-episode-36-log4j2-vulnerability-are-you-affected/

Related Posts
DB2 for i SQL – Stringhe – POSSTR-LOCATE-LOCATE_IN_STRING (IT)

Introduzione Spesso, nelle nostre applicazioni, abbiamo la necessità di lavorare con le stringhe di testo e l'SQL del DB2 può Read more

DB2 for i & SQL – FAQ & Howto (Part. 1) (IT)

Database DB2 e SQL ... forse lo strumento più potente e completo che abbiamo sulla piattaforma IBM i: ecco una Read more

Annuncio IBM i 7.4

Arriva direttamente con l'uovo di Pasqua questo annuncio IBM per le novità della versione IBM i 7.4, versione iNext secondo Read more

Generated Always Columns – Approfondimenti (IT)

Introduzione "Generated Always Column": sono colonne, campi, di una tabella il cui contenuto è controllato direttamente dal sistema ... e Read more

--- Roberto De Pedrini Faq400.com
About author

Founder di Faq400 Srl, IBM Champion, ideatore del sito Faq400.com e del Blog blog.faq400.com. Sviluppatore RPG da quando avevo i pantaloni corti, forte sostenitore della piattaforma IBM i (ex AS400), ho sempre cercato di convididere le mie conoscenze con gli altri tramite forum, eventi e corsi. Oggi, tramite Faq400 Srl, cerchiamo di aiutare le aziende a sfruttare al meglio questa fantastica piattaforma IBM i.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *