Log HTTP baik itu dari server web Anda atau sumber lain harus menjadi area di mana fokus besar ditempatkan. Kami melakukan banyak komunikasi online dan dengan terus mendorong ke cloud, pemantauan lalu lintas ini akan menjadi lebih penting. Jelas ada tantangan yang datang dengan ini juga. Ada dorongan yang lebih besar untuk memastikan lebih banyak privasi di internet dan dengan demikian mungkin ada lebih banyak lalu lintas HTTPS (HTTP terenkripsi) sekarang online daripada HTTP (tidak terenkripsi). Bahkan ada browser yang mulai menandai situs HTTP sebagai tidak aman. Jadi ada tantangan menarik di depan dengan pemantauan lalu lintas jaringan. Namun, sementara kita masih memiliki visibilitas ke dalam log ini, mari kita manfaatkan sebaik-baiknya.
Sama halnya dengan log koneksi (conn.log), kita perlu memahami struktur file http.log. Sekali lagi, mari manfaatkan “bro-cut”
[email protected]:/opt/bro/logs/current# bro-cut -C < http.log | head --lines=10 --verbose #fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p trans_depth method host uri referrer version user_agent request_body_len response_body_len status_code status_msg info_code info_msg tags username password proxied orig_fuids orig_filenames orig_mime_types resp_fuids resp_filenames resp_mime_types #types time string addr port addr port count string string string string string string count count count string count stringset[enum] string string set[string] vector[string] vector[string] vector[string] vector[string] vector[string] vector[string] 1541354421.339883 CvkNpf1KBPCrkB72k1 192.168.0.22 52512 134.19.176.32 80 1 GET s2.startv.biz /stalker_portal/server/load.php?type=watchdog&action=get_events&cur_play_type=0&event_active_id=0&init=0&JsHttpRequest=1-xml& - 1.1 Mozilla/5.0 (QtEmbedded; U; Linux; C) AppleWebKit/533.3 (KHTML, like Gecko) MAG200 stbapp ver: 2 rev: 250 Safari/533.3 0 164 200 OK - - (empty) - - - -- - FAO2AESJgAeFeJRHl - text/json 1541354421.319882 CbqzWP1bslQsNBC8qe 192.168.0.22 55654 134.19.176.32 80 2 GET s2.startv.biz /stalker_portal/server/load.php?type=watchdog&action=get_events&cur_play_type=0&event_active_id=0&init=0&JsHttpRequest=1-xml& - - Mozilla/5.0 (QtEmbedded; U; Linux; C) AppleWebKit/533.3 (KHTML, like Gecko) MAG200 stbapp ver: 2 rev: 250 Safari/533.3 0 0 - - - - (empty) - - - -- - - - -
Sekarang setelah kita memiliki strukturnya, pencarian berikut dapat digunakan untuk mengekstrak bidang tersebut di Splunk.
index=_* OR index=* sourcetype=Bro-Security-Monitoring source="/opt/bro/logs/current/http.log" NOT "#fields" | rex field=_raw "(?<ts>.*?t)(?<uid>.*?t)(?<orig_h>.*?t)(?<orig_p>.*?t)(?<resp_h>.*?t)(?<resp_p>.*?t)(?<trans_depesponse_body_len>.*?t)(?<status_code>.*?t)(?<status_msg>.*?t)(?<info_code>.*?t)(?<info_msg>.*?t)(?<tags>.*?t)(?<u_fuids>.*?t)(?<resp_filenames>.*?t)(?<resp_mime_types>.*?t)" | stats count by ts,uid,orig_h,orig_p,resp_h,resp_p,trans_depesponse_body_len,status_code,status_msg,info_code,info_msg,tags,u_fuids,resp_filenames,resp_mime_types
Output di bawah ini mewakili snapshot dari semua bidang yang diekstraksi.
Sekali lagi, setelah semua bidang telah diekstraksi, kami berada dalam posisi untuk mendapatkan statistik di setiap bidang. Saya selalu sangat percaya dalam melacak agen pengguna, mereka memberikan wawasan tentang alat dan aplikasi yang terlihat di lingkungan Anda. Filter pencarian ini memungkinkan Anda melacak agen pengguna tersebut dan IP yang terkait dengan aplikasi yang digunakannya.
index=_* OR index=* sourcetype=Bro-Security-Monitoring source="/opt/bro/logs/current/http.log" NOT "#fields" | rex field=_raw "(?<ts>.*?t)(?<uid>.*?t)(?<orig_h>.*?t)(?<orig_p>.*?t)(?<resp_h>.*?t)(?<resp_p>.*?t)(?<trans_depesponse_body_len>.*?t)(?<status_code>.*?t)(?<status_msg>.*?t)(?<info_code>.*?t)(?<info_msg>.*?t)(?<tags>.*?t)(?<u_fuids>.*?t)(?<resp_filenames>.*?t)(?<resp_mime_types>.*?t)" | stats count by orig_h,u_fuids | dedup orig_h,u_fuids | sort -count
Filter pencarian di atas menghasilkan:
Mari kita selesaikan ini dengan melihat agen pengguna “langka” atau lebih baik lagi unik. Agen pengguna unik ini dapat membantu Anda mendeteksi lebih cepat tanda-tanda kemungkinan kompromi. Jika bukan kompromi, ini dapat membantu Anda mengenali kapan alat digunakan untuk melawan lingkungan Anda. Filter berikut akan membantu Anda mengidentifikasi agen pengguna unik.
index=_* OR index=* sourcetype=Bro-Security-Monitoring source="/opt/bro/logs/current/http.log" NOT("microsoft.com" OR "dell.com" OR "adobe.com" OR "splunk.com" OR "firefox.com" OR "portableapps.com" OR "stariptv" OR "blogspot" OR "comodo.com" OR "WINDOWS.COM") | rex field=_raw "(?<ts>.*?t)(?<uid>.*?t)(?<orig_h>.*?t)(?<orig_p>.*?t)(?<resp_h>.*?t)(?<resp_p>.*?t)(?<trans_depesponse_body_len>.*?t)(?<status_code>.*?t)(?<status_msg>.*?t)(?<info_code>.*?t)(?<info_msg>.*?t)(?<tags>.*?t)(?<u_fuids>.*?t)(?<resp_filenames>.*?t)(?<resp_mime_types>.*?t)" | stats count by status_msg | sort -count | rare limit=50 status_msg
Perhatikan bahwa filter ini memasukkan daftar putih beberapa nilai seperti apa pun yang berkaitan dengan “microsoft.com”, “dell.com”, dll. Pencarian kemudian dibuat.
Nah itu saja untuk postingan kali ini. Sekali lagi, pertama-tama kami mengekstrak semua bidang. Sebagai hasil dari ekstraksi itu, kami sekarang dapat menggunakan bidang mana pun yang kami inginkan.
Sampai jumpa di posting berikutnya di mana kita melihat log DNS.
Referensi:
https://security.googleblog.com/2018/02/a-secure-web-is-here-to-stay.html
https://blog.chromium.org/2017/04/next-steps-toward-more-connection.html
Postingan dalam seri ini:
Memvisualisasikan data Zeek (Bro) Anda dengan Splunk – Pengaturan
Memvisualisasikan data Zeek (Bro) Anda dengan Splunk – conn.log (log koneksi)
Memvisualisasikan data Zeek (Bro) Anda dengan Splunk – http.log (log http)
Memvisualisasikan data Zeek (Bro) Anda dengan Splunk – dns.log (log koneksi)
Memvisualisasikan data Zeek (Bro) Anda dengan Splunk – x509.log (log koneksi)