Et oui đ vous ne rĂȘvez pas ! Je dis dis bien hacking ! Avant tout, mettons-nous d'accord sur la terminologie âHackingâ. Les mĂ©dias nous ont menti sur le hacking, ils confondent le hacking au cracking. Richard Stallman, un fervent dĂ©fenseur du logiciel libre et fondateur du mouvement du logiciel libre, dĂ©finit un hacker comme quelqu'un qui aime jouer avec des systĂšmes, comprendre leur fonctionnement interne et les amĂ©liorer. Le hacking, dans ce contexte, est un acte de crĂ©ativitĂ©, d'innovation et de rĂ©solution de problĂšmes, souvent associĂ© Ă la programmation informatique. Câest une part de vĂ©ritĂ©, le hacking est bien plus que cette dĂ©finition, il est en soi un Ă©tat dâesprit, une maniĂšre de penser⊠Je vous conseille de lire cet ouvrage pour en savoir plus sur cette littĂ©rature : âHackers and Painters: Big Ideas from the Computer Ageâ de Paul Graham.
Introduction
Dans cet article, je vais vous parler du parcours que propose Kali Academy aux jeunes dĂ©veloppeurs pour les initier au Hacking. Kali Academy est une acadĂ©mie qui vise Ă promouvoir les valeurs de l'open source dans les rĂ©gions les moins reprĂ©sentĂ©es notamment en Afrique, voir le site de Kali Academy. Jâai personnellement Ă©tĂ© parmi les 10 stagiaires retenus pour la cohorte 2024 et câest fut une Ă©norme opportunitĂ© pour ma carriĂšre de dĂ©veloppeur, je me sens dans lâobligation de partager avec cette expĂ©rience assez passionnante. Avant dâentrer dans le vif du sujet, je tiens a prĂ©ciser que je ne me considĂšre pas hacker, et je ne me considĂ©rerai jamais hacker, câest la pertinence de mon travail qui pourra me procurer ce titre.
Le parcours de stage chez Kali Academy est subdivisé en 3 parties :
- les fondamentaux
- la spécialisation Wikimédia et
- le projet de fin de stage.
Mais avant de dĂ©cortiquer ce programme apparemment, commençons par nous poser les bonnes questions en guise de fondamentaux đ. Qui construit et entretient l'infrastructure numĂ©rique sur laquelle nous nous appuyons au quotidien ? Quels sont les dĂ©fis et les obstacles rencontrĂ©s par ceux qui travaillent Ă la construction et Ă la maintenance de cette infrastructure ? Quelles sont les implications sociales, politiques et Ă©conomiques de la maniĂšre dont l'infrastructure numĂ©rique est construite et gĂ©rĂ©e ? Comment les dĂ©cisions prises en matiĂšre d'infrastructure numĂ©rique affectent-elles la vie quotidienne des gens ? Quels sont les modĂšles de financement et de gouvernance de l'infrastructure numĂ©rique, et comment peuvent-ils ĂȘtre amĂ©liorĂ©s ? Comment pouvons-nous garantir que l'infrastructure numĂ©rique reste ouverte, accessible et Ă©quitable pour tous ? Ces questions semblent peut-ĂȘtre basiques, mais elles poussent Ă une trĂšs grande rĂ©flexion si on y consacre un peu d'attention.
Sur quoi est basé notre infrastructure numérique ?
Selon Nadia Eghba, dans son livre (essaie) "Roads and Bridges: The Unseen Labor Behind Our Digital Infrastructure", il nous rappelle que toute notre infrastructure numĂ©rique est basĂ©e sur lâopen source. Personnellement, lorsque jâai lu ce passage, la premiĂšre question je me suis demandĂ© qui est derriĂšre les projets open source, comment gagne-t-il sa vieâŠ. Câest Ă ce moment que j'ai compris lâimportance dâune contribution, mĂȘme aussi petite soit-elle. Nous posons des questions sur des forums tels que stack overflow, mais est-ce quâon se demande qui nous rĂ©pond, ni mĂȘme pourquoi il nous rĂ©pond ? Nous lisons des articles sur ce site, et nous savons que leurs auteurs ne perçoivent rien comme droit dâauteur mais nous Ă©crivent quand-mĂȘme. Câest avec ces genres des questions quâon devient hacker. Etes-vous toujours prĂȘt Ă le devenir ? Si oui, demandes-toi quelle est ta part dans tout ça, combien de fois as-tu contribuĂ© dans un projet open source ou mĂȘme partager publiquement et gratuitement tes connaissances ? Lâopen source ce nâest pas seulement dans lâinformatique, la libertĂ© d'ĂȘtre bien informĂ© ne peut ĂȘtre garantie que si lâinformation est open source (souvenez-vous de lâaffaire Wikileaks ayant conduit Ă lâarrestation de Julian Assange et Chelsea Manning), la connaissance ne peut-ĂȘtre universelle que si elle a Ă©tĂ© partagĂ©e (les brevets publiques) ! Voyons notre part dans tout ça, bien que minime soit-elle mais elle est lĂ . Câest de cette maniĂšre que Kali Academy mâa amenĂ© Ă voir les choses, consacrer un peu de mon temps Ă faire dĂ©couvrir aux autres ce que nous avons appris dans le but de faire Ă©voluer la connaissance et de la dĂ©mocratiser đœ.
GNU/Linux, l'OS des Hackers
Maintenant que nous avons dĂ©couvert que toute notre infrastructure numĂ©rique est grandement basĂ©e sur de lâopen source, rentrons dans le technique. GNU/Linux, savez-vous de quel animal sâagit-il ? đ On a souvent tendance Ă ne dire que Linux et laisser GNU, pourtant Linux nâest que le noyau. GNU est un projet de logiciel libre lancĂ© par Richard Stallman en 1983. Le nom "GNU" est un acronyme rĂ©cursif qui signifie "GNU's Not Unix", ce qui souligne que bien que GNU soit compatible avec Unix, il n'est pas dĂ©rivĂ© de celui-ci. Le projet GNU a pour objectif de fournir un systĂšme d'exploitation libre, complet et cohĂ©rent composĂ© entiĂšrement de logiciels libres. GNU/Linux est le rĂ©sultat de l'effort combinĂ© de deux projets : le projet GNU, qui a fourni les outils et les utilitaires, et le noyau Linux, dĂ©veloppĂ© par Linus Torvalds. Cette collaboration a produit un systĂšme d'exploitation puissant, flexible et libre, qui a eu un impact significatif sur l'industrie informatique et la culture technologique mondiale. Dans mon parcours Ă Kali Academy, jâai dĂ©couvert quâil est important pour un hackeur dâavoir une idĂ©e sur l'architecture dâun systĂšme dâexploitation, surtout GNU/Linux car il est open source, on peut se challenger Ă toucher dans son code et produire notre propre distribution, ce qui est du hacking au sens pur đ, ensuite il faut savoir lâinstaller sans assistance, manipuler bien la ligne de commande, construire des petits scripts bash, automatiser certaines tĂąches, manipuler lâenvironnement bureauâŠ
Git, la collaboration facilitée
Ensuite, il faut savoir trĂšs bien manipuler git, car câest la base de la collaboration dans une Ă©quipe de dĂ©veloppeurs, jâai rĂ©cemment commencĂ© Ă publier une sĂ©rie dâarticle Ă sujet je vous invite Ă aller y jeter un coup d'Ćil. La plupart des plateformes collaboratives sont basĂ©es sur git. Git a pas mal Ă©voluĂ© mais il reste intuitif de lâutiliser en CLI.
les licences opens sources, le droit en ingénierie
Lorsque vous installez un logiciel open ou non, vous devez d'abord avoir accepter les termes de la licence. Câest un cas que vous avez dĂ©jĂ rencontrĂ© au moins une fois, mais si on nâest pas suffisamment informĂ©, on nĂ©glige cette partie, ce qui nous amĂšne Ă violer les licences. Pour moi, la plus grande victime câest Microsoft, en tout cas dans le contexte de ma rĂ©gion, sur 1000 personnes que je connais, 900 utilisent Windows, et seulement 100 ont une licence, 50 lâont payĂ© et les autres ont des craques đ. C'est triste, mais câest ça la rĂ©alitĂ©, pourtant il y a un GNU/Linux gratuit et open source, le seul motif quâon câest que Linux est complexe, câest qui une pure invention de ses concurrents. Cette situation a conduit Kali Academy Ă nous initier Ă la lecture des licences open source. Cette lecture nous a mis dans un grande confusion: un logiciel peut ĂȘtre open source mais pas libre, gratuit mais pas libre, libre mais avec une version payante, gratuit mais pas open source đŽ. Câest embĂȘtant non ! Mais ce quâil faut retenir, câest quâune licence d'un logiciel est un contrat entre l'Ă©diteur du logiciel et l'utilisateur qui dĂ©finit les conditions d'utilisation du logiciel. Cette licence prĂ©cise notamment si l'utilisateur est autorisĂ© Ă installer le logiciel sur un ou plusieurs appareils, s'il peut le partager avec d'autres personnes, s'il peut le modifier, etc. En Ă©change du respect de ces conditions, l'utilisateur est autorisĂ© Ă utiliser le logiciel de maniĂšre lĂ©gale.
Voyons maintenant la différence entre un logiciel Open source et un logiciel libre.
Les critÚres d'un logiciel libre, selon la Free Software Foundation (FSF, initiée par Richard Stallman) , sont les quatre libertés :
- Liberté d'exécution : Exemple de Licence : GNU General Public License (GPL) La GPL permet aux utilisateurs d'exécuter le programme pour n'importe quel usage.
- Liberté d'étude : Exemple de Licence : GNU General Public License (GPL) La GPL garantit l'accÚs au code source, permettant aux utilisateurs d'étudier et de modifier le programme.
- Liberté de redistribution : Exemple de Licence : GNU General Public License (GPL) La GPL permet aux utilisateurs de redistribuer des copies du programme, que ce soit en version originale ou modifiée.
- LibertĂ© de distribution des versions modifiĂ©es : Exemple de Licence : GNU General Public License (GPL) La GPL permet aux utilisateurs de distribuer des copies de leurs versions modifiĂ©es, tout en conservant les mĂȘmes libertĂ©s pour les autres utilisateurs. Les critĂšres d'un logiciel open source, selon l'Open Source Initiative (OSI), incluent les Ă©lĂ©ments suivants :
- Libre redistribution : Exemple de Licence : MIT License La MIT License permet la distribution du logiciel sans restriction.
- Code source : Exemple de Licence : Apache License 2.0 La licence Apache 2.0 exige que le code source soit disponible.
- Travaux dĂ©rivĂ©s : Exemple de Licence : BSD License La BSD License permet la modification et la distribution de travaux dĂ©rivĂ©s sous les mĂȘmes conditions.
- IntĂ©gritĂ© du code source de l'auteur : Exemple de Licence : Mozilla Public License 2.0 La MPL 2.0 permet les modifications tout en exigeant que les fichiers modifiĂ©s soient redistribuĂ©s sous la mĂȘme licence.
- Pas de discrimination contre des personnes ou des groupes : Exemple de Licence : MIT License La MIT License ne discrimine personne.
- Pas de discrimination contre des domaines d'application : Exemple de Licence : Apache License 2.0 La licence Apache 2.0 ne limite pas l'utilisation du logiciel Ă certains domaines.
- Distribution de la licence : Exemple de Licence : GNU General Public License (GPL) La GPL assure que les droits sont transférés à tous les destinataires du programme.
- Licence non spécifique à un produit : Exemple de Licence : BSD License La BSD License n'exige pas que le programme soit partie intégrante d'un produit spécifique.
- Licence non restrictive pour d'autres logiciels : Exemple de Licence : Apache License 2.0 La licence Apache 2.0 ne pose pas de restrictions sur les logiciels distribués avec le programme.
- Licence technologiquement neutre : Exemple de Licence : MIT License La MIT License ne fait pas référence à une technologie spécifique.
Mais ce quâil faut retenir câest que tout logiciel libre est open source mais tout logiciel open source nâest pas libre, il y a aussi des gratuiciels (logiciel gratuit mais pas open source). Je vous recommande de mettre, en commentaire, des exemples d'applications ayant telle ou telle autre licence prĂ©citĂ©e.
Wikimédia, écosystÚme open source par excellence
Câest dans cela que nous avons passĂ© la majeure partie du premier mois, on avait autant dâouvrages Ă consulter, des documentations Ă parcourir et des ateliers Ă suivre et parfois partager quand bien mĂȘme on nâa pas bien assimilĂ© la leçon, bref c'Ă©tait trĂšs intense. Ces connaissances acquises ne pouvaient nous aider en rien si on nâavait pas une bonne communautĂ© oĂč les expĂ©rimenter. Il est bien dâavoir une houe, mais il encore mieux de lâessayer au champ đ, câest pourquoi dans le deuxiĂšme moi de mon stage chez Kali Academy, nous nous sommes maintenant intĂ©ressĂ©s aux projets open source, nous avons dâabord cherchĂ© de nous mĂȘme, je me souviens jâavais forkĂ© un repo de âawesomeâ oĂč jâai eu trop de mal Ă contribuer et mon PR nâavait mĂȘme pas Ă©tĂ© validĂ©, mais mon coach mâa consolĂ© en disant âle plus important câest que tu as rĂ©ussi Ă cloner le projet, Ă runer le projet et Ă rĂ©soudre lâissue, peut importe que ton PR soit mergĂ© ou pasâ, et c'est une des leçons que je garde Ă cĆur. Ensuite, Kali nous a proposĂ© dâapprocher lâĂ©cosystĂšme WikimĂ©dia qui est de nos jours un des plus grands projets open sources avec son MediaWiki qui est le moteur qui propulse WikipĂ©dia et son projet frĂšres ainsi que dâautres wiki. CâĂ©tait comme une forte immersion arrivĂ©e soudainement. Nous avions dâabord participĂ© Ă un Ă©vĂ©nement de code que WikimĂ©dia a choisi de nommer âWishathonâ, au cours duquel il fallait corriger quelques bogues et rĂ©soudre certains issues dans les projets ciblĂ©s dans lâĂ©cosystĂšme, câĂ©tait trĂšs intenses pour nous Ă©tant donnĂ© que câĂ©tait une premiĂšre fois de nous retrouver dans ces genres dâĂ©vĂ©nement, encore que câĂ©tait un Ă©vĂ©nement mondial, je m'Ă©tais retrouvĂ© en train de travailler avec un turc aussi dĂ©butant que moi en Anglais đ, mais câĂ©tait wow. Ensuite, pour comprendre un peu comment faire mes premiĂšres contributions sur WikipĂ©dia, Wikidata, wiki Common âŠ. jâai postulĂ© Ă une bourse de la fondation Moleskine laquelle mâa permis de suivre tout cela en seulement 5 sĂ©ances intenses. Jâai appris Ă installer MediaWiki de diffĂ©rentes façons, Ă crĂ©er des thĂšmes, des extensions âŠ. CâĂ©tait vraiment chouette cette aventure. Ouf ! đŁJâai oubliĂ© de vous rĂ©vĂ©ler une petite confidence, au cours du Wishathon jâai reçu un gift venu expressĂ©ment des USA, câĂ©tait un moment trĂšs Ă©mouvant !
Initier un projet open source
Normalement lâinitiation Ă lâopen source devrait sâachever lĂ , mais Kali Academy a souhaitĂ© que nous puissions initier aussi des projets open source sur lesquels dâautres personnes vont aussi contribuer. Dans ce cadre, jâai Ă©tĂ© mis dans une Ă©quipe oĂč on Ă©tait Ă trois, moi, mon ami que jâappelle toujours beau frĂšre Firmin NGANDULI et le petit Christian BIREGO, un trĂšs bon geek. Ensemble, on a travaillĂ© sur une application nommĂ©e LeaderBoard qui compare les contributions des bĂ©nĂ©voles sur les projets WikimĂ©dia et les classes en fonction du nombre des contributions. Voici le lien de lâapplication dĂ©ployĂ©e ici et de la documentation ici⊠Si vous ĂȘtes intĂ©ressĂ© par ce projet, dites-le moi aussi en commentaire.
En bref, câest à ça qu'Ă ressemblĂ© mon parcours de stage chez Kali Academy, c'Ă©tait une expĂ©rience extrĂȘmement passionnante, jâai goĂ»tĂ© un peu au code professionnel, Ă lâexpertise des grands dĂ©veloppeurs open source de WikimĂ©dia⊠Je remercie Kali Academy pour mâavoir offert cette opportunitĂ©, malgrĂ© mon niveau et mes faiblesses, je remercie Ă©galement tous mes collĂšgues avec lesquels on a fait ce parcours ainsi que vous tous qui avez lu cet article jusquâici, je vous prie de me faire des corrections en privĂ© sâil en y a đ. Ainsi commence mon parcours dâapprenti hacker, Ă nous revoir dans le future đ, Ă©tant dĂ©jĂ hackeur đ
Top comments (2)
Bonjour cher Tacite, les liens de l'application n'est pas visible et de la documentation aussi. Si cous pouvez les ajouter pour un bon feedback.
Merci et surtout continue dans cette lancée avec ton équipe
Merci beaucoup pour le feedback cher Prosper, je corrige directement l'omission.