Katakanlah telah diketahui melalui beragam sumber bahwa terdapat celah keamanan terbaru pada Microsoft Windows yang sedang di-eksploitasi diseluruh dunia. Celah kemanan tersebut disebut Eternalblue.
Beberapa tools seperti NMap dan OpenVAS telah memasukan definisi agar dapat dilakukan untuk mengidentifikasi Eternalblue. Misalnya, pada NMap terdapat script berikut ini.

Untuk menggunakannya kita bisa menjalankan command seperti berikut ini
$ nmap --script smb-vuln-ms17-010.nse -p445 -Pn -n <target>
Masalah utama terletak pada <target>. Target disini bisa spesifik host, ataupun network. Ketika host yang akan menjadi target scanning sudah diketahui tentu semuanya akan mudah. Katakanlah system administrator memaintain data aset perusahaan dimana terdapat list IP mana saja yang memiliki sistem operasi windows untuk dicek vulnerabilitynya.
Namun kondisi ideal tersebut sangat jarang terjadi dilapangan. Sehingga metode yang harus dilakukan adalah melakukan ‘asset discovery’ terlebih dahulu sesuai karakteristik vulnerability yang akan di-cek. Eternalblue mengeksploitasi aplikasi SMBv1 server milik Microsoft, aplikasi tersebut membuka port 139 dan 445. Sehingga untuk mencari aset mana saja yang vulnerable perlu dilakukan proses ‘asset discovery’ dengan melakukan scanning port 139 atau 445.
Proses asset discovery ini menjadi polemik tersendiri karena pada umumnya akan memakan waktu lama terutama jika network target cukup besar. Apalagi jika pengguna belum memiliki pengetahuan yang cukup terkait parameter-parameter tools yang digunakan seperti NMap sehingga akan menggunakan parameter ‘Default’, akibatnya mass-public scanning untuk mencari aset-aset mana saja yang vulnerable menjadi lebih kompleks dan sangat lama.
Hal yang sama berlaku untuk pihak seperti BSSN dimana targetnya adalah satu negara seperti Indonesia. Mereka harus bisa dengan segera menentukan aset-aset publik mana saja yang vulnerable terhadap vulnerability Eternalblue.
Untuk itulah sebelum masuk pada tahap vulnerability scan perlu dilakukan asset discovery terlebih dahulu sehingga proses vulnerability scanning bisa lebih efektif.
Mass Asset Discovery Tools
NMap sebenarnya bisa juga digunakan untuk melakukan asset discovery secara cepat. Misalnya dengan command sebagai berikut,
$ sudo nmap -Pn -sS -p445 --max-retries 1 -n -T5 <target> -oG <output> --openNamun ada tools lain yang secara khusus melakukan optimisasi untuk proses asset discovery ini. Saat ini setidaknya ada dua tools lain dengan pendekatan yang cukup berbeda: ZMap dan Masscan.
Ada beberapa perbedaan terkait optimisasi dari kedua tools tersebut. Misalnya, ZMap melakukan optimisasi dengan memanfaatkan CPU core. Katakanlah suatu mesin memiliki 8 CPU core maka semuanya dimanfaatkan oleh algoritma ZMap. Core-0 digunakan sebagai controller, core-1 s/d core-6 digunakan untuk mengirim dan menerima paket data, core-7 digunakan sebagai monitor. ZMap juga melakukan optimisasi dari sisi network dengan memanfaatkan ethernet packet pada TCP/IP stack.
Sedangkan Masscan melakukan optimisasi diantaranya dengan mem-bypass TCP/IP sistem operasi seperti Linux sehingga Masscan dapat membaca dan menulis langsung ke driver ethernet card tanpa melibatkan read-write memory yang melibatkan kernel.
Ada cukup banyak hal optimisasi yang bisa menjadikan kedua tools ini lebih cepat dibandingkan NMap.
Namun dari berbagai percobaan yang saya lakukan terutama dengan mempertimbangkan kondisi network dimana tidak senantiasa bisa stabil memberikan throughput besar, Masscan memberikan hasil lebih baik dibandingkan ZMap.
Masscan lebih stabil dimana hasilnya lebih reliable dibandingkan ZMap. Banyak host ‘lolos’ dari hasil ZMap namun berhasil ditemukan oleh Masscan.
Contoh Use Case
Pada contoh berikut ini saya akan coba menunjukan proses secara manual dimana proses ini bisa di automate oleh aplikasi Vulnerability Management System.
Tentukan Network Target
Kita akan gunakan network negara Tanzania sebagai target yang diambil dari project Github berikut ini.

Masscan
Kita akan gunakan Masscan untuk scanning seluruh network negara Tanzania dengan total lebih dari 1 juta IP address dengan tujuan mencari IP mana saja yang aktif dan membuka port 445.

Sebagaimana tertulis diatas, masscan melakukan proses asset discovery port 445 terhadap lebih dari 1 juta IP address dengan kecepatan 1000 packet per second (konfigurasi disesuaikan dengan kondisi network saya dirumah; pada Gigabit ethernet network tentu bisa diset jauh lebih besar) memakan waktu kurang lebih 16 menit saja.
Berikut ini contoh outputnya.

Dengan command berikut ini kita bisa dapatkan list IP nya saja.

Vulnerability Scan [NMap]
Berdasarkan output dari Masscan maka telah didapatkan sebanyak 372 IP address yang membuka port 445 di network negara Tanzania. Selanjutnya baru kita lakukan vulnerability scanning dengan menggunakan NMap.
$ nmap --script smb-vuln-ms17-010.nse -p445 -n -Pn -iL smb-port_ip.tz -oX eternal-blue-tanzania.xmlPerhatikan bahwa parameter scanning NMap yang digunakan secara spesifik meyebutkan tidak perlu lagi melakukan proses host discovery (-Pn) karena kita sudah memastikan bahwa asset tersebut aktif sehingga NMap bisa langsung melakukan scanning port 445 untuk menentukan target IP address mana saja yang memiliki vulnerability Eternalblue.
Berikut ini contoh outputnya yang menunjukan vulnerable (agar mempermudah di visualisasikan dalam non-XML).

Atau dalam bentuk XML seperti ini,

Output diatas itulah kemudian yang diparsing oleh Logstash untuk dimasukan kedalam Elasticsearch sehingga kemudian bisa dioleh oleh aplikasi buatan sendiri untuk menampilkan data hasil mass public scan dengan target negara Tanzania terhadap vulnerability jenis Eternalblue.
Vulnerability Scan [OpenVAS]
OpenVAS dapat digunakan juga untuk hal serupa terutama ketika list IP address telah ditemukan. Kita dapat menambahkan “Configuration -> Scan Configs” sehingga didapatkan seperti berikut ini.

OpenVAS mendefinisikan script untuk testing vulnerability dengan terminologi NVTs (Network Vulnerability Tests) dimana didalamnya terdapat beragam script yang mendeskripsikan bagaimana suatu vulnerability di test. Dalam hal Eternalblue, kita bisa cari dari kamus data NVTs pada menu SecInfo -> NVTs dan search kata ‘Eternalblue’. Dalam NVTs OpenVAS dikenal sebagai “Double Pulsar Infection” (Family:Windows : Microsoft Bulletins)


Dalam Qualys hal yang sama juga digunakan dan dikenal dengan sebutan Scan Profile. Pada prinsipnya sama saja, Scan Profile tersebut digunakan untuk mendefinisikan metodologi / script untuk scanning vulnerability tertentu secara spesifik.
Dalam case OpenVAS, kita dapat membuat profile Scan Config dan mengambil salah satu NVTs (Eternalblue), untuk kemudian di assign pada task dengan menggunakan list IP address hasil keluaran dari Masscan tadi.



Proses diatas yang akan di otomasi oleh aplikasi Vulnerability Management System. Ada banyak sekali scan profile yang bisa dimasukan selain Eternalblue, dan sifatnya harus dapat di kustomisasi dengan mudah karena vulnerability akan selalu berkembang kedepannya sehingga kita perlu mekanisme untuk menentukan profile tersebut.
Jika kembali pada business model, pendefinisikan profile diatas bisa dimasuskan dalam modul yang bisa dijual dalam rentang lisensi, misalnya, sehingga dalam masa lisensi produk client akan terus mendapatkan update dimana modul untuk melakukan scan config diatas.
Meskipun contohnya adalah untuk use case BSSN dengan target negara seperti Indonesia namun pada prakteknya proses scanning berskala besar akan tetap dibutuhkan oleh berbagai pihak. Ambil contoh pada sektor finansial seperti Bank dimana network internal mereka terdapat ratusan ribu aset termasuk didalamnya seperti mesin-mesin ATM yang perlu di audit terhadap vulnerability tertentu sehingga fitur mass-public scan mutlak dibutuhkan kedepannya.
Apalagi jika kita berbicara tentang IoT dimasa depan dimana Sapi saja dipasang perangkat IoT.
Jumlah asset yang perlu di audit tentu akan semakin membludak. Oleh sebab itulah dibutukan mass-public scanner yang mumpuni agar bisa segera diketahui aset-aset mana saja yang vulnerable dan perlu segera di-patch.
