PHÁT HIỆN XÂM NHẬP DỰA TRÊN BẤT THƯỜNG VỚI DỮ LIỆU THỐNG KÊ 1 Tạo danh sách thống kê với SiLK

Một phần của tài liệu Bài giảng Kỹ thuật theo dõi, giám sát an toàn mạng: Phần 2 (Trang 41 - 44)

b. Các tùy chọn của luật

3.4 PHÁT HIỆN XÂM NHẬP DỰA TRÊN BẤT THƯỜNG VỚI DỮ LIỆU THỐNG KÊ 1 Tạo danh sách thống kê với SiLK

3.4.1 Tạo danh sách thống kê với SiLK

Ví dụ đơn giản của dữ liệu thống kê là một danh sách các máy tính giao tiếp trên mạng nội bộ xác định các thiết bị được bảo vệ mà có số lưu lượng dữ liệu liên lạc lớn nhất trên một đoạn mạng được giám sát. Đội NSM có thể sử dụng số liệu thống kê này để xác định một số thông tin như các thiết bị có số lưu lượng gửi đi đến máy chủ bên ngoài lớn đáng ngờ, hoặc có thể là máy tính được bảo vệ nhưng bị nhiễm phần mềm độc hại kết nối với một số lượng lớn các địa chỉ IP bên ngoài đáng ngờ. Đây là một trường hợp mà chữ ký không thể phát hiện ra, bởi vì đây là một bất thường thật sự của mạng.

Khả năng để tạo ra một danh sách như trên có thể là một thách thức khi không có công cụ phù hợp và truy cập được dữ liệu mạng. Tuy nhiên, các công cụ phân tích dữ liệu về phiên như SiLK và Argus làm điều này một cách dễ dàng.

Trong các phần trước, đã thảo luận các phương pháp khác nhau để thu thập dữ liệu phiên và phương pháp cơ bản để phân tích loại dữ liệu này. Phần này sẽ xem xét SilK, một công cụ được sử dụng hiệu quả cho việc thu thập, lưu trữ và phân tích dữ liệu luồng. Trong SiLK có một số công cụ hữu ích để tạo ra các số liệu thống kê và số liệu cho nhiều tình huống. SiLK hoạt động bằng cách yêu cầu người dùng xác định dữ liệu họ muốn sử dụng làm nguồn cho tập dữ liệu, sau đó cho phép người dùng lựa chọn từ một số các công cụ để hiển thị, sắp xếp, đếm, phân nhóm, và ghép dữ liệu lấy từ tập dữ liệu trên. Trong các công cụ này, có thể sử dụng rwstats và rwcount để tạo ra một danh sách thống kê lưu lượng.

Trong khi nhiều người sử dụng SiLK để trực tiếp xem dữ liệu lưu lượng, rwstats là một trong những cách mạnh mẽ nhất để thực sự sử dụng dữ liệu phiên nhằm có được sự hiểu biết tốt hơn về môi trường của tổ chức, tiến hành phản ứng với sự cố, và tìm kiếm dữ liệu. Trong mọi môi trường SiLK được triển khai, rwstats luôn là nguồn dữ liệu thống kê thường xuyên nhất được sử dụng. Phần này sẽ bắt đầu bằng cách sử dụng rwstats để tạo ra một danh sách thống kê lưu lượng theo thiết bị.

Như tất cả các công dụng của SiLK, nên bắt đầu bằng cách tạo ra một lệnh rwfilter để có thể xác minh tập dữ liệu sử dụng để tạo ra số liệu thống kê. Nói chung, có thể dễ dàng tạo ra bộ lọc và gửi dữ liệu kết quả đến rwcut. Nó sẽ hiển thị kết quả của lệnh rwfilter để có thể chắc chắn tập dữ liệu đang sử dụng là hợp lệ. Phần lớn các ví dụ này sẽ sử dụng ví dụ cơ bản của các truy vấn rwfilter để bất cứ ai cũng có thể làm theo.

Rwstats chỉ yêu cầu xác định ba thành phần: một tham số đầu vào, một tập các trường dùng để tạo ra số liệu thống kê, và các điều kiện dừng khi muốn giới hạn kết quả. Các tham số đầu vào có thể là một tên tệp tin được liệt kê trên dòng lệnh, hoặc trong trường hợp phổ biến hơn, là dữ liệu được đọc từ đầu vào tiêu chuẩn, từ kết quả của một lệnh rwfilter. Đầu vào này cần được lấy

trực tiếp từ rwfilter và không được phân tích bởi lệnh rwcut. Tập các trường đã xác định đại diện cho một khóa được người dùng định nghĩa, từ đó các bản ghi luồng của SiLK được nhóm lại. Dữ liệu phù hợp với khóa đã được lưu trong các nhóm (bins) cho mỗi kết quả so sánh duy nhất. Sau đó tổng số của các nhóm này (có thể là tổng số byte, bản ghi, gói dữ liệu, hay số lượng bản ghi giao tiếp riêng biệt) được sử dụng để tạo ra một danh sách sắp xếp theo kích thước từ trên xuống dưới (mặc định), hoặc từ dưới lên trên, tùy thuộc vào lựa chọn của người sử dụng. Các điều kiện dừng được sử dụng để hạn chế các kết quả tạo ra và có thể được hạn chế bằng cách xác định theo tổng số (20 bin), theo một ngưỡng giá trị (các bin có số byte ít hơn 400), hoặc tỷ lệ phần trăm của tổng số (bin có chứa ít nhất 10% của tất cả các gói).

Lệnh thực hiện quá trình trên như sau:

rwfilter --start-date = 2013/08/26:14 --any-address = 102.123.0.0/16 --type = all -- pass = stdout | rwstats --top --count = 20 --fields = sip,dip --value = bytes

Trong ví dụ này, lệnh rwfilter tập hợp tất cả các bản ghi lưu lượng thu thập trong 1400 giờ ngày 8 tháng 8, và chỉ kiểm tra lưu lượng trong phạm vi IP 102.123.0.0/16. Dữ liệu đó được chuyển tới rwstats, để tạo ra một danh sách top 20 (--count = 20) kết hợp địa chỉ IP nguồn và đích (--fields = sip, dip) cho dữ liệu trong bộ lọc, sắp xếp theo byte (--value = bytes).

Một cách khác để đạt được cùng một kết quả là phải truyền các kết quả của lệnh rwfilter vào một tệp tin, và sau đó sử dụng rwstats để phân tích tệp tin đó. Hai lệnh sau sẽ thực hiện việc này, sử dụng một tệp tin có tên test.rwf:

rwfilter --start-date = 2013/08/26:14 --any-address = 102.123.0.0/16 --type = all -- pass = stdout > test.rwf

rwstats test.rwf --top --count = 20 --fields = sip,dip --value = bytes Kết quả từ các lệnh này được thể hiện trong Hình 3.23.

Trong số liệu thể hiện trong Hình 3.23, có một số thiết bị vô cùng bận rộn trong mạng cục bộ là máy tính 102.123.222.245. Có thể tạo thêm số liệu thống kê để giúp thu hẹp giao tiếp của nó.

Bằng cách chạy lệnh tương tự, nhưng thay phạm vi CIDR cho địa chỉ IP của nhóm máy tính cao trong danh sách trong lệnh rwfilter, có thể thấy các máy tính nó đang giao tiếp đã tạo ra tất cả các lưu lượng truy cập này.

rwfilter --start-date = 2013/08/26:14 --any-address = 102.123.222.245 --type = all -- pass = stdout | rwstats --top --count = 5 --fields = sip,dip --value = bytes

Các số liệu thống kê được tạo ra bằng truy vấn này được thể hiện trong Hình 3.24.

Hình 3.24 Tập trung vào nhóm cao các đối tác liên lạc của một máy tính đơn lẻ

Điều này giúp xác định "ai" liên quan đến lưu lượng cao bất thường. Có thể xác định được "cái gì" bằng cách thay đổi tiêu chí tìm kiếm để cố gắng xác định các dịch vụ phổ biến quan sát được từ việc giao tiếp giữa các thiết bị này.

rwfilter --start-date = 2013/08/26:14 --any-address = 102.123.222.245 --type = all -- pass = stdout | rwstats --top --count = 5 --fields = sip,sport,dip --value = bytes

Trong lệnh này, sử dụng cùng một tập dữ liệu, nhưng cho rwstats sử dụng trường cổng nguồn làm tiêu chí cho việc tạo thống kê. Hình 3.25 cho chúng ta thấy kết quả của truy vấn này.

Hình 3.25 Sử dụng thống kê để xác định lượng sử dụng dịch vụ

Có thể thấy thủ phạm liên quan tới một số kiểu kết nối SSH, nhưng trước khi kiểm tra thông qua người dùng hoặc một nguồn dữ liệu, hãy tạo thêm một số thống kê có thể giúp xác định "khi nào" là thời điểm của liên lạc này. Để làm được điều này, cần sử dụng rwcount để xác định khoảng thời gian giao tiếp diễn ra. Rwcount là một công cụ trong gói phân tích SiLK giúp tóm tắt bản ghi SiLK theo thời gian. Việc này được thực hiện bằng cách đếm các bản ghi trong các dòng đầu vào và nhóm các byte và tổng số gói vào bin theo thời gian. Theo mặc định, truyền một lệnh rwfilter trực tiếp đến rwcount sẽ cung cấp một bảng diễn tả khối lượng các bản ghi, byte, và các gói nhìn thấy trong mỗi khoảng thời gian 30 trong kết quả rwfilter. Sử dụng tùy chọn –bin-size

cho phép thay đổi điều đó bằng cách xác định một giá trị giây khác. Kết quả là sẽ sử dụng lệnh sau:

rwfilter --start-date = 2013/08/26:14 --any-address = 102.123.222.245 --sport = 22 -- type = all --pass = stdout | rwcount --bin-size = 600

Do đang cố gắng xác định thời điểm lưu lượng truy cập cổng 22 này xảy ra, cần chỉnh sửa rwfilter sử dụng tùy chọn --sport = 22, và thay thế rwstats với rwcount để đánh giá các đơn vị thời gian mà trong khoảng đó dữ liệu tồn tại. Sử dụng các tùy chọn –bin-size để kiểm tra lưu lượng với các bin 10 phút (600 giây). Kết quả của lệnh này được hiển thị trong Hình 3.26.

Hình 3.26 Kết quả Rwcount chi tiết khi có liên lạc

Có thể thấy việc truyền dữ liệu tương đối nhất quán theo thời gian. Như vậy, đường hầm SSH có thể được sử dụng để chuyển một lượng lớn dữ liệu. Đây có thể là một nguy cơ như rò rỉ dữ liệu, hoặc một cái gì đó đơn giản như một người sử dụng công cụ SCP để chuyển một cái gì đó tới hệ thống khác với mục đích sao lưu. Xác định câu trả lời đúng cho câu hỏi này sẽ đòi hỏi việc phân tích các nguồn dữ liệu bổ sung, nhưng với các số liệu thống kê đã tạo ra ở đây sẽ cung cấp cho các chuyên gia phân tích một ý tưởng về vị trí cần xem xét tiếp theo.

Một phần của tài liệu Bài giảng Kỹ thuật theo dõi, giám sát an toàn mạng: Phần 2 (Trang 41 - 44)

Tải bản đầy đủ (PDF)

(103 trang)