Exemple simple
Imaginons un serveur :
Internet
│
▼
┌─────────────┐
│ Server │
├─────────────┤
│ Port 22 │ SSH
│ Port 80 │ HTTP
│ Port 443 │ HTTPS
│ Web API │
│ Login page │
└─────────────┘
Chaque service exposé peut faire partie de la surface d'attaque.
Types d'Attack Surface
Network Attack Surface
Les éléments accessibles via le réseau :
- ports ouverts ;
- services ;
- protocoles ;
- VPN ;
- DNS ;
- API ;
- interfaces d'administration.
Exemple :
22 SSH
80 HTTP
443 HTTPS
3306 MySQL
Plus il existe de services exposés, plus la surface d'attaque peut être importante.
Application Attack Surface
Les points d'interaction avec une application.
Exemples :
- formulaires ;
- API ;
- upload de fichiers ;
- authentification ;
- paramètres URL ;
- cookies ;
- WebSockets.
User
│
├── Login
├── Search
├── File Upload
├── API
└── Admin Panel
Human Attack Surface
Les humains peuvent également faire partie de la surface d'attaque.
Exemples :
- phishing ;
- ingénierie sociale ;
- mots de passe faibles ;
- erreurs humaines ;
- mauvaises pratiques.
Physical Attack Surface
Les accès physiques :
- ports USB ;
- interfaces de debug ;
- disques ;
- consoles ;
- équipements réseau.
Cloud Attack Surface
Dans le Cloud :
- buckets ;
- API ;
- IAM ;
- machines virtuelles ;
- clés d'accès ;
- services exposés ;
- configurations réseau.
Attack Surface Management
Réduire la surface d'attaque est un principe important.
Exemple :
Before
Internet
│
├── SSH
├── HTTP
├── HTTPS
├── Database
├── Admin panel
└── Test service
Après réduction :
Internet
│
└── HTTPS
Les autres services peuvent être :
- désactivés ;
- protégés ;
- placés sur un réseau interne ;
- accessibles uniquement via VPN.
Principe fondamental
Every unnecessary service increases the attack surface.
Un service inutile devrait généralement être supprimé ou désactivé.
Attack Surface vs Attack Vector
Ces concepts sont différents.
Attack Surface
L'ensemble des points potentiellement accessibles.
Attack Vector
Le chemin ou la méthode utilisée pour attaquer.
Exemple :
Attack Surface:
Login page
Attack Vector:
Credential stuffing
Points importants à retenir
- L'attack surface représente les points d'interaction avec un système.
- Elle peut être réseau, applicative, humaine, physique ou Cloud.
- Une surface d'attaque importante ne signifie pas automatiquement qu'un système est vulnérable.
- Réduire les services inutiles permet généralement de réduire les risques.
- Attack Surface et Attack Vector sont deux concepts différents.
Concepts associés
- Attack Vector
- Threat Modeling
- Asset
- Vulnerability
- Attack Surface Management
- Defense in Depth