Gli hyperscaler sono aziende che forniscono servizi di cloud computing su larga scala, caratterizzate da una presenza globale, infrastrutture estese e capacità di gestire enormi volumi di dati e carichi di lavoro particolarmente impegnativi. Queste aziende hanno costruito data center di grandi dimensioni in tutto il mondo e offrono una vasta gamma di servizi cloud, tra cui l'archiviazione, l'elaborazione dei dati, il calcolo distribuito, la gestione delle reti e molto altro. Un bucket AWS è un contenitore virtuale per l'archiviazione dei dati sul cloud: utilizza il servizio S3 (Amazon Simple Storage Service) per gestire la memorizzazione delle informazioni.
Un bucket AWS S3 vuoto presenta al proprietario un conto da oltre 1.200 euro in appena 48 ore
I vari hyperscaler sono piuttosto severi nel calcolare il traffico dati che fluisce da e verso le loro piattaforme. Muovere i dati ha un costo, che viene scaricato sui clienti abbonati ai vari servizi cloud.
L'ingegnere software Maciej Pocwierz descrive un caso emblematico: dopo aver creato un bucket AWS vuoto e privato, nella regione eu-west-1
, limitandosi al caricamento di alcuni file per mero scopo di test, l'esperto si è ritrovato con una "bolletta" salata da oltre 1.200 euro. AWS indicava infatti di aver registrato e gestito di conseguenza oltre 100 milioni di richieste S3 PUT in un solo giorno.
Le richieste S3 PUT sono utilizzate per caricare nuovi dati nel bucket S3. Ad esempio nuovi file, documenti, immagini, video e qualsiasi altro tipo di contenuto.
Per impostazione predefinita, AWS non registra le richieste eseguite sui bucket S3, ma è possibile abilitarne la memorizzazione ricorrendo ad AWS CloudTrail o attivando il logging degli accessi. Dopo aver abilitato i log di CloudTrail, Pocwierz ha notato migliaia di richieste di scrittura provenienti da account multipli o da sorgenti esterne all'infrastruttura di AWS.
Le motivazioni del conto salatissimo presentato da AWS
Il ricercatore e sviluppatore ha potuto accertare, durante le sue verifiche, che diverse organizzazioni stavano involontariamente tentando di memorizzare i loro dati nel suo bucket S3. Nello specifico, un noto strumento open source utilizzava, per impostazione predefinita, la stessa denominazione del bucket S3. Ogni istanza del software open source in questione, tentava quindi – per default – di accedere al bucket S3 creato da Pocwierz. Ovviamente senza successo, perché le credenziali non erano note pubblicamente.
Quanto scoperto ha portato alla generazione di una vera e propria tempesta di richieste non autorizzate verso il bucket S3 creato dall'ingegnere software. Come confermato dal supporto AWS, la piattaforma cloud di Amazon addebita al proprietario del bucket S3 anche le richieste non autorizzate. Ad esempio, se una richiesta genera un errore Access Denied, al gestore del bucket è comunque fatturato il traffico generato.
"Ho inoltre constatato che oltre la metà dell'importo addebitatomi era legato a richieste provenienti dalla regione us-east-1
, nonostante non avessi alcun bucket in quella regione. Questo fenomeno si verifica poiché le richieste S3 che non indicano alcuna regione, sono automaticamente reindirizzate a us-east-1
, comportando costi aggiuntivi per la gestione delle stesse", osserva ancora Pocwierz.
Gli aspetti da tenere a mente per evitare addebiti folli
Quando si utilizza un bucket S3, è fondamentale tenere a mente gli eventuali problemi che possono presentarsi. Chiunque conosca il nome dei bucket S3 AWS, può causare un aumento imprevisto dei costi, anche senza avere accesso diretto al contenuto del servizio di archiviazione.
Aggiungere un suffisso casuale ai nomi dei bucket può migliorare la sicurezza, riducendo l'esposizione ad eventuali errori di configurazione o attacchi intenzionali. Infine, quando si eseguono molte richieste S3, è fondamentale specificare esplicitamente la regione AWS per evitare costi aggiuntivi dovuti al reindirizzamento del traffico.
Pocwierz racconta di aver segnalato il problema da egli sperimentato agli sviluppatori dello strumento open source coinvolto. Inoltre, ha riassunto l'accaduto al team di sicurezza AWS. Tuttavia, i vari soggetti coinvolti non hanno fornito alcun riscontro.
Soltanto AWS ha deciso di annullare la fattura e stornare ogni addebito rimarcando però che si tratta di un'eccezione, nell'intento di venire incontro all'utente.