Adium + Facebook Chat + 2-factor auth: yes, we can!

2015-06-02 1 commento

Update (2015-08-01): this is no longer working. Facebook dropped the support for XMPP.

Adium is one of the best multi-protocol chat clients for OS X. Among the supported services, Facebook chat is included. But on April 30, 2014 Facebook decided to deprecate the Facebook Chat API, so external clients are not able to connect to the chat using that API.

However, it appears that the XMPP protocol is still working. So, let’s use it.

  1. If you use two-factor authentication (2FA), first go to https://www.facebook.com/settings?tab=security and generate a new app password for Adium.
    Facebook app passwords
  2. Open Adium and go to menu Adium -> Preferences… -> Account.
  3. Create a new XMPP (Jabber) account. Do not create a Facebook account, that will not work.
    Adium: new XMPP account
  4. Insert username@chat.facebook.com as the Jabber ID (“username” is your username on Facebook).
  5. If you use 2FA, insert the app password generated at step 1 as your password. If you’re not using 2FA, insert your Facebook password.
    Adium new account
  6. Go to “Options” and enable SSL/TLS.
    Adium - Enable SSL/TLS
  7. Click on “Ok”.
  8. After a brief delay, Adium should connect to Facebook chat!

How to make SonarQube accept tabs instead of spaces for indentation

I’m developing a Java application as a university assignment and I’m using SonarQube for automatic code quality assessment.

Sonar is quite rigorous in spotting errors in code, and this is often useful. But it becomes annoying when Sonar floods the list of problems with multiple messages about the use of tabs instead of spaces for code indentation. Eclipse by default indents code with tabs: I think that this is the right decision and I don’t want to change that setting, even if SonarQube doesn’t like it.

So, how to configure SonarQube to accept spaces?

  1. Start Sonar and go to http://localhost:9000. This is the main dashboard of SonarQube.
  2. Log in using the link in the upper right corner of the screen. Username and password are both “admin” by default.
  3. Click on “Quality profiles” in the upper toolbar. You should see only one profile, called “Sonar way”.SonarQube Quality Profiles
  4. Use the “Copy” link to make a duplicate of this profile. Name the new profile as you want, e.g. “Sonar way (tabs)”.
  5. When it’s done, click on the number relative to the new profile in the “Rules” column. Sonar should come up with a list of active rules.
  6. Use your browser search feature to find the rule named Tabulation characters should not be used”. Deactivate it using the button on the right.
    SonarQube Rules
  7. Using the upper toolbar, go to Dashboards -> Home, then click on your project. You should now be in the dashboard of your project.
  8. Choose Settings -> Quality Profiles.
    Quality profile for project in SonarQube
  9. Select the new quality profile and click “Update”.
  10. Now, in Eclipse, you should force a full analysis of your project. To do this, run the project as “sonar:sonar” profile using Maven.You can also type mvn sonar:sonar in a terminal window in the folder that contains your pom.xml file.
  11. Go again in the SonarQube dashboard. Now you should no longer see the warnings about spaces.

Sovrapposizione di date di appello – segnalazione al Difensore degli Studenti del Polimi

Aggiornamento: meno di 24h dopo la mia segnalazione, il problema è stato risolto spostando l’appello di Meccanica. Un sentito ringraziamento al Difensore degli Studenti del Poli!

Gentile Difensore degli Studenti,

sono uno studente del terzo anno del Corso di Laurea in Ingegneria Informatica, nonché rappresentante degli studenti nel mio CCS.

Desidero segnalare delle inadempienze da parte della Scuola di Ingegneria Industriale e dell’Informazione, riguardanti la violazione di un articolo della Carta dei diritti e dei doveri degli Studenti universitari del Politecnico di Milano, nonché di un regolamento della stessa Scuola.

Nella bozza di calendario esami della scuola di Ingegneria Industriale e dell’Informazione, i primi appelli di Meccanica e Fisica Tecnica della sessione di luglio 2015 si sovrappongono nella stessa data (2 luglio) e nella stessa ora (16:30).

Il Regolamento Didattico del corso di Laurea in Ingegneria Informatica obbliga gli studenti che intendono proseguire gli studi nel corso di Laurea Magistrale a sostenere gli esami di Meccanica e Fisica Tecnica; consiglia esplicitamente di inserirli al terzo anno, piuttosto che in Laurea Magistrale (consiglio che ho seguito, insieme a molti miei colleghi).

Le “Procedure per la Verifica dell’Apprendimento nei Corsi di Laurea della Scuola di Ingegneria Industriale e dell’Informazione” prevedono, al punto 4, quanto segue:

Il calendario delle prove di verifica dell’apprendimento garantisce di norma la non sovrapposizione degli appelli relativi ad insegnamenti dello stesso anno e stesso semestre. Agli studenti laureandi viene garantita la programmazione di una prova entro la data di scadenza consegna verbali solo per gli insegnamenti del secondo e terzo anno di corso.

L’art. 12 della Carta dei diritti e dei doveri degli Studenti universitari del Politecnico di Milano recita quanto segue:

Ogni insegnamento deve prevedere un numero e una distribuzione temporale degli appelli tali da garantire agli studenti una ragionevole programmazione del proprio carico di esami. Il calendario degli appelli deve essere reso noto entro l’inizio di ciascun semestre da parte delle Facoltà. Eventuali modifiche potranno essere concordate tra gli studenti ed il docente del corso.

Il termine per la verbalizzazione degli esami ai fini dell’iscrizione all’appello di laurea della sessione è il 14 luglio: questa sovrapposizione renderebbe dunque impossibile agli studenti laurearsi in tale sessione, anche se perfettamente in regola con la propria carriera universitaria.

Ho segnalato il problema alla Presidenza di Scuola e ai docenti titolari dei due corsi in data 14 marzo; mi è stato consigliato di scrivere alla Segreteria Didattica del DEIB, cosa che ho fatto in data 15 marzo. La segreteria didattica mi ha risposto dicendomi di aver inoltrato la mia mail alla Presidenza di Scuola, in data 16 marzo. Da allora non ho ricevuto risposta.

Sempre in violazione dell’art. 12 della Carta, il calendario definitivo degli appelli non è stato pubblicato entro l’inizio del semestre (9 marzo), e non è ancora disponibile sul sito della Scuola; inoltre, non erano disponibili al 9 marzo le date delle prove in itinere di maggio, né su WebPoliself né sul sito della scuola.

La bozza di calendario per gli esami di luglio è stata pubblicata il giorno 13 marzo (dai metadati del PDF), data della chiusura della finestra di modifica semestrale del Piano di Studi, rendendo nella pratica impossibile agli studenti una scelta di esami tale da evitare sovrapposizioni.

Auspico che un suo intervento possa riportare la situazione alla regolarità.

La ringrazio per l’attenzione e porgo cordiali saluti.

Pietro De Nicolao

BitTorrent: how to make Transmission ignore the “private flag”

2015-01-02 2 commenti

Jack SparrowSome BitTorrent files have a so-called “private flag”, which is a bit in the .torrent file telling the BitTorrent client: “please, disable DHT and peer exchange; use only trackers for the discovery of peers interested in this torrent”. This can be quite useful for private trackers, communities where the files are shared only among the members and should not “leak” outside.

But some not-so-bright people upload torrents with the private flag set on public torrent sites such as The Pirate Bay, forcing all the downloaders not to use DHT. This is meaningless and detrimental to the quality of downloads, because often trackers are taken down and DHT is a very useful, distributed technology that enables us to be less dependent on said trackers.

At this time, all BitTorrent clients enforce the private flag. One can not simply edit the .torrent file stripping out the private flag, because this would alter the hash and make the torrent file invalid. The only way to ignore the private flag is to edit the source code of the BitTorrent client and make it use DHT whether the flag is set or not.

Today I’ll show you how to make this modification to the source code of a popular free and open-source client: Transmission.

I won’t cover here the steps needed to download and compile the source code, since they are OS-dependent and well documented on the Transmission development wiki.

Once you’ve downloaded the source code, all you need to do is to make a little edit to a single line of the file libtransmission/metainfo.c.

Lines 518-522 in the original source tree look like this:

518   /* private */
519   if (!tr_variantDictFindInt (infoDict, TR_KEY_private, &i))
520     if (!tr_variantDictFindInt (meta, TR_KEY_private, &i))
521       i = 0;
522   inf->isPrivate = i != 0;

You only need to edit line 522. It should read, simply: “inf->isPrivate = 0;”. So the modified snippet looks like:

518   /* private */
519   if (!tr_variantDictFindInt (infoDict, TR_KEY_private, &i))
520     if (!tr_variantDictFindInt (meta, TR_KEY_private, &i))
521       i = 0;
522   inf->isPrivate = 0;

We’re telling that every torrent should be treated as “public”. Now save the file, compile the client, locate the executable and use it. Done! No private flag anymore. :-)

Registro elettronico violato? Date un’occhiata a quel software!

Scena del film "WarGames".

Scena del film “WarGames”.

È di questi giorni la notizia di 13 “studenti hacker” che si sarebbero alzati i voti scolastici accedendo al registro elettronico della propria scuola.

Sono molto curioso di capire come gli studenti possano essere entrati nel sistema: se abbiano usato metodi “low tech” (keylogger, ingegneria sociale sui prof., PC lasciati loggati…) oppure abbiano sfruttato vere e proprie vulnerabilità del software. Eventualità, quest’ultima, molto interessante dato che permetterebbe attacchi su più ampia scala con un minimo sforzo (e, volendo, nessuna rintracciabilità).

In attesa di ulteriori news, sono andato a vedere le release notes (note di versione, ossia le descrizioni degli aggiornamenti software) del sistema di registro elettronico più usato dalle scuole italiane, sviluppato da Axios. Ci sono alcune frasi che agli occhi di uno sviluppatore minimamente attento alla sicurezza del proprio software fanno un po’ rabbrividire, e pensare alle SQL injection come ipotetici vettori di attacco. Il testo che segue è integralmente preso dalle release notes del prodotto “Request per registro elettronico” (qui).

In Scrutini vengono controllati e rigetttati, nell’inserimento dei voti, caratteri strani tipo “\” e “/”.

Prima venivano forse interpretati?

Ora si consente di modificare la password inserendo anche lettere.

Ah, quindi prima le password erano composte solo da numeri? Speriamo che almeno fossero di lunghezza sufficiente.

Modificata funzione per accettare sia la , che il . come separatore decimale nei voti

I problemi nel filtraggio dell’input sono spesso un cattivo presagio per la sicurezza di un’applicazione…

Inserito controllo per carattere speciale ‘ in argomenti, commenti e note

Come sopra: sbagliare a parsare gli apici, in particolare, equivale ad implorare di essere bucati con una classicissima SQL injection.

In calcolo media valutazioni il + ed il – vengono considerati solo se preceduti da un voto

Anche qui: prima venivano forse interpretati?

Dulcis in fundo, la pagina di logout del registro elettronico è suscettibile ad un attacco XSS (Cross-Site-Scripting), per esempio col seguente URL:

http://www.sissiweb.it/Secret/RELogOff.aspx?Error_Desc=<b>In questo campo può essere inserito codice arbitrario, anche maligno.</b><BODY ONLOAD=alert(‘XSS’)>

Molti di voi probabilmente non visualizzeranno il popup JavaScript (qui totalmente innocuo) a causa delle protezioni anti-XSS dei browser moderni (controllate la console JavaScript): tuttavia, il codice viene “iniettato” senza problemi nel sorgente della pagina mediante il parametro dell’URL, e questa è una vulnerabilità grave.

In questo articolo ho condotto solamente un’analisi sommaria rispetto alle prime cose che ho visto: sarei deliziato se qualcuno più ferrato di me nel campo della sicurezza informatica riuscisse a trovare altre vulnerabilità nel registro elettronico.

How to block advertisements on uTorrent 1.8.6 for Mac OS X using the hosts file

2014-11-09 12 commenti

uTorrent has made advertisements unremovable with its latest release for Mac (1.8.6): they appear in the left sidebar and there’s no way to remove them, even by editing the advanced preferences.

uTorrent with ads

Luckily, we can simply block the uTorrent ad servers at system-level, editing the hosts file. Using the free network analyzer Wireshark I easily discovered which servers uTorrent connects to, to fetch the ads.

To block those ads, first quit uTorrent. Then open the /etc/hosts file with your favorite text-editor (you’ll need root privileges) and append the following lines:

# uTorrent ads
0.0.0.0 cdn.bitmedianetwork.com
0.0.0.0 static.ap.bittorrent.com

Update: if you need help editing the hosts file, please read this guide on OS X Daily.

Next, trash the ~/Library/Caches/com.bittorrent.uTorrent folder in order to get rid of any cached ads.
Now restart uTorrent, et voila: the ads are gone!

uTorrent without ads

Umberto Veronesi: “il 50% dei nostri giovani fa uso di cannabis”. Ma è vero?

Sul sito de L’Espresso, in data 7 agosto 2014, Umberto Veronesi, eminente scienziato, medico e politico italiano, pubblica un appello per la legalizzazione della marijuana in Italia.

Droga4

Tra gli argomenti a favore della legalizzazione, Veronesi scrive (grassetto mio):

Sono cifre che la dicono lunga sull’inefficacia del proibizionismo, ancor più se pensiamo che, malgrado il numero enorme di carcerazioni, si stima che il 50 per cento dei nostri giovani faccia uso di cannabis, senza calcolare il gran numero di adulti. Dovremmo considerare la metà dei nostri giovani dei criminali?

Ora, già ad una prima lettura, dire che la metà dei giovani italiani fa uso di cannabis sembra una stima davvero eccessiva, anche se si parlasse di un uso occasionale e non abituale.

Ovviamente la fonte del dato non è citata.

Andiamo a vedere i dati, dunque. Ho trovato online il REPORT GPS-ITA 2012: “Indagine sul consumo di sostanze psicotrope nella popolazione italiana 18-64 anni”, a cura della Presidenza del Consiglio dei Ministri, Dipartimento Antidroga. Fonte che dovrebbe essere affidabile, e che sicuramente non ha interesse a sottostimare il consumo di sostanze illegali.

A pagina 92 del report si trovano le statistiche sul consumo di cannabis, e nessuna di queste sembra dare ragione, anche lontanamente, alla stima di Veronesi.

Vediamo ad esempio il consumo nella popolazione generale 15-64 anni, negli ultimi 12 mesi:

Droga1

Lo studio afferma: “Circa il 79% della popolazione si stima non abbia mai assunto cannabis nella vita”. Un dato abbastanza incompatibile con la stima di Veronesi.

Però lui parlava di giovani: nella statistica generale, magari i giovani si drogano tantissimo e gli adulti pochissimo, chi lo sa? Allora vediamo i dati disaggregati per fasce d’età.

Droga2

Vero, con l’avanzare dell’età il consumo di cannabis diminuisce, ma non risulta affatto che metà dei “giovani” assuma cannabis.

Anche la seguente tabella è significativa:

Droga3Stupisce davvero l’uso disinvolto di percentuali, senza alcuna puntuale citazione degli studi, da parte di uno scienziato della statura di Umberto Veronesi.

Iscriviti

Ricevi al tuo indirizzo email tutti i nuovi post del sito.

Unisciti agli altri 918 follower

%d blogger cliccano Mi Piace per questo: