<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US">
  <title>sindro.me - everything</title>
  <id>tag:sindro.me,2016:mephisto/</id>
  <generator uri="http://mephistoblog.com" version="0.8.0">Mephisto Drax</generator>
  <link type="application/atom+xml" rel="self" href="http://sindro.me/feed/atom.xml"/>
  <link type="text/html" rel="alternate" href="http://sindro.me/"/>
  <updated>2014-09-15T19:47:33Z</updated>
  <entry xml:base="http://sindro.me/">
    <author>
      <name>vjt</name>
    </author>
    <id>tag:sindro.me,2014-09-15:275</id>
    <published>2014-09-15T17:32:00Z</published>
    <updated>2014-09-15T19:47:33Z</updated>
    <category term="number 42"/>
    <category term="astronomy"/>
    <category term="astrophysics"/>
    <category term="voyager"/>
    <link type="text/html" rel="alternate" href="http://sindro.me/2014/9/15/pallido-puntolino-azzurro-radio"/>
    <title>Pallido Puntolino Azzurro (Radio)</title>
<content type="html">
            &lt;img src=&quot;https://sindro.me/assets/sindro.me/2014/9/15/pia17047vlba_0-720x340.jpg&quot; /&gt;

&lt;p&gt;L’immagine qui sopra è un’immagine radio del Voyager 1. È stata scattata dal VLBA, un sistema di dieci radiotelescopi distribuiti dalle Isole Vergini alle Hawaii, vale a dire 8600 km di radiotelescopio (!).&lt;/p&gt;

&lt;p&gt;Quel puntolino azzurro è l’oggetto più distante mai costruito da noi umani: si trova a 15 miliardi di chilometri dalla Terra. La potenza radio del Voyager 1 è di 23 watt, ma data la distanza il segnale che rileviamo ha una potenza di un miliardesimo di miliardesimo di watt (1 attowatt).&lt;/p&gt;

&lt;p&gt;Questo flebile segnale è l’unica informazione che proviene da una sonda che ha lasciato il nostro pianeta trentasei anni fa.&lt;/p&gt;

&lt;p&gt;Non è sufficiente solo rilevare il segnale radio, dobbiamo riceverlo proprio come si riceve una stazione radio o una chiamata cellulare. Questo richiede una sensibilità ancora maggiore, ed è per questo motivo che usiamo i radiotelescopi per comunicare con il Voyager.&lt;/p&gt;

&lt;p&gt;Dobbiamo essere in grado di ascoltare i suoi quasi impercettibili messaggi, e inviare indietro risposte radio potenti e a fuoco a sufficienza perché il Voyager possa riceverle.&lt;/p&gt;

&lt;p&gt;Il Voyager è stato il primo manufatto umano a raggiungere lo spazio interstellare. Ma poiché lo spazio è tanto, tanto, tanto vasto, il Voyager ha solo appena iniziato il suo viaggio verso i confini esterni del sistema solare. Alla fine riuscirà ad uscire completamente, perché va abbastanza veloce, ma il diverrà silenzioso molto tempo prima: tra 10 anni al massimo non avremo abbastanza potenza radio per inviare messaggi e controllare i suoi strumenti.&lt;/p&gt;

&lt;p&gt;Il Voyager non solo è arrivato nello spazio interstellare, gli strumenti a bordo non hanno solo rilevato l'uscita dall'eliosfera, ma il Voyager ha anche telefonato a casa, informandoci che era uscito nel giardino.  È un risultato strabiliante.&lt;/p&gt;

&lt;p&gt;Questo pallido puntolino azzurro, un tremore radio in un cielo oscuro, è parte di noi.&lt;/p&gt;

&lt;p&gt;&lt;big&gt;È un computer nucleare pesante 800 Kg, grosso come un’automobile, che abbiamo lanciato nello spazio per esplorare il sistema solare. La nostra curiosità ci ha spinto a crearlo, e la nostra intelligenza ci ha permesso di costruirlo. E dopo un viaggio di 36 anni nello spazio interstellare, continua a comunicare con i suoi creatori.&lt;/big&gt;&lt;/p&gt;

&lt;p&gt;&lt;big&gt;Un pallido puntolino azzurro... che ne guarda un altro.&lt;/big&gt;&lt;/p&gt;

&lt;p&gt;Originale in inglese: Brian Koberlein, &lt;a href=&quot;https://briankoberlein.com/2014/09/15/pale-blue-dot/&quot;&gt;https://briankoberlein.com/2014/09/15/pale-blue-dot/&lt;/a&gt;
          </content>  </entry>
  <entry xml:base="http://sindro.me/">
    <author>
      <name>vjt</name>
    </author>
    <id>tag:sindro.me,2014-07-30:263</id>
    <published>2014-07-30T19:00:00Z</published>
    <updated>2014-07-30T19:10:20Z</updated>
    <category term="science"/>
    <link type="text/html" rel="alternate" href="http://sindro.me/2014/7/30/avevo-un-amico-pittore"/>
    <title>Avevo un amico pittore</title>
<content type="html">
            &lt;p&gt;I nostri punti di vista erano differenti, ma comunque apprezzavamo le stesse cose. La bellezza dei fiori, ad esempio.&lt;/p&gt;

&lt;p&gt;Un giorno mi disse &lt;cite&gt;“Guarda quanto è bello questo fiore. Ma non dire niente. Se tu adesso iniziassi a descriverlo con la tua mente analitica e scientifica, ridurrai questo fiore a qualcosa di meccanico e banale.”&lt;/cite&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://sindro.me/assets/sindro.me/2014/7/30/red-rose.jpg&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Non ribattei.&lt;/p&gt;

&lt;p&gt;Pensai.&lt;/p&gt;

&lt;p&gt;Prima di tutto, il fiore era davvero molto bello. E la bellezza che lui vede è disponibile a tutti e anche a me. Le sfumature, le forme, le fragranze. Allo stesso tempo, posso immaginare le cellule e le delicate interazioni tra esse, fino ai meccanismi subatomici della pianta, che ci donano l’ossigeno che respiriamo.&lt;/p&gt;

&lt;p&gt;Anche queste cose hanno una loro bellezza.&lt;/p&gt;

&lt;p&gt;Non c’è solo la bellezza alla dimensione di un centimetro, c’è anche bellezza a dimensioni più piccole. Oh, e i processi.&lt;/p&gt;

&lt;p&gt;Ad esempio, i colori dei fiori si sono evoluti per attrarre gli insetti. E questo significa che gli insetti vedono i colori.&lt;/p&gt;

&lt;p&gt;E' interessante. Vuol dire forse che quindi gli insetti hanno senso estetico?&lt;/p&gt;

&lt;p&gt;Tutte domande interessanti, che aggiungono bellezza. Io proprio non capisco come queste domande che provengono dalla scienza e dalla conoscenza possano sottrarre e banalizzare.&lt;/p&gt;

&lt;p&gt;&lt;cite&gt;— Libera reinterpretazione di Richard Feynman, da &lt;a href=&quot;https://www.youtube.com/watch?v=cgraCYOQJl4&quot;&gt;https://www.youtube.com/watch?v=cgraCYOQJl4&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://sindro.me/">
    <author>
      <name>vjt</name>
    </author>
    <id>tag:sindro.me,2014-07-01:254</id>
    <published>2014-07-01T07:27:00Z</published>
    <updated>2014-07-02T07:21:06Z</updated>
    <category term="number 42"/>
    <category term="politics"/>
    <category term="astronomy"/>
    <category term="astrophysics"/>
    <category term="religion"/>
    <category term="truth"/>
    <link type="text/html" rel="alternate" href="http://sindro.me/2014/7/1/the-answer-to-life-universe-and-everything"/>
    <title>The answer to Life, Universe and Everything</title>
<content type="html">
            &lt;div&gt;&lt;img src=&quot;https://scontent-b-ams.xx.fbcdn.net/hphotos-xfa1/v/t1.0-9/q71/s480x480/10258538_873711802657258_242433658968643829_n.jpg?oh=1e2a8913c38ac5a588a6ab36ce79aeef&amp;amp;oe=54129A1A&quot;&gt;&lt;/img&gt;&lt;/div&gt;

&lt;p&gt;Tenzin Gyatso, il Dalai Lama: &quot;&lt;em&gt;Se la scienza smentisse qualche credenza del Buddismo, allora il Buddismo dovrà cambiare. Nella mia visione, la scienza e il buddismo sono entrambe ricerche della verità, per comprendere la realtà. Imparando aspetti della realtà meglio compresi con la scienza, io credo che il Buddismo arricchisca la sua visione del mondo&lt;/em&gt;&quot; (&lt;a href=&quot;http://www.nytimes.com/2005/11/12/opinion/12dalai.html?pagewanted=all&amp;amp;_r=0&quot;&gt;fonte&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;Mi trovo concorde con questa visione. Mi risuonano in mente anche le parole di Einstein &quot;&lt;em&gt;Sono abbastanza un'artista da disegnare liberamente con la mia immaginazione. L'immaginazione è più importante della conoscenza. La conoscenza è limitata. L'immaginazione abbraccia il mondo&lt;/em&gt;&quot;.&lt;/p&gt;

&lt;p&gt;Da sempre siamo alla ricerca della verità. Nel tempo le nostre capacità tecniche sono avanzate, permettendoci di leggere i libri geologici e cosmici che ci hanno circondato da sempre, e di cui abbiamo sempre avuto distacco e paura.&lt;/p&gt;

&lt;p&gt;Abbiamo compreso e metabolizzato i nostri limiti, e con la nostra immaginazione abbiamo ideato e costruito macchine e tecnologia atti a superarli. La nostra realtà è sempre stata piena di elementi invisibili ai nostri occhi, che abbiamo cercato di raggiungere e spiegare con i nostri mezzi limitati.&lt;/p&gt;

&lt;div&gt;&lt;img src=&quot;https://sindro.me/assets/sindro.me/2014/7/2/wr124_hubbleschmidt_960.jpg&quot; /&gt;&lt;/img&gt;&lt;/div&gt;

&lt;p&gt;Questa continua ricerca è stata per tanto tempo anacronistica e presuntuosa. Siamo rimasti delusi. Pregni della nostra incapacità di capire, abbiamo inventato spiegazioni per soddisfare i nostri bisogni, costruendo noi stessi quelle fonti della verità di cui avevamo tanto bisogno.&lt;/p&gt;

&lt;p&gt;Questo approccio può sembrare innocuo, ma leggendo la storia troviamo l'inquisizione del mondo cristiano, l'annullamento della matematica nel mondo arabo che perdura ancora oggi - opprimendo un popolo, il moderno Scientology e il metodo Stamina.&lt;/p&gt;

&lt;p&gt;Non lasciamo che la nostra delusione fermi la nostra creatività e immaginazione. Personalmente, ho raggiunto una forte consapevolezza di me e dell'universo in cui vivo, e che è dentro di me. Vi ho trovato completezza, fascino e bellezza, unita alla certezza di star attingendo da una fonte di verità non fatta da una persona sola. O da una filosofia sola.&lt;/p&gt;

&lt;p&gt;La vera verità è quella scritta nel grande libro della Natura. Le parole di questo libro sono l'elettromagnetismo, le forze nucleari, l'equivalenza di materia ed energia, la danza cosmica orchestrata dalla gravità, le stelle che bruciano nelle curve dello spaziotempo, forgiando gli elementi di cui noi siamo composti, percorrendo la freccia del tempo seguendo la legge universale dell'entropia.&lt;/p&gt;

&lt;div&gt;&lt;img src=&quot;https://fbcdn-sphotos-c-a.akamaihd.net/hphotos-ak-xpf1/t1.0-9/p235x350/10410457_10204103058476019_4006722194435393937_n.jpg&quot; /&gt;&lt;/div&gt;

&lt;p&gt;Entropia: da ordine a disordine. Tutto si muove seguendo questo intrinseco &quot;bisogno&quot; di equalizzazione: dalla tazza di tè che si raffredda tra le tue mani, dall'energia del Sole immagazzinata nel legno, restituita dal fuoco e poi ridotta in cenere, al Sole che smetterà di bruciare tra cinque miliardi di anni, all'intera galassia che si disperderà nel cosmo, allo spaziotempo stesso che si dilaterà all'infinito.. in un futuro lontanissimo.&lt;/p&gt;

&lt;p&gt;Questi pensieri sono il mio personale Graal, che ho trovato e che come un sogno condivido con voi, perché sono potenti e danno forza. Forza di superare i nostri limiti miscelando conoscenza, immaginazione, pensiero e consapevolezza di sè.&lt;/p&gt;

&lt;p&gt;La mia personale filosofia costruita negli anni, mettendo assieme tanti pezzi di un puzzle, che adesso inizia a mostrare un disegno e a dare delle risposte. Un puzzle che un giorno sarà completo.&lt;/p&gt;

&lt;p&gt;Il mio personale consiglio è adesso di dimenticare tutte queste parole e di partire. Partire nella lettura del libro di Natura, attraverso la fisica.&lt;/p&gt;

&lt;p&gt;Nessuno è un messia, nessuno è in grado di fornirti la verità su un piatto d'argento. Chi è convinto di farlo è vittima stessa della delusione, e cerca nel suo seguito una conferma.&lt;/p&gt;

&lt;p&gt;Lo so bene perché lo faccio anche io.&lt;/p&gt;

&lt;p&gt;Buon viaggio.&lt;/p&gt;

&lt;div&gt;&lt;/div&gt;
          </content>  </entry>
  <entry xml:base="http://sindro.me/">
    <author>
      <name>vjt</name>
    </author>
    <id>tag:sindro.me,2014-06-23:250</id>
    <published>2014-06-23T00:28:00Z</published>
    <updated>2014-06-23T00:35:50Z</updated>
    <category term="number 42"/>
    <category term="politics"/>
    <category term="politics"/>
    <category term="religion"/>
    <category term="science"/>
    <link type="text/html" rel="alternate" href="http://sindro.me/2014/6/23/science-and-religion-it-doesn-t-work"/>
    <title>Science and Religion: it doesn't work</title>
<content type="html">
            &lt;div&gt;&lt;img src=&quot;https://sindro.me/assets/sindro.me/2014/6/23/religion-vs-science-1.jpg&quot;&gt;&lt;/div&gt;

&lt;p&gt;#Science and #religion are both humans searching for truths. The two differ in their methods: &lt;em&gt;in religion faith is a virtue, in science it&#8217;s a vice&lt;/em&gt;. This makes the two fundamentally incompatible.&lt;/p&gt;

&lt;p&gt;Why does this matter? &lt;em&gt;Because religion is the most venerable superstition &#8211; and the most politically and financially powerful&lt;/em&gt;, because &lt;em&gt;believing blindly fundamentally weakens our concept of truth&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Religion&#8217;s inability to find the real &lt;strong&gt;truth&lt;/strong&gt; then produces things such as &lt;em&gt;the oppression of women and gays, opposition to research, denial of vaccines, and of course &lt;strong&gt;all those wars, suicide bombings and religious persecutions&lt;/strong&gt;&lt;/em&gt;. And fear of comets.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://usatoday30.usatoday.com/news/opinion/forum/2010-10-11-column11_ST_N.htm&quot;&gt;Let&#8217;s move on.&lt;/a&gt;&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://sindro.me/">
    <author>
      <name>vjt</name>
    </author>
    <id>tag:sindro.me,2014-02-28:220</id>
    <published>2014-02-28T03:38:00Z</published>
    <updated>2015-11-04T15:37:45Z</updated>
    <category term="number 42"/>
    <link type="text/html" rel="alternate" href="http://sindro.me/2014/2/28/il-vero-sistemista"/>
    <title>Il vero sistemista</title>
<content type="html">
            &lt;p&gt;&lt;em&gt;di Franco Lanza&lt;/em&gt;&lt;/p&gt;

	&lt;p&gt;&lt;img src=&quot;https://sindro.me/assets/sindro.me/2014/2/28/car.repair.hands.jpg&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Il vero sistemista e&#8217; un po&#8217; come il meccanico di una volta, quello che se gli portavi la macchina per rifare la convergenza e quando arrivavi sentiva che il minimo non andava bene, ti faceva la convergenza, e giustamente la pagavi, ma poi ti sistemava anche il minimo e non ti chiedeva nulla, lo faceva perche&#8217; non sopportava di sentire una macchina che non era a punto come si deve.&lt;/p&gt;

&lt;p&gt;Era quello che da ogni minimo e impercettibile rumore indovinava subito qualsiasi problema, anche quello di cui il cliente non si era ancora accorto.&lt;/p&gt;

&lt;p&gt;Era quello che dopo cena a casa con la famiglia, tornava in officina, dove potevi vedere le luci accese fino a notte tarda, perche&#8217; stava lavorando al &#8220;suo&#8221; gioiello, una qualche macchina semi d&#8217;epoca recuperata chissa&#8217; dove che con passione piano piano sistemava fino a farla tornare nuova.&lt;/p&gt;

&lt;p&gt;Ecco, il sistemista e&#8217; come quel meccanico, e le sue auto sono i server.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Fonte: &lt;a href=&quot;https://www.facebook.com/groups/VeteranUnixAdmins/permalink/662178223838934/?comment_id=662349183821838&amp;amp;offset=100&amp;amp;total_comments=178&quot;&gt;VeteranUnixAdmins&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://sindro.me/">
    <author>
      <name>vjt</name>
    </author>
    <id>tag:sindro.me,2014-02-28:219</id>
    <published>2014-02-28T02:29:00Z</published>
    <updated>2014-02-28T10:32:01Z</updated>
    <category term="development"/>
    <category term="apple"/>
    <category term="fail"/>
    <link type="text/html" rel="alternate" href="http://sindro.me/2014/2/28/goto-fail"/>
    <title>goto fail;</title>
<content type="html">
            &lt;p&gt;In its own words:&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;https://sindro.me/assets/sindro.me/2014/2/28/goto-fail.png&quot; /&gt;&lt;/p&gt;

	&lt;p&gt;&lt;cite&gt;
Sources: &lt;a href=&quot;http://opensource.apple.com/source/Security/Security-55179.13/libsecurity_ssl/lib/sslKeyExchange.c?txt&quot;&gt;55179.13.c&lt;/a&gt;, &lt;a href=&quot;http://opensource.apple.com/source/Security/Security-55471/libsecurity_ssl/lib/sslKeyExchange.c?txt&quot;&gt;55471.c&lt;/a&gt;
&lt;/cite&gt;&lt;/p&gt;


&lt;p&gt;Source code differences between two consecutive versions of the Security.framework, a MacOS/iOS component. The seemingly innocuous extra &lt;code&gt;goto fail;&lt;/code&gt; is the cause of &lt;a href=&quot;http://nakedsecurity.sophos.com/2014/02/24/anatomy-of-a-goto-fail-apples-ssl-bug-explained-plus-an-unofficial-patch/&quot;&gt;a severe security flaw in most Apple products&lt;/a&gt;.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://sindro.me/">
    <author>
      <name>vjt</name>
    </author>
    <id>tag:sindro.me,2013-12-01:214</id>
    <published>2013-12-01T05:37:00Z</published>
    <updated>2013-12-01T05:38:27Z</updated>
    <category term="astronomy"/>
    <category term="comet"/>
    <category term="ison"/>
    <link type="text/html" rel="alternate" href="http://sindro.me/2013/12/1/this-weekend-i-didn-t-code"/>
    <title>This weekend I didn't code</title>
<content type="html">
            &lt;p&gt;Because I have been busy doing this:&lt;/p&gt;



          </content>  </entry>
  <entry xml:base="http://sindro.me/">
    <author>
      <name>vjt</name>
    </author>
    <id>tag:sindro.me,2011-09-12:181</id>
    <published>2011-09-12T10:48:00Z</published>
    <updated>2012-10-09T13:39:14Z</updated>
    <category term="development"/>
    <category term="debian"/>
    <category term="nodejs"/>
    <category term="sysadm"/>
    <link type="text/html" rel="alternate" href="http://sindro.me/2011/9/12/install-node-js-via-apt-on-debian-squeeze"/>
    <title>Install node.js via APT on Debian Squeeze</title>
<content type="html">
            &lt;p&gt;Abstract: add &lt;a href=&quot;http://www.debian.org/releases/sid/&quot;&gt;&lt;span class=&quot;caps&quot;&gt;SID&lt;/span&gt;&lt;/a&gt; APT source, configure &lt;a href=&quot;http://wiki.debian.org/AptPreferences&quot;&gt;&lt;span class=&quot;caps&quot;&gt;APT&lt;/span&gt; Pinning&lt;/a&gt; to give &lt;code&gt;squeeze&lt;/code&gt; packages priority over &lt;code&gt;SID&lt;/code&gt; ones, rebuild the &lt;code&gt;nodejs&lt;/code&gt; package under &lt;code&gt;squeeze&lt;/code&gt;.&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;Add &lt;span class=&quot;caps&quot;&gt;SID APT&lt;/span&gt; source by creating &lt;code&gt;/etc/apt/sources.list.d/sid.list&lt;/code&gt; (use your &lt;a href=&quot;http://www.debian.org/mirror/&quot;&gt;nearest mirror&lt;/a&gt;):&lt;/li&gt;
	&lt;/ul&gt;


&lt;pre&gt;
deb http://ftp.us.debian.org/debian/ sid main
deb-src http://ftp.us.debian.org/debian/ sid main
&lt;/pre&gt;

	&lt;ul&gt;
	&lt;li&gt;Configure &lt;span class=&quot;caps&quot;&gt;APT&lt;/span&gt; pinning by creating &lt;code&gt;/etc/apt/preferences.d/sid&lt;/code&gt;:&lt;/li&gt;
	&lt;/ul&gt;


&lt;pre&gt;
Package: *
Pin: release a=unstable
Pin-Priority: 50
&lt;/pre&gt;

	&lt;ul&gt;
	&lt;li&gt;Install the latest version of &lt;code&gt;libv8&lt;/code&gt; manually, &lt;code&gt;libv8-3.8.9.20&lt;/code&gt; at the time of writing this:&lt;/li&gt;
	&lt;/ul&gt;


&lt;pre&gt;
apt-get install libv8-3.8.9.20
&lt;/pre&gt;

	&lt;ul&gt;
	&lt;li&gt;Download the nodejs package sources, dependencies and build them:&lt;/li&gt;
	&lt;/ul&gt;


&lt;pre&gt;
cd
apt-get source nodejs
apt-get build-dep nodejs
cd nodejs-*
debuild -nc -uc
&lt;/pre&gt;

	&lt;ul&gt;
	&lt;li&gt;If you encounter &lt;code&gt;build-dependency&lt;/code&gt; errors, you should try first to lower the dependency in &lt;code&gt;debian/control&lt;/code&gt;, both in &lt;code&gt;Build-Depends&lt;/code&gt; and in &lt;code&gt;Depends&lt;/code&gt; and re-run &lt;code&gt;debuild&lt;/code&gt;.
If the build fails (e.g. with &lt;code&gt;undefined reference to `ev_run'&lt;/code&gt;) the previous version is missing required functions. So, you must install the updated versions of the required dependencies (e.g. &lt;code&gt;libev4&lt;/code&gt;) from &lt;code&gt;sid&lt;/code&gt;, using &lt;code&gt;apt-get install name=version&lt;/code&gt; e.g. &lt;code&gt;libev4=1:4.11-1&lt;/code&gt;. I suggest this because you&#8217;ll have to manually update packages installed from &lt;code&gt;sid&lt;/code&gt;, so the lesser, the best.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;Install the generated package&lt;/li&gt;
	&lt;/ul&gt;


&lt;pre&gt;
dpkg -i nodejs_*.deb nodejs-dev*.deb
&lt;/pre&gt;

	&lt;ul&gt;
	&lt;li&gt;Profit :-)&lt;/li&gt;
	&lt;/ul&gt;
          </content>  </entry>
  <entry xml:base="http://sindro.me/">
    <author>
      <name>vjt</name>
    </author>
    <id>tag:sindro.me,2011-07-07:177</id>
    <published>2011-07-07T12:11:00Z</published>
    <updated>2011-07-07T12:37:09Z</updated>
    <category term="development"/>
    <category term="capabilities"/>
    <category term="linux"/>
    <category term="ruby"/>
    <link type="text/html" rel="alternate" href="http://sindro.me/2011/7/7/binding-port-80-for-your-development-application-server"/>
    <title>Binding 80/TCP as non-root on your development server</title>
<content type="html">
            &lt;div&gt;
&lt;img alt=&quot;&quot; src=&quot;http://sindro.me/assets/sindro.me/2011/7/7/neo-tux.png&quot; /&gt;
&lt;p&gt;neo-tux by &lt;a href=&quot;http://sagarkshetri.com.np/blog/?attachment_id=337&quot;&gt;sagarkshetri.com.np&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;

	&lt;p&gt;So you have a Linux VM you use for development, because you want to mirror the production environment as closely as possible. You have many applications to deal with, they have to be running at the same time because they are nifty &lt;span class=&quot;caps&quot;&gt;REST JSON&lt;/span&gt; web services.&lt;/p&gt;


	&lt;p&gt;You are very tired to remember which one you put on port &lt;code&gt;8081&lt;/code&gt;, and your configuration files slowly become a real mess. So you set up IP address aliases in for the network interface and decide to assign even host names &#8211; &lt;code&gt;/etc/hosts&lt;/code&gt; is just fine &#8211; for each app.&lt;/p&gt;


	&lt;p&gt;Then, in such a setup, why would you still need to run them on ports higher than &lt;code&gt;1024&lt;/code&gt;? Wouldn&#8217;t be just great to type the application name in the browser address bar? Indeed it is, but it&#8217;s better to not run them as &lt;code&gt;root&lt;/code&gt;, anyway.&lt;/p&gt;


	&lt;p&gt;The solution are &lt;a href=&quot;http://www.kernel.org/doc/man-pages/online/pages/man7/capabilities.7.html&quot;&gt;Linux capabilities&lt;/a&gt; (see also &lt;a href=&quot;http://www.friedhoff.org/posixfilecaps.html&quot;&gt;here&lt;/a&gt;). The one that interests us is &lt;code&gt;cap_net_bind_service&lt;/code&gt;: it gives a process the right to bind well-known ports (&lt;code&gt;&amp;lt; 1024&lt;/code&gt;). If you use an interpreted language, of course you&#8217;ll have to add the capability to the interpreter itself. That&#8217;s why there&#8217;s &lt;strong&gt;development&lt;/strong&gt; in the title of this article &#8211; you should not set this up on a production server, if you don&#8217;t know what you are doing.&lt;/p&gt;


	&lt;p&gt;One final quirk: if you happen to &lt;code&gt;dlopen()&lt;/code&gt; shared objects that dynamically link towards libraries outside the canonical paths, you cannot load them via &lt;code&gt;LD_LIBRARY_PATH&lt;/code&gt; (e.g. the &lt;code&gt;SYBASE.sh&lt;/code&gt;) as it is ignored for &lt;code&gt;setcap&lt;/code&gt;-ped processes. You should better move the library paths into an &lt;code&gt;/etc/ld.so.conf.d&lt;/code&gt; snippet.&lt;/p&gt;


	&lt;h2&gt;tl;dr&lt;/h2&gt;


	&lt;p&gt;Assuming you are the latest and greatest rails developer, you should become root &#8211; or use sudo, as you wish &#8211; and&lt;/p&gt;


&lt;pre&gt;
# YOU ARE ON YOUR DEVELOPMENT MACHINE
setcap cap_net_bind_service+ep `which ruby`
&lt;/pre&gt;

	&lt;p&gt;Profit:&lt;/p&gt;


&lt;pre&gt;
thin start -a yourapp -p 80
&amp;gt;&amp;gt; Using rack adapter
&amp;gt;&amp;gt; Thin web server (v1.2.11 codename Bat-Shit Crazy)
&amp;gt;&amp;gt; Maximum connections set to 1024
&amp;gt;&amp;gt; Listening on yourapp:80, CTRL+C to stop
...
&lt;/pre&gt;
          </content>  </entry>
  <entry xml:base="http://sindro.me/">
    <author>
      <name>vjt</name>
    </author>
    <id>tag:sindro.me,2011-07-02:176</id>
    <published>2011-07-02T15:46:00Z</published>
    <updated>2011-07-04T18:34:07Z</updated>
    <category term="development"/>
    <category term="conference"/>
    <category term="hack"/>
    <category term="security"/>
    <link type="text/html" rel="alternate" href="http://sindro.me/2011/7/2/ph-neutral-0x7db"/>
    <title>PH-Neutral 0x7db</title>
<summary type="html">&lt;p&gt;&#8220;&lt;strong&gt;If it is good, they stop making it&lt;/strong&gt;&#8221;, the payoff printed on the conference necklaces, distributed to every participant, along with an über-l33t badge customized with our nickname and the key hash.&lt;/p&gt;


	&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;http://sindro.me/assets/sindro.me/2011/7/2/phneutral-badge.JPG&quot; /&gt;&lt;/p&gt;


	&lt;p&gt;Being my first experience at an international security conf (I’ve only been to the ccc2k+7 camp), and being a ph outsider &#8216;cause I never participated to previous editions, the boot keynote held by &lt;a href=&quot;http://twitter.com/41414141&quot;&gt;FX&lt;/a&gt;, staffer and frontman, has been enlightening: &#8220;you ought to be here!&#8221;, he yelled while pointing at the stage, wearing a white shirt with the Phenoelit logo printed on both arms.&lt;/p&gt;


	&lt;p&gt;&#8220;This conference has never started on time&#8221;, he continued, &#8220;so there was no reason to do that for this last one&#8221;. the schedule is straightforward: party, the next days talks from 12.00PM to 7.30PM, then party, and the last days talks from 12.00PM to 5.30PM. definitely a setup well-playing with the available alcohol :-D.&lt;/p&gt;


	&lt;p&gt;Afterwards, another speaker informed us that the wi-fi access keys we received at the registration allows us to use a 6 APs/3 repeaters beast driven by an OpenBSD box &#8211; they want the audience to hack it because, well, &#8220;you are the Worst Case Scenario.&#8221; :-)&lt;/p&gt;</summary><content type="html">
            &lt;p&gt;&#8220;&lt;strong&gt;If it is good, they stop making it&lt;/strong&gt;&#8221;, the payoff printed on the conference necklaces, distributed to every participant, along with an über-l33t badge customized with our nickname and the key hash.&lt;/p&gt;


	&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;http://sindro.me/assets/sindro.me/2011/7/2/phneutral-badge.JPG&quot; /&gt;&lt;/p&gt;


	&lt;p&gt;Being my first experience at an international security conf (I’ve only been to the ccc2k+7 camp), and being a ph outsider &#8216;cause I never participated to previous editions, the boot keynote held by &lt;a href=&quot;http://twitter.com/41414141&quot;&gt;FX&lt;/a&gt;, staffer and frontman, has been enlightening: &#8220;you ought to be here!&#8221;, he yelled while pointing at the stage, wearing a white shirt with the Phenoelit logo printed on both arms.&lt;/p&gt;


	&lt;p&gt;&lt;a name=&quot;continue&quot;&gt;&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;&#8220;This conference has never started on time&#8221;, he continued, &#8220;so there was no reason to do that for this last one&#8221;. the schedule is straightforward: party, the next days talks from 12.00PM to 7.30PM, then party, and the last days talks from 12.00PM to 5.30PM. definitely a setup well-playing with the available alcohol :-D.&lt;/p&gt;


	&lt;p&gt;Afterwards, another speaker informed us that the wi-fi access keys we received at the registration allows us to use a 6 APs/3 repeaters beast driven by an OpenBSD box &#8211; they want the audience to hack it because, well, &#8220;you are the Worst Case Scenario.&#8221; :-)&lt;/p&gt;


	&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;http://sindro.me/assets/sindro.me/2011/7/2/ap-tree.jpg&quot; /&gt;&lt;/p&gt;


	&lt;p&gt;Then, the funny Hacker Hacker video was presented:&lt;/p&gt;


	&lt;p&gt;&lt;/p&gt;


	&lt;p&gt;:-D&lt;/p&gt;


	&lt;p&gt;After a lousy and not so exciting first night (due to tiredness), we’ll wait and see what the next day would bring.&lt;/p&gt;


	&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;http://sindro.me/assets/sindro.me/2011/7/2/funny-nhaima.JPG&quot; /&gt;&lt;/p&gt;


	&lt;h2&gt;&lt;a href=&quot;http://ph-neutral.darklab.org/talks/sj.html&quot;&gt;Sniffjoke &#8211; a sniffer-evasion toolkit&lt;/a&gt;&lt;/h2&gt;


	&lt;p&gt;High capacity sniffers used in big cos and on border national gateways that collect user generated traffic on order to find possibly &#8220;criminal&#8221; patterns are today generally available for bandwidth to the 10Gbps, there will be soon appliances that&#8217;ll process streams of 100Gbps.
Sniffjoke, by &lt;a href=&quot;http://twitter.com/sniffjoke&quot;&gt;vecna&lt;/a&gt; and &lt;a href=&quot;http://www.evilaliv3.org/&quot;&gt;evilaliv3&lt;/a&gt; is a tool that can inject into &lt;span class=&quot;caps&quot;&gt;TCP&lt;/span&gt; connections outsider packets that will fool the intercepting sniffer but with no remarkable effect on the receiver. these packets for instance trick the sniffer into thinking that the connection has been reset even it is not true &#8211; by injecting a wrong-checksummed &lt;span class=&quot;caps&quot;&gt;RST&lt;/span&gt; or a packet with a &lt;span class=&quot;caps&quot;&gt;TTL&lt;/span&gt; less than 1 of the hop count &#8211; or try to consume its processing power by using known vendor-specific interpretations of the &lt;span class=&quot;caps&quot;&gt;TCP RFC&lt;/span&gt;. Details: &lt;a href=&quot;http://delirandom.net/sniffjoke/&quot;&gt;website&lt;/a&gt;, &lt;a href=&quot;http://www.slideshare.net/diocanaglia/sniffjoke-04&quot;&gt;slides&lt;/a&gt;, &lt;a href=&quot;http://www.wireshark.org/lists/wireshark-dev/200904/msg00343.html&quot;&gt;wireshark thread&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;http://sindro.me/assets/sindro.me/2011/7/2/dante-poirot.JPG&quot; /&gt;&lt;/p&gt;


	&lt;h2&gt;&lt;a href=&quot;http://ph-neutral.darklab.org/talks/wlan.html&quot;&gt;&lt;span class=&quot;caps&quot;&gt;WLAN&lt;/span&gt; router horror stories&lt;/a&gt;&lt;/h2&gt;


	&lt;p&gt;Did you ever woder what happens when the wireless network password is directly tied to the device &lt;span class=&quot;caps&quot;&gt;MAC&lt;/span&gt; address, from which it can be inferred because it is part of the essid? horror stories, as the an Austrian (&lt;a href=&quot;http://twitter.com/sviehb&quot;&gt;ViBi&lt;/a&gt;) and a German (&lt;a href=&quot;http://twitter.com/5m7x&quot;&gt;5M7X&lt;/a&gt;) researchers showed us. many carriers who sell wifi equipment ship it with similar vulnerabilities, as also mayhem and cyrax show us in &lt;a href=&quot;http://www.video.mediaset.it/video/iene/puntata/227136/viviani-haker-e-wifi.html&quot;&gt;this video&lt;/a&gt; (italian only)&lt;/p&gt;


	&lt;p&gt;We&#8217;re talking about a technology whose potential is not maximized, as a result leads to flawed the security measures, because of bad engineering and misleading instructions: some wifi apparatus manuals even recommended the user to never fiddle with the configuration and leave the default passwords in place. clever.
Other examples of bad engineering include making the network key the last 4 bytes of the internal eth &lt;span class=&quot;caps&quot;&gt;MAC&lt;/span&gt; address and then broadcasting that &lt;span class=&quot;caps&quot;&gt;MAC&lt;/span&gt; via a multicast packet sent to 224.0.1.0 (&lt;a href=&quot;http://www.samsung.com/global/business/telecommunication/productInfo.do?ctgry_group=14&amp;amp;ctgry_type=32&amp;amp;b2b_prd_id=217&quot;&gt;Samsung &lt;span class=&quot;caps&quot;&gt;G3200&lt;/span&gt;&lt;/a&gt; / &lt;span class=&quot;caps&quot;&gt;G2210&lt;/span&gt; / &lt;span class=&quot;caps&quot;&gt;G3220&lt;/span&gt;).&lt;/p&gt;


	&lt;p&gt;Other companies, such as the synchron who produce the &lt;a href=&quot;http://dsl.vodafone.de/hilfe/index.php?aktion=anzeigen&amp;amp;rubrik=004&amp;amp;id=269&quot;&gt;easybox&lt;/a&gt; has a patented way to provide a key recognition method, and direct correspondence between the mac and the key seed. eventually, there are even companies who sell their devices with the management &lt;span class=&quot;caps&quot;&gt;SSHD&lt;/span&gt; open on the external interface, and who base the network key entirely on the internal &lt;span class=&quot;caps&quot;&gt;MAC&lt;/span&gt;. Couple it with default passwords and you get the picture.&lt;/p&gt;


	&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;http://sindro.me/assets/sindro.me/2011/7/2/wifi-armory.JPG&quot; /&gt;&lt;/p&gt;


	&lt;p&gt;If you want to know more, you should get some &lt;a href=&quot;http://net-wifi.it/&quot;&gt;armory&lt;/a&gt; and either reverse engineer the algorithms yourself, or participate to security conferences and ask the researchers for the slides :-). Once the industry will be ready, all the details will be revealed.&lt;/p&gt;


	&lt;h2&gt;Hacking &lt;span class=&quot;caps&quot;&gt;TETRA&lt;/span&gt;&lt;/h2&gt;


	&lt;p&gt;Held by Harald Welte (&lt;a href=&quot;http://twitter.com/laf0rge&quot;&gt;@laf0rge&lt;/a&gt;), member of the &lt;a href=&quot;http://gnumonks.de/&quot;&gt;gnumonks.de&lt;/a&gt; crew, the talk described a terrestrial radio communication technology that is similar to &lt;span class=&quot;caps&quot;&gt;GSM&lt;/span&gt; but runs on lower frequencies of the spectrum, thus achieving wider coverage with less transceivers. &lt;span class=&quot;caps&quot;&gt;TETRA&lt;/span&gt; employs ways to authenticate and encrypt communications, features a signaling channel over 140-chars messages are exchanged and identifies each user on the network using the match between the subscriber number and the terminal one.&lt;/p&gt;


	&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/TETRA&quot;&gt;&lt;span class=&quot;caps&quot;&gt;TETRA&lt;/span&gt;&lt;/a&gt; is widely deployed over the world as a communication medium for public transport, public safety, firefighters, etc. it is a technology suitable for these uses, but laforge correctly reminded us that even if the tools allow us to implement secure networks, often the implementations of such tools is ineffective and prone to breakage.&lt;/p&gt;


	&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;http://sindro.me/assets/sindro.me/2011/7/2/laf0rge.JPG&quot; /&gt;&lt;/p&gt;


	&lt;p&gt;He showed us how the signaling on the network works. He started by first showing us packet dumps in wireshark, thanks to chinese hackers who wrote the dissectors. He was also able to associate to a tetra network used by &lt;span class=&quot;caps&quot;&gt;BVG&lt;/span&gt;, the german public transportation system, and listen to a call between the headquarters and all train drivers: the former was asking the latters to push a button contemporarily. Yes, sir: in the 21st century you still need people to do that. Awesome.
If you want to build your own, you should first learn how radio communication works, buy yourself a &lt;a href=&quot;http://www.funcubedongle.com/&quot;&gt;FUNcube&lt;/a&gt; dongle and check out the &lt;a href=&quot;http://osmocomtetra/&quot;&gt;OsmocomTETRA&lt;/a&gt; project. An introduction is available on &lt;a href=&quot;http://www.h-online.com/security/news/item/TETRA-digital-radio-now-for-everyone-1254088.html&quot;&gt;heise.de&lt;/a&gt;.&lt;/p&gt;


	&lt;h2&gt;Printer Hacking&lt;/h2&gt;


	&lt;p&gt;Find vulnerability into a printer management interface, write a java applet that exploits it,  define hooks to drive it from Javascript, and your web-based printer vulnerability scanner is done!&lt;/p&gt;


	&lt;p&gt;I missed the first part of the talk, so I don&#8217;t have the details, but as the speaker told me later when I asked him how it all fitted together, &#8220;it&#8217;s everything on the paper!&#8221; so just &lt;span class=&quot;caps&quot;&gt;RTFM&lt;/span&gt; &lt;a href=&quot;http://andreicostin.com/papers/Conf%20-%20EuSecWest2010_AndreiCostin_HackingPrintersForFunAndProfit_full.pdf&quot;&gt;here&lt;/a&gt; :)&lt;/p&gt;


	&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;http://sindro.me/assets/sindro.me/2011/7/2/naif-sleeping.jpg&quot; /&gt;&lt;/p&gt;


	&lt;h2&gt;&lt;a href=&quot;http://ph-neutral.darklab.org/talks/chip_and_pin.html&quot;&gt;Chip &#38; &lt;span class=&quot;caps&quot;&gt;PIN&lt;/span&gt; is definitely broken&lt;/a&gt;&lt;/h2&gt;


	&lt;p&gt;Moving on in the list of badly-implemented technologies, nowadays credit / debit cards are vulnerable to a typical downgrade attack when it comes to validating the &lt;span class=&quot;caps&quot;&gt;PIN&lt;/span&gt;. There are different types of chips, ones that only allow plaintext authentication between the &lt;span class=&quot;caps&quot;&gt;POS&lt;/span&gt; and the chip, others that employ a challenge-response mechanism, and almost every one of them allow the &lt;span class=&quot;caps&quot;&gt;PIN&lt;/span&gt; to be validated online with the bank.&lt;/p&gt;


	&lt;p&gt;No matter what, the &lt;span class=&quot;caps&quot;&gt;SIM&lt;/span&gt; exposes an interface to the card readers, that can be queried and whose communication can be eavesdropped by an intercepting device. Because cards must be backwards-compatible with existing POSes and viceversa, such an intercepting device is able to alter the advertised capabilities of the card and force the &lt;span class=&quot;caps&quot;&gt;POS&lt;/span&gt; to use plaintext authentication, and then intercepting the pin as the user types it.&lt;/p&gt;


	&lt;p&gt;Such a skimmer is a 4&#215;4cm device, that can be installed &lt;strong&gt;inside&lt;/strong&gt; a &lt;code&gt;POS&lt;/code&gt; or an &lt;code&gt;ATM&lt;/code&gt;, thus possibly going unnoticed for a long period of time. And even if there are insurances that cover you against these frauds, if you&#8217;re a frequent traveller, you can hard time in demonstrating you were a victim, both because the card number and pin match, and because this is now considered as a &#8220;secure&#8221; technology that cannot be broken.&lt;/p&gt;


	&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;http://sindro.me/assets/sindro.me/2011/7/2/inversepath.JPG&quot; /&gt;&lt;/p&gt;


	&lt;p&gt;Thanks to Andrea Barisani and Davide Bianco for making us aware of the downgrade flaw. If you want to know more, here are their slide published on their company site, &lt;a href=&quot;http://inversepath.com/&quot;&gt;inversepath.com&lt;/a&gt;.&lt;/p&gt;


	&lt;h2&gt;&lt;a href=&quot;http://ph-neutral.darklab.org/talks/freebsd.html&quot;&gt;FreeBSD kernel exploitation&lt;/a&gt;&lt;/h2&gt;


	&lt;p&gt;As years go by, stack smashing is still alive and powerful, as &lt;a href=&quot;http://twitter.com/_argp&quot;&gt;argp&lt;/a&gt; explained during his talk. &lt;a href=&quot;http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-3531&quot;&gt;&lt;span class=&quot;caps&quot;&gt;CVE&lt;/span&gt;-2008-3531&lt;/a&gt; is a known vulnerability of the FreeBSD kernel that allows code execution in kernel space, whilst the &lt;span class=&quot;caps&quot;&gt;UMA&lt;/span&gt; &#8211; FreeBSD&#8217;s memory allocator &#8211; &lt;a href=&quot;http://www.phrack.org/issues.html?issue=66&amp;amp;id=8#article&quot;&gt;has known flaws in it as well&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;Without going into deeper details, the main issue here is the &#8220;if it ain&#8217;t broken, don&#8217;t fix it&#8221; approach employed by many system administrators when it comes to production machines: as a result, they do not get updated for years. Maybe it&#8217;s not broken today (if ever, ya&#8217;now 0dayz?) but it will be broken tomorrow, and you&#8217;ll get pwned if you do not keep up to date. &lt;span class=&quot;caps&quot;&gt;WORD&lt;/span&gt;.&lt;/p&gt;


	&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;http://sindro.me/assets/sindro.me/2011/7/2/argp.JPG&quot; /&gt;&lt;/p&gt;


	&lt;h2&gt;Advances in win32 &lt;span class=&quot;caps&quot;&gt;ASLR&lt;/span&gt; evasion&lt;/h2&gt;


	&lt;p&gt;When I think about Microsoft products, I always feel that they&#8217;re not built to be used by people, because it looks to me that coders who write them never care about using them in the first place. &lt;a href=&quot;http://en.wikipedia.org/wiki/Eating_your_own_dog_food&quot;&gt;They do not eat their own dog food&lt;/a&gt;. just go on and try to use IE developer tools and you&#8217;ll get the point.&lt;/p&gt;


	&lt;p&gt;Their software is written for business, it must match some higher-order requirement agreed by some random manager 7 layers up in the hierarchy, and very often it fails to implement them correctly. Thus, as &lt;a href=&quot;http://twitter.com/not_me&quot;&gt;JF&lt;/a&gt; pointed out during the talk &#8220;Microsoft has spent a lot of money fixing the exploitation problem, but they only created more of them&#8221;. Word, dword and qword! :-)&lt;/p&gt;


	&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/ASLR&quot;&gt;&lt;span class=&quot;caps&quot;&gt;ASLR&lt;/span&gt;&lt;/a&gt; is a mitigating factor for exploits that assume the return address of vulnerable code lies in at a well-known address in memory. These locations are used to compute where to write the shellcode in order to trigger its execution after exploitation. If the return address gets randomized (thus Address Space Layout Randomization), then the exploit will just crash the vulnerable software by making it reference an address outside its space.&lt;/p&gt;


	&lt;p&gt;Problem is that, for some obscure side effect, for each 16 threads you create, if their base address is even (&lt;code&gt;0x02xxxxxx&lt;/code&gt;, &lt;code&gt;0x04xxxxxx&lt;/code&gt;), 13 of them will end up being based at a known location, thus making &lt;span class=&quot;caps&quot;&gt;ASLR&lt;/span&gt; ineffective and bypassed. &lt;strong&gt;&lt;span class=&quot;caps&quot;&gt;PWN&lt;/span&gt;&lt;/strong&gt;!&lt;/p&gt;


	&lt;p&gt;Check JF slides out &lt;a href=&quot;http://sindro.me/assets/sindro.me/2011/7/2/Advances_in_Win32_ASLR_Evasion.pdf&quot;&gt;here&lt;/a&gt; &#8211; thanks for sharing &lt;a href=&quot;http://twitter.com/not_me&quot;&gt;@not_me&lt;/a&gt;!&lt;/p&gt;


	&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;http://sindro.me/assets/sindro.me/2011/7/2/jf.JPG&quot; /&gt;&lt;/p&gt;


	&lt;p&gt;JF apologized at least 4 times before ending up closing its laptop and ending the presentation with vodka and gin, because he said that he did not do a good work in explaining but, as I also told him later, he was more than effective: it&#8217;s not easy at all to understand how all the side effects played together. Only he that was on this stuff for months was able to see the patterns in addresses and convey a successful exploitation of an &lt;span class=&quot;caps&quot;&gt;ASLR&lt;/span&gt;-protected process. Enlightening!&lt;/p&gt;


	&lt;h2&gt;&lt;a href=&quot;http://ph-neutral.darklab.org/talks/lfh.html&quot;&gt;Modern heap exploitation using the low-fragmentation heap&lt;/a&gt;&lt;/h2&gt;


	&lt;p&gt;I&#8217;m no MM guy and I didn&#8217;t get most of the concepts of the talk, but its abstract is very explanatory:&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;&lt;em&gt;Heap memory management has matured over time, but with complex new code comes new opportunity for exploitation. This presentation will focus on understanding the Low Fragmentation heap on Windows 7 (32-bit). After a foundation of integral concepts is laid, new exploitation techniques will be thoroughly discussed. Finally, we will use this new found knowledge to leverage &lt;strong&gt;supposed&lt;/strong&gt; non-exploitable vulnerabilities. Specifically we will cover a case study showing how to craft an exploit for the &lt;span class=&quot;caps&quot;&gt;IIS FTP 7&lt;/span&gt;.5 &lt;strong&gt;denial of service&lt;/strong&gt; (&lt;a href=&quot;http://blogs.technet.com/b/srd/archive/2010/12/22/assessing-an-iis-ftp-7-5&quot;&gt;http://blogs.technet.com/b/srd/archive/2010/12/22/assessing-an-iis-ftp-7-5-= unauthenticated-denial-of-service-vulnerability.aspx&lt;/a&gt;-= unauthenticated-denial-of-service-vulnerability.aspx), resulting in full control of &lt;span class=&quot;caps&quot;&gt;EIP&lt;/span&gt;.&lt;/em&gt;&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;p&gt;What is interesting is that in order to use a memory allocation optimization subsystem to do what you want, you have to mix and match 7 different attack primitives, understand thoroughly how the block allocations are made and how they interact with the host &lt;span class=&quot;caps&quot;&gt;CPU&lt;/span&gt;. As well as battle with all the side effects in order to write in the program counter the address you want to execute. “@You say &lt;span class=&quot;caps&quot;&gt;JMP&lt;/span&gt;, we say what addr@”, a T-shirt was correctly stating in front of me. :-)&lt;/p&gt;


	&lt;p&gt;Incredibly complicated as it sounds, &lt;a href=&quot;http://twitter.com/nudehaberdasher&quot;&gt;Chris Valasek&lt;/a&gt; was able to find, exploit and explain the vulnerabilities, with a mental exercise that is both brilliant than inspirating: always dig deeper, and you&#8217;ll be able to reach any goal.&lt;/p&gt;


	&lt;p&gt;&lt;a href=&quot;https://prezi.com/secure/73006c52fbfde4eddf935b5e09103df23580c39d/&quot;&gt;Here are Chris’ slides&lt;/a&gt;, but you’ll have to enable Flash unfortunately.&lt;/p&gt;


	&lt;h2&gt;Exploiting the Hard-Working &lt;span class=&quot;caps&quot;&gt;DWARF&lt;/span&gt;: Trojans with no Native Executable Code&lt;/h2&gt;


	&lt;p&gt;Could you ever imagine that in every &lt;span class=&quot;caps&quot;&gt;GCC&lt;/span&gt;-compiled binary may lie a complete virtual machine subsystem, that gets invoked on every call/ret and has the ability to read and write the heap and every cpu register? indeed it is, and it&#8217;s called &lt;span class=&quot;caps&quot;&gt;DWARF&lt;/span&gt;, a debugging instrumentation used by &lt;span class=&quot;caps&quot;&gt;GDB&lt;/span&gt; to help the developer debug his/her software.&lt;/p&gt;


	&lt;p&gt;&lt;em&gt;“It’s a &lt;a href=&quot;http://en.wikipedia.org/wiki/DWARF&quot;&gt;&lt;span class=&quot;caps&quot;&gt;DWARF&lt;/span&gt;&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/Executable_and_Linkable_Format&quot;&gt;&lt;span class=&quot;caps&quot;&gt;ELF&lt;/span&gt;&lt;/a&gt; story&#8230;”&lt;/em&gt; LOL! :-D.&lt;/p&gt;


	&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;http://sindro.me/assets/sindro.me/2011/7/2/dwarf.JPG&quot; /&gt;&lt;/p&gt;


	&lt;p&gt;What&#8217;s interesting is also that &lt;span class=&quot;caps&quot;&gt;DWARF&lt;/span&gt; code is not considered by analysis tools as being part of the object code of a binary, thus making it an injection vector to attach trojans to a binary. Moreover, &lt;span class=&quot;caps&quot;&gt;DWARF&lt;/span&gt; is platform and architecture independent, being a finite-state machine on its own: a &lt;span class=&quot;caps&quot;&gt;DWARF&lt;/span&gt;-based trojan can be used over multiple platforms and attached to any &lt;span class=&quot;caps&quot;&gt;ELF&lt;/span&gt; binary.&lt;/p&gt;


	&lt;p&gt;If &lt;span class=&quot;caps&quot;&gt;DWARF&lt;/span&gt; code is present, it gets executed for each function called and on each return, as the stack gets unwinded, and yes you can read and write the &lt;span class=&quot;caps&quot;&gt;CPU&lt;/span&gt; and on the heap. Neat. For all the details, check &lt;a href=&quot;http://ph-neutral.darklab.org/talks/tr2011-680.pdf&quot;&gt;the whitepaper&lt;/a&gt; out.&lt;/p&gt;


	&lt;p&gt;Here we see an example of hobby-ism and poor project management on the &lt;span class=&quot;caps&quot;&gt;GCC&lt;/span&gt; side &#8211; no offense intended of course &#8211; but such a crafted and complex subsystem ends up being available in the vast majority of OSs, possibly making up an infection vector.&lt;/p&gt;


	&lt;p&gt;I infer this because &lt;span class=&quot;caps&quot;&gt;DWARF&lt;/span&gt; is an obscure, undocumented, cargo-culted piece of code written because somehow today and tomorrow the &lt;span class=&quot;caps&quot;&gt;GDB&lt;/span&gt; devs needed instrumentations, and &lt;span class=&quot;caps&quot;&gt;GCC&lt;/span&gt; devs built in an excessively powerful tool to support them, but said tool can then be abused and no one really know how the first releases work &#8211; unless you skim through random posts on the &lt;span class=&quot;caps&quot;&gt;GCC&lt;/span&gt; mailing list. More recent releases are pretty documented, &lt;a href=&quot;http://dwarfstd.org/Download.php&quot;&gt;though&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;Funnily enough, I think to support &lt;span class=&quot;caps&quot;&gt;GDB&lt;/span&gt;, even the &lt;a href=&quot;http://llvm.org/&quot;&gt;&lt;span class=&quot;caps&quot;&gt;LLVM&lt;/span&gt; compiler infrastructure&lt;/a&gt;, built with clean design from the ground up, uses &lt;span class=&quot;caps&quot;&gt;DWARF&lt;/span&gt;! That said, the moral of the story is that ugly hacks today, will call you for trouble tomorrow &#8211; or the next day.&lt;/p&gt;


	&lt;h2&gt;Party! (&lt;a href=&quot;http://82.94.215.218/download/ph-neutral/0x7db/DJ/&quot;&gt;Music Here&lt;/a&gt;)&lt;/h2&gt;


	&lt;blockquote&gt;
		&lt;p&gt;- &#8220;hey man, are you the guy behind the openbsd box acting as an host AP for the ph wifi network?&#8221;&lt;br /&gt;
- &#8220;yeah, I am&#8221;&lt;br /&gt;
- &#8220;may I ask you a root shell?&#8221;&lt;br /&gt;
- &#8220;you want&#8230; &lt;span class=&quot;caps&quot;&gt;WHAT&lt;/span&gt;?&#8221;&lt;br /&gt;
- &#8220;yeah, you know, I&#8217;d like to issue &lt;code&gt;ifconfig&lt;/code&gt;, &lt;code&gt;brconfig&lt;/code&gt;, &lt;code&gt;pfctl -s&lt;/code&gt;, &lt;code&gt;ls -lrt /etc | tail&lt;/code&gt;, stuff like that &#8211; just to see how the thing works :)&#8221;&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;p&gt;Kudos to the OpenBSD panda, that didn&#8217;t give me a shell, but illustrated me how the dorepanda access point &#8220;cluster&#8221; works, creating a network that spans all the 802.11b/g and n spectrums. It load balances clients between the APs, using cryptography to verify the AP identity and trying to prevent eavesdropping.&lt;/p&gt;


	&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;http://sindro.me/assets/sindro.me/2011/7/2/party1.JPG&quot; /&gt;&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;- &#8220;man, you are actually a grey beard at a security conference!&#8221;&lt;br /&gt;
- &#8221;... so what?!&#8221;&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;p&gt;... and then you talk with a 20-yrs experienced &lt;span class=&quot;caps&quot;&gt;DBA&lt;/span&gt; that tells you &#8220;&lt;em&gt;Oracle is flawed by design&lt;/em&gt;&#8221; and you chat with him about how the security scenario has changed over the years.&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;- &#8220;nothing really changed, it just got more complicated along the way&#8221;&lt;br /&gt;
- &#8220;you mean, the bottom line is always you have to snatch some shellcode in memory and then find a mean to execute it?&#8221;&lt;br /&gt;
- &#8220;exactly &#8211; you may have an NX bit, &lt;span class=&quot;caps&quot;&gt;ASLR&lt;/span&gt; and canaries, but there&#8217;s alway a way around it.&#8221;&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;p&gt;A good sysadm &lt;a href=&quot;http://signalos.org/&quot;&gt;friend of mine&lt;/a&gt; told me similarly, in terms of &#8220;as long as I read enough documentation, I&#8217;m able to set up and deploy whatever system. no challenges anymore.&#8221;&lt;/p&gt;


	&lt;p&gt;To me, confs like this one make you wonder, think and activate mental circuitry that stimulate your passion: you see brilliant humans solving tricky problems, walking deeply into details and actually learning new things in the process. human beings whose model of the world includes sequences of interactions happening inside the machine. Like a skilled netadmin recognizes AS numbers from netblocks, a kernel hacker learns to recognize portions of the address space: he/she literally breathes within the operating system.&lt;/p&gt;


	&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;http://sindro.me/assets/sindro.me/2011/7/2/party2.JPG&quot; /&gt;&lt;/p&gt;


	&lt;p&gt;It amazes me how I found strong matches of Jeff Hawkins&#8217; &lt;a href=&quot;http://www.amazon.com/Intelligence-Jeff-Hawkins/dp/0805074562&quot;&gt;theory of intelligence&lt;/a&gt; (&lt;a href=&quot;http://www.ted.com/talks/jeff_hawkins_on_how_brain_science_will_change_computing.html&quot;&gt;&lt;span class=&quot;caps&quot;&gt;TED&lt;/span&gt; video&lt;/a&gt;) in hackers&#8217; minds. I talked about the &lt;a href=&quot;http://numenta.com/htm-overview/htm-algorithms.php&quot;&gt;HTMs&lt;/a&gt; &lt;a href=&quot;http://numenta.com/htm-overview/education.php&quot;&gt;paper&lt;/a&gt; to the folks I met, and I was surprised no one of them knew about a technology aimed at building intelligent machines by reimplementing the human brain&#8217;s cortical algorithm in silicon.
For instance, Chris Valasek and JF talks demonstrate the basis of expertise: more and more you receive inputs from a context, the more your brain will be able to see deeper and complicated patterns, because they get moved lower in the cortex hierarchy, whose job is to recognize details &#8211; as they did with &lt;span class=&quot;caps&quot;&gt;ASLR&lt;/span&gt; and the low-fragmentation heap.&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;- &#8220;sir, you are the only one wearing a tie in this hall&#8221;&lt;br /&gt;
- &#8221;...&#8221;&lt;br /&gt;
- &#8220;so you must definitely work for Microsoft!&#8221;&lt;br /&gt;
- &#8220;ahem, no&#8230;&#8221;&lt;br /&gt;
- &#8220;ah, ok so my assumption was incorrect. sorry for bothering! :D&#8221;&lt;br /&gt;&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;p&gt;At 5:15, it&#8217;s really better to get to bed, waiting for the next good morning!&lt;/p&gt;


	&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;http://sindro.me/assets/sindro.me/2011/7/2/morning.JPG&quot; /&gt;&lt;/p&gt;


	&lt;h2&gt;Day 3 &#8211; &lt;a title=&quot;by natural language training&quot; href=&quot;http://ph-neutral.darklab.org/talks/newav.html&quot;&gt;98% Zero-Day Virus Detection&lt;/a&gt;&lt;/h2&gt;


	&lt;p&gt;After such a party, both the &lt;a href=&quot;http://ph-neutral.darklab.org/talks/jes.html&quot;&gt;social engineering&lt;/a&gt; and &lt;a href=&quot;http://www.slideshare.net/nbrito01/phneutral-0x7db-exploit-next-generation&quot;&gt;Exploit Next Generation++&lt;/a&gt; talks were a bit foggy, I ever failed to recognized the metasploit source code language (ahem). :-)&lt;/p&gt;


	&lt;p&gt;Then shirtie (&lt;a href=&quot;http://twitter.com/skjortan&quot;&gt;@skjortan&lt;/a&gt;) on stage illustrated how you can use a &lt;a href=&quot;http://en.wikipedia.org/wiki/Bayesian_classifier&quot;&gt;Bayesian&lt;/a&gt; / &lt;a href=&quot;http://en.wikipedia.org/wiki/Maximum_entropy_classifier&quot;&gt;&lt;span class=&quot;caps&quot;&gt;MAXENT&lt;/span&gt;&lt;/a&gt; classifier to identify unknown, 0day malware.&lt;/p&gt;


	&lt;p&gt;Exactly like an anti-spam filter catches spam by first analyzing a training set, identifying the recurring patterns and then matching them with novel data, malware as well as spam has typical features that can be used to find it. For instance, the presence of a reference to the &lt;code&gt;CreateProcess&lt;/code&gt; API or the absence of the &lt;code&gt;&amp;lt;a href=&quot;http://en.wikipedia.org/wiki/Pentium_FDIV_bug&quot;&amp;gt;_check_fdiv&amp;lt;/a&amp;gt;&lt;/code&gt; one, to whether the binary is &lt;a href=&quot;http://upx.sourceforge.net/&quot;&gt;&lt;span class=&quot;caps&quot;&gt;UPX&lt;/span&gt;-packed&lt;/a&gt; or not.&lt;/p&gt;


	&lt;p&gt;The technology looks effective, it is not a replacement of a signature-based AV rather it is an augmentation, because it is prone to false positives, but it is the only that identifies unknown, 0-day malware &#8211; the one for which no signatures exist.&lt;/p&gt;


	&lt;h2&gt;Offensive &lt;span class=&quot;caps&quot;&gt;XSLT&lt;/span&gt;&lt;/h2&gt;


	&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;http://sindro.me/assets/sindro.me/2011/7/2/xslt.JPG&quot; /&gt;&lt;/p&gt;


	&lt;p&gt;&lt;code&gt;XSLT&lt;/code&gt; is a language used to transform &lt;span class=&quot;caps&quot;&gt;XML&lt;/span&gt; documents into another form, and it is a turing-complete language executed either in the server or in the client context. it is used both by content management systems and in client-side applications, the most prominent example being the index of a subversion repository.&lt;/p&gt;


	&lt;p&gt;Because &lt;code&gt;XSLT&lt;/code&gt; is a (functional) programming language, it offers means to read and write files and to execute code. If the user input is not sanitized and/or the &lt;span class=&quot;caps&quot;&gt;XSLT&lt;/span&gt; engine exposed, it can be used to pwn a machine. Of course, the abusable features can be turned off if they&#8217;re not needed, or alternatively wrapped with a secure &lt;span class=&quot;caps&quot;&gt;API&lt;/span&gt; if they are.
Check &lt;a href=&quot;http://twitter.com/Agarri_FR&quot;&gt;Nicolas Gregoire’s&lt;/a&gt; slides out &lt;a href=&quot;http://prezi.com/y_fuybfudgnd/offensive-xslt/&quot;&gt;here&lt;/a&gt;. Liferay users, &lt;a href=&quot;http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-1571&quot;&gt;you’ve been warned&lt;/a&gt; :-)&lt;/p&gt;


	&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;http://sindro.me/assets/sindro.me/2011/7/2/an0nym0us.jpg&quot; /&gt;&lt;/p&gt;


	&lt;h2&gt;Final words&lt;/h2&gt;


	&lt;p&gt;Thanks &lt;a href=&quot;http://twitter.com/nhaima&quot;&gt;@nhaima&lt;/a&gt; for telling me about the conf and allowing me to have a grant (thanks nobody :)&lt;/p&gt;


	&lt;p&gt;Thanks &lt;a href=&quot;http://twitter.com/techdoer&quot;&gt;@techdoer&lt;/a&gt; for editing the post &#8211; hopefully this is my first one without grammar errors :-D&lt;/p&gt;


	&lt;p&gt;Thanks &lt;a href=&quot;http://twitter.com/phonoelit&quot;&gt;@phenoelit&lt;/a&gt; and &lt;a href=&quot;http://twitter.com/41414141&quot;&gt;@41414141&lt;/a&gt; for organizing the party (you&#8217;re da men), everyone who was there. I hope to see you soon on stage :). Yay!&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://sindro.me/">
    <author>
      <name>vjt</name>
    </author>
    <id>tag:sindro.me,2011-03-06:172</id>
    <published>2011-03-06T17:06:00Z</published>
    <updated>2012-10-09T13:39:28Z</updated>
    <category term="development"/>
    <category term="community"/>
    <category term="rails"/>
    <category term="ruby"/>
    <link type="text/html" rel="alternate" href="http://sindro.me/2011/3/6/rome-rsc-2011"/>
    <title>Rome RSC 2011</title>
<content type="html">
            &lt;p&gt;Thanks to &lt;a href=&quot;http://twitter.com/#!/jodosha&quot;&gt;@jodosha&lt;/a&gt; efforts and praising the former &lt;span&gt;Javaday&lt;/span&gt; event, now renamed into &lt;a href=&quot;http://codemotion.it/&quot;&gt;codemotion&lt;/a&gt; that brought in Rome many Ruby developers from Milan, Padua and other parts of Italy &#8211; the first &lt;em&gt;official&lt;/em&gt; Ruby Social Club in Rome has been a great success. Of course, &lt;em&gt;officialty&lt;/em&gt; is measured &lt;strong&gt;only&lt;/strong&gt; in the amount of twitter spam posted about it! :-): earlier RSCs in Rome &lt;a href=&quot;http://ruby-it.org/pages/Primo+incontro+del+Ruby+Social+Club+a+Roma&quot;&gt;go back in time to 2006&lt;/a&gt; organized by current &lt;a href=&quot;http://mikamai.com/&quot;&gt;mikamai&lt;/a&gt; members and more meetups promoted by &lt;a href=&quot;http://twitter.com/#!/jeko&quot;&gt;@jeko&lt;/a&gt; &lt;a href=&quot;https://www.ruby-forum.com/search?query=ruby+social+club+roma&quot;&gt;in 2007&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;What matters is that there's a community, there's a passion, and there's love to share knowledge - no matter who holds the meetings, the important thing is that they're being held :-).&lt;/p&gt;

&lt;p&gt;The event was simple and direct - some beers first, then my keynote on RVM and Ruby interpreters, then Luca's one announcing his &lt;a href=&quot;http://minege.ms&quot;&gt;minege.ms&lt;/a&gt; project and after &lt;strong&gt;real&lt;/strong&gt; social networking :-). I met &lt;a href=&quot;http://twitter.com/#!/gravityblast&quot;&gt;@gravityblast&lt;/a&gt; after much time we didn't meet, knew the &lt;a href=&quot;http://programmersinpadua.it/&quot;&gt;PIP&lt;/a&gt; group and met &lt;a href=&quot;http://twitter.com/#!/svarione&quot;&gt;@svarione&lt;/a&gt;, &lt;a href=&quot;http://twitter.com/#!/punkmanit&quot;&gt;@punkmanit&lt;/a&gt;, &lt;a href=&quot;http://twitter.com/#!/leonardoperna&quot;&gt;@leonardoperna&lt;/a&gt;, &lt;a href=&quot;http://twitter.com/#!/riggasconi&quot;&gt;@riggasconi&lt;/a&gt; &lt;a href=&quot;http://twitter.com/#!/ogeidix&quot;&gt;@ogeidix&lt;/a&gt; and other smart people. Moreover, we spent quite some nice time together, making up a really lousy and funny week-end.&lt;br /&gt;Of course, huge kudos to &lt;a href=&quot;http://twitter.com/#!/nhaima&quot;&gt;@nhaima&lt;/a&gt;'s car - that tirelessly carried us around Rome for two days :-)&lt;/p&gt;

&lt;p&gt;Now, looking forward to the next meetup, &lt;strong&gt;thanks&lt;/strong&gt; everyone who participed, who offered me beers and, last but not least, thanks to &lt;a href=&quot;http://twitter.com/#!/etapeta&quot;&gt;@etapeta&lt;/a&gt; for bringing me in time at the meeting - you're the real hero :-).&lt;/p&gt;

&lt;div&gt;
&lt;object height=&quot;551&quot; width=&quot;660&quot;&gt;
  
  
  
  
&lt;/object&gt;&lt;/div&gt;
          </content>  </entry>
  <entry xml:base="http://sindro.me/">
    <author>
      <name>vjt</name>
    </author>
    <id>tag:sindro.me,2011-01-04:170</id>
    <published>2011-01-04T17:20:00Z</published>
    <updated>2011-07-02T17:54:07Z</updated>
    <category term="development"/>
    <category term="apple"/>
    <category term="bsd"/>
    <link type="text/html" rel="alternate" href="http://sindro.me/2011/1/4/bsd-onto-a-macmini-4-1-no-way"/>
    <title>*BSD onto a MacMini 4,1? No way. :-(</title>
<content type="html">
            &lt;div&gt;&lt;img alt=&quot;&quot; src=&quot;http://sindro.me/assets/sindro.me/2011/1/4/mini-daemon.png&quot; /&gt;&lt;/div&gt;

	&lt;p&gt;I spent the last two days trying to set up the Aluminium Mac Mini (rev. 4,1) as a home &lt;span class=&quot;caps&quot;&gt;NAS&lt;/span&gt; server with encrypted storage, and I wanted a &lt;span class=&quot;caps&quot;&gt;BSD&lt;/span&gt; system on it. There&#8217;s already an embedded OpenBSD onto the soekris gateway, and another companion would have been nice. :-)&lt;/p&gt;


	&lt;p&gt;Guess what, there&#8217;s no way out:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;FreeBSD 8.1 doesn&#8217;t complete the boot process, due to &lt;a href=&quot;http://wiki.freebsd.org/AppleMacbook&quot;&gt;a bug in the &lt;span class=&quot;caps&quot;&gt;SATA&lt;/span&gt; chipset, &lt;span class=&quot;caps&quot;&gt;NV MCP89&lt;/span&gt;&lt;/a&gt;;&lt;/li&gt;
		&lt;li&gt;FreeBSD 8.2-RC1 boots but, due to the same bug, doesn&#8217;t recognize any &lt;span class=&quot;caps&quot;&gt;SATA&lt;/span&gt; drive nor any &lt;span class=&quot;caps&quot;&gt;USB&lt;/span&gt; umass device;&lt;/li&gt;
		&lt;li&gt;NetBSD 5.1 boots fine, handles &lt;span class=&quot;caps&quot;&gt;SATA&lt;/span&gt; disks via the generic pciide driver (no &lt;span class=&quot;caps&quot;&gt;DMA&lt;/span&gt;, thus quite slow) but, unluckily, doesn&#8217;t handle the &lt;span class=&quot;caps&quot;&gt;BCM57762&lt;/span&gt; ethernet controller. I tried with quick and dirty patches to &lt;a href=&quot;http://code.bsd64.org/cvsweb/netbsd/src/sys/dev/pci/if_bge.c&quot;&gt;bring the bge driver up to date with -current&lt;/a&gt;, but still no luck: the &lt;span class=&quot;caps&quot;&gt;MII&lt;/span&gt; link detection works, the card transmits but doesn&#8217;t receive. The sdmmc controller as well works with -current but not with 5.1-RELEASE. &lt;span class=&quot;caps&quot;&gt;ACPI&lt;/span&gt; works correctly;&lt;/li&gt;
		&lt;li&gt;OpenBSD 4.8 boots, can access the &lt;span class=&quot;caps&quot;&gt;SATA&lt;/span&gt; drives without &lt;span class=&quot;caps&quot;&gt;DMA&lt;/span&gt;, and recognizes the bge network card, but exposes the very same behaviour as NetBSD 5.1 with the -current driver fitted in;&lt;/li&gt;
		&lt;li&gt;DragonFlyBSD 2.8.2 doesn&#8217;t even enter kernel mode, I suspect due to &lt;span class=&quot;caps&quot;&gt;ACPI&lt;/span&gt; bugs;&lt;/li&gt;
		&lt;li&gt;PureDarwin didn&#8217;t inspire me too much, due to the many &lt;a href=&quot;http://www.puredarwin.org/blockers&quot;&gt;blocking issues&lt;/a&gt;.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;All of them support encrypted storage, I built up a &lt;a href=&quot;http://netbsd.gw.com/cgi-bin/man-cgi?cgd+4+NetBSD-5.0&quot;&gt;NetBSD &lt;span class=&quot;caps&quot;&gt;CGD&lt;/span&gt;&lt;/a&gt; disk flawlessly onto dk wedges; FreeBSD has got the interesting &lt;a href=&quot;http://www.freebsd.org/doc/handbook/disks-encrypting.html&quot;&gt;gbde(8) and geli(8)&lt;/a&gt; GEOM-based tools that I wasn&#8217;t able to test, while OpenBSD supports crypto via a &lt;a href=&quot;http://www.openbsd.org/cgi-bin/man.cgi?query=softraid&amp;amp;sektion=4&quot;&gt;softraid personality&lt;/a&gt;. Unluckily, support for the, nowadays, exotic Apple hardware is a no-brainer.&lt;/p&gt;


	&lt;p&gt;So, with no other way left open, I decided to go the Linux route, using the excellent &lt;a href=&quot;http://sysresccd.org/&quot;&gt;sysresccd&lt;/a&gt;, that I elect today as the successor of the &lt;a href=&quot;http://rescuecd.pld-linux.org&quot;&gt;pld-linux rescuecd&lt;/a&gt;, companion of endless system recoveries :-). Anyway, you&#8217;ll need the 2.6.36 kernel to make it boot onto the MacMini4,1, due to the aforementioned &lt;span class=&quot;caps&quot;&gt;MCP89&lt;/span&gt; bug. Ethernet card and SD card reader work out-of-the-box.&lt;/p&gt;


	&lt;p&gt;Now, I&#8217;m playing with &lt;a href=&quot;http://code.google.com/p/cryptsetup/wiki/FrequentlyAskedQuestions&quot;&gt;&lt;span class=&quot;caps&quot;&gt;LUKS&lt;/span&gt;&lt;/a&gt; and, while I&#8217;m not that competent in cryptography, looks like it is more evolved than the *BSD counterparts, and anyway it is more versatile tool than the tools in OpenBSD and NetBSD. On the latter, having to set up &lt;span class=&quot;caps&quot;&gt;GPT&lt;/span&gt; and DK Wedges to make the &lt;span class=&quot;caps&quot;&gt;CGD&lt;/span&gt; and synch &lt;span class=&quot;caps&quot;&gt;MBR&lt;/span&gt; and Disklabel to make the boot loader work (yuck!), everything coupled with rEFIt is quite a mess&#8482;. There&#8217;s a &lt;a href=&quot;http://www.netbsd.org/~mishka/gptboot/howto.html&quot;&gt;&lt;span class=&quot;caps&quot;&gt;GPT&lt;/span&gt; loader for NetBSD&lt;/a&gt; but I hadn&#8217;t a chance to try it out.&lt;/p&gt;


	&lt;p&gt;I hope this information is useful to anyone who tries a similar adventure, comments are appreciated :-).&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://sindro.me/">
    <author>
      <name>vjt</name>
    </author>
    <id>tag:sindro.me,2010-09-16:168</id>
    <published>2010-09-16T18:58:00Z</published>
    <updated>2012-10-09T13:39:53Z</updated>
    <category term="development"/>
    <category term="number 42"/>
    <category term="funny"/>
    <category term="google"/>
    <category term="http"/>
    <category term="instant"/>
    <category term="mining"/>
    <category term="suggest"/>
    <link type="text/html" rel="alternate" href="http://sindro.me/2010/9/16/learning-about-world-cultures-via-google-autocomplete"/>
    <title>Learning about world cultures via Google Autocomplete</title>
<content type="html">
            &lt;p&gt;Out of curiosity, I was looking how a browser interacts with the Google Instant backend. While looking the &lt;span class=&quot;caps&quot;&gt;HTTP&lt;/span&gt; exchanges via Firebug, I first asked myself why they&#8217;re encoding &lt;span class=&quot;caps&quot;&gt;HTML&lt;/span&gt; and JS with &lt;code&gt;\xYY&lt;/code&gt; escape sequences, then why the very same JS functions are sent back and forth on every request, and later I stumbled upon the &lt;code&gt;google.com/s?q=QUERY&lt;/code&gt; JSONp service.&lt;/p&gt;


	&lt;p&gt;Give it a query, and it&#8217;ll return the suggested related phrases that are used to build the menu under the search input while using suggestions and/or instant (didn&#8217;t dig too much in all the other parameters).&lt;/p&gt;


	&lt;p&gt;Anyway, what&#8217;s interesting is that, of course, the suggestions are customized on a per-country basis. To show the differences explicitly let&#8217;s ask the service the simplest query possible, &lt;code&gt;a&lt;/code&gt;:&lt;/p&gt;


	&lt;p&gt;For Italy you&#8217;ll get:&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;
$ curl http://www.google.it/s?q=a
window.google.ac.h([&quot;a&quot;,[[&quot;ansa&quot;,&quot;&quot;,&quot;0&quot;],
[&quot;alice&quot;,&quot;&quot;,&quot;1&quot;],[&quot;alitalia&quot;,&quot;&quot;,&quot;2&quot;],[&quot;alice mail&quot;,&quot;&quot;,&quot;3&quot;],
[&quot;apple&quot;,&quot;&quot;,&quot;4&quot;],[&quot;agenzia delle entrate&quot;,&quot;&quot;,&quot;5&quot;],
[&quot;audi&quot;,&quot;&quot;,&quot;6&quot;],[&quot;aci&quot;,&quot;&quot;,&quot;7&quot;],[&quot;autoscout&quot;,&quot;&quot;,&quot;8&quot;],
[&quot;atm&quot;,&quot;&quot;,&quot;9&quot;]],&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;,{}])
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;hum, let&#8217;s scrap the JSONp and parameters out:&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;
$ curl -s http://www.google.it/s?q=a | ruby -rjson -ne 'puts JSON($_[19..-2])[1].map(&#38;:first).join(&quot;, &quot;)'            
ansa, alice, alitalia, alice mail, apple, agenzia delle entrate, audi, aci, autoscout, atm
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;For the US you&#8217;ll get:&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;
amazon, aol, att, apple, american airlines, abc, ask.com, amtrak, addicting games, aim
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;UK:&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;
argos, amazon, asda, asos, autotrader, aa route planner, aol, apple, amazon uk, aqa
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;Ireland:&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;
aer lingus, aib, argos, amazon.co.uk, argos.ie, asos, aa route planner, amazon, aldi, aib internet banking
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;Lastly, because I&#8217;ve been there lately and it has been a profound experience, Cuba:&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;
asus, antonio maceo, amor, amigos, ain, antivirus, avira, alba, aduana, as
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;I&#8217;m sure &lt;a href=&quot;http://nhaima.org/&quot;&gt;@nhaima&lt;/a&gt; is smiling while seeing these words, because hell yeah, over there they really google antivirus software (avira is one of them) a lot because it&#8217;s a world without the Internet, thus without free software: you&#8217;re condemned in using Windows stuff, and you take what you pay for. Antonio Maceo has been an hero of the 19th century revolution, and it&#8217;s in the heart of Cuban people. Amor, Amigos! :-)&lt;/p&gt;


	&lt;p&gt;Anyway, looks like that simple queries like this really give an insight on what a population thinks and/or needs, because they&#8217;re surely generated by the search trends, thus are the &#8220;most searched words&#8221;. Am I discovering hot water? Maybe, but it was funny to rediscover it. Just make sure not to hammer the &lt;code&gt;/s&lt;/code&gt; service with too many requests, because they&#8217;ll anyway be handled by the same cluster of machines, thus you&#8217;ll be banned early (I&#8217;ve been :-p).&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://sindro.me/">
    <author>
      <name>vjt</name>
    </author>
    <id>tag:sindro.me,2010-08-05:165</id>
    <published>2010-08-05T14:11:00Z</published>
    <updated>2010-08-06T11:27:50Z</updated>
    <category term="development"/>
    <category term="open source"/>
    <category term="panmind"/>
    <category term="rails"/>
    <category term="ruby"/>
    <link type="text/html" rel="alternate" href="http://sindro.me/2010/8/5/panmind-at-ruby-social-club"/>
    <title>Panmind spin-offs presented at Ruby Social Club Milan</title>
<content type="html">
            &lt;p&gt;On July 22nd 2010, &lt;a href=&quot;http://mikamai.com&quot;&gt;Mikamai&lt;/a&gt; hosted a &lt;a href=&quot;http://blog.mikamai.com/2010/07/la-notte-del-ruby-social-club/&quot;&gt;Ruby Social Club in Milan&lt;/a&gt;, where nearly 50 people attended watching five speeches about Ruby, Web development and Startups. I was glad to be one of the speakers, and I presented a set of Rails plugins &lt;a href=&quot;http://mind2mind.is&quot;&gt;we&lt;/a&gt; spinned off from our latest (&lt;big&gt;and greatest&lt;/big&gt;) project: &lt;a href=&quot;http://panmind.org&quot;&gt;Panmind&lt;/a&gt; (read more on &lt;a href=&quot;http://panmind.org/about&quot;&gt;the about page&lt;/a&gt;) and released as Open Source on &lt;a href=&quot;http://github.com/Panmind&quot;&gt;GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The keynote is split in two parts: the first one explains &lt;big&gt;why&lt;/big&gt; you should follow the sane software engineering principle of writing modular and interest-separated code and then &lt;big&gt;how&lt;/big&gt; you could (and should) extract it from your Rails application by decoupling configuration and then prepare for the Open Source release, by writing documentation &lt;big&gt;&lt;strong&gt;AND&lt;/strong&gt;&lt;/big&gt; presenting to a Ruby event so, &lt;strong&gt;hopefully, someone else will write unit tests! :-)&lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;We released an &lt;a href=&quot;http://github.com/panmind/ssl_helper&quot;&gt;SSL helper&lt;/a&gt; plugin that implements filters (like Rails' ssl_requirement) but also named route helpers: no more &lt;code&gt;&amp;lt;%= url_for :protocol =&amp;gt; 'https' %&amp;gt;&lt;/code&gt;! You'll have something like &lt;code&gt;plain_root_url&lt;/code&gt; and &lt;code&gt;ssl_login_url&lt;/code&gt; - like they were built into the framework.
Then, a &lt;a href=&quot;http://github.com/panmind/bigbro&quot;&gt;Google Analytics&lt;/a&gt; ultra-simple plugin, with &lt;code&gt;&amp;lt;noscript&amp;gt;&lt;/code&gt; support, a couple of test helpers and an &lt;a href=&quot;http://github.com/Panmind/bigbro/blob/master/js/jquery.analytics.js&quot;&gt;embryo&lt;/a&gt; of a JS Analytics framework - hopefully it'll evolve into a complete jQuery plugin. Then, a &lt;a href=&quot;http://github.com/Panmind/recaptcha&quot;&gt;ReCaptcha&lt;/a&gt; interface, with AJAX validation support and eventually a &lt;a href=&quot;http://github.com/Panmind/zendesk&quot;&gt;Zendesk&lt;/a&gt; interface for Rails.&lt;/p&gt;

&lt;p&gt;We released also more code on &lt;a href=&quot;http://github.com/Panmind&quot;&gt;Panmind's GitHub account&lt;/a&gt;, including the nifty &lt;a href=&quot;http://github.com/Panmind/jquery-ajax-nav&quot;&gt;AJAX Navigation Framework&lt;/a&gt; that implements all the boilerplate code for the ultra-fast AJAX navigation of panmind &lt;a href=&quot;http://panmind.org/search&quot;&gt;contents&lt;/a&gt; and &lt;a href=&quot;http://panmind.org/tour/collaborate&quot;&gt;projects&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The keynote follows, you can download it in PDF (no &lt;a href=&quot;http://sindro.me/2010/8/4/on-the-iphone-pdf-and-kernel-exploit&quot;&gt;exploits, I swear!&lt;/a&gt; :-) &lt;a href=&quot;http://sindro.me/assets/sindro.me/2010/8/5/Panmind_at_Ruby_Social_Club_Milano.pdf&quot;&gt;from this link&lt;/a&gt; or view/comment it on slideshare &lt;a href=&quot;http://www.slideshare.net/panmind/panmind-open-source-releases-presented&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Final words: check out &lt;a href=&quot;http://blog.mikamai.com/2010/07/la-notte-del-ruby-social-club/&quot;&gt;mikamai blog post on the Ruby Social Club&lt;/a&gt; to read the other keynotes (I will, hopefully, update this post with sum-ups of them when time permits :-)) and &lt;a href=&quot;http://twitter.com/panmind&quot;&gt;say hello on twitter&lt;/a&gt; or &lt;a href=&quot;http://github.com/Panmind&quot;&gt;on GitHub&lt;/a&gt; if you're interested in contributing our open source projects or &lt;big&gt;&lt;a href=&quot;http://panmind.org/jobs&quot;&gt;you want to work with us&lt;/a&gt;&lt;/big&gt;.&lt;/p&gt;

&lt;div&gt;
  &lt;object height=&quot;551&quot; width=&quot;660&quot;&gt;
    
    
    
    
  &lt;/object&gt;
&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;PS.&lt;/strong&gt; The slideshare flash-based player sucks by design and relies on its app servers, on its CDN and on the S3 CDN to work properly - if any of these breaks, the whole thing will break. If you find it broken, download a &lt;a href=&quot;http://sindro.me/assets/sindro.me/2010/8/5/Panmind_at_Ruby_Social_Club_Milano.pdf&quot;&gt;PDF version of this keynote &lt;big&gt;here&lt;/big&gt;&lt;/a&gt;.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://sindro.me/">
    <author>
      <name>vjt</name>
    </author>
    <id>tag:sindro.me,2010-08-04:164</id>
    <published>2010-08-04T10:36:00Z</published>
    <updated>2010-08-05T12:57:21Z</updated>
    <category term="politics"/>
    <category term="iphone"/>
    <category term="security"/>
    <link type="text/html" rel="alternate" href="http://sindro.me/2010/8/4/on-the-iphone-pdf-and-kernel-exploit"/>
    <title>On the iPhone PDF and kernel exploit</title>
<content type="html">
            &lt;div&gt;&lt;img alt=&quot;&quot; src=&quot;http://sindro.me/assets/sindro.me/2010/8/5/jailbreakme.jpg&quot; /&gt;&lt;/div&gt;

	&lt;p&gt;As most of you already know, there are two &lt;a href=&quot;http://www.vupen.com/english/advisories/2010/1992&quot;&gt;open, critical vulnerabilities&lt;/a&gt; in iPhone OS versions from 3.x up. The first one resides in the Compact Font Format component of the &lt;span class=&quot;caps&quot;&gt;PDF&lt;/span&gt; renderer and the second one an error in the kernel, allowing attackers to bypass the sandbox (SeatBelt) inside which applications are run on the iPhone.&lt;/p&gt;


	&lt;p&gt;The two vulnerabilities were discovered by &lt;a href=&quot;http://twitter.com/comex&quot;&gt;@comex&lt;/a&gt;, &lt;a href=&quot;http://twitter.com/chpwn&quot;&gt;@chpwn&lt;/a&gt; and other people.&lt;/p&gt;


	&lt;p&gt;Only few weeks later the &lt;a href=&quot;http://www.kb.cert.org/vuls/id/940193&quot;&gt;.lnk design flaw&lt;/a&gt; on windows (guys, you&#8217;re using &lt;code&gt;LoadLibraryW&lt;/code&gt; to load a damn icon!), these iPhone OS vulnerabilities are even more interesting, because of the way the release is being handled by the &lt;em&gt;community&lt;/em&gt; and the &lt;em&gt;vendor&lt;/em&gt;.&lt;/p&gt;


	&lt;p&gt;I spent 3 hours last night trying to find detalied information about the bug, and except confused (and propagandistic) &lt;em&gt;blog posts&lt;/em&gt; the only bit of information is in this &lt;em&gt;&lt;a href=&quot;http://twitter.com/chpwn/statuses/20173810590&quot;&gt;tweet&lt;/a&gt;&lt;/em&gt;, and in the actual pdf exploit running on &lt;a href=&quot;http://www.jailbreakme.com/_/&quot;&gt;jailbreakme.com&lt;/a&gt;. Where are the security lists posts? Where is the &lt;span class=&quot;caps&quot;&gt;CVE&lt;/span&gt;? Even the &lt;span class=&quot;caps&quot;&gt;CERT&lt;/span&gt; still doesn&#8217;t say anything about this vulnerability.&lt;/p&gt;


	&lt;p&gt;There&#8217;s something &lt;big&gt;terribly wrong&lt;/big&gt; going on: the &lt;a href=&quot;http://en.wikipedia.org/wiki/Cat_and_mouse&quot;&gt;cat-and-mouse-game&lt;/a&gt; that is making the &lt;a href=&quot;http://blog.iphone-dev.org&quot;&gt;iphone-dev team researchers&lt;/a&gt; not disclose any of the vulnerabilities they find has become very dangerous for end users: an exploit that allows remote code execution and jail escape without no interaction whatsoever by the user, carried via something that&#8217;s used to consider &#8220;safe&#8221; (a &lt;span class=&quot;caps&quot;&gt;PDF&lt;/span&gt; file) is what is called a &lt;em&gt;critical&lt;/em&gt; hole; while the exploit that uses it is called a &lt;em&gt;0-day&lt;/em&gt;. It&#8217;s the first time in my life I see a 0-day packaged and distributed explicitly via a web site.&lt;/p&gt;


	&lt;p&gt;Anyway, the &lt;big&gt;dev-team researchers did not have any other choice&lt;/big&gt;: if they had communicated with Apple prior to public disclosure, we wouldn&#8217;t have had a so easy jailbreak vector; &lt;span class=&quot;caps&quot;&gt;OTOH&lt;/span&gt; now we have vulnerable phones and pads that can be very easily exploited by mailcious parties. It&#8217;s also funny that in order to be warned when a &lt;span class=&quot;caps&quot;&gt;PDF&lt;/span&gt; is about to be loaded thus mitigating the risk, &lt;strong&gt;you should jailbreak&lt;/strong&gt; your device and install the &lt;a href=&quot;http://9to5mac.com/pdf-loading-warner-on-cydia&quot;&gt;&lt;span class=&quot;caps&quot;&gt;PDF&lt;/span&gt; Loading Warner&lt;/a&gt; afterhand.&lt;/p&gt;


	&lt;p&gt;&lt;big&gt;My stand on this is that the real problem is Apple itself&lt;/big&gt;: they&#8217;ve crated a &lt;a href=&quot;http://en.wikipedia.org/wiki/Walled_garden_(technology)&quot;&gt;walled garden&lt;/a&gt;, outside any legislation, where they&#8217;re the absolute god and give and take whatever they want. &lt;em&gt;It&#8217;s not gonna work forever&lt;/em&gt;. I really hope that people will understand think that &lt;big&gt;it&#8217;s not the hackers&#8217; fault, rather it&#8217;s the totalitarian companies&#8217; fault&lt;/big&gt;, for not giving us control over the devices we buy from them. Hackers are only trying to liberate them, and it&#8217;s &lt;a href=&quot;http://www.eff.org/press/archives/2010/07/26&quot;&gt;fair use under the &lt;span class=&quot;caps&quot;&gt;DMCA&lt;/span&gt;, after all&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;&lt;span class=&quot;caps&quot;&gt;UPDATE 2010&lt;/span&gt;-10-05&lt;/strong&gt;: I&#8217;ve posted a summary of this bug on the &lt;a href=&quot;http://seclists.org/fulldisclosure/2010/Aug/37&quot;&gt;full-disclosure mailing list&lt;/a&gt; &#8211; you know, if it&#8217;s not on FD no one would think about it :-).&lt;/p&gt;
          </content>  </entry>
</feed>
