Qual è il linguaggio giusto per i penetration test: la risposta definitiva

Ogni tanto succede che arrivi il newbie con l’idea che sia lo strumento a garantirti l’efficacia nell’arte del penetration test.

Photo by Federica Mambrini

Ogni tanto succede che arrivi il newbie con l’idea che sia lo strumento a garantirti l’efficacia nell’arte del penetration test.

Quale la distribuzione migliore? Quale il sistema operativo migliore?

Un po’ come se entrassi nel Bar dello sport del mio paese e chiedessi:

Quale la marca di scarpe, magliette, calzettoni per giocare a calcio come Messi?

Serve sottolineare che va bene qualsiasi portatile con tanta RAM e un po’ di macchine virtuali a bordo (che è meglio usare sistemi operativi diversi per attività del genere)? Nel caso servisse, rileggete la frase di prima senza il punto di domanda.

Qual è il linguaggio giusto per i penetration test

Se parliamo di linguaggio di programmazione abbiamo sdoganato un punto importante: un penetration tester deve saper programmare. Credetemi non tutti lo danno per scontato.

Torniamo a bomba… quale il linguaggio giusto? Quale linguaggio è in grado di far uscire tutte le tue potenzialità, la creatività, il pensiero laterale, la capacità deduttiva ed un sano spirito di investigazione?

L’Italiano1

Se non parli un italiano corretto, dimostri di non avere un pensiero chiaro in mente. Con un italiano corretto può spiegare chiaramente quello che vuoi dire e, bonus tip, magari utilizzando parole semplici per esprimere concetti difficili.

Conoscendo bene l’Italiano, puoi farti capire dagli altri. Vuoi mettere? Spiegare al tuo cliente perché serve un’attività o perché ha dovuto pagare un po’ di più, quali benefici ha ottenuto venendo da te piuttosto che da uno della Caciotta Security srl.

So che il newbie vuole la tecnicalia… vuole sentire la guerra di religione tra chi farebbe tutto in ANSI C, tra chi non vive senza il Python e tra chi di notte sogna classi Ruby.

La dura realtà dei fatti è che, come per il sistema operativo o la distribuzione linux, non esiste un linguaggio più adatto dell’altro. Spesso i tool sono scritti poi in linguaggi completamente differenti e su piattaforme differenti, ecco perché devi essere il più aperto possibile ed usare tecnologie diverse.

Schifare a priori W1nz0z perché è a pagamento e tu sei contro il sistema, dimostra che non hai la mentalità adatta a fare questo mestiere.

Le guerre di religione non portano mai a qualcosa di buono, neanche in campo ICT Security o Cyber Security o Sicurezza Cibernetica, chiamatela come volete.

Sì, ma da dove parto?

Un buon libro, che invito tutti a leggere è The Hacker’s Playbook. I primi capitoli sono dedicati al setup dei sistemi e degli strumenti. Il resto del libro, spiega come usare con cognizione di causa, tanto bendiddio sviluppato nel corso degli anni.

Poi vi verrà la fregola di voler espandere uno strumento o scriverne uno vostro. Va bene quello che conoscete. Conosci il C? Va bene il C. Conosci Python? Usa quello. Io scrivo tutto in Ruby perché mi piace quello e mi trovo bene. Come un vestito, il linguaggio deve starti comodo.

Nel dubbio, io il C lo imparerei sempre a prescindere. Poi lo affiancherei ad un linguaggio interpretato a scelta.

Off by one

Credetemi, non sono l’unico a dirlo. Fare pentest, come fare code review, non è qualcosa che né si impara sui libri, né ha un incantesimo da imparare affinché diventiate i migliori. Sono entrambe arti che partono dall’attitudine personale nel vedere i diversi lati del problema, avere prospettive differenti.

Soprattutto, non vi dovete fermare ad un linguaggio, un tool, un sistema operativo. Siate aperti. Mettetevi in discussione. Non pensate che un tool, un SO, una certificazione vi dia un vantaggio o dica che siete bravi.

Imparate e studiate e siate affamati, veramente affamati.

Enjoy it!

  1. se ci sono lettori del blog di diversa nazionalità, che stanno usando Google Translate o semplicemente leggono la mia lingua, sostituiscano la loro lingua madre qui. 

comments powered by Disqus