
Pada 19 Juli 2019, Capital One Bank menerima pesan bahwa setiap perusahaan modern takut - kebocoran data telah terjadi. Ini mempengaruhi lebih dari 106 juta orang. 140.000 Nomor Jaminan Sosial AS, satu juta Nomor Jaminan Sosial Kanada. 80.000 rekening bank. Tidak menyenangkan, setuju?
Sayangnya, peretasan itu tidak terjadi sama sekali pada 19 Juli. Ternyata, Paige Thompson, alias
Tidak menentu , melakukannya antara 22 Maret dan 23 Maret 2019. Itu
hampir empat bulan lalu . Bahkan, hanya dengan bantuan konsultan eksternal Capital One tahu bahwa sesuatu telah terjadi.
Mantan karyawan Amazon ditangkap, dia menghadapi denda $ 250 ribu dan lima tahun penjara ... tetapi ada banyak hal negatif. Mengapa Karena banyak perusahaan yang diretas mencoba untuk mengesampingkan tanggung jawab untuk memperkuat infrastruktur dan aplikasi mereka di tengah meningkatnya kejahatan dunia maya.
Bagaimanapun, Anda dapat dengan mudah google cerita ini. Kami tidak akan masuk ke drama, tetapi berbicara tentang sisi
teknis hal.
Pertama, apa yang terjadi?
Di Capital One, ada sekitar 700 S3 ember yang disalin dan dikempiskan Paige Thompson.
Kedua, apakah ini kasus lain dari kebijakan bucket S3 yang tidak dikonfigurasi dengan benar?
Tidak, tidak kali ini. Di sini dia mendapatkan akses ke server dengan firewall yang tidak dikonfigurasi dengan benar dan dari sana dia melakukan seluruh operasi.
Tunggu, bagaimana ini mungkin?
Baiklah, mari kita mulai dengan masuk ke server, meskipun kami memiliki beberapa detail. Kami hanya diberitahu bahwa ini terjadi melalui "firewall yang tidak dikonfigurasi dengan benar". Jadi, sesuatu yang sederhana seperti pengaturan grup keamanan yang salah atau konfigurasi firewall aplikasi web (Imperva), atau firewall jaringan (iptables, ufw, shorewall, dll.). Capital One hanya mengaku bersalah dan mengatakan itu menutup lubang.
Stone mengatakan bahwa Capital One pada awalnya tidak melihat kerentanan firewall, tetapi merespons dengan cepat segera setelah mengetahui tentang hal itu. Tentu saja, ini terbantu oleh fakta bahwa peretas diduga meninggalkan kunci mengidentifikasi informasi yang tersedia untuk umum, kata Stone.
Jika Anda tertarik mengapa kami tidak menyelidiki bagian ini, pahami bahwa karena informasi yang terbatas, kami hanya dapat berspekulasi. Ini tidak ada gunanya mengingat peretasan tergantung pada celah yang ditinggalkan oleh Capital One. Dan jika mereka tidak memberi tahu kami lebih banyak, kami hanya akan mendaftar semua cara yang memungkinkan Capital One membiarkan servernya terbuka dalam kombinasi dengan semua cara yang memungkinkan seseorang dapat menggunakan salah satu dari berbagai opsi ini. Kesenjangan dan metode ini dapat berkisar dari pengawasan yang sangat bodoh hingga pola yang sangat rumit. Mengingat berbagai kemungkinan, ini akan berubah menjadi kisah panjang tanpa kesimpulan nyata. Oleh karena itu, kami akan fokus pada analisis bagian di mana kami memiliki fakta.Jadi kesimpulan pertama: tahu apa yang diizinkan firewall Anda
Tetapkan kebijakan atau proses untuk memastikan bahwa HANYA apa yang terbuka terbuka. Jika Anda menggunakan sumber daya AWS, seperti Grup Keamanan atau Jaringan ACL, jelas daftar periksa untuk verifikasi bisa panjang ... tetapi karena banyak sumber daya dibuat secara otomatis (mis. CloudFormation), Anda juga dapat mengotomatiskan audit mereka. Entah itu skrip darurat yang memindai objek baru untuk cacat, atau sesuatu seperti audit keamanan dalam proses CI / CD ... ada banyak pilihan sederhana untuk menghindari ini.
Bagian "menyenangkan" dari cerita adalah bahwa jika Capital One telah menutup lubang sejak awal ... tidak ada yang akan terjadi. Dan karena itu, terus terang, selalu mengejutkan melihat betapa benar-benar sesuatu yang
sangat sederhana menjadi satu-satunya alasan bagi perusahaan peretasan. Terutama sebesar Capital One.
Jadi, hacker di dalam - apa yang terjadi selanjutnya?
Nah, setelah membobol instance EC2 ... banyak yang bisa salah. Anda berjalan hampir sepanjang tepi pisau jika Anda membiarkan seseorang pergi sejauh itu. Tapi bagaimana dia bisa masuk ke ember S3? Untuk memahami hal ini, mari kita bahas peran IAM (Peran IAM).
Jadi, salah satu cara untuk mengakses layanan AWS adalah menjadi Pengguna. Oke, ini sangat jelas. Tetapi bagaimana jika Anda ingin memberikan layanan AWS lainnya, misalnya, server aplikasi Anda, akses ke bucket S3 Anda? Untuk ini, ada peran IAM. Mereka terdiri dari dua komponen:
- Kebijakan Kepercayaan - layanan apa atau orang mana yang dapat menggunakan peran ini?
- Kebijakan Izin - apa yang diizinkan peran ini?
Misalnya, Anda ingin membuat peran IAM yang memungkinkan EC2 instance mengakses bucket S3: pertama, ia menetapkan Kebijakan Kepercayaan untuk peran tersebut, sehingga EC2 (seluruh layanan) atau instance spesifik dapat mengambil alih peran tersebut. Dengan asumsi peran berarti bahwa mereka dapat menggunakan izin peran untuk melakukan tindakan. Kedua, Kebijakan Izin memungkinkan layanan / orang / sumber daya yang "mengambil peran" untuk melakukan sesuatu pada S3, baik itu akses ke satu ember tertentu ... atau lebih dari 700, seperti dalam kasus Capital One.
Setelah Anda berada dalam instance EC2 dengan peran IAM, Anda bisa mendapatkan kredensial dalam beberapa cara:
- Anda dapat meminta metadata instan di
http://169.254.169.254/latest/meta-data
Antara lain, di alamat ini Anda dapat menemukan peran IAM dengan salah satu tombol akses. Tentu saja, hanya jika Anda berada dalam contoh.
- Gunakan AWS CLI ...
Jika antarmuka baris perintah AWS diinstal, itu dimuat dengan kredensial dari peran IAM, jika ada. Tetap hanya bekerja melalui instance. Tentu saja, jika Kebijakan Kepercayaan mereka terbuka, Page dapat melakukannya secara langsung.
Dengan demikian, esensi dari peran IAM adalah bahwa mereka memungkinkan satu sumber daya untuk bertindak DARI NAMA ANDA di SUMBER DAYA LAINNYA.
Sekarang setelah Anda memahami peran IAM, kita dapat berbicara tentang apa yang telah dilakukan Page Thompson:
- Dia mendapatkan akses ke server (contoh EC2) melalui lubang di firewall
Entah itu kelompok keamanan / ACL atau firewall aplikasi web mereka sendiri, lubang itu mungkin cukup mudah ditutup, sebagaimana dinyatakan dalam catatan resmi.
- Begitu sampai di server, dia bisa bertindak "seolah-olah" dia adalah server
- Karena peran server IAM memungkinkan akses S3 ke bucket 700+ ini, ia dapat mengaksesnya
Mulai sekarang, dia hanya bisa menjalankan perintah
List Buckets
, dan kemudian perintah
Sync
dari AWS CLI ...
Capital One Bank memperkirakan kerusakan akibat peretasan dalam jumlah 100 hingga 150 JUTA dolar . Mencegah kerusakan seperti itu adalah alasan mengapa banyak perusahaan berinvestasi dalam melindungi infrastruktur cloud, DevOps, dan pakar keamanan. Dan seberapa berharga dan hemat biaya transisi ke cloud? Sedemikian rupa sehingga bahkan dalam menghadapi semakin banyak masalah keamanan siber,
pasar cloud publik secara keseluruhan tumbuh sebesar 42% pada kuartal pertama tahun 2019 !
Moral dari kisah ini: periksa keselamatan Anda; melakukan audit rutin; menghormati prinsip hak istimewa yang paling rendah untuk kebijakan keamanan.
(Anda dapat melihat laporan hukum lengkap di sini).