3.4.1. Quy trình xử lý bài toán ứng dụng:
Hình 3.2: Tiến trình phát hiện xâm nhập sử dụng kỹ thuật phân cụm Raw Audit Data Dữ liệu bổ sung Dữ liệu đƣợc chuyển đổi Tiến trình khai phá dữ liệu Các cụm Cơ chế xử lý Cơ sở dữ liệu chuyển đổi Các tham số Các mẫu bất thƣờng
3.4.2. Tập hợp dữ liệu
Tập dữ liệu đầu vào của bài toán, đối với hệ thống sử dụng hệ điều hành *NIX ta có thể sử dụng công cụ TCPDUMP để tập hợp dữ liệu đầu vào là các giao tiếp mạng. TCPDUMP là tiến trình chạy ở chế độ nền, TCPDUMP sẽ kết xuất các thông tin đầu vào cần thiết cho bài toán ra các tệp thông qua giao diện các dòng lệnh. Tƣơng tự nhƣ TCPDUMP đối với hệ thống máy sử dụng hệ điều hành khác *NIX mà đại diện trong luận văn là hệ điều hành Windows, ta có thể sử dụng công cụ Windump cũng đƣợc xem là phiên bản hoàn toàn tƣơng thích với TCPDUMP dùng để bắt, kiểm tra và lƣu vào ổ đĩa các network traffic. Windump dựa trên thƣ viện và các trình điều khiển dòng lệnh của trình WinPcap. Windump là công cụ mã nguồn mở và đƣợc cung cấp để sử dụng miễn phí theo giấy phép BSD-style có tại Website
http://www.winpcap.org/windump/misc/copyright.htm. Sản phẩm này đƣợc phát triển bởi Đại học Califonnia, tại phòng thí nhiệm Berkeley Lawrence.
Tập dữ liệu thô đầu vào của bài toán này có sử dụng cơ sở dữ liệu ghi lại dấu vết trên mạng DMZ Ethernet bằng công cụ TCPDUMP trên một Sun Sparcstation sử dụng bộ lọc gói nhân BPF, dấu vết này đƣợc thu thập tại phòng thí nghiệm Berkeley Lawrence từ ngày 16/9/1993 đến ngày 15/10/1993, cơ sở dữ liệu bao gồm 782281 kết nối diện rộng giữa phòng thí nghiệm với các phần còn lại của mạng.
3.4.3. Tiền xử lý
Dữ liệu đầu vào của bài toán đƣợc tập hợp dƣới dạng một file.txt hoặc file.log, mỗi khi công cụ phát hiện có kết nối thực hiện thì sẽ có một dòng lệnh đƣợc ghi thêm vao file. Cấu trúc một file bao gồm có chín trƣờng đƣợc biểu diễn cách nhau bằng một khoảng trắng trên dòng dữ liệu.
Tên trƣờng Ý nghĩa thuộc tính
TimeStamp Thời gian kết nối xẩy ra đơn vị Micro giây
Duration Khoảng thời gian sống của kết nối tính bằng giây Protocol Giao thức kết nối
Byte sent by origination Kích thƣớc gói tin gửi đơn vị tính bằng byte, trƣờng hợp không xác định ta ghi “?”
Byte sent by responder Kích thƣớc goi tin phản hồi đơn vị tính bằng byte, trƣờng hợp không xác định ta ghi “?”
Remote host Địa chỉ IP máy ngoài mạng Localhost Địa chỉ IP máy nội mạng
State Trạng thái kết nối
Flag Cờ - kết nối ngoài mạng, kết nối trong mạng Bảng 3.1: Bảng thuộc tính CSDL mạng
Ví dụ dữ liệu đầu vào:
748162891.253899 0.079525 nntp ? ? 4 132.239.1.20 REJ L 748162892.011359 300843 ftp 82 495 10 128.120.9.33 SF 748162902.445209 300.572 nntp 509 70 2 131.225.40.40 SF L 748162911.084362 5.30702 ftp-data 24224 0 10 128.120.9.33 SF L 748162912.282781 7.93168 smtp 722 324 11 141.108.5.71 SF 748162914.565597 9.19413 smtp 1866 335 9 192.107.48.1 SF L 748162915.201912 0.004704 auth ? ? 9 192.107.48.1 REJ 748162919.111029 176.571 telnet 3 175 12 192.35.222.222 SF L 748162920.575654 1.179 telnet 3 175 12 192.35.222.222 SF L 748162921.668532 173.263 telnet 3 175 12 192.35.222.222 SF L
Biểu diễn dữ liệu đầu vào: tập hợp dữ liệu đầu vào đƣợc lƣu vào bảng TCP trong cơ sở dữ liệu TCP và đƣợc biểu diễn dƣới dạng bảng.
Biến đổi dữ liệu trong bảng CSDL: Trƣờng “RemoteHost” sẽ đƣợc biến đổi về dạng số nguyên để tham chiếu bằng cách thêm bảng dữ liệu tham chiếu.
Hình 3.4: Biến đổi dữ liệu trong CSDL
Gom cụm dữ liệu trên CSDL: dữ liệu đƣợc gom cụm theo một cửa sổ thời gian xác định và lƣu kết quả các nhóm cụm trong một bảng trung gian TCP_F để phục vụ cho tiến trình khai phá dữ liệu tiếp theo.
Hình 3.5 : Gom cụm dữ liệu trong CSDL
3.4.4. Tiến trình khai phá dữ liệu
3.4.4.1. Các mẫu bất thƣờng đƣợc sử dụng cho đầu vào bài toán
Ta khó có thể định nghĩa hết các mẫu bất thƣờng của các cuộc tấn công, chính vì vậy luận văn chỉ đề cập đến một số mẫu bất thƣờng của các cuộc tấn công từ chối dịch vụ DoS.
+Đầu vào bài toán là các cuộc tấn công từ chối dịch vụ thông qua giao thức HTTP. Tức là các request của giao thức HTTP bình thƣờng chỉ là các địch chỉ Web dƣới dạng URL nên có kích thƣớc rất nhỏ theo khảo sát nhỏ hơn rất nhiều ngƣỡng
350 byte. Để tấn công thông qua giao thức HTTP kẻ tấn công thƣờng phải chèn thêm mã lệnh thực thi trên trình duyệt của nạn nhân, mã lệnh có thể là các đoạn mã, tệp tin, câu lệnh truy vấn SQL …, khi đó các request của các giao thức này sẽ có thay đổi nhiều về kích thƣớc, thông thƣờng nếu kích thƣớc lớn hơn 350 byte là mẫu bất thƣờng có khả năng xuất hiện tấn công. Ví dụ:
http://www.microsoft.com/education/?ID=MCTN&target=http://www.microsoft.co m/education/?ID=MCTN&target=<script>alert(document.cookie)</script>
+Đầu vào của bài toán là các cuộc tấn công từ chối dịch vụ dạng nhƣ: Ping of Death, Teardrop, Aland Attack, Winnuke, Smurf Attack, UDP/ICMP Flooding TCP/SYN, Flooding Attack DNS. Các dạng này chủ yếu kẻ tấn công gửi một số lƣợng lớn lƣợt Ping, gói tin … để làm quá tải máy chủ gây ra lỗi từ chối dịch vụ. Mẫu bất thƣờng trong trƣờng hợp này là một “RemoteHost” trong một khoảng thời gian đƣợc xét có gửi một lƣợng lớn gói tin tới một “LocalHost” hay nói cách khác trong một cửa sổ thời gian một “RemoteHost” gửi rất nhiều request tới một “LocalHost” là bất thƣờng, ngƣỡng số request thay đổi tùy thuộc vào điều kiện hệ thống cần bảo về an toàn đến mức độ xác định.
+Đầu vào của bài toán là các cuộc tấn công từ nhiều mạng lƣới khác nhau vào một “LocalHost” hay nói cách khác là sẽ có một lƣợng lớn các Request từ nhiều địa chỉ mạng khác nhau cùng đƣợc gửi tới một “LocalHost” trong một cửa sổ thời gian ngắn là bất thƣờng, ngƣỡng số request này thay đổi tùy thuộc vào điều kiện kết nối của mạng và mức độ cần bảo vên an toàn.
3.4.4.2. Khai phá dữ liệu
Tiến trình khai phá dữ liệu trong luận vănsử dụng kỹ thuật dùng đối tƣợng đại diện: phƣơng pháp K-medoids trong kỹ thuật gom cụm của Khai phá dữ liệu. Trong quá trình khai phá dữ liệu, các mẫu bất thƣờng đƣợc sử dụng để đại diện cho cụm “xâm nhập” phần còn lại của cơ sở dữ liệu là các cụm “Bình thƣờng”. Các mẫu bất thƣờng phụ thuộc vào điều kiện đầu vào của bài toán trong tiến trình xử lý. Với mỗi ngƣỡng đầu vào phù hợp sẽ cho kết quả khai phá dữ liệu tƣơng thích.
+Với dữ liệu đầu vào của bài toán là các cuộc tấn công sử dụng giao thức HTTP thì các mẫu bất thƣờng là ngƣỡng kích thƣớc gói tin request và số request thỏa mãn ngƣỡng kích thức này tới máy chủ Web mà trong luận văn này chỉ đề cập đến là một máy trong mạng nội bộ “Localhost” cần bảo vệ để làm các tham số đầu vào của thuật toán K-medoids. Kết quả đầu ra của thuật toán hiển thị các cụm chứa các mẫu bất thƣờng là các kết nối có kích thƣớc gói request lớn hơn ngƣỡng tham số đầu vào của bài toán, các mẫu còn lại đƣợc coi là bình thƣờng vì thỏa mãn ngƣỡng tham số đầu vào của bài toán khai phá.
+Với dữ liệu đầu vào của bài toán là các cuộc tấn công từ chối dịch vụ dạng DoS thì đầu vào của thuật toán là ngƣỡng số request. Kết quả đầu ra của thuật toán hiển thị các cụm bất thƣờng có ngƣỡng số request lớn hơn ngƣỡng tham số đầu vào của bài toán, các mẫu còn lại đƣợc coi là bình thƣờng vì thỏa mãn ngƣỡng tham số đầu vào của bài toán khai phá.
+Với dữ liệu liệu đầu vào của bài toán là cuộc tấn công từ nhiều địa chỉ IP khác nhau tới một “Localhost” mà đại diện ở đây là một máy cục bộ, thì đầu vào của thuật toán là ngƣỡng số request, ngƣỡng này phụ thuộc vào thuộc tính kết nối của “LocalHost”. Kết quả đầu ra của thật toán hiển thị các cụm bất thƣờng có ngƣỡng số request lớn hơn ngƣỡng tham số đầu vào của bài toán, các cụm còn lại đƣợc coi là bình thƣờng vì thỏa mãn ngƣỡng tham số đầu vào của bài toán khai phá.
3.4.4.3. Cơ chế xử lý dữ liệu sau tiến trình khai phá
Sau tiến trinh khai phá cơ sở dữ liệu sử dụng đối tƣợng đại diện làm tham số đầu vào của bào toán, kết quả thu đƣợc của bài toán là hai nhóm cụm dữ liệu “bình thƣờng” và “bất thƣờng”. Dữ liệu sau khi khai phá đƣợc biểu diễn dƣới dạng bảng gồm các trƣờng thuộc tính của thể hiện các mẫu bất thƣờng.
Hình 3.6: Biểu diễn kết quả mẫu bất thƣởng
3.5. Chƣơng trình Demo
Hệ thống đƣợc phát triển bằng ngôn ngữ C# trên môi trƣờng Microsoft Visual Studio. NET 2008, hệ điều hành Windows 32 bit.
Cấu hình máy để cài đặt:
Tốc độ CPU: 1.6 GHZ chạy tốt nhất với tốc độ 3.2 trở lên Dung lƣợng RAM: 1G chạy tốt nhất với RAM 4G
Không gian bộ nhớ: 1G chạy ổn định với không gian bộ nhớ 4G Thông tin chƣơng trình cài đặt:
Ngôn ngữ C #
Công cụ phát triển Microsoft Visual Studio 2008
Kiểu ứng dụng Ứng dụng trên nền Windows 32 bist Hệ điều hành Windows 32 bit
Môi trƣờng hoạt động MS. Net Framework 4.0 Cơ sở dữ liệu Microsoft SQL 2008 Kết nối cơ sở dữ liệu ADO.NET
3.5.1. Giao diện chính của chƣơng trình
Hình 3.7: Giao diện menu chính Chức năng của các thành phần nhƣ sau:
+Chọn File: Cho phép chọn File dữ liệu thô đầu vào cho bài toán là File có dạng .txt hoặc .Log để khai phá, File khai phá theo ngƣỡng số kết nối từ một RemoteHost tới LocalHost trong một cửa số thời gian (mặc định 60s).
+Làm lại: cho phép chọn lại file khác để thực hiện quá trình khai phá từ đầu. +HTTP: cho phép mở ra một giao diện khai phá dữ liệu dƣới dạng giao thức kết nối là HTTP.
+KP tự động: cho phép mở ra một giao diện khai phá tự động sau một khoảng thời gian tùy chọn.
+Gom dữ liệu: thực hiện công việc đọc file dữ liệu thô đƣợc chọn sau đó lƣu dữ liệu vào bảng TCP trong CSDL và thực hiện các thao tác chuyển đổi một số thuộc tính từ dạng văn bản sang dạng số để tham chiếu.
+Tiền xủa lý: cho phép mở ra một giao diện tiền xử lý dữ liệu thô đầu vào vừa chọn cho đầu vào bài toán.
+Thoát: cho phép thoát hỏi chƣơng trình
3.5.2. Giao diện HTTP
Hình 3.8: Giao diện khai phá giao thức HTTP Chức năng của các thành phần nhƣ sau:
+Chọn file Khai phá: chọn file dữ liệu thô đầu vào cho bài toán file.txt hoặc file.log, file khai phá theo dấu hiệu bất thƣờng trên giao thức HTTP.
+Chọn bảng trong cơ sở dữ liệu TCP: cho phép khai phá dữ liệu trên bảng CSDL TCP vừa thực hiện sau tiến trình Gom cụm.
+Cửa sổ thời gian: cho phép chọn khoảng thời gian khai phá mặc định là 60s +HTTP: cho phép khai phá theo dấu hiệu bất thƣờng trên giao thức HTTP dựa theo ngƣỡng kết nối và kích thƣớc của cách Request theo giao thức HTTP.
+Tất cả các giao thức: cho phép khai phá dữ liệu dựa trên mẫu bất thƣờng là số các Request của tất cả các giao thức kết nối.
+Khai phá: thực hiện chức năng khai phá dữ liệu thỏa mãn các thông số tùy chọn.
+Thực hiện lại: cho phép chọn lại các thông số tùy chọn để thực hiện khai phá. +Form main: cho phép kết thúc quá trình khai phá và trở về giao diện Form main.
+Thoát: thoát khỏi chƣơng trình.
3.5.3. Giao diện tự động
Hình 3.9: Giao diện khai phá dữ liệu tự động Chức năng của các thành phần nhƣ sau:
+Chọn file dữ liệu khai phá: chọn file dữ liệu thô đầu vào cho bài toán.
+Chọn cửa sổ thời gian: chọn cửa sổ thời gian thực hiện khai phá chƣơng trình sẽ tự động khai phá sau một khoảng thơig gian tùy chọn.
+Mốc thời gian bắt đầu khai phá: chọn mốc thời gian bắt đầu khai phá, có thể lấy mốc thời gian thực của hệ thống đang sử dụng.
+Xét theo số Request đến: cho phép chọn ngƣỡng là số lần kết nối đến một LocalHost trên một cửa sổ thơi gian mặc định là 60 s
+Xét theo dấu hiệu của giao thức HTTP: ta phải chọn các ngƣỡng đầu vào mẫu bất thƣờng là kích thƣớc Request và ngƣỡng kết nối.
+Kết quả: hiển thị kết quả quá trình khai phá
+Stop: tạm dừng tạm thƣời việc khai phá dữ liệu và bảo lƣu trang thái của chƣơng trình.
+Làm lại: cho phép thực thi khai phá tự động lại từ đầu với các thông số tùy chọn mới.
+Quay về: dừng quá trình khai phá tự động và trở lại Form main. +Thoát: thoát khỏi chƣơng trình.
3.5.4. Giao diện tiền xử lý
Hinh 3.10: Giao diện tiền xử lý dữ liệu Chức năng của các thành phần nhƣ sau:
+Thời gian xử lý: tùy chọn khoảng thời gian để xử lý mặc định 60 s
+Tiền xử lý: đọc dữ liệu đầu vào và lƣu vào bảng TCP trong CSDL, đồng thừoi chuyển đổi một số trƣờng từ dạng văn bản sang dạng số cho phù hợp với đầu vào của thuật toán.
+Khai phá: mở ra giao diện khai phá với ngƣỡng đầu vào là số kết nối từ một RemoteHost tới LocalHost trong một cửa sổ thời gian tùy chọn.
+Kết quả: hiển thị kết quả cảu quá trình tiền xử lý.
3.5.5. Giao diện Khai phá dữ liệu
Hình 3.11: Giao diện Khai phá dữ liệu dựa trên ngƣỡng kết nối Chức năng của các thành phần nhƣ sau:
+Số lần kết nối: ngƣỡng đầu vào là số lần kết nối từ một RemoteHost tới một LocalHost trên một của sổ thời gian.
+Kết quả KP: hiển thị kết quả khai phá đƣợc là các cụm bất thƣờng, kết quả nhận đƣợc phụ thuộc vào ngƣỡng đầu vào cảu bài toán.
+Tiền xử lý DL: cho phép quay lại cửa sổ Tiền xử lý để thực hiện lại quá trình tiền xử lý cho phù hợp.
+Thoát: thoát khỏi chƣơng trình.
3.6. Nhận xét bài toán KPDL
Ứng dụng đã sử dụng thuật toán phân cụm K-Medoids trong Khai phá dữ liệu, để phát hiện ra sự bất thƣờng trong cơ sở dữ liệu kết nối mạng. Từ đó đƣa ra các cảnh báo bằng cách hiển thị kết quả các cụm dữ liệu “bất thƣờng” từ cơ sở dữ liệu thu thập đƣợc cho nhà quản trị.
Với dữ liệu đầu vào của bài toán từ tập dữ liệu thô ghi lại dấu vết các kết nối mạng từ một “Localhost” với các phần còn lại của mạng, sau khi sử dụng các kỹ thuật trong khai phá dữ liệu và thuật toán phân cụm K-Medoids nhƣ: gom cụm dữ liệu, tiền xử lý dữ liệu, chuyển đổi dữ liệu phù hợp với đầu vào thuật toán yêu cầu,
khai phá dữ liệu để đạt đƣợc kết quả đầu ra của bài toán là cụm dữ liệu “bất thƣờng” để cảnh báo cho nhà quản trị mạng về độ an toàn của hệ thống mạng.
Nhƣ vậy với việc kết hợp bài toán ứng dụng khai phá cơ sở dữ liệu, để tìm ra các cụm dữ liệu “bất thƣờng” trong cơ sở dữ liệu mạng đƣợc ghi nhận lại bởi việc sử dụng một hệ thống có độ tin cậy đã đƣợc kiểm nhiệm và công nhận nhƣ: TCPdum trên nền hệ điều hành *NIX, Windump trên nền hệ điều hành Windows. Ƣng dụng đã giải quyết đƣợc vấn đề của bài toán đặt ra sử dụng kỹ thuật khai phá dữ liệu để phát hiện ra cum dữ liệu “ bất thƣờng” trong cơ sở dữ liệu mạng, từ đó đƣa ra cảnh báo bất thƣờng về mạng cho nhà quản trị.