Melindungi Mikrotik dari Ransomware

Akhir akhir ini marak kejadian Router Mikrotik di Hack oleh orang-orang yang tidak bertanggung jawab dengan mengunci Boot Loader di Mikrotik Router tersebut sehingga tidak dapat dilakukan reset ataupun netinstall dan melakukan permintaan imbalan untuk membuka kunci Boot Loader Mikrotik tersebut. Hal ini kita sebutkan sebagai Ransomware.

Apa itu Ransomware? Ransomware adalah jenis perangkat lunak berbahaya yang dirancang untuk memblokir akses ke sistem komputer, router atau perangkat dalam sebuah jaringan dan bahkan sebuah file di komputer Anda hingga sejumlah uang dibayarkan. Dalam hal Router Mikrotik, pelaku mengunci Boot Loader Router yang terpengaruh, membuatnya tidak dapat diakses, dan meminta pembayaran tebusan untuk memulihkan akses perangkat tersebut.

Apakah Anda membutuhkan IP Publik untuk Mikrotik atau Server lokal Anda? Atau mungkin Anda mencari solusi Tunneling untuk mengganti nama ISP di Speedtest Anda. VPS Mikrotik CHR Murah dari Herza.ID adalah solusinya.

Nah, maka dari itu, mari kita menyimak beberapa tahapan yang dapat membantu Anda dalam melindungi Router Mikrotik Anda dari Ransomware.

Cara Melindungi Router Mikrotik dari Ransomware

Lakukan Daily Backup

Lakukan backup secara berkala atas konfigurasi router mikrotik Anda untuk menghindari lamanya downtime ketika Router Anda bermasalah. Dengan melakukan backup secara berkala, ketika Router Anda bermasalah, Anda dengan mudah dapat mengganti Router Anda dengan Router cadangan dengan mengimport file konfigurasi yang telah terbackup sebelumnya. Hal ini dapat kita lakukan menggunakan scheduler script untuk membackup ke email.

/system script
add dont-require-permissions=yes name=EmailBackup 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=\"[email protected]\" subject=([/system ide\
    ntity get name] . \" Backup\") [email protected] user=\"[email protected]\" password=\"passwordemailku\" file=\$backupfile server=smtp.emailku.com\r\
    \n:log info \"Finished Backup Script!\""
/system scheduler
add interval=1d name=EmailBackup on-event=ebackup start-date=\
    mar/04/2019 start-time=01:00:00

Jangan lupa untuk mengganti domain @emailku.com dengan domain ISP atau perusahaan anda, ganti passwordemailku dengan password email anda yang digunakan untuk mengirim email, ganti smtp.emailku.com dengan smtp ISP atau perusahaan anda.

Silahkan baca Panduan Dasar Mikrotik CLI (Command Line Interface), mungkin bermanfaat buat Anda.

Pengamanan Dasar Mikrotik

Selanjutnya, untuk mengamankan Router Mikrotik Anda, sangat disarankan bagi seluruh User Mikrotik untuk melakukan beberapa langkah dasar berikut untuk pengamanan di Router Anda.

Jangan Pernah Menggunakan Port Default Winbox

Selalu untuk merubah port standar winbox dari 8291 menjadi port lainnya, ingat jangan gunakan port 0 sd 1024 karena port tersebut sudah digunakan oleh 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)

Caranya, di RouterOS Anda klik IP > SERVICE kemudian akan muncul window IP SERVICE LIST seperti dibawah ini. Double Klik Winbox, kemudian ganti Port sesuai dengan yang Anda inginkan.

Kemudian, layanan-layanan yang Anda tidak butuhkan seperti API, FTP, SSH, Telnet, WWW jika tidak butuhkan sebaiknya di Non Aktifkan dengan cara memilih layanan tersebut kemudian mngklik tombok X pada window IP SERVICE LIST tersebut.

Grouping Interface ke Interface-List

Membuat grouping interface ke dalam interface-list untuk memudahkan dalam pembuatan rule firewall yang akan kita buat.

Pada script berikut saya membuat interface list dengan nama “Upstream” dengan memasukkan interface VLAN dengan nama OpenIXP, CDIX dan ether4 kedalam list Upstream tersebut. Kita bisa memasukan beberapa interface fisik ataupun VLAN ke sebuah list interface.

/interface list
add comment="Interface Upstream" name=Upstream
/interface list member
add interface=ether4 list=Upstream
add interface=OpenIXP list=Upstream
add interface=CDIX list=Upstream
Grouping IP Address sebagai ournetwork

Sekarang kita akan membuat grouping IP Address dan/atau Network Address “ournetwork” yang akan berisi seluruh prefix IP yang Anda gunakan serta IP PTP Upstream Anda.

/ip firewall address-list
add address=103.152.XXX.XXX/23 list=ournetwork
add address=192.168.XXX.XXX/24 list=ournetwork
add address=202.78.XXX.XXX/27 comment=DTP-IIX list=PTP-Upstream
add address=218.100.XXX.XXX/24 comment=OpenIXP list=PTP-Upstream
add address=103.30.XXX.XXX/23 comment=CDIX list=PTP-Upstream
add address=103.225.XXX.XXX/25 comment=CXC list=PTP-Upstream
Buat Firewall Rules & Raw untuk Mengamankan Router Anda

Setelah Interface List dan IP Address telah kita grouping, sekarang kita bisa dengan mudah menggunakan list tersebut kedalam Firewall Rules & Raw yang akan kita gunakan.

/ip firewall filter
add action=add-src-to-address-list address-list="Port_Scanner" \
    address-list-timeout=2w chain=input comment="PORT SCANNER" protocol=tcp \
    psd=21,3s,3,1
add action=add-src-to-address-list address-list="Port_Scanner" \
    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_Scanner" \
    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_Scanner" \
    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_Scanner" \
    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_Scanner" \
    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=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 rules diatas bisa kami jelaskan adalah mengenai akss yang dibolehkan ke Mikrotik RouterOS hanya dari address-list=ournetwork dan PTP-Upstream sedangkan akses dari interface distribusi atau “!Upstream” = bukan Upstream di ALLOW. Serta koneksi BGP via TCP di ALLOW dari dan ke interface “Upstream”

Sedangkan pada IP > FIREWALL > RAW, saya manDROP seluruh aktivitas yang telah ditangkap oleh Firewall Rules yang kami buat diatas seperti SSH BLACKLIST (Percobaan bruteforce ke SSH Router Mikrotik), DROP WINBOX (Seluruh Akses ke Port Winbox Default 8291 akan ditolak demi keamanan) dan juga DROP PORT SCANNER (Seluruh aktivitas Scanning akan diblok oleh Filter Raw ini. Disamping itu, saya juga menangkap dan DROP semua traffic ke yang mengarah ke 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

Penutup

Seluruh Firewall Rules dan Raw diatas adalah bukan bentuk baku yang harus Anda ikuti. Anda harus mengikuti sesuai dengan kebutuhan dan Topologi jaringan Anda. Kemungkinan ada beberapa Rules yang butuh adjustment ataupun revisi untuk disesuaikan dengan kebutuhan jaringan Anda.