Bài 4: Intrusion Prevention System (IPS) = IDS + Firewall

IPFire được tích hợp sẵn với Snort để bổ sung chức năng IDS cho tường lửa. Để truy nhập đến chức năng cấu hình cho IDS này, sử dụng menu Services/Instrusion Detection. Trang cấu hình này cho phép thiết lập một số thông tin cơ bản của Snort như là kết nối mạng mà Snort sẽ giám sát (có thể chọn 1 hoặc nhiều kết nối), hoặc cho phép download các tập luật cảnh báo mới nhất (Snort rules update) để cập nhật vào thành phần IDS của Firewall.

Bên cạnh chức năng Snort IDS của IPFire, Guardian là một thành phần Addon của IPFire, cho phép tự động ngăn chặn các cuộc tấn công mạng ngay khi Snort phát hiện ra. Như vậy, Snort kết hợp với Guardian sẽ biến IPFire trở thành một hệ thống chống xâm nhật (IPS). Tư tưởng của Guardian là đặt ngưỡng cảnh báo số lần Snort phát hiện tấn công (Strike Threshold, mặc định là 3) từ một địa chỉ IP nào đó và khi một trạm tấn công đạt đến ngưỡng này, IP của trạm tấn công sẽ bị IPFire tự động đưa vào danh sách khóa (block) trong một khoảng thời gian (mặc định là 86400 giây, tức là 24h). Các thông số này có thể được thiết lập lại trong trang cấu hình Guardian. Các bước thực hiện như sau:

  • Bước 1: Cập nhật phiên bản mới cho IPFire và cài đặt Addon Guardian.
  • Bước 2: Lựa chọn luật (rule) và kích hoạt IDS.
  • Bước 3: Thiết lập ngưỡng cảnh báo và kích hoạt IPS.

Bước 1: Cập nhật phiên bản mới cho IPFire và cài đặt Addon Guardian

Một số phiên bản IPFire cũ gặp vấn đề hiển thị khi cài đặt thêm thành phần Addon Guardian. Cần thực hiện cập nhật phiên bản mới nhất cho IPFire bằng công cụ Pakfire (menu IPFire/Pakfire). Kiểm tra kết nối Internet thông suốt, hệ thống sẽ thông báo có phiên bản mới hơn so với phiên bản đang dùng hay không (trong ví dụ bên dưới, phiên bản IPFire đang dùng là Core-Update-Level:103, phiên bản mới nhất là Core-Update-Level:105). Thực hiện cập nhật và khởi động lại IPFire.



Sau khi cập nhật và khởi động lại IPFire, kiểm tra phiên bản đã cập nhật là Core-Update-Level:105 và không có phiên bản nào mới hơn. Bước tiếp theo là cài đặt thành phần Addon Guardian vào IPFire với công cụ Pakfire. Trong ví dụ bên dưới, phiên bản Guardian được tìm thấy và có thể cài đặt là guardian-2.0-10.



Khi chọn cài đặt thành phần Addon Guardian, một số thư viện cần thiết cũng được tự động cài đặt cùng, bao gồm perl-Net-IP, perl-common-senseperl-inotify2.



Sau khi thành phần Addon Guardian được cài đặt vào IPFire, menu Services xuất hiện thêm thành phần Guardian để cho phép thiết lập các thông số cấu hình:


Bước 2: Lựa chọn luật (rule) và kích hoạt IDS

Như đã môt tả bên trên, có thể vào menu Services/Instrusion Detection để tải các luật giúp Snort phát hiện tấn công. Giả sử ta cần một hệ thống chống tấn công quét cổng, tập luật Snort hỗ trợ phát hiện tấn công quét cổng có tên emerging-scan.rules nằm trong bộ luật Snort/VRT GPLv2 Community Rules. Vào trang Services/Instrusion Detection, chọn Snort rules updateSnort/VRT GPLv2 Community Rules và click “Download new ruleset” để tải bộ luật này về. Sau khi tải xong, danh sách các luật được hiển thị trong phần “instrusion detection system rules”, tìm đến tập luật emerging-scan.rules và click vào luật này để xem chi tiết các luật. Click chọn áp dụng tập luật emerging-scan.rules và click “Update” để lưu lại cấu hình cho Snort.



Sau khi tập luật emerging-scan.rules đã được lựa chọn kích hoạt, sử dụng nmap trên một trạm nào đó và thực hiện tấn công dò xét các cổng của máy IPFire:

[root@C2 ~]# nmap -v -A 192.168.1.3

Starting Nmap 5.51 ( http://nmap.org ) at 2016-10-25 00:07 ICT
NSE: Loaded 57 scripts for scanning.
Initiating ARP Ping Scan at 00:07
Scanning 192.168.1.3 [1 port]
. . .

Các hành động tấn công quét cổng này sẽ bị Snort phát hiện và hiển thị cảnh báo trong file alert:

[root@ipfire ~]# tail -f /var/log/snort/alert
[**] [1:2002910:5] ET SCAN Potential VNC Scan 5800-5820 [**]
[Classification: Attempted Information Leak] [Priority: 2]
10/25-00:27:10.707470 192.168.1.15:48717 -> 192.168.1.3:5802
TCP TTL:46 TOS:0x0 ID:17553 IpLen:20 DgmLen:44
******S* Seq: 0xE9A32109  Ack: 0x0  Win: 0xC00  TcpLen: 24
TCP Options (1) => MSS: 1460
[Xref => http://doc.emergingthreats.net/2002910]

[**] [1:2002911:5] ET SCAN Potential VNC Scan 5900-5920 [**]
[Classification: Attempted Information Leak] [Priority: 2]
10/25-00:27:10.859326 192.168.1.15:48717 -> 192.168.1.3:5903
TCP TTL:55 TOS:0x0 ID:21634 IpLen:20 DgmLen:44
******S* Seq: 0xE9A32109  Ack: 0x0  Win: 0x1000  TcpLen: 24
TCP Options (1) => MSS: 1460
[Xref => http://doc.emergingthreats.net/2002911]

[**] [1:2001219:19] ET SCAN Potential SSH Scan [**]
[Classification: Attempted Information Leak] [Priority: 2]
10/25-00:27:30.308375 192.168.1.15:48866 -> 192.168.1.3:22
TCP TTL:41 TOS:0x0 ID:39400 IpLen:20 DgmLen:60
******S* Seq: 0x87730F4F  Ack: 0x9E743CCD  Win: 0x3F  TcpLen: 40
TCP Options (5) => MSS: 1400 WS: 0 SackOK TS: 4294967295 0 EOL
[Xref => http://doc.emergingthreats.net/2001219][Xref => http://en.wikipedia.org/wiki/Brute_force_attack]

[**] [1:2018489:3] ET SCAN NMAP OS Detection Probe [**]
[Classification: Attempted Information Leak] [Priority: 2]
10/25-00:27:30.789909 192.168.1.15:48719 -> 192.168.1.3:34005
UDP TTL:63 TOS:0x0 ID:4162 IpLen:20 DgmLen:328
Len: 300

Cảnh báo này cũng có thể được xem trong mục IDS Logs (menu Log/IDS Logs):


Bước 3: Thiết lập ngưỡng cảnh báo và kích hoạt IPS

Sau khi hệ thống IDS của IPFire đã phát hiện được các hành động tấn công quét cổng, bước cuối cùng là tự động ngăn chặn các cuộc tấn công này. Vào menu Services/Guardian để thiết lập các thông số cần thiết (có thể để tất cả các thông số theo giá trị mặc định) và kích hoạt modul Guardian (chọn checkbox Enable Guardian và click “Save”). Sau khi modul Guardian được kích hoạt thành công, trạng thái của nó sẽ được hiển thị trong phần Guardian Service: Deamon là RUNNING cùng với PID của nó:



Sử dụng nmap trên một trạm có địa chỉ 192.168.1.15 và quét cổng trên máy IPFire:

[root@C2 ~]# nmap -v -A 192.168.1.3

Starting Nmap 5.51 ( http://nmap.org ) at 2016-10-25 00:07 ICT
NSE: Loaded 57 scripts for scanning.
Initiating ARP Ping Scan at 00:07
Scanning 192.168.1.3 [1 port]
. . .

Kiểm tra các thông tin log trên IPFire sẽ thấy khi cuộc tấn công quét cổng đạt đến ngưỡng giới hạn đã thiết lập (3), Guardian tự động block địa chỉ IP của máy đang thực hiện tấn công với thời gian là 86400 giây:



Trang Guardian (menu Services/Guardian) cho thấy danh sách Curently blocked hosts chứa địa chỉ IP của máy vừa thực hiện tấn công quét cổng:



Mọi hành động truy nhập đến máy IPFire từ địa chỉ này đều bị ngăn chặn, ví dụ lệnh ping:

[root@C2 ~]# ping 192.168.1.3
PING 192.168.1.3 (192.168.1.3) 56(84) bytes of data.
^C
--- 192.168.1.3 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 2531ms

Quá trình block địa chỉ IP này sẽ kéo dài 24h hoặc cho đến khi người quản trị hủy bỏ địa chỉ IP này trong danh sách blocked hosts.