
Terpikir oleh saya untuk membuat pada router Cisco beberapa kemiripan dari paket fail2ban yang terkenal, hanya menggunakan router itu sendiri.
Ini berfungsi seperti ini. Aturan perangkap dibuat dalam daftar akses yang dilampirkan ke antarmuka router Internet perbatasan. Ketika aturan dipicu, suatu peristiwa dicatat. Setiap baris acara semacam itu mengandung label khusus untuk membuatnya lebih mudah untuk dipilih. Log dianalisis, dan semua alamat IP yang jatuh ke dalam perangkap dimasukkan ke dalam grup objek khusus. Grup ini dapat digunakan dalam daftar akses yang sama untuk melarang akses bagi penyerang ke semua alamat IP dan port jaringan kami.
Untuk memahami artikel ini, Anda perlu tahu apa itu daftar akses dan untuk apa mereka, dan juga untuk mengetahui cara menggunakan objek-grup dalam daftar akses.
Akses Daftar Perangkap
Sebagai contoh, kami menulis aturan untuk daftar akses masuk, di mana semua upaya untuk masuk ke port telnet perangkat kami dari jatuhnya Internet. Harap perhatikan bahwa di akhir aturan, label unik "HONEYPOT001" ditempelkan. Kemudian kita akan mencarinya di log.
ip access-list extended acl-WAN-In … deny tcp any any eq telnet log HONEYPOT001 …
Penting untuk memilih kriteria perangkap yang tepat.
Upaya untuk terhubung dari luar melalui port 23 (telnet) mungkin yang paling umum. Dalam hal ini, grup objek akan secara instan diisi dengan alamat IP bot dari seluruh Internet, dan memori yang dialokasikan untuk daftar akses hanya akan berakhir.
Anda dapat menangkap upaya untuk terhubung ke peralatan Anda pada port 22 (ssh). Mereka adalah urutan besarnya kurang dari telnet. Anda dapat menangkap upaya untuk mengakses salah satu perangkat Anda.
Sejumlah besar bot merangkak di port 7547, mencoba terhubung menggunakan protokol Manajemen CPE WAN.
Opsi lain adalah menangkap upaya untuk menggunakan Smart Install Client yang diaktifkan pada port 4786.
Anda juga dapat mengatur jebakan pada port 80 dengan memilih alamat IP di mana Anda tidak memiliki server web. Hal utama di sini adalah bahwa robot mesin pencari tidak jatuh ke dalamnya.
Berikut adalah contoh jebakan pada alamat IP [192.0.2.10].
ip access-list extended acl-WAN-In … deny tcp any host 192.0.2.10 eq www log HONEYPOT002 …
Analisis Log
Logging di router, tentu saja, harus dinyalakan terlebih dahulu, maka sesuatu seperti ini masuk ke dalam log:
225435: Jan 11 08:57:13.838: %SEC-6-IPACCESSLOGP: list acl-WAN-In denied tcp 123.199.32.7(59472) -> 192.0.2.9(23), 1 packet [HONEYPOT001]
Kami melihat bahwa upaya telah dilakukan untuk mengakses port 23 dari alamat IP kami [192.0.2.9] dari alamat IP eksternal [123.199.32.7]. Label "HONEYPOT001" di baris juga ada. Ngomong-ngomong, [123.199.32.7] adalah penyerang nyata yang tertangkap saat menulis artikel.
Untuk mengurai log, kita akan menggunakan Embedded Event Manager (EEM), otomatisasi tugas dan alat penyetelan perilaku perangkat lunak yang dibangun ke dalam Cisco IOS.
Dalam mode konfigurasi router, buat applet yang menganalisis log dan, ketika label "HONEYPOT001" berada di baris log, memotong alamat IP penyerang dan menambahkan alamat ini ke grup objek host Daftar Hitam.
event manager applet honeypot event syslog occurs 1 pattern "HONEYPOT001" action 100 regexp "([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)" "$_syslog_msg" result IP_address action 200 if $_regexp_result eq "1" action 210 cli command "enable" action 220 cli command "conf t" action 230 cli command "object-group network hosts-BlackList" action 240 cli command "h $IP_address" action 250 cli command "end" action 260 syslog msg "IP address $IP_address added to blacklist" action 270 end action 300 cli command "exit"
- ketika baris berikutnya ditemukan di log dengan label "HONEYPOT001", suatu peristiwa terjadi;
- dalam event handler, dari baris log sesuai dengan pola "([0-9] + \. [0-9] + \. [0-9] + \. [0-9] +)" alamat IP penyerang dipotong dan ditugaskan variabel IP_address (tindakan 100);
- jika alamat berhasil dipotong, dan tidak ada masalah dengan penguraian garis terjadi (tindakan 200), maka perintah konsol dijalankan yang menambahkan alamat IP ke grup objek (tindakan 210 - 250);
- sebuah entri dibuat dalam log tentang pemicu jebakan (aksi 260).
Pemblokiran akses
Hal pertama yang terlintas dalam pikiran adalah menggunakan grup objek untuk sepenuhnya memblokir penyerang ke semua sumber daya jaringan kami.
Aturan pemblokiran harus ada dalam daftar akses di atas aturan dengan trap sehingga alamat IP yang terlarang tidak jatuh ke dalam perangkap lagi dan lagi.
ip access-list extended acl-WAN-In … deny ip object-group hosts-BlackList any … deny tcp any any eq telnet log HONEYPOT001 …
Amnesti
Cepat atau lambat, grup objek akan melebihi semua ukuran yang dapat diterima, jadi Anda harus membuat amnesti dengan menghapus alamat IP lama darinya. Untuk melakukan ini, kami menulis applet yang akan melakukan ini, misalnya, seminggu sekali pada tengah malam pada hari Minggu.
Dalam perjalanan menulis, kita akan menemui dua perangkap.
Anda tidak dapat menghapus grup objek yang digunakan dalam daftar akses. Oleh karena itu, pertama-tama Anda perlu mengetahui nomor baris daftar akses di mana grup tersebut digunakan. Dalam contoh kami, ini adalah baris 60. Kami akan menggunakan nomor ini untuk menghapus baris dengan grup dari daftar akses, dan kemudian mengembalikannya kembali ke tempat asalnya.
Anda tidak dapat membuat grup objek kosong. Karenanya, segera saat membuat grup, kami akan menambahkan alamat IP [255.255.255.255] ke dalamnya. Alamat ini tidak pernah diteruskan oleh router yang menghubungkan jaringan lokal ke jaringan lain, jadi kami tidak mengharapkan koneksi darinya.
event manager applet DeleteBlackList event timer cron name timer-cron1 cron-entry "@weekly" action 100 cli command "enable" action 200 cli command "conf t" action 210 cli command "ip access-list ext acl-WAN-In" action 215 cli command "no 60" action 220 cli command "exit" action 225 cli command "no object-group net hosts-BlackList" action 230 cli command "object-group net hosts-BlackList " action 240 cli command "host 255.255.255.255" action 245 cli command "exit" action 250 cli command "ip access-list ext acl-WAN-In" action 255 cli command "60 deny ip object-group hosts-BlackList any" action 260 cli command "exit" action 265 cli command "end" action 300 syslog msg "Completed" action 400 cli command "exit"
- hapus aturan dengan grup objek dari daftar akses. (tindakan 210 - 220);
- hapus grup itu sendiri (tindakan 225);
- buat grup objek lagi, dan masukkan alamat IP broadcast ke dalamnya. (tindakan 230 - 245);
- kami mengembalikan aturan ke tempat lama di daftar akses. (tindakan 250 - 260).
Apa yang harus dilakukan jika tag daftar akses tidak didukung
Banyak iOS, meskipun fakta bahwa fungsi "Syslog Correlation ACL" dideklarasikan di dalamnya, tidak mengizinkan pemberian tag string daftar akses.
Dalam hal ini, Anda dapat menggunakan apa yang disebut nilai hash yang dihasilkan. (nilai hash yang dihasilkan perangkat) yang akan ditambahkan ke baris pesan log.
Jika iOS-tidak mendukung kedua opsi, maka Anda harus sedikit mempersulit analisis.
Kami memodifikasi aturan dengan jebakan dalam daftar akses. Alih-alih "log" kita akan menggunakan "log-input".
ip access-list extended acl-WAN-In … deny tcp any any eq telnet log-input …
Dalam hal ini, informasi tentang nama antarmuka fisik dan, mungkin, tentang alamat MAC dari router tetangga yang meneruskan paket juga akan sampai ke log.
Misalnya, pesan berikut sampai ke log:
Jan 11 00:20:23 172.25.100.43 2394768: Jan 10 20:20:22.808: %FMANFP-6-IPACCESSLOGP: SIP1: fman_fp_image: list acl-WAN-In denied tcp 123.199.32.7(7537) Port-channel1.88-> 192.0.2.9(23), 1 packet
Kemudian aturan untuk mengaktifkan acara mengambil bentuk berikut:
event syslog occurs 1 pattern "Port-channel1\.88-> 192\.0\.2\."
Apa yang harus dibaca
Tentang identifikasi aturan yang jelas yang menghasilkan pesan ke log:
ACL Syslog CorrelationTentang Manajer Acara Tertanam:
Panduan Konfigurasi Manajer Acara Tertanam