Fasi di un Cloud Penetration Test
Un penetration test sul cloud AWS (o su qualsiasi altra piattaforma cloud) segue generalmente queste fasi:
Fase 1: Reconnaissance
In questa fase, raccolti informazioni sull’infrastruttura del cliente. Questo può includere:
- Analisi del codice HTML : Cerchi riferimenti a servizi AWS (ad esempio, URL di bucket S3 o endpoint API).
- Google Hacking (Dorking) : Usi query specifiche su Google per trovare bucket S3 pubblici o altre risorse cloud.
- Strumenti di Scansione : Utilizzi strumenti come Shodan , Censys o BucketStream per individuare bucket S3 o altri servizi cloud.
- Social Engineering : Cerchi di ottenere credenziali tramite ingegneria sociale (ad esempio, phishing).
Fase 2: Accesso all’Account AWS
Se durante la reconnaissance ottieni le credenziali di accesso all’account AWS del cliente (tramite social engineering, brute force o altre tecniche), puoi usare queste credenziali per accedere all’account AWS tramite l’AWS CLI o l’AWS Management Console.
Una volta dentro, puoi:
- Elencare le risorse disponibili (bucket S3, istanze EC2, database RDS, etc.).
- Analizzare le configurazioni delle policy IAM per identificare vulnerabilità.
- Testare eventuali malconfigurazioni.
Fase 3: Identificazione di Vulnerabilità
In questa fase, cerchi vulnerabilità e malconfigurazioni. Ad esempio:
- Bucket S3 pubblici che potrebbero contenere dati sensibili.
- Policy IAM mal configurate che concedono autorizzazioni eccessive.
- Istanze EC2 con porte aperte alla rete Internet.
- Credenziali hardcoded nei file di configurazione.
Questa fase detta anche scanning in genere viene fatta con strumenti automatizzati come AADInternals, CloudSploit, ecc.
Fase 4: Reporting
Infine, redigi un rapporto dettagliato che include:
- Le vulnerabilità identificate.
- Le metodologie utilizzate per scoprirle.
- Raccomandazioni per mitigarle.
2. Bucket S3 Pubblici vs Accesso all’Account AWS
Scenario 1: Bucket S3 Pubblici
Se durante la reconnaissance trovi un bucket S3 pubblico, puoi accedervi direttamente senza bisogno di credenziali AWS. Tuttavia, questo non ti dà accesso all’account AWS completo. Puoi solo:
- Elencare i file presenti nel bucket (se consentito dalla configurazione).
- Scaricare i file (se consentito).
Esempio : Durante una ricerca, trovi un bucket S3 pubblico chiamato companyname-backup. Puoi elencare i file all’interno del bucket e scaricarli se sono accessibili.
Scenario 2: Accesso all’Account AWS
Se ottieni le credenziali di accesso all’account AWS (chiave di accesso e chiave segreta), puoi accedere all’intera infrastruttura cloud del cliente. In questo caso:
- Puoi elencare tutti i bucket S3 associati all’account.
- Puoi analizzare le configurazioni delle policy IAM.
- Puoi verificare l’accessibilità delle istanze EC2, database RDS, etc.
Importante : L’accesso all’account AWS è completamente separato dall’accesso ai bucket S3 pubblici. Se non hai le credenziali dell’account AWS, non puoi accedere alle risorse private dell’account, anche se riesci a trovare un bucket S3 pubblico.