6. Ý nghĩa khoa học của đề tài
3.3.1. Triển khai chủ động
Triển khai chủ động dựa trên thiết bị thăm dò vào trong hệ thống mạng, để thu thập thông tin truyền tải trong mạng cần ít nhất hai điểm cuối trong mạng. Mô hình triển khai này đƣợc minh họa nhƣ hình dƣới. Tại đây thiết bị thu thập thực hiện bắt tất cả luồng dữ liệu vào ra máy tính.
Hình 12: Triển khai chủ động. 3.3.2. Triển khai thụ động
Thu thập dữ liệu từ hub: Việc thu thập dữ liệu mạng trong một mạng có
hub là một điều kiện lí tƣởng cho việc phân tích gói tin. Cơ chế hoạt động của hub cho phép gói tin đƣợc gửi tới tất cả các cổng của hub, do vậy công việc thiết lập thiết bị thu thập cần làm là cắm vào một cổng còn trống trên hub. Có thể nhìn thấy tất cả các thông tin truyền và nhận từ tất cả các máy tính đang kết nối tới hub đó.
Thu thập dữ liệu từ Switch: Thiết bị Switch là thiết bị phổ biến, Switch
cung cấp 1 phƣơng thức hiệu quả về vận chuyển dữ liệu thông qua các phƣơng thức broadcast, unicast, multicast và cho phép kết nối song công, có nghĩa là máy trạm có thẻ truyền và nhận dữ liệu đồng thời từ Switch. Có ba cách chính để bắt đƣợc các gói tin từ thiết bị mục tiêu trên mạng Switch: port mirroring, ARP cache poisoning và hubling out.
46
Port mirroring: Có thể là cách đơn giản nhất để bắt các lƣu lƣợng từ các
thiết bị mục tiêu trên mạng Switch. Với cách này, phải truy cập đƣợc giao diện dòng lệnh của switch mà máy mục tiêu nhắm vào. Tất nhiên là switch này phải hỗ trợ tính năng port mirroring và có một port trống để chúng ta có thể cắm máy nghe vào. Khi ánh xạ cổng, sao chép toàn bộ lƣu lƣợng đi qua cổng này sang một cái khác.
Hubbing out: Một cách đơn giản khác để bắt các lƣu lƣợng của thiết bị
mục tiêu trong một mạng switch là hubbing out. Hubbing out là kỹ thuật mà trong đó ngƣời thu nhận đặt mục tiêu và thiết bị thu thập vào cùng một phân mạng bằng cách đặt chúng trực tiếp vào một hub.
Thu thập dữ liệu mạng từ Router: Tất cả các kỹ thuật nghe trong switch
đều có thể đƣợc sử dụng trong mạng router. Chỉ có một việc cần quan tâm khi thực hiện với router là sự quan trọng của việc đặt máy nghe khi mà thực hiện xử lý một vấn đề liên quan đến nhiều phân mạng. Miền quảng bá của một thiết bị đƣợc mở rộng cho đến khi nó gặp router. Khi đó lƣu lƣợng sẽ đƣợc chuyển giao sang dòng dữ liệu router tiếp theo và sẽ mất liên lạc với các gói tin đó cho đến khi nhận đƣợc một ACK của các máy nhận trả về. Trong tình huống này, dữ liệu sẽ lƣu chuyển qua nhiều router, vì vậy rất quan trọng để thực hiện phân tích tất cả lƣu lƣợng trên các giao diện của router.
3.4. Thực hiện điều tra số dựa trên hệ thống đã mô tả
Quá trình phân tích dữ liệu đƣợc thực hiện thông qua ba bƣớc:
Sàng lọc, rút gọn dữ liệu: Đây là quá trình loại bỏ các dữ liệu không cần
thiết và xác định các dữ liệu đáng quan tâm có ích cho quá trình phân tích từ nguồn dữ liệu thô.
Kết hợp, phân lớp dữ liệu: Tổ hợp dữ liệu từ nhiều nguồn khác nhau thành
tập các dữ liệu gắn kết có mối tƣơng quan với nhau, xác định mối quan hệ giữa các nguồn dữ liệu và đƣa ra vài phƣơng pháp truy cập chuẩn hóa dữ liệu.
47
Báo cáo, thống kê: Xác định vấn đề, sự kiện trọng tâm để phân tích, loại
bỏ dữ liệu không cần thiết. Quá trình này nhằm phát hiện tấn công, xâm nhập và các hành vi bất thƣờng, khả nghi.
3.4.1. Thu thập và tập hợp dữ liệu
Mục đích nhằm thu thập, tập hợp toàn bộ dữ liệu về các hoạt động an ninh đang diễn ra bên trong hệ thống. Từ các dữ liệu thu nhận đƣợc, có thể khám phá ra các kỹ thuật xâm nhập, tấn công, công cụ với mục đích của hacker đồng thời phát hiện ra các lỗ hổng trên các máy trạm mà hacker lợi dụng để giảm quyền truy cập vào các hệ thống khác trong mạng. Do vậy, quy trình thu thập dữ liệu đóng vai trò vô cùng quan trọng.
Thu thập dữ liệu có chức năng giám sát và ghi nhận tất cả các hoạt động và thông tin đi ra và đi vào hệ thống. Dữ liệu thu nhận trong quá trình này tạo ra nền tảng của dữ liệu để sử dụng cho quá trình nghiên cứu và phân tích sau này. Bất kỳ hệ thống thông tin nào cũng có thể phân ra các hoạt động tƣơng tác ngƣời dùng thành bốn mức nhƣ sau: Hoạt động mức mạng; Hoạt động mức hệ thống; Hoạt động mức ứng dụng; Hoạt động mức ngƣời dùng.
Thu thập dữ liệu cũng dựa trên nhiều tầng khác nhau, các hoạt động có thể thu thập đầy đủ.
3.4.2. Sàng lọc, chuẩn hóa và tương quan dữ liệu
Sàng lọc
Sàng lọc là quy trình loại bỏ các dữ liệu không cần thiết khỏi tập dữ liệu thu thập đƣợc.
Sàng lọc đƣợc chia thành các hoạt động sau: Chọn lựa lƣu trữ các dữ liệu đáng quan tâm và loại bỏ dữ liệu không cần thiết từ nguồn dữ liệu thô đƣa vào. Trích xuất các dữ liệu thô và chuyển đổi chúng dƣới dạng chung để có thể dễ dàng sử dụng cho việc phân tích dữ liệu sau này.
Chuẩn hóa
Chuẩn hóa thực hiện việc ánh xạ các thành phần trong dữ liệu thô ( địa chỉ IP nguồn, địa chỉ IP đích,...) sang một quy định dạng quy định chung. Các
48
bƣớc thực hiện việc chuẩn hóa gồm: Khảo sát các loại dữ liệu thu thập đƣợc: miêu tả, các thành phần và nội dung trong dữ liệu; Sử dụng các phƣơng pháp thích hợp để chuẩn hóa dữ liệu nhƣ sử dụng biểu thức chính quy để chuẩn hóa dữ liệu; Kiểm tra logic trên các dữ liệu mẫu khi chuẩn hóa; Triển khai chuẩn hóa trên toàn bộ các dữ liệu thu thập cần phân tích.
Những thông tin chung thƣờng đƣợc sử dụng cho việc chuẩn hóa dữ liệu thu thập: Địa chỉ IP đích và nguồn; Cổng nguồn và cổng đích; Phân loại; Thời gian; Thông tin ngƣời dùng; Độ ƣu tiên.
Tƣơng quan
Tƣơng quan là liên hệ các dữ liệu riêng lẻ thành dữ liệu có sự liên kết với nhau một cách ý nghĩa nào đó, tƣơng quan đóng vai trò quan trọng trong việc thu thập và phân tích thông tin an ninh mạng, giúp liên kết các dữ liệu riêng lẻ với nhau thành dữ liệu chung với nhau, thống nhất cho việc phân tích, thông thƣờng ngƣời ta sử dụng phƣơng pháp thống kê và tƣơng quan trên luật để thực hiện quá trình tƣơng quan.
3.4.3. Phân tích dữ liệu
Trong phân tích dữ liệu, cần thu nhận nhiều kiểu dữ liệu khác nhau, từ các nguồn khác nhau nhƣ: dữ liệu mạng (đƣợc thu nhận bởi tƣờng lửa, Snort,...), dữ liệu từ Sebek gửi về. Do vậy, quá trình phân tích dữ liệu sẽ gặp rất nhiều khó khăn: tiêu tốn thời gian, công sức cũng nhƣ đối mặt với giải quyết nhiều vấn đề liên quan. Quá trình phân tích thƣờng gặp phải một số vấn đề nhƣ sau:
Mỗi kiểu dữ liệu thƣờng đi kèm với một công cụ phân tích riêng cho chúng, do vậy gây ra hiệu quả hạn chế, và mỗi kiểu dữ liệu phải lặp lại ba bƣớc phân tích tách biệt riêng.
Việc chuyển đổi sử dụng các kiểu dữ liệu khác nhau là rất khó khăn và khó tìm ra đƣợc mối quan hệ tƣơng quan giữa các nguồn dữ liệu. Thông thƣờng việc đƣa ra mối quan hệ tƣơng quan này thƣờng đƣợc thực hiện hoàn toàn thủ công bởi ngƣời phân tích.
49
Quá trình tìm ra đƣờng để dò theo dấu vết chuỗi dữ liệu đáng quan tâm giữa các nguồn dữ liệu không thể thực hiện một cách tự động.
Việc phân tích dữ liệu dựa trên các kỹ thuật phân tích cơ bản gồm: Phân tích gói tin; Phân tích luồng dữ liệu; Phân tích nhật ký sự kiện.
Ngoài ra cũng có thể sử dụng các kỹ thuật phân tích nâng cao nhƣ: Phân tích thống kê; Khai phá dữ liệu nhật ký; Phân tích dữ liệu trên WLAN.
Để hỗ trợ việc phân tích thủ công mất nhiều thời gian và công sức ngƣời phân tích, có thể sử dụng phƣơng pháp tiếp cận phân tích log tự động.
Thống kê (Phát hiện bất thường): tập trung chính vào đặc tính đƣợc xác
định của ngƣời dùng hay nhóm ngƣời dùng bình thƣờng và triển khai phƣơng pháp thống kê để xác định sự bất thƣờng trong những đặc tính ngƣời dùng.
Hệ chuyên gia dựa trên luật (Rule- based expert systems): những hệ
thống này cố gắng "phát hiện sử dụng sai trái" bằng cách sử dụng luật định nghĩa trƣớc nhƣ một sự chỉ dấu cho sự thâm nhập trái phép.
Học máy (Machine learning): cố gắng dự đoán sự kiện bởi sự kiện đã biết trong quá khứ và sử dụng thuật toán dạng quy nạp.
50
3.4.4. Công cụ phân tích gói tin Wireshark
Công cụ phân tích Wireshark còn đƣợc gọi là Ethereal – một trong những ứng dụng đƣợc dùng để phân tích dữ liệu hệ thống mạng, theo dõi và giám sát gói tin theo thời gian thực, hiển thị chính xác và báo cáo ngƣời dùng qua một giao diện đơn giản và thân thiện.
Nếu bạn là một quản trị viên hệ thống, hoặc là ngƣời thƣờng xuyên tiếp xúc với hệ thống máy chủ, thì chắc chắn bạn không thể không biết đến Wireshark – công cụ phân tích gói dữ liệu hệ thống mạng hàng đầu hiện nay. Với gói giao diện trực quan, sử dụng đơn giản và báo cáo chính xác là những nguyên nhân chính khiến chúng đƣợc đƣa vào phần lớn các hệ thống máy chủ.
Phần mềm này cung cấp cho ngƣời dùng những thông tin hữu ích về giao thức mạng, thu thập gói tin cùng khả năng đọc và ghi dữ liệu theo nhiều dạng khác nhau. Phần mềm này còn đƣợc sủ dụng để làm nhiệm vụ xử lý sự cố mạng, hỗ trợ trên nhiều hệ điều hành khác nhau nhƣ Windows, Ubuntu, Linux,… Khi đã làm quen với Wireshark, bạn sẽ dễ dàng phân tích dữ liệu trong hệ thống mạng của mình.
Chức năng Wireshark mang lại cho ngƣời dùng
Wireshark đƣợc sử dụng rộng rãi tại nhiều doanh nghiệp, đơn vị khác nhau nhƣ các cơ sở giáo dục, cơ quan chính phủ,… bởi chúng có nhiều tính năng hữu ích với ngƣời dùng nhƣ:
- Phân tích chuyên sâu các giao thức mạng đã và đang đƣợc bổ sung hàng ngày.
- Là công cụ tạo đƣờng dẫn gói tin. - Thu thập dữ liệu từ nhiều gói tin.
- Hỗ trợ bộ lọc mạnh mẽ hiển thị các gói dữ liệu.
51
- Giải nén nhiều giao thức mạng nhƣ Ethernet, IEEE 802.11, PPP/HDLC, ATM, Bluetooth, USB,….
- Đọc và xuất dữ liệu từ nhiều giao thức
- Xuất dữ liệu theo nhiều định dạng khác nhau
Lý do chọn phần mềm Wireshark
Công cụ giám sát an toàn mạng là các ứng dụng đƣợc phát triển để theo dõi tình trạng của hệ thống, hiện nay trên thế giới có nhiều bộ công cụ chia làm nhiều nhóm có những chức năng riêng.
Tuy nhiên, những công cụ giám sát phải đƣợc toàn diện, tình trạng của hệ thống phải đƣợc cập nhật thƣờng xuyên 24/7. Phải hỗ trợ nhiều giao thức, dễ dàng phát triển, dễ sử dụng, cài đặt đơn giản…
Hiện nay, có rất nhiều giải pháp mã nguồn mở tự do cho phép triển khai giám sát, phát hiện và chống xâm nhập mạng rất hiệu quả nhƣ Wireshark, NetworkMiner, Snort, Foremost… Trong đó Wireshark là giải pháp chặn bắt và phân tích gói tin dễ dùng nhất, ứng dụng đồ họa với hệ thống menu rõ ràng. Nhiều tính năng trên Wireshark còn đƣợc đánh giá cao hơn trong các sản phẩm thƣơng mại.
Nhƣ đã đề cập ở trên Wireshark là một công cụ phân tích các gói tin trên hệ thống mạng. Nó sẽ capture các gói dữ liệu trên hệ thống mạng và hiển thị chúng lên giao diện của phần mềm này một cách chi tiết. Bạn có thể hiểu nó nhƣ một thiết bị đo lƣờng nhằm khảo sát những thứ đang diễn ra bên trong hệ thống mạng. Phần dƣới đây sẽ giới thiệu một số kỹ thuật đƣợc sử dụng nhiều trên Wireshark hỗ trợ đắc lực trong việc đọc hiểu những gì đang diễn ra trong hệ thống mạng cũng nhƣ giải quyết các vấn đề trong Network Forensics.
3.4.4.1.Filter
Filter là một công cụ rất hữu ích để lọc và tìm những gói tin mong muốn trong số rất nhiều các gọi tin mà Wireshark bắt đƣợc.
52
Hình 14: Công cụ Filter.
Có thể thấy trƣờng Filter đƣợc hiển thị ngay trên giao diện chính. Bạn nhập thông tin ngay ở đây và và nhấn enter để tiến hành quá trình lọc lấy gói tin mà mình muốn khảo sát. Hoặc bạn cũng có thể sử dụng Filter trong mục:
Analyze ->Display filter. Thông tin nhập vào ô filter này có cấu trúc giống nhƣ một câu truy vấn và bạn cũng có thể sử dụng những toán tử thông thƣờng nhƣ: ==, !=, >, <, >=, <=.
3.4.4.2. Lọc theo protocol
Đƣợc sử dụng nếu muốn tìm tất cả những gói tin có cùng kiểu protocol, ta chỉ cần nhập kiểu protocol vào ô filter hoặc một tạo filter mạnh hơn nữa:
tcp.port == 80 và nó sẽ trả về các packet có protocol là TCP và chạy qua cổng 80 (ở địa chỉ nguồn hoặc đích ).
3.4.4.3. Lọc các gói tin HTTP GET/POST
Đây là một filter rất hay vì khi điều tra về một vấn đề xảy ra trong mạng thì việc tìm những gói tin GET/POST thƣờng ẩn chứa rất nhiều thông tin hữu
53
ích. Ta nhập vào ô filter theo cấu trúc: http.request or http.response hoặc sử dụng các mệnh đề mạnh hơn: http.request.method == POST ( GET ).
tcp.flags.reset==1
Filter này thì ít dùng hơn nhƣng cũng là một thủ thuật hay vì nó cho ta biết về trạng thái của các connection trong mạng. Đây cũng là một điểm mà hacker sử dụng để thực hiện các cuộc tấn công “forged TCP resets”.
CTRL+F
Đây là một kỹ thuật mà ai cũng biết nhƣng đôi khi rất hay quên. Đặc biệt là trong Wireshark thì nó là một công cụ quyền lực, nó thay thế hay hỗ trợ rất nhiều cho filter. Hộp tùy chọn khi sử dụng tổ hợp phím này nhƣ sau:
54
Display Filter: có vai trò tƣơng đƣơng với ô filter ở giao diện chính Hex value: Tìm những gói tin có các giá trị hexa tƣơng ứng (khung dƣới cùng ở giao diện)
String: Tìm những gói tin chứa string tƣơng ứng
Còn các tùy chọn trong mục search in: Cho biết bạn muốn tìm những giá trị trên trong khung nào ( có 3 khung tƣơng ứng từ trên xuống dƣới ). Đây thực sự là một công cụ hữu ích nhất là khi bạn đã có chút manh mối nào đó về gói tin mà mình cần quan tâm ( một cái tên hay là một mã hex gì đó để nhận diện chả hạn).
Follow TCP Stream
Đây là một tùy chọn trong mục Analyze mà chắc hẳn bất kì ai sử dụng Wireshark đều đã từng dùng qua: ( hoặc nhanh hơn bạn có thể click chuột phải vào gói tin cần khảo sát và chọn Follow TCP Stream). Để thực hiên một giao tiếp giữa client và server thì không chỉ một mà có nhiều các gói tin đƣợc chuyển qua lại. Vì vây tùy chọn này rất có ích trong việc cho bạn một cái nhìn toàn thể và dễ hiểu về toàn bộ sự tƣơng tác giữa 2 máy tính.
Export HTTP Object
Đây là một tính năng rất đƣợc ƣa thích. Bạn bắt đƣợc hàng trăm gói tin. Nhƣng trong số đó chỉ có một số ít gói có chứa các đối tƣợng thông tin hữu ich, dễ nhận biết nhƣ một file ảnh hay một file text hay một đoạn html chả hạn. Vậy làm cách nào để bạn có thể tìm đƣợc những thứ đó trong một đống hỗn độn các gói tin nhƣ thế này. Câu trả lời chính là đây: File->object->http
và bạn sẽ thu đƣợc một list các đối tƣợng đã đƣợc chiết xuất từ tất các gói tin mà Wireshark bắt đƣợc.
55
3.5. Thực nghiệm
nh 16. Mô hình thực nghiệm
Một số tình huống xảy ra
Tình huống 1: Một máy tính trong mạng nội bộ bị nghi ngờ tấn công từ