
Peneliti keamanan siber telah mengungkapkan kelemahan keamanan yang berdampak pada Cloud Development Kit (CDK) Amazon Web Services (AWS) yang dapat mengakibatkan pengambilalihan akun dalam keadaan tertentu.
“Dampak masalah ini, dalam skenario tertentu, memungkinkan penyerang mendapatkan akses administratif ke akun AWS target, yang mengakibatkan pengambilalihan akun secara penuh,” kata Aqua dalam laporan yang dibagikan kepada The Hacker News.
Setelah pengungkapan yang bertanggung jawab pada tanggal 27 Juni 2024, masalah ini telah diatasi oleh pengelola proyek dalam CDK versi 2.149.0 yang dirilis pada bulan Juli.
AWS CDK adalah kerangka pengembangan perangkat lunak sumber terbuka untuk menentukan sumber daya aplikasi cloud menggunakan Python, TypeScript, atau JavaScript dan menyediakannya melalui CloudFormation.
Masalah yang diidentifikasi oleh Aqua didasarkan pada temuan sebelumnya dari perusahaan keamanan cloud tentang sumber daya bayangan di AWS, dan bagaimana konvensi penamaan yang telah ditentukan sebelumnya untuk bucket AWS Simple Storage Service (S3) dapat digunakan untuk mengatur serangan Bucket Monopoly dan mendapatkan akses ke data sensitif.
Mempersiapkan lingkungan AWS untuk penggunaan dengan AWS Cloud Development Kit (AWS CDK) dilakukan dengan proses yang disebut bootstrapping, di mana sumber daya AWS tertentu disediakan untuk lingkungan tersebut. Ini termasuk bucket AWS S3, repositori Amazon Elastic Container Registry (Amazon ECR), dan peran AWS Identity and Access Management (IAM).

“Sumber daya dan konfigurasinya yang digunakan oleh CDK ditentukan dalam templat AWS CloudFormation,” menurut dokumentasi AWS.
“Untuk melakukan bootstrap suatu lingkungan, Anda menggunakan perintah cdk bootstrap AWS CDK Command Line Interface (AWS CDK CLI). CDK CLI mengambil templat dan menyebarkannya ke AWS CloudFormation sebagai tumpukan, yang dikenal sebagai tumpukan bootstrap. Secara default, tumpukan namanya adalah CDKToolkit.”
Beberapa peran IAM yang dibuat sebagai bagian dari proses bootstrapping memberikan izin untuk mengunggah dan menghapus aset dari bucket S3 terkait, serta melakukan penerapan tumpukan dengan akses administrator.
Aqua mengatakan pola penamaan peran IAM yang dibuat oleh AWS CDK mengikuti struktur “cdk-{Qualifier}-{Description}-{Account-ID}-{Region},” yang masing-masing kolomnya dijelaskan di bawah ini –
- Qualifier, nilai string sembilan karakter unik yang defaultnya adalah “hnb659fds” meskipun dapat disesuaikan selama fase bootstrap
- Deskripsi, deskripsi sumber daya (misalnya, cfn-exec-role)
- ID Akun, ID akun AWS lingkungan
- Wilayah, wilayah lingkungan AWS
Dengan cara yang sama, bucket S3 yang dibuat selama bootstrapping mengikuti pola penamaan “cdk-{Qualifier}-assets-{Account-ID}-{Region}.”
“Karena banyak pengguna menjalankan perintah cdk bootstrap tanpa menyesuaikan kualifikasi, pola penamaan bucket S3 dari staging bucket menjadi dapat diprediksi,” kata Aqua. “Hal ini karena nilai default untuk kualifikasi nama bucket ditetapkan ke 'hnb659fds', sehingga memudahkan untuk mengantisipasi nama bucket.”
Dengan ribuan instans yang ditemukan di GitHub di mana qualifier default digunakan, ini juga berarti menebak nama bucket semudah menemukan ID Akun AWS dan wilayah tempat CDK diterapkan.
Menggabungkan aspek ini dengan fakta bahwa nama bucket S3 unik secara global di semua akun AWS, celah tersebut membuka pintu bagi apa yang disebut S3 Bucket Namesquatting (atau Bucket Sniping), yang memungkinkan penyerang mengklaim bucket CDK pengguna lain jika bucket tersebut tidak ada. sudah.
Hal ini kemudian dapat membuka jalan bagi penolakan layanan parsial (DoS) ketika pengguna mencoba melakukan bootstrap pada CDK dengan ID akun dan wilayah yang sama, sebuah skenario yang dapat diselesaikan dengan menentukan kualifikasi khusus selama bootstrapping.
Konsekuensi yang lebih serius dapat terjadi jika CDK korban memiliki izin untuk membaca dan menulis data dari dan ke bucket S3 yang dikendalikan penyerang, sehingga memungkinkan untuk mengutak-atik templat CloudFormation dan melakukan tindakan berbahaya dalam akun AWS korban.
“Peran penerapan layanan CloudFormation, yaitu peran CloudFormationExecutionRole di CDK, memiliki hak administratif dalam akun secara default,” jelas Aqua.
“Ini berarti setiap templat CloudFormation yang ditulis ke bucket S3 penyerang oleh CDK korban akan diterapkan kemudian dengan hak administratif di akun korban. Hal ini akan memungkinkan penyerang membuat sumber daya yang memiliki hak istimewa.”
Dalam serangan hipotetis, jika pengguna telah memulai proses bootstrap CDK di masa lalu dan kemudian menghapus bucket S3 karena batasan kuota, musuh dapat memanfaatkan situasi tersebut untuk membuat bucket dengan nama yang sama.
Hal ini kemudian dapat menyebabkan CDK secara implisit memercayai bucket jahat tersebut dan membaca/menulis template CloudFormation ke dalamnya, sehingga rentan terhadap eksploitasi. Namun, agar hal ini berhasil, penyerang diharapkan memenuhi prasyarat di bawah ini –
Klaim keranjang dengan nama yang dapat diprediksi dan izinkan akses publik
Buat fungsi Lambda yang akan memasukkan peran admin berbahaya atau pintu belakang ke dalam file templat CloudFormation tertentu setiap kali diunggah ke bucket
Pada tahap akhir, saat pengguna menyebarkan CDK menggunakan “cdk deploy”, proses tidak hanya mengirimkan templat ke keranjang replika, namun juga memasukkan peran admin yang dapat diambil oleh penyerang untuk pada akhirnya mendapatkan kendali atas akun korban.

Dengan kata lain, rantai serangan memfasilitasi pembuatan peran admin di akun AWS target ketika bucket CDK S3 yang disiapkan selama proses bootstrap dihapus dan CDK digunakan kembali. AWS telah mengonfirmasi bahwa sekitar 1% pengguna CDK rentan terhadap vektor serangan.
Perbaikan yang diterapkan oleh AWS memastikan bahwa aset hanya diunggah ke bucket dalam akun pengguna untuk mencegah CDK memasukkan data ke bucket yang tidak dimiliki oleh akun yang meluncurkan bootstrapping. Mereka juga mendesak pelanggan untuk menggunakan kualifikasi yang dipesan lebih dahulu daripada standar “hnb659fds”.
Oleh karena itu, tindakan pengguna diperlukan jika bootstrapping dilakukan menggunakan CDK versi v2.148.1 atau yang lebih lama, sehingga mengharuskan mereka memperbarui CDK ke versi terbaru dan menjalankan kembali perintah bootstrap. Alternatifnya, pengguna memiliki opsi untuk menerapkan ketentuan kebijakan IAM ke peran FilePublishingRole CDK.
Temuan ini sekali lagi menyerukan untuk merahasiakan ID akun AWS, menentukan kebijakan IAM yang tercakup, dan menghindari memberikan nama yang dapat diprediksi pada bucket S3.
“Sebaliknya, buat hash unik atau pengidentifikasi acak per wilayah dan akun, dan masukkan ke dalam nama bucket S3 Anda,” Aqua menyimpulkan. “Strategi ini membantu melindungi dari penyerang yang mengambil alih keranjang Anda terlebih dahulu.”
Pengungkapan ini terjadi ketika Symantec milik Broadcom menemukan beberapa aplikasi Android dan iOS yang melakukan hardcode dan tidak mengenkripsi kredensial layanan cloud untuk AWS dan Microsoft Azure Blob Storage, sehingga membahayakan data pengguna.
Beberapa aplikasi yang melanggar termasuk Pic Stitch: Collage Maker, Crumbl, Eureka: Dapatkan Uang untuk Survei, Videoshop – Editor Video, Meru Cabs, Sulekha Business, dan ReSound Tinnitus Relief.
“Praktik berbahaya ini berarti bahwa siapa pun yang memiliki akses ke biner atau kode sumber aplikasi berpotensi mengekstrak kredensial ini dan menyalahgunakannya untuk memanipulasi atau mengambil data, sehingga menyebabkan pelanggaran keamanan yang parah,” kata peneliti keamanan Yuanjing Guo dan Tommy Dong.