Xây dựng hệ thống IDS Snort trên Linux dựa trên iptables

MỤC LỤC

Tiếp nhận gói tin

Khi chạy snort ở chế độ inline, vấn đề lúc này là không có thư viện nào tương đương với libpcap cho snort khi chạy ở Sniffer, Packages và Intrusion Detection mode.Tuy nhiên snort có thể tiếp nhận được gói tin trực tiếp từ iptables thay vì từ libpcap. Ngoài ra việc này còn làm cho việc kết nối trong mạng gặp vấn đề và giảm khả năng hoạt động của mạng, đồng thời làm cho preprocessors (frag3, stream4, stream5…)vì các preprocessor này hoạt động dựa trên thông tin thu thập từ nhiều gói tin khác có liên quan với nhau.

Giải mã gói tin

Khi gói tin bị drop snort sẽ không có đủ thong tin cần thiết để có thể phát hiện hành động tấn công mặc dù ở chế độ inline drop gói tin thì đồng nghĩa với việc hành động tấn công cũng bị drop theo. Sau khi decode cấu trỳc của một gúi tin sẽ được làm rừ, lỳc nào gúi tin chứ nhiều con trỏ khác nhau trỏ đến những phần khác nhau của gói tin, điều này cho phép snort có thể truy xuất nhanh đến những thành phần trong gói tin.

Preprocessor

Sau khi decode gói tin, thông tin về source và destination MAC được làm rừ và dựa vào thụng tin về lớp tiếp theo (ether_type) decoder tiếp theo sẽ được gọi. Preprocessor của snort đóng một vai trò rất quan trọng với nhiều chức năng khác nhau phát hiện các protocol không hợp lệ, phát hiện thông qua các số liệu thu thập được hoặc phát hiện trực tiếp mà không cần dựa vào rule.

Detection Engine

    Nếu người dùng cấu hình snort đưa ra nhiều cảnh báo trên cùng một gói tin thì lúc này snort sẽ tiến hành kiểm tra hết hàng đợi hoặc cho đến khi nó đưa ra hết số lượng cảnh báo tối đa cho phép. Khi người dùng cấu hình threshold đếm đến 3 cho một hành động login thất bại có nghĩa là, 3 lần đầu tiên cho hành động thất bại sẽ không đưa ra cảnh báo và sẽ cảnh báo cho lần login thất bại tiếp theo.

    Khảo sát Detection Engine

    Bộ phận nhận dạng - pattern matcher

    Trong các phiên bản trước của snort, snort đánh giá gói tin bằng cách so sánh trực tiếp với rule tree cho đến khi tìm thấy rule được khớp hoặc tất cả các rule được được kiểm tra hết. Được phát triển của Marc Norton, một kỹ sư phần mềm của công ty Sourcefire, pattern matcher là thành phần cốt lừi cho dectection engine ngày nay.

    Xây dựng pattern matcher

    Tuy nhiên trong một mạng có lượng traffic lớn và có tốc độ cao thì cần có một phương pháp kiểm tra nhanh hơn.

    Snort Inline Mode

    Các mode chính của snort

    • Network Intrusion Detection System (NIDS) mode: đây là mode phức tạp nhất của snort, ở mode này snort phân tích traffic trong mạng, từ đó phát hiện được những hành động thâm nhập hoặc tấn công trong mạng. • Inline mode :trong mode này snort sẽ tiếp nhận gói tin từ iptables thay vì từ libpcap sau đó sẽ tiến hành xử lý gói tin (DROP, REJECT, SDROP).

    Application Layer Preprocessor

    • Preprocessor stream5
      • Hệ Thống Rule Trong Snort
        • Snort Output Plug-in
          • Network-Based và Host-Based IDS

            Preprocessor stream5 hỗ trợ stream API, cho phép các bộ phận kiểm tra tính hợp lệ của protocol và preprocessor cấu hình việc tập hợp gói tin theo yêu cầu của ứng dụng ở lớp của application, xác định session nào nên bỏ qua và cập nhật thông tin nhận dạng về session như protocol, hướng gói tin…. Rule có thể phân thành 3 loại dựa trên trường Action của Rule: AlertPass Log Khi một gói tin đi vào IDS Snort, nó sẽ được kiểm tra theo thứ tự nêu trên để đảm bảo mọi gói tin đều được kiểm tra thông qua những rule Alert nhằm loại bỏ những mối nguy hại cho hệ thống.

            Network-based

            Cách kết nối IDS vào mạng

            Trong hình trên, đường màu đỏ dùng để monitor traffic và đường đứt nét dùng cho việc quản lý IDS. Trong hình 1, span port được sử dụng để giám sát và giử lại traffic, span port là một chức năng của switch, span port có thể được cấu hình đề chuyển tất cả traffic trên switch vào span port. Mặc dù hub có thể được dùng cho trường hợp này nhưng hub không phải là một sự lựa chọn tốt nhất.

            Trong hình 2, IDS được kết nối vào network tap, network sẽ sao chép traffic và gửi đến IDS. Trong hình 3, IDS sử dụng 3 interface và đặt trong chế độ inline có nghĩa là tất cả các traffic phải đi vào IDS sau đó mới được chuyển vào mạng. Nếu IDS kết nối vào span port thì đôi khi gói tin có thể bị bỏ sót, với trường hợp này thì tất cả các gói tin đi vào mạng đều được IDS giám sát và có thể giảm tải cho switch.

            Hình 2: IDS được kết nối vào network TAP để monitor traffic
            Hình 2: IDS được kết nối vào network TAP để monitor traffic

            Các Hình Thức Khai Thác Và Tấn Công Hệ Thống Phổ Biến 1 Port scan

            • DOS (Denial of Services) 1 Giới thiệu

              Nguyên lý chung để phát hiện có cá nhân scan port của một máy nào đó trong hệ thống đó là dựa trên những gói tin từ chối khi có truy cập đến những port không mở trên hệ thống (gói tin RST của TCP khi port đó đóng). Việc xuất hiện những gói tin từ chối đó là rất ít khi vì khi một người bình thường truy nhập sẽ chỉ sử dụng đúng chức năng của máy chủ đó như truy cập website ở web server, mail ở mail server … chứ không kết nối đến những port khác ở các server thông dụng đó. Tuy nhiên nếu không có các gói tin từ chối gửi về (trong trường hợp máy bị scan port theo kiểu ACK scan có thiết bị quản lý session như Firewall lớp 4 thì các gói tin gửi vào sẽ bị drop và không có gói tin trả lời ) thì mức độ này không báo động.

              Mặc dù phương tiện để tiến hành, động cơ, mục tiêu của tấn công từ chối dịch vụ là khác nhau, nhưng nói chung nó gồm có sự phối hợp, sự cố gắng ác ý của một người hay nhiều người để chống lại Internet site hoặc service (dịch vụ Web) vận hành hiệu quả hoặc trong tất cả, tạm thời hay một cách không xác định. Như ta đã biết, tất cả các dữ liệu chuyển đi trên mạng từ hệ thống nguồn đến hệ thống đích đều phải trải qua 2 quá trình: dữ liệu sẽ được chia ra thành các mảnh nhỏ ở hệ thống nguồn, mỗi mảnh đều phải có một giá trị offset nhất định để xác định vị trí của mảnh đó trong gói dữ liệu được chuyển đi. Khi các packets đó đến được địa chỉ broadcast của mạng khuếch đại, các máy tính trong mạng khuếch đại sẽ tưởng rằng máy tính nạn nhân đã gởi gói tin ICMP packets đến và chúng sẽ đồng loạt gởi trả lại hệ thống nạn nhân các gói tin phản hồi ICMP packets.

              Cài Đặt Snort

              • Cài đặt snort với BASE (Multiple SnortSensors) Mô hình mạng

                • Cài đặt Snort Report: công cụ hỗ trợ cho Snort trong việc trình bày các báo cáo cũng như báo động trong quá trình kiểm tra dữ liệu của Snort. #zcat create_mysql.gz | mysql -u root -p snort Kiểm tra lại database và tables đã tạo mysql> show databases;. * Nếu cài snort từ source code thì dùng lệnh snort -D -c /etc/snort/snort.conf -l /var/log/snort/ để khởi động snort chạy như một daemon.

                #mv /etc/snort/db-pending-config /etc/snort/db-pending-config.orig Cấu hình barnyard2 và snort chạy mặc định sau khi khởi động Cấu hình cho snort. Bước 2: điền vào thông tin về database Database type = MySQL Database name = snort Database Host = localhost Database username = snort Database Password = toot. Bước 2: điền vào thông tin về database Database type = MySQL Database name = snort Database Host = localhost Database username = snort Database Password = toot.

                Sau đó có thể khởi động snort với lệnh sau: /etc/init.d/snortd start Cấu hình để script snortd chạy khi khởi động. Khai báo rule này vào file cấu hình snort : include $RULE_PATH/pingtest.rules Khởi động lại snort: /etc/init.d/snortd restart.

                Lab Kiểm Tra Hoạt Động Của Snort 1 Rule để kiểm tra hoạt động của snort

                  Rule của snort có thể được dùng trong việc quản lý việc truy cập vào những website có nội dung không lành mạnh và phát hiện truy nhập đến trang web không được phép. Sau khi quan sát qua công cụ base để xem các alert, nhận thấy rằng không có alert nào được ghi nhận vì trong rule based của snort chưa có rule để nhận dạng slowloris. Như vậy khi các máy nạn nhân đã bị khống chế bởi kỹ thuật ARP Spoofing thì tất cả các gói tin gửi cho máy đối tác với địa chỉ IP đúng nhưng MAC đã bị sửa đổi sẽ đi qua máy tấn công rồi mới chuyển tiếp cho máy đối tác thật sự một các trong suốt (không bị phát hiện bởi bên gửi và bên nhận).

                  Kết quả của tấn công Man in the middle là hacker sẽ thu được mọi thông tin nạn nhận trao đổi với đối tác cũng như ngoài internet, những thông tin nhạy cảm như mật khẩu email, mật khẩu tài khoản ngân hàng …. Cụ thể sau khi thực hiện bước đầu độc ARP như đã nhắc đến ở phần trước thì cũng bằng chương trình Cain & Abel ta thu nhận được tài khoản và mật khẩu của người dùng đang đăng nhập vào Yahoo Messenger. Nguyên tắc cơ bản để phát hiện ARP Spoofing chính là so sánh với bảng liên hệ giữa IP và MAC do người quản trị đặt ra, nếu có gói tin gửi thông tin sai về MAC của một địa chỉ IP thì sẽ kích hoạt báo động.