Paolo Perego
Paolo Perego Specialista di sicurezza applicativa e certificato OSCE e OSCP, amo spaccare e ricostruire il codice in maniera sicura. Sono cintura nera di taekwon-do, marito e papà. Ranger Caotico Neutrale, scrivo su @codiceinsicuro.

Sono tutti open con il source degli altri – reprise

610 parole - Lo leggerai in 3 minuti

Lo ammetto: rompere lo stereotipo che l’opensource sia sicuro senza sé e senza ma è un mio cruccio. Ne scrivevo anche sei anni fa, proprio su questo blog, in questo post. Io amo scrivere codice e amo l’idea alla base dell’opensource. Amo che lo sviluppatore possa scrivere e condividere del codice con la comunità e questa possa collaborare migliorandolo.

Collaborare, migliorandolo.

Se la nostra idea di opensource è: “wow che figata, questa funzionalità è implementata gratis, aspetta che la inglobo nel mio mastodontico prodotto”, allora è il caso di soffermarsi sulla parola collaborare.

È chiaro, non tutti sanno scrivere codice. Ci sono poi tanti fattori che entrano in campo, alcuni anche personali come il senso di blocco del “oddio, come posso collaborare?” oppure “oddio, non sono a quel livello”.

Se però io voglio usare codice opensource, voglio sia sicuro e voglio supportare la comunità che mi ha dato quella libreria che mi sarebbe altresì costata tempo e denaro, io qualcosa devo fare. Posso dare un contributo economico al maintainer, posso scrivere documentazione, posso lavorare ai test, posso fare security audit, posso tradurre i manuali, posso scrivere post tecnico che spiegano come usare quel codice, …

Posso fare un sacco di cose. Un sacco di cose tranne il non fare nulla.

I guerrieri solitari

Dall’altra parte dell’utilizzatore finale abbiamo la figura del maintainer, del capo progetto, ovvero quella persona che è responsabile per quel pezzo di codice. Lo cura, lo fa crescere, prende i feedback della community e li trasforma in funzionalità.

Il maintainer di solito ha un lavoro ed una vita personale. Cosa succede se gli impegni sono troppi o semplicemente non è più in grado di sostenere economicamente il proprio progetto?

Ta-daan

> 1\. Buy expired NPM maintainer email domains. > 2\. Re-create maintainer emails > 3\. Take over packages > 4\. Submit legitimate security patches that include package.json version bumps to malicious dependency you pushed > 5\. Enjoy world domination. > > — Lance R. Vick ( @lrvick@mastodon.social ) (@lrvick) [May 9, 2022](https://twitter.com/lrvick/status/1523774962909298690?ref_src=twsrc%5Etfw)

Fa paura, vero?

A me molta, moltissima paura. Un mancato investimento di qualche centinaia di euro, facciamo finta il dominio sia un .com molto costoso, sappiamo tutti che forse sarà di un fattore 10x inferiore, ha una ripercussione su centinaia se non migliaia di altri progetti opensource che usano una particolare libreria che, caduta in mani ostili può contenere codice malevolo. Queste centinaia e migliaia di progetti opensource, sono poi inclusi in altrettanti progetti sia open che commerciali, con un impatto ben superiore al costo di un dominio per un anno.

La community deve essere una parte attiva nel ciclo di vita di un progetto opensource e tu che stai leggendo questo post, devi fare qualcosa nel tuo piccolo.

Non sai dove partire? Vai qui: https://github.com/thesp0nge. Scegli tra i miei progetti opensource e prova a contribuire in qualche modo.

Ci sono eventi organizzati in rete dove questa cosa è portata all’estremo, dove la community è chiamata a partecipare attivamente allo sviluppo e alla crescita del codice open, spesso alla base delle applicazioni che usiamo ogni giorno.

Ti do un compito. Esplora github.com o gitlab.com o sourceforge.net, scegli un progetto e contatta il maintainer chiedendo come partecipare. Se sei invece più coraggioso, prova a scaricarlo, provarlo e magari cercare qualche bug, mettendoti sempre in contatto con il maintainer. Se ti va poi, scrivi qui nei commenti quale progetto hai “adottato”.

Se invece sei tu stesso un maintainer e sei in difficoltà, chiedi aiuto alla community usando i social e qualsiasi strumento tu abbia a disposizione.

La sicurezza del codice passa soprattutto da qui.

Enjoy it!

Vuoi aiutarmi a portare avanti il progetto Codice Insicuro con una donazione? Fantastico, allora non ti basta che premere il pulsante qui sotto.

Supporta il progetto

comments powered by Disqus
Codice Insicuro, blog di Cyber Security, sviluppo sicuro, code review e altro.   Non perdere neanche un post, iscriviti ora alla mailing list