Beberapa waktu yang lalu, di antara para peneliti keamanan, sangat "modis" untuk menemukan penyimpanan cloud AWS yang tidak terkonfigurasi dengan semua jenis informasi rahasia. Kemudian saya bahkan menerbitkan catatan kecil tentang bagaimana penyimpanan cloud terbuka Amazon S3 ditemukan.
Namun, waktu berlalu dan penekanan dalam penelitian telah bergeser ke pencarian untuk database yang tersedia untuk umum. Lebih dari setengah kasus kebocoran data utama yang diketahui selama setahun terakhir adalah kebocoran dari basis data terbuka (tinjauan kebocoran untuk 2018 di sini dan di sini ).

Hari ini kami akan mencoba memahami bagaimana database seperti itu dideteksi oleh peneliti keamanan ...
Penafian yang diperlukan: artikel ini tidak membahas atau mengangkat masalah hukum dan etika terkait dengan pencarian dan identifikasi database yang tersedia untuk umum. Semua informasi di bawah ini harus dianggap secara eksklusif bersifat mendidik dan informatif.
Saya tidak akan menemukan Amerika jika saya mengatakan bahwa alat utama untuk menemukan basis data terbuka adalah mesin pencari khusus Shodan dan Censys . Saya harus segera mengatakan bahwa ini bukan layanan gratis dan Anda harus membayar non-rubel yang Anda dapatkan dengan jujur untuk akses ke hasil pencarian lengkap (dalam kasus Shodan itu adalah $ 59 / bulan, dan untuk Censys - $ 99 / bulan, dan ini hanya untuk paket dasar minimum). Versi gratis dari mesin pencari sangat membatasi jumlah hasil dalam hasil pencarian.
Selain pencarian klasik seperti Google menggunakan bilah pencarian, mesin pencari ini menyediakan kemampuan untuk terhubung melalui API. Pemilik langganan berbayar yang beruntung akan menerima kunci API mereka. Hal ini memungkinkan untuk secara signifikan memfasilitasi tugas mengumpulkan tumpukan sampah pencarian. Saya memberi daftar skrip yang berguna dan program otomasi pencarian yang menggunakan kunci API di akhir artikel ini.
, , GitHub, API-, .
Mari kita lihat mesin pencari Shodan sebagai contoh cara menemukan database MongoDB dan Elasticsearch yang terbuka.
Permintaan paling sederhana dan paling jelas yang meminta adalah "MongoDB":

Seperti dapat dilihat dari tangkapan layar, permintaan ini mengembalikan semua server MongoDB yang diindekskan kepada kami (pada port default 27017). Selain itu, sebagian besar dari mereka (dalam tangkapan layar ini adalah tiga yang pertama) akan menjadi database tertutup, membutuhkan akun untuk koneksi. Dan ini bukan hal yang menarik bagi kami. Lebih tepatnya, ini sama sekali tidak terjadi.
Mari kita sedikit mempersulit kueri menggunakan filter pencarian "semua:" informasi server mongodb "semua:" metrik "":

Hasilnya sudah terlihat jauh lebih baik. Semua database yang ditemukan tersedia secara bebas pada saat mereka diindeks oleh mesin pencari. Dengan tingkat probabilitas yang tinggi, Anda dapat terhubung ke mereka di alamat IP yang ditentukan menggunakan beberapa manajer untuk MongoDB (misalnya, Manajer NoSQL untuk MongoDB atau Studio 3T untuk MongoDB).
Anda dapat membatasi pencarian di suatu negara. Katakanlah mari kita mencari MongoDB terbuka di China (kueri "semua:" informasi server mongodb "semua:" metrik "negara:" cn ""):

Untuk mencari database Elasticsearch yang terbuka, lebih mudah menggunakan kueri "port:" 9200 "all:" indeks elastis "":

Sayangnya, saya tidak menemukan cara mengatur kondisi pencarian di bilah pencarian sesuai dengan ukuran database. Jika Anda tahu cara melakukan ini (atur filter pada parameter "totalSize" atau "sizeOnDisk" di bilah pencarian), lalu tulis di komentar.
Anda dapat menerapkan filter yang lebih kompleks (batasan ukuran database, tanggal server memasukkan indeks, dll.) Ke hasil pencarian menggunakan skrip dan program khusus. Untuk ini, Anda sudah perlu akses berbayar dan kunci API, seperti yang saya tulis di atas.
Berikut adalah daftar singkat dari apa yang mungkin berguna:
- cli.shodan.io adalah konsol resmi Shodan. Dalam bahasa Rusia tentang penggunaannya bisa dibaca di sini .
- shodan-manual.com - panduan untuk Shodan dalam bahasa Rusia.
- github.com/woj-ciech/LeakLooker adalah program python untuk menemukan basis data terbuka (MongoDB, CouchDB, Elasticsearch, dll.).
- lampyre.io adalah antarmuka grafis yang sangat kuat (dan sejauh ini sangat buggy!) untuk mencari dan memvisualisasikan apa yang ditemukan. Ini memiliki template bawaan untuk mencari MongoDB dan banyak lagi. Itu dalam pengujian beta dengan semua konsekuensi ...
- t.me/dataleak (jika diblokir, maka tele.click/dataleak ) adalah saluran Telegram saya yang sederhana di mana saya meninjau kebocoran informasi dan, khususnya, menulis tentang apa yang ditemukan peneliti keamanan dalam domain publik. Sangat menarik.