DEV Community

Cover image for SUR LE CHEMIN DU HACKING ! Kali Academy, trois mois d’initiation đŸ‘ș
Tacite WAKILONGO
Tacite WAKILONGO

Posted on

SUR LE CHEMIN DU HACKING ! Kali Academy, trois mois d’initiation đŸ‘ș

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 :

  1. les fondamentaux
  2. la spécialisation Wikimédia et
  3. 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 :

  1. 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.
  2. 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.
  3. 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.
  4. 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 :
  5. Libre redistribution : Exemple de Licence : MIT License La MIT License permet la distribution du logiciel sans restriction.
  6. Code source : Exemple de Licence : Apache License 2.0 La licence Apache 2.0 exige que le code source soit disponible.
  7. 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.
  8. 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.
  9. Pas de discrimination contre des personnes ou des groupes : Exemple de Licence : MIT License La MIT License ne discrimine personne.
  10. 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.
  11. 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.
  12. 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.
  13. 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.
  14. 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)

Collapse
 
prospenda profile image
Prosper MUNDA BYENDA

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

Collapse
 
tacite243 profile image
Tacite WAKILONGO

Merci beaucoup pour le feedback cher Prosper, je corrige directement l'omission.