Maîtrisez l'audit de smart contracts Solidity en 2026 : reentrancy, access control, oracle manipulation, outils Slither/Echidna et méthodologie complète d'audit.
TL;DR — En résumé
Guide technique approfondi sur web3 security : audit de smart contracts solidity. Cet article presente les techniques, outils et bonnes pratiques.
L'audit de smart contracts Solidity est devenu une discipline à part entière de la cybersécurité blockchain. En 2026, plus de 3,8 milliards de dollars ont été perdus dans des exploits DeFi liés à des vulnérabilités de smart contracts mal auditées. Ce guide technique couvre les vulnérabilités critiques, les outils d'analyse statique et dynamique, et la méthodologie d'un audit complet pour les équipes sécurité.
L'écosystème Web3 a mûri, mais les pertes liées aux vulnérabilités de smart contracts Solidity ne diminuent pas. Le terme audit smart contracts Solidity 2026 recouvre une discipline hybride : analyse statique, analyse symbolique, fuzzing de propriétés, et revue manuelle experte. Ce n'est pas une simple checklist — c'est une investigation à plusieurs couches qui nécessite de comprendre à la fois le bytecode EVM et la logique métier du protocole DeFi. Les incidents comme le DAO Hack (2016, 60 millions USD), Parity Multisig (2017, 150 millions gelés), ou encore les exploits Cream Finance et Mango Markets en 2022 ont chacun exploité des catégories de vulnérabilités bien identifiées. Pourtant, ces mêmes classes de bugs réapparaissent régulièrement dans des projets nouvellement déployés. Pourquoi ? Parce qu'un audit superficiel ne suffit pas, et parce que la pression du "time to market" pousse des équipes à déployer sans revue approfondie. Ce guide donne aux praticiens les moyens de conduire ou d'évaluer un audit smart contracts Solidity sérieux, des vulnérabilités de reentrancy aux manipulations d'oracle, en passant par les pièges des proxies upgradeables.
À retenir
- Reentrancy : toujours appliquer le pattern Checks-Effects-Interactions avant tout appel externe — ReentrancyGuard d'OpenZeppelin reste le filet de sécurité indispensable.
- Access control : ne jamais utiliser
tx.originpour l'authentification —msg.senderuniquement, avec des modifiersonlyOwnerou rôles OpenZeppelin. - Integer overflow : Solidity ≥0.8.0 protège nativement, mais les blocs
uncheckedrestaurent le comportement dangereux — les auditer systématiquement. - Oracle manipulation : un oracle de prix DEX spot est manipulable par flash loan en une transaction — utiliser Chainlink ou TWAP sur 30 minutes minimum.
- Slither + Echidna : l'analyse statique détecte les bugs évidents en minutes, le fuzzing de propriétés trouve les invariants cassés que l'analyse statique rate.
Reentrancy — Comment un appel externe peut vider votre contrat ?
La reentrancy est la vulnérabilité la plus connue de l'écosystème Solidity. Son mécanisme est simple mais dévastateur : un contrat externe est appelé avant que l'état interne du contrat victime ne soit mis à jour. L'attaquant déploie un contrat malveillant dont la fonction receive() ou fallback() rappelle immédiatement la fonction vulnérable, drainant les fonds en boucle.
Le DAO Hack de juin 2016 a exploité exactement ce mécanisme pour extraire 3,6 millions d'ETH (≈60 millions USD à l'époque) du fonds DAO. L'exploit a conduit au hard fork Ethereum/Ethereum Classic — une cicatrice permanente dans l'histoire de la blockchain.
Voici un contrat vulnérable à la reentrancy :
// VULNERABLE - NE PAS UTILISER EN PRODUCTION
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract VulnerableBank {
mapping(address => uint256) public balances;
function deposit() external payable {
balances[msg.sender] += msg.value;
}
// Vulnérable : external call AVANT mise à jour d'état
function withdraw(uint256 amount) external {
require(balances[msg.sender] >= amount, "Solde insuffisant");
// ❌ Appel externe AVANT la mise à jour du solde
(bool success, ) = msg.sender.call{value: amount}("");
require(success, "Echec du transfert");
// ❌ L'état est mis à jour APRES l'appel externe
balances[msg.sender] -= amount;
}
}
La version correcte applique le pattern Checks-Effects-Interactions : vérifier les conditions, mettre à jour l'état, puis effectuer l'appel externe :
// SÉCURISÉ - Pattern Checks-Effects-Interactions
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/security/ReentrancyGuard.sol";
contract SecureBank is ReentrancyGuard {
mapping(address => uint256) public balances;
function deposit() external payable {
balances[msg.sender] += msg.value;
}
// ✅ nonReentrant + Checks-Effects-Interactions
function withdraw(uint256 amount) external nonReentrant {
// CHECK
require(balances[msg.sender] >= amount, "Solde insuffisant");
// EFFECT - mise à jour d'état AVANT l'appel
balances[msg.sender] -= amount;
// INTERACTION - appel externe en dernier
(bool success, ) = msg.sender.call{value: amount}("");
require(success, "Echec du transfert");
}
}
Le modifier nonReentrant d'OpenZeppelin utilise un mutex en storage (variable _status) pour bloquer tout réappel récursif. C'est le double filet de sécurité : CEI pattern + guard. Les deux sont nécessaires — l'un protège la logique, l'autre bloque l'exploitation même si la logique est défaillante.
Access Control et Authorization Flaws — Qui peut appeler quoi ?
Les failles de contrôle d'accès sont responsables d'une proportion massive des exploits DeFi. Le Parity Multisig Wallet bug de juillet 2017 a permis à un attaquant de se nommer propriétaire d'une bibliothèque partagée et de la supprimer via selfdestruct, gelant définitivement 513 774 ETH appartenant à des tiers.
L'erreur la plus commune : utiliser tx.origin au lieu de msg.sender pour l'authentification. tx.origin retourne l'adresse de l'initiateur original de la transaction — pas l'appelant direct. Un contrat malveillant peut donc appeler votre contrat en se faisant passer pour une adresse légitime si l'utilisateur a signé une transaction avec ce contrat intermédiaire.
// VULNERABLE - tx.origin exploitable par phishing contractuel
contract VulnerableOwnable {
address public owner;
modifier onlyOwner() {
// ❌ tx.origin : l'attaquant peut tromper le owner via un contrat
require(tx.origin == owner, "Not owner");
_;
}
function drainFunds(address payable to) external onlyOwner {
to.transfer(address(this).balance);
}
}
// SÉCURISÉ - msg.sender uniquement
contract SecureOwnable {
address public owner;
modifier onlyOwner() {
// ✅ msg.sender : l'appelant direct
require(msg.sender == owner, "Not owner");
_;
}
}
Pour les protocoles complexes, les rôles OpenZeppelin AccessControl offrent une granularité fine : MINTER_ROLE, PAUSER_ROLE, ADMIN_ROLE distincts, avec délégation de rôles et révocation. Éviter le pattern "owner peut tout faire" dès que la valeur lockée dépasse quelques milliers d'euros.
Autre vecteur sous-estimé : les fonctions initialize() des proxies upgradeables laissées non protégées après déploiement. Un attaquant peut réinitialiser le contrat et se nommer propriétaire si initializer modifier n'est pas correctement appliqué ou si _disableInitializers() n'est pas appelé dans le constructeur de l'implémentation.
Integer Overflow/Underflow — Solidity <0.8.0 vs >=0.8.0
Avant Solidity 0.8.0, les opérations arithmétiques wrappaient silencieusement : uint8(255) + 1 = 0. Des projets comme BECToken (2018) ont perdu des millions à cause d'un underflow non géré dans la fonction de transfert batch, permettant de créer des tokens à partir de rien.
Solidity ≥0.8.0 intègre des vérifications de dépassement nativement via le compilateur. Tout overflow/underflow lève une Panic et annule la transaction. C'est un changement majeur qui a éliminé une classe entière de vulnérabilités — mais attention aux blocs unchecked :
pragma solidity ^0.8.0;
contract ArithmeticExample {
// ✅ Protégé par défaut en 0.8.0+
function safeAdd(uint256 a, uint256 b) public pure returns (uint256) {
return a + b; // Revert si overflow
}
// ⚠️ unchecked désactive la protection - à auditer systématiquement
function unsafeAdd(uint256 a, uint256 b) public pure returns (uint256) {
unchecked {
return a + b; // Wrap silencieux si overflow !
}
}
// Utilisation légitime : compteurs de boucles pour économiser du gas
function processItems(uint256[] memory items) public pure returns (uint256) {
uint256 total = 0;
for (uint256 i = 0; i < items.length;) {
total += items[i];
unchecked { ++i; } // OK : i ne peut pas overflow avant items.length
}
return total;
}
}
Lors d'un audit, chaque bloc unchecked doit être justifié. S'il y en a dans la logique métier (pas juste des compteurs de boucle), c'est un signal d'alerte rouge.
Front-Running et MEV — L'économie du mempool
Le MEV (Miner Extractable Value), rebaptisé "Maximal Extractable Value" depuis la transition vers le Proof of Stake, désigne la valeur extractible par les validateurs en réordonnant, insérant ou censurant des transactions. Les sandwich attacks sont l'exemple le plus visible : un bot détecte un swap important dans le mempool, place une transaction avant (frontrun) et une après (backrun) pour profiter du slippage causé par la transaction victime.
Pour les smart contracts, le front-running pose des problèmes de sécurité spécifiques : toute logique qui dépend d'un état qui peut changer entre la soumission et l'inclusion de la transaction est potentiellement exploitable. Les solutions techniques incluent :
- Le commit-reveal pattern : l'utilisateur soumet d'abord un hash de son action (commit), puis révèle l'action après un délai (reveal)
- Les slippage bounds sur les AMM :
amountOutMinobligatoire pour tout swap - Le deadlines sur les transactions pour éviter l'exécution retardée
- Flashbots Protect RPC et MEV Blocker pour les utilisateurs finaux
Oracle Manipulation — Comment les attaquants manipulent les prix on-chain ?
Les manipulations d'oracle de prix sont responsables de certains des plus gros exploits DeFi. Le mécanisme : un attaquant emprunte massivement via flash loan, manipule un pool de liquidité pour gonfler artificiellement le prix d'un token, utilise ce prix manipulé comme collatéral dans un protocole de prêt, emprunte des actifs réels, puis rembourse le flash loan — le tout en une seule transaction atomique.
Cream Finance a subi deux exploits majeurs en 2021 totalisant 187 millions USD, largement liés à des oracles de prix manipulables. Mango Markets a perdu 114 millions USD en octobre 2022 via la même technique.
La règle d'or : ne jamais utiliser le prix spot d'un DEX comme oracle unique. Les solutions robustes :
- Chainlink : réseau d'oracles décentralisé, agrégation de plusieurs sources, heartbeat et deviation threshold
- TWAP (Time-Weighted Average Price) : prix moyen pondéré par le temps sur Uniswap V3, résistant aux manipulations ponctuelles (mais pas aux manipulations soutenues)
- Médiane de plusieurs oracles : comparer Chainlink, Band Protocol et un TWAP — rejeter si déviation > X%
Pour compléter votre compréhension des supply chains d'oracles et des risques d'injection, notre article sur les trapdoors supply chain npm/PyPI/crates blockchain détaille les vecteurs d'injection au niveau des dépendances.
Proxies Upgradeables — Quels risques de sécurité introduisent-ils ?
Les proxies upgradeables permettent de modifier la logique d'un smart contract après déploiement — ce qui viole philosophiquement l'immuabilité blockchain mais répond à un besoin réel de correction de bugs. Trois patterns principaux coexistent :
- Transparent Proxy (OpenZeppelin) : le ProxyAdmin est distinct du proxy, les appels admin sont interceptés — mais deux contextes de storage différents créent des risques de collision
- UUPS (Universal Upgradeable Proxy Standard) : la logique d'upgrade est dans le contrat d'implémentation, plus gas-efficient mais plus risqué si la fonction upgrade est mal protégée
- Beacon Proxy : plusieurs proxies partagent un seul beacon — efficace pour les déploiements massifs de clones
Le risque principal : les collisions de slots de storage. Si le contrat proxy et le contrat d'implémentation utilisent les mêmes slots EVM, une variable du proxy peut être écrasée par une variable d'implémentation. EIP-1967 standardise les slots de storage pour les proxies (slot aléatoire dérivé de keccak256("eip1967.proxy.implementation") - 1).
Lors d'un audit de proxy upgradeable, vérifier systématiquement : initializer protégé, _disableInitializers() dans le constructeur, absence de constructeur dans l'implémentation, et vérification des slots EIP-1967.
Slither — Analyse Statique en Pratique
Slither est l'outil d'analyse statique de référence pour Solidity, développé par Trail of Bits. Il analyse le code source et l'AST Solidity pour détecter des patterns de vulnérabilités connus. L'installation et l'utilisation de base :
# Installation
pip install slither-analyzer
# Analyse basique d'un projet Foundry/Hardhat
slither . --print human-summary
# Détecter uniquement la reentrancy
slither . --detect reentrancy-eth,reentrancy-no-eth,reentrancy-unlimited-gas
# Export JSON pour intégration CI/CD
slither . --json slither-output.json
# Analyse d'un contrat spécifique avec filtrage des faux positifs
slither src/MyContract.sol --filter-paths "openzeppelin,@chainlink"
# Lister tous les détecteurs disponibles
slither . --list-detectors
# Analyse des storage layout pour les proxies
slither . --print variable-order
# Générer un rapport de call graph
slither . --print call-graph
Slither détecte plus de 80 types de vulnérabilités, classées par impact (High/Medium/Low/Informational) et confiance (High/Medium/Low). Un audit CI/CD doit faire échouer la build sur tout finding High/High. Les findings Medium/Low nécessitent une revue manuelle — beaucoup sont des faux positifs dans les projets complexes.
L'intégration dans une pipeline CI (GitHub Actions) permet de bloquer les merges en cas de nouvelles vulnérabilités détectées. Notre article sur l'IA et le fuzzing assisté pour la découverte de vulnérabilités détaille comment compléter l'analyse statique avec des techniques d'apprentissage automatique.
Mythril et Echidna — Analyse Symbolique et Fuzzing
Mythril utilise l'analyse symbolique et l'exécution concolique pour explorer les chemins d'exécution du bytecode EVM. Contrairement à Slither qui analyse le code source, Mythril travaille au niveau EVM — il détecte des vulnérabilités que Slither rate, notamment dans les interactions complexes entre contrats.
Echidna est un fuzzer de propriétés pour smart contracts Solidity. Vous définissez des invariants (propriétés qui ne doivent jamais être violées), et Echidna génère des séquences d'appels aléatoires pour tenter de les casser. C'est particulièrement efficace pour les protocoles DeFi avec des invariants financiers clairs.
# Mythril - analyse symbolique
pip install mythril
myth analyze src/VulnerableBank.sol
myth analyze --solidity-files src/ --execution-timeout 90
# Echidna - installation via Docker
docker pull trailofbits/eth-security-toolbox
docker run -it -v $(pwd):/src trailofbits/eth-security-toolbox
# Exemple de propriété invariante pour Echidna
# Dans EchidnaTest.sol :
# echidna_no_free_tokens() doit toujours retourner true
# L'invariant : la balance totale ne peut pas dépasser les dépôts
# Lancement Echidna
echidna-test src/EchidnaTest.sol --contract EchidnaTest --test-mode assertion
# Foundry Forge - tests de reentrancy
forge test --match-test testReentrancyAttack -vvvv
La combinaison gagnante : Slither pour la détection rapide des patterns connus, Mythril pour l'exploration de chemins d'exécution complexes, Echidna pour valider les invariants métier. Ces trois outils couvrent des angles différents et se complètent.
Les tests Foundry permettent aussi de simuler des attaques complètes. Voici un test de reentrancy avec Foundry :
# Structure du test Foundry
# test/ReentrancyTest.t.sol
# forge test --match-test testReentrancy --fork-url $MAINNET_RPC -vvvv
# Installation Foundry
curl -L https://foundry.paradigm.xyz | bash
foundryup
# Initialiser un projet
forge init my-audit-project
cd my-audit-project
# Compiler et tester
forge build
forge test -vvvv
# Fuzzing avec Foundry
forge test --fuzz-runs 10000 --match-test testFuzz
Méthodologie d'Audit Complète en 5 Phases
Un audit professionnel ne se réduit pas à lancer des outils automatiques. La méthodologie en 5 phases utilisée par les cabinets comme Trail of Bits, OpenZeppelin Security, et Code4rena :
Phase 1 — Reconnaissance du code (2-3 jours) : comprendre l'architecture globale, les flux de valeur, les dépendances externes (oracles, autres protocoles), la documentation technique. Identifier les "crown jewels" — les fonctions qui manipulent des fonds.
Phase 2 — Analyse statique automatisée (1 jour) : Slither complet, Mythril sur les contrats critiques, vérification manuelle des findings. Filtrer les faux positifs, documenter les vrais positifs.
Phase 3 — Revue manuelle (3-5 jours) : audit ligne par ligne des contrats critiques, modélisation des scénarios d'attaque, vérification des invariants métier, analyse des cas limites (valeurs nulles, max uint256, self-transfer, etc.).
Phase 4 — Tests et fuzzing (2-3 jours) : écriture de PoC pour les vulnérabilités identifiées, fuzzing Echidna avec propriétés custom, tests d'intégration en fork mainnet.
Phase 5 — Rapport et remediation (1-2 jours) : rédaction du rapport structuré, review des corrections proposées par l'équipe, vérification que les corrections ne créent pas de nouvelles vulnérabilités.
Pour approfondir vos stratégies de bug bounty et la monétisation des findings, notre guide sur les bug bounty 2026 : stratégies et plateformes couvre Immunefi, Code4rena et HackenProof. Et pour les attaques spécifiques au niveau blockchain, l'article sur les attaques smart contracts et sécurité Web3 détaille les exploits avancés.
EIP-712, Signatures et Permit() — Les vulnérabilités de signature
La fonction permit() d'ERC-20 permet d'approuver une dépense via une signature off-chain (EIP-2612), évitant une transaction séparée d'approve. C'est pratique mais introduit des risques spécifiques :
- Replay attacks : une signature utilisée peut être réutilisée si le nonce n'est pas correctement géré
- Signature malleability : ECDSA permet deux signatures valides pour le même message — s doit être normalisé (half-order check)
- Cross-chain replay : une signature valide sur Ethereum peut être réutilisée sur un fork si
chainIdn'est pas inclus dans l'EIP-712 domain - Missing deadline : une permit sans deadline reste valide indéfiniment
EIP-712 structured data signing résout la lisibilité et le cross-chain replay en incluant le domain separator (chainId + contract address + version). Lors d'un audit, vérifier que le domain separator est calculé correctement et que le chainId est bien inclus.
Interpréter un Rapport d'Audit OpenZeppelin/Trail of Bits
Un rapport d'audit professionnel structure les findings par sévérité. Les niveaux standard :
| Sévérité | Description | Délai de correction | Exemples |
|---|---|---|---|
| Critical | Perte de fonds directe, possible immédiatement | Avant déploiement (blocant) | Reentrancy drainant le vault, unauthorized selfdestruct |
| High | Perte de fonds possible sous certaines conditions | Avant déploiement (fortement recommandé) | Oracle manipulation, integer overflow dans logique de calcul |
| Medium | Comportement inattendu, pas de perte directe | Prochaine version | Front-running possible, access control trop permissif |
| Low | Mauvaise pratique, risque faible | Best effort | Événements manquants, visibility non optimale |
| Informational | Suggestions de qualité de code | Optionnel | Natspec manquant, optimisations gas |
Un bon rapport inclut pour chaque finding : description du problème, impact détaillé, preuve de concept (PoC) ou scénario d'exploitation, et recommandation de correction. Méfiez-vous des rapports qui ne contiennent que des Informational/Low — soit le code est parfait (rare), soit l'audit a été superficiel.
Pour contextualiser les menaces dans un cadre plus large de veille, notre article sur l'automatisation de la threat intelligence explique comment intégrer les informations d'audit dans un pipeline de veille cyber.
Outils d'Audit Solidity — Tableau Comparatif
Voici les principaux outils utilisés en 2026 pour l'audit de smart contracts :
| Outil | Type | Open Source | Points forts | Limites |
|---|---|---|---|---|
| Slither | Analyse statique | Oui | Rapide, 80+ détecteurs, intégration CI | Faux positifs sur code complexe |
| Mythril | Analyse symbolique | Oui | Exploration chemins EVM, bytecode | Lent, timeout sur gros projets |
| Echidna | Fuzzing propriétés | Oui | Invariants métier, génération auto de corpus | Nécessite d'écrire les propriétés |
| Foundry Forge | Framework tests | Oui | Fuzzing intégré, fork mainnet, très rapide | Pas d'analyse statique native |
| Certora Prover | Vérification formelle | Non (licence) | Preuve mathématique des propriétés | Coût élevé, courbe d'apprentissage |
Questions fréquentes
Combien coûte un audit de smart contract professionnel ?
Un audit par un cabinet reconnu (Trail of Bits, OpenZeppelin, Certik) varie de 15 000 à 150 000 USD selon la taille et la complexité du projet. Les audits compétitifs sur Code4rena ou Sherlock permettent des audits moins coûteux mais moins ciblés — la qualité dépend des auditeurs qui participent. Pour les projets DeFi gérant plus d'un million USD, ne pas lésiner sur l'audit.
Un audit garantit-il qu'un contrat est sécurisé ?
Non. Un audit réduit significativement le risque en détectant les vulnérabilités connues, mais ne garantit pas l'absence de toute faille. Des exploits post-audit existent régulièrement — soit parce que la correction introduit un nouveau bug, soit parce que l'auditeur a raté un vecteur complexe. Le monitoring on-chain en temps réel (OpenZeppelin Defender, Forta) complète l'audit statique.
Quelle est la différence entre Slither et Mythril ?
Slither analyse le code source Solidity à la recherche de patterns connus — c'est rapide (secondes à minutes) et adapté à la CI/CD. Mythril analyse le bytecode EVM via exécution symbolique pour explorer les états possibles — beaucoup plus lent (minutes à heures) mais détecte des bugs logiques que l'analyse syntaxique rate. En pratique, utiliser les deux en complément.
Comment protéger un contrat contre les oracle manipulation attacks ?
La protection multi-couches est indispensable : utiliser Chainlink comme oracle primaire, compléter avec un TWAP Uniswap V3 sur au minimum 30 minutes, implémenter un circuit breaker qui pause le protocole si les deux oracles dévient de plus de 5%, et plafonner le collatéral accepté par token pour limiter l'impact d'une manipulation réussie.
Les contrats upgradeables sont-ils plus risqués que les contrats immuables ?
Par nature oui : un proxy upgradeable introduit une surface d'attaque supplémentaire (le processus d'upgrade lui-même) et un risque de centralisation (qui détient le droit d'upgrade ?). Les timelocks obligatoires (48h minimum entre annonce et exécution de l'upgrade), le multisig sur l'admin, et la gouvernance décentralisée via token vote sont les mitigations standards pour réduire ce risque.
Avertissement professionnel : Les exemples de code et techniques présentés dans cet article sont fournis à des fins éducatives et de recherche en sécurité. Les audits de smart contracts présentés ne garantissent pas une sécurité absolue. Seuls des auditeurs certifiés avec une expérience significative en sécurité blockchain peuvent fournir une assurance professionnelle. Ne déployez jamais des fonds significatifs sur un smart contract sans audit professionnel préalable par un cabinet reconnu.
Conclusion
L'audit de smart contracts Solidity en 2026 est une discipline mature qui combine analyse statique automatisée, vérification formelle, fuzzing de propriétés, et revue manuelle experte. Aucun outil seul ne suffit — la sécurité DeFi sérieuse exige une approche multi-couches. La vérification avec Consensys Diligence et le respect de l'OWASP Smart Contract Top 10 fournissent un cadre de référence solide. Les équipes qui intègrent l'audit dans leur pipeline de développement — et pas seulement avant le déploiement — subissent significativement moins d'exploits.
Besoin d'un audit de sécurité pour votre projet Web3 ou blockchain ? Nos consultants spécialisés en cybersécurité blockchain accompagnent les équipes DeFi dans l'audit de smart contracts Solidity, la revue d'architecture et la définition de processus de sécurité continus. Contactez-nous pour un devis d'audit.
Télécharger cet article en PDF
Format A4 optimisé pour l'impression et la lecture hors ligne
À propos de l'auteur
Ayi NEDJIMI
Auditeur Senior Cybersécurité & Consultant IA
Expert Judiciaire — Cour d'Appel de Paris
Habilitation Confidentiel Défense
[email protected]
Ayi NEDJIMI est un vétéran de la cybersécurité avec plus de 25 ans d'expérience sur des missions critiques. Ancien développeur Microsoft à Redmond sur le module GINA (Windows NT4) et co-auteur de la version française du guide de sécurité Windows NT4 pour la NSA.
À la tête d'Ayi NEDJIMI Consultants, il réalise des audits Lead Auditor ISO 42001 et ISO 27001, des pentests d'infrastructures critiques, du forensics et des missions de conformité NIS2 / AI Act.
Conférencier international (Europe & US), il a formé plus de 10 000 professionnels.
Domaines d'expertise
Ressources & Outils de l'auteur
Testez vos connaissances
Mini-quiz de certification lié à cet article — propulsé par CertifExpress
Articles connexes
Un projet cybersécurité ? Parlons-en.
Pentest, conformité NIS 2, ISO 27001, audit IA, RSSI externalisé… nos experts répondent sous 24h pour évaluer votre besoin et vous proposer un accompagnement sur mesure.
Commentaires
Aucun commentaire pour le moment. Soyez le premier à commenter !
Laisser un commentaire