Admin Sys WS, Active directory, Vmware:
Concernant l'administration système, j'ai acquis une bonne compréhension sur la configuration
des serveurs sur la licence Windows serveur pour configurer des protocoles basiques comme DNS
(Zone primaire, secondaire, redirecteur, test nslookup), DHCP, mais également
l'administration centralisé d'un parc informatique avec l'annuaire Active Directory pour gérer des groupes, partages,
permissions et mise en place de GPO. Tout ces équipements ont été configuré sur une infrastrucutre virtualisé avec Vmware.
Puis des compétences sur l'installation d'OS linux ou serveur web comme apache.
Everything is Code:
J'ai pendant longtemps apprécié le développement ainsi que la diversité de cette matière à travers le
nombre de langages (Java, C++, python), le nombre de paradigmes
(Orientée objet, procédurale, événementielle), le nombre de frameworks (Symfony, Django...), et de bibliothèques. Mais le
plus intéressant reste avant tout ce que l'on peut construire avec ces outils, ainsi je suis souvent à la recherches d'idées sur des programmes
capables de faciliter la tâche de l'administrateur réseau & sécurité en essayant de concevoir des programmes assez simplistes mais qui apportent grandement à mes compétences de développement.
Ci-contre vous pouvez observer une calculatrice d'adresses réseau codé en python qui permet de segmenter un réseau donné en plusieurs sous-réseau à partir
des nombres d'hôtes nécessaires. Vous pouvez observer les codes source sur mon github en bas de page.
La conteneurisation:
Docker est un très bon outil pour un admin sys, il permet de deployer rapidement des infrastructures, applications ou serveurs dans des containers afin d'assurer
la portabilité et la gestion efficace des dépendances logicielles. En utilisant Docker, un administrateur système peut encapsuler une application
et toutes ses dépendances dans un conteneur, assurant ainsi une compatibilité entre les environnements de
développement, de test et de production. Cela simplifie le déploiement en garantissant que l'application
fonctionne de manière cohérente, quel que soit l'endroit où elle est exécutée. Ainsi pour illustrer tout cela nous avions utilisé docker lors d'un projet, pour monter une infrastrucutre de développement web à l'aide de conteneurs wordpress pour le site et mariadb/phpmyadmin pour la base de donnée.
(Voir github)
Developpement web:
Le web est un domaine dans lequel mes connaissances sont encore très basiques mais j'ai pu apprendre par des investigations et recherches
la conception d'un site web avec ou sans Framework/CMS en utilisant les langages de front-end (HTML5, CSS, Javascript), ainsi que la gestion des bases de données
en backend avec ajout de formulaire en utilisant symfony. Ces connaissances même si elles sont terrataires, m'ont permis de developper des sites simples et concis comme celui-ci.
J'ai eu comme projet passionant le développement d'une application Android avec android studio et le langage de programmation JAVA. Cette application utilise les notions de programmation évenementielle mais aussi réseau avec les sockets pour développer une application communicante. En effet en utilisant deux téléphones dont l'un joue le rôle de serveur et l'autre le rôle de client on établit une communication entre les deux soit en TCP, soit en UDP selon l'utilisateur. Les deux peuvent s'envoyer des messages, des fichiers JSON ou encore des objets convertis en format json. J'y ait également ajouté une fonctionnalité de messagerie pour permettre aux clients de communiquer entre eux et comme aspect sécurité la possible de bannir depuis le serveur des clients
Cybersécurité:
J'ai découvert la Cybersécurité en passant la certification du mooc de l'ANSSI sur l'hygiène informatique
(ici)
.
Puis j'ai commencé à me lancer dans la technique en découvrant le pentesting afin de savoir comment tester la vulnérabilité d'un système et corriger les failles. Même si mes connaissances sont
encore très basiques sur le sujet je suis très investi dans ce domaine et cherche constamment à m'améliorer et à apprendre de nouvelles techniques, pour ce faire j'utilise des sites comme Rootme
pour m'exercer
(ici)
et TryHackme pour apprendre les fondements et les méthodologies.
L'un de mes objectifs dans ce domaine consiste à pouvoir comprendre le fonctionnement des programmes et logiciels afin de trouver des failles dans leur conception et partager ces découvertes avec la communauté, mais les compétences requises sont encore assez éloignés des miennes (assembleur, reverse engineering, Hardware).
Donc en tant que débutant j'essaye de concevoir des outils de blue team et read team pour monter en compétences. Ci-dessous je vous propose 2 programmes.
Have you been pwned:
Ce programme utilise la bibliothéque Selenium de python pour automatiser la recherche de vulnérabiltités sur une adresse mail. En effet le site "Have you been pwned" permet de
vérifier si un mail comporte des branches compromises (après la fuite d'une base de donnée par exemple). Ainsi ce script permet d'automatiser cette tâche et nous fournir les éventuelles branches
compromises.
Total Virus:
Sur celui-ci j'utilise l'API de Totalvirus pour verifier la sûreté des fichiers en programmant un CLI capable de recevoir des arguments depuis le terminal
pour envoyer les fichiers au site Totalvirus avant de recevoir les résultats sous un format JSON. Sur mon github vous pourrez voir les codes sources ainsi qu'un programme de dechiffrement ou un crackeur
des messages chiffrés par subsititution qui s'inspire de l'algorithme de Markov chain Monte Carlo (Lois probabilistes et statistiques lié à la cryptographie)
Une de mes compétences acquises en cybersécurité consiste en la sécurisation des réseaux LAN. En effet la mauvaise configuration des équipements de couche 2 peut entrainer des failles de sécurité sur le réseau, ainsi il est indispensable de savoir s'en protéger en activant les fonctionnalités du switch qui apportent une touche de sécurisation. Ci-contre vous verrez une présentation de différentes attaques, comment les réaliser et comment les contrer.