Lindungi Router Mikrotik dari Ransomware

Pagi ini ada router salah satu ISP anggota APJII yang diberitakan diretas hacker sehingga tidak dapat di akses lagi dan identity dirubah menjadi “DONE”

berikutnya dari file backup configurasinya terdapat pesan My Telegram http://t.me/router_os dan rekening BTC dari hacker nya, konon katanya sang korban diminta untuk mentransfer sejumlah BitCoin, jadi ini semacam Ransom ware yang menargetkan router mikrotik yang kurang baik firewallnya.

Jika ada route Mikrotik yang mengalami seperti itu infonya routerboard sudah tidak dapat di netinstall dan akan mati sendiri seperti barang rusak, di sarankan untuk di shutdown karena di sinyalir bisa menyebar ke router lainnya di dalam jaringan yang sama.

Sebelum terlambat backup konfigurasi router mikrotik secara berkala bisa menggunakan scheduler script untuk membackup ke email , contohnya sbb:

/system script
add dont-require-permissions=yes name=backup2email source=":\
    log info \"Starting Backup Script...\"\r\
    \n:global backupfile ([/system identity get name] . \".backup\")\r\
    \n:if ([/file find name=\$backupfile] != \"\") do={/file rem \$backu\
    pfile}\r\
    \n:delay 2s\r\
    \n/system backup save name=\$backupfile\r\
    \n:log info \"Waiting 7s for backup to complete...\"\r\
    \n:delay 7s\r\
    \n:log info \"Backup being emailed...\"\r\
    \n/tool e-mail send to=\"backup@ispku.net.id\" subject=([/system ide\
    ntity get name] . \" Backup\") from=ebackup@ispku.net.id user=\"back\
    up@ispku.net.id\" password=\"passwordd\" file=\$backupfile server=sm\
    tp.ispku.net.id\r\
    \n:log info \"Finished Backup Script!\""
/system scheduler
add interval=1d name=backup2mail on-event=ebackup start-date=\
    mar/04/2019 start-time=01:00:00

ganti domain @ispku.net.id dengan domain isp atau perusahaan anda, ganti passwordd dengan password email anda yang digunakan untuk mengirim email, ganti smtp.ispku.net.id dengan smtp isp atau perusahaan anda.

Berikutnya untuk melindungi router mikrotik supaya tidak dapat diakses dari hacker tahapannya adalah sbb:

  1. Rubah port standar winbox dari 8291 menjadi port lainnya, ingat jangan gunakan port 0 sd 1024 karena port tersebut sudah digunakan oleh service/layanan yang sudah di definisikan secara baku, pakailah port di atas 1024 misalnya menjadi 18291 jangan gunakan port diatas 65535 https://en.wikipedia.org/wiki/Port_(computer_networking)
  2. Grouping interface ke dalam interface-list untuk memudahkan/menyederhanakan rule firewall yang akan kita buat.
  3. Buat address-list untuk grouping ip address dan network address
  4. Terakhir Drop-ALL chain input pada bagian paling bawah

Rubah Port Standar Winbox dengan cara klik ip->services lalu rubah port winbox dan isi Available from dengan prefix/network atau ip host yang diizinkan untuk mengakses Winbox dari jaringan anda.

Disable port services yang tidak digunakan

Buat grouping interface list, dalam script berikut saya buat interface list = upstream dengan member interface=vlan837 dan vlan650 untuk list=upstream, kita bisa masukan beberapa interface ke sebuah list interface, interface yang bisa di add ke list bisa ethernet/interface fisik dan sebuah vlan, dalam contoh ini saya punya dua upstream yaitu vlan837 dan vlan650

/interface list
add comment="interface upstream" name=upstream
/interface list member
add interface=vlan837 list=upstream
add interface=vlan650 list=upstream

Buat grouping Ip address dan atau network address ournetwork=semua ip atau prefix jaringan isp/perusahaan yang boleh akses mikrotik, ptp-upstream=semua ip ptp ke upstream (ip bgp peer)

/ip firewall address-list
add address=202.61.yy.0/23 list=ournetwork
add address=202.61.yyy.0/23 list=ournetwork
add address=103.87.yyy.xxx/30 comment=fiberstar list=ptp-upstream
add address=43.240.yyy.xxx/30 comment=multidata list=ptp-upstream
add address=182.50.yyy.xxx comment="utk peer ke cymru" list=ptp-upstream
add address=8.8.8.8 list=ptp-upstream
add address=38.229.y.xx comment="cymru session1" list=ptp-upstream
add address=38.229.yy.xx comment="cymru session2" list=ptp-upstream

berikutnya interface-list dan address-list saya aplikasikan ke ip->firewall->filter

/ip firewall filter
add action=add-src-to-address-list address-list="port scanners" \
    address-list-timeout=2w chain=input comment="PORT SCANER" protocol=tcp \
    psd=21,3s,3,1
add action=add-src-to-address-list address-list="port scanners" \
    address-list-timeout=2w chain=input comment="NMAP FIN Stealth scan" \
    protocol=tcp tcp-flags=fin,!syn,!rst,!psh,!ack,!urg
add action=add-src-to-address-list address-list="port scanners" \
    address-list-timeout=2w chain=input comment="SYN/FIN scan" protocol=tcp \
    tcp-flags=fin,syn
add action=add-src-to-address-list address-list="port scanners" \
    address-list-timeout=2w chain=input comment="SYN/RST scan" protocol=tcp \
    tcp-flags=syn,rst
add action=add-src-to-address-list address-list="port scanners" \
    address-list-timeout=2w chain=input comment="FIN/PSH/URG scan" \
    protocol=tcp tcp-flags=fin,psh,urg,!syn,!rst,!ack
add action=add-src-to-address-list address-list="port scanners" \
    address-list-timeout=2w chain=input comment="ALL/ALL scan" protocol=tcp \
    tcp-flags=fin,syn,rst,psh,ack,urg
add action=accept chain=output comment="FTP BLAACKLIST" content=\
    "530 Login incorrect" dst-limit=1/1m,9,dst-address/1m protocol=tcp
add action=add-dst-to-address-list address-list=ftp_blacklist \
    address-list-timeout=3h chain=output content="530 Login incorrect" \
    protocol=tcp
add action=add-src-to-address-list address-list=ssh_blacklist \
    address-list-timeout=1w3d chain=input comment="SSH BLACKLIST" \
    connection-state=new dst-port=22 protocol=tcp src-address-list=\
    ssh_stage3
add action=add-src-to-address-list address-list=ssh_stage3 \
    address-list-timeout=1m chain=input connection-state=new dst-port=22 \
    protocol=tcp src-address-list=ssh_stage2
add action=add-src-to-address-list address-list=ssh_stage2 \
    address-list-timeout=1m chain=input connection-state=new dst-port=22 \
    protocol=tcp src-address-list=ssh_stage1
add action=add-src-to-address-list address-list=ssh_stage1 \
    address-list-timeout=1m chain=input connection-state=new dst-port=22 \
    protocol=tcp
add action=accept chain=input comment="ACCEPT BGP DARI UPSTREAM" \
    in-interface-list=upstream log-prefix="bgp  : " protocol=tcp \
    src-address-list=ptp-upstream
add action=accept chain=input comment="ACCEPT BGP DARI UPSTREAM" \
    dst-address-list=ptp-upstream in-interface-list=upstream log-prefix=\
    "bgp  : " protocol=tcp
add action=accept chain=input comment="ACCEPT ICMP" log-prefix="icmp  : " \
    protocol=icmp src-address-list=ournetwork
add action=accept chain=input comment="ACCEPT ICMP" log-prefix="icmp  : " \
    protocol=icmp src-address-list=ptp-upstream
add action=accept chain=input comment="ACCEPT ALL DARI ROUTER DISTRIBUSI" \
    in-interface-list=!upstream log-prefix="not upstream : " \
    src-address-list=ournetwork
add action=accept chain=input comment="ACCEPT ALL DARI ROUTER DISTRIBUSI" \
    dst-address-list=ournetwork in-interface-list=!upstream log-prefix=\
    "not upstream : "
add action=drop chain=input comment=\
    "DROP ALL, kalau mau bisa di remote dari luar disable DROP ALL" \
    log-prefix="input drop : "
add action=add-src-to-address-list address-list=winbox-exploit \
    address-list-timeout=5m chain=forward comment="WINBOX EXPLOIT" \
    dst-port=8291 in-interface-list=upstream log-prefix="WINBOX EXPLOIT : " \
    protocol=tcp
add action=add-src-to-address-list address-list=proxy-socks-exploit \
    address-list-timeout=5m chain=forward comment="PROXY SOCKS EXPLOIT" \
    dst-port=8000,3128,1080,4145 in-interface-list=upstream log-prefix=\
    "PROXY SOCKS EXPLOIT : " protocol=tcp

dari script firewall diatas maka yang boleh akses Mikrotik RouterOS hanya dari address-list=ournetwork dan ptp-upstream sedangkan akses dari interface distribusi atau “!upstream” = bukan upstream di ALLOW. dan koneksi BGP via TCP di ALLOW dari dan ke interface “upstream”

Saya juga menangkap dan DROP semua traffic ke dst-port=8000,3128,1080,4145 yang masuk via interface upstream menuju ke jaringan distribusi yang dikawatirkan digunakan hacker untuk menyerang Mikrotik RouterOS distribusi dan pelanggan di melalui ip->firewall->raw

/ip firewall raw
add action=drop chain=prerouting comment="DROP ACTIVE DIRECTORY" dst-port=\
    445 log-prefix="drop 445 : " protocol=tcp
add action=drop chain=prerouting comment="DROP TCPMUX" dst-port=1 \
    log-prefix="drop 445 : " protocol=tcp
add action=drop chain=prerouting comment="SSH BLACKLIST" in-interface-list=\
    upstream src-address-list=ssh_blacklist
add action=drop chain=prerouting comment="DROP WINBOX" dst-port=8291 \
    in-interface-list=upstream log-prefix="DROP WINBOX EXPLOIT : " \
    protocol=tcp src-address-list=winbox-exploit
add action=drop chain=prerouting comment="DROP PORT SCANNER" \
    in-interface-list=upstream log-prefix="DROP PORT SCANER : " \
    src-address-list="port scanners"
add action=drop chain=prerouting comment="DROP PROXY SOCKS" \
    in-interface-list=upstream log-prefix="DROP PROXY SOCKS : " \
    src-address-list=proxy-socks-exploit
add action=drop chain=prerouting comment="DROP NETBIOS" dst-port=137-139 \
    log-prefix="drop 445 : " protocol=tcp
add action=drop chain=prerouting comment="DROP NETBIOS" dst-port=137-139 \
    log-prefix="drop 445 : " protocol=udp

terakhir DROP ALL dibagian paling bawa chain input, artinya selain yang di ALLOW diatas semuanya di DROP, maka mikrotik RouterOS ini tidak dapat diakses selain dari dalam jaringan yang di allow, hasilnya Mikrotik RouterOS lebih aman dari tangan jahil

Materi keamanan Mikrotik RouterOS dibahas lebih detail pada kelas MikroTik Certified Security Engineer MTCSE