Tuy nhiên, để phát hiện được các cuộc tấn cơng hay xâm nhập hệ thống máy tính thơng thường ta dựa vào trạng thái của máy chủ đĩ trong mạng, nhưng để nhận biết hệ thống mạng bình thường h
Trang 1MỞ ĐẦU Tĩm lược đề tài
Ngày nay Internet đã trở thành một phần khơng thể thiếu của đời sống
xã hội Việc học tập, kinh doanh, vui chơi giải trí, liên lạc và trao đổi thơng tin trên mạng đã trở thành những hành động thường ngày của con người, khả năng kết nối trên tồn thế giới đang mang lại thuận tiện cho tất cả mọi người, đặc biệt với sự hỗ trợ của máy tìm kiếm Google chúng ta cĩ thể tìm kiếm được mọi thứ trên Internet khi chúng ta cần Bên cạnh những thuận lợi đĩ, chúng ta phải đối mặt với những nguy cơ như mất trộm thơng tin trên mạng, mua bán thơng tin cá nhân gây ảnh hưởng đến tính riêng tư, những vụ lừa đảo, tấn cơng từ chối dịch vụ gây ảnh hưởng đến hoạt động kinh doanh cho các cơng ty và gây phiền hà cho người sử dụng internet…làm cho việc bảo mật trên mạng luơn là vấn đề nĩng và được quan tâm đến mọi thời điểm
Các giải pháp bảo mật luơn được chú trọng và cĩ những đĩng gĩp lớn trong việc hạn chế và ngăn chặn những xâm nhập mạng trái phép, ví dụ: firewall ngăn chặn các kết nối khơng đáng tin cậy, mã hĩa làm tăng độ an tồn cho việc truyên dữ liệu, các chương trình diệt virus với cơ sở dữ liệu liên tục cập nhật những loại virus mới Tuy nhiên, để phát hiện được các cuộc tấn cơng hay xâm nhập hệ thống máy tính thơng thường ta dựa vào trạng thái của máy chủ đĩ trong mạng, nhưng để nhận biết hệ thống mạng bình thường hay đang bị tấn cơng là việc làm cần phải cĩ sự đầu tư về nhân lực và tài chính
Các chuyên gia nghiên cứu đã sử những thuật tốn trong lĩnh vực Trí tuệ nhân tạo để giải quyết vấn đề trên như: thuật tốn Markov ẩn, Nạve Bayesian, thuật tốn di truyền,….[2][5][18] và trong đĩ cĩ thuật tốn bản đồ tự tổ chức (Self Organizing Map - SOM) do Giáo sư Teuvo Kohonen người Phần Lan
đưa ra vào đầu những năm 80 cũng nghiên cứu về vấn đề này
Trang 2Hiện nay, ở các nước như: Nhật Bản, Mĩ, Phần Lan cũng có những đề tài nghiên cứu có ứng dụng bản đồ tự tổ chức SOM để xây dựng hệ thống cảnh báo phát hiện xâm nhập mạng, còn ở Việt Nam những đề tài nghiên cứu
về thuật toán bản đồ tự tổ chức như: Trường Đại học Công nghệ thông tin, Đại học Khoa học Tự nhiên Tp Hồ Chí Minh và khu Công nghệ phần mềm Đại học quốc gia Tp Hồ Chí Minh
Mục tiêu đề tài
Mục tiêu chính của luận văn tập trung nghiên cứu một số vấn đề sau:
- Tấn công từ chối dịch vụ (Denial of Service – DoS)
- Hệ thống cảnh báo xâm nhập mạng (Intrusion Detection System –
IDS)
- Lý thuyết về thuật toán “bản đồ tự tổ chức” SOM
- Cài đặt công cụ cảnh báo tấn công với ứng dụng thuật toán “Bản đồ tự
tổ chức” SOM nhằm cảnh báo tấn công DoS qua hành vi đã biết
Nội dung đề tài
Những nội dung thực hiện để đạt mục tiêu của luận văn là:
- Nghiên cứu hệ thống cảnh báo phát hiện xâm nhập IDS thông qua thầy cô, giáo viên hướng dẫn, qua kiến thức đã học, qua sách báo và internet
để tìm hiểu cơ chế và hoạt động của một IDS từ đó đề xuất một công cụ cảnh báo tấn công DoS được thiết kế trên hệ điều hành mã nguồn mở Linux
- Nghiên cứu các kiểu tấn công từ chối dịch DoS, để có thể hiểu sâu về các cuộc tấn công từ chối dịch vụ và tấn công từ chối dịch vụ phân tán, cách thức làm việc của một Attacker khi tấn công mục tiêu, mục đích ý nghĩa của các pha tấn công, để có các phương pháp ngăn chặn tấn công và có những biện pháp xử lí kịp thời nếu hệ thống mạng vô tình là mục tiêu của attacker
- Nghiên cứu thuật toán bản đồ tự tổ chức SOM
Trang 3- Xây dựng Lab thử nghiệm tấn công từ chối dịch vụ, xác định những ảnh hưởng của tấn công từ chối dịch vụ DoS qua hệ thống mạng ảo
- Cài đặt cộng cụ cảnh báo tấn công DoS
Phạm vi ứng dụng
Đề tài: “Ứng dụng công nghệ bản đồ tự tổ chức (Self Organizing Map - SOM) nhằm phát hiện tấn công từ chối dịch vụ DoS qua hành vi”
có thể được ứng dụng đưa ra cảnh báo tấn công giúp các tổ chức, cá nhân, các
cơ quan và doanh nghiệp phát hiện được các cuộc tấn công từ chối dịch vụ DoS
Những đóng góp của luận văn
Các đóng góp của luận văn là:
- Giới thiệu hệ thống phát hiện xâm nhập IDS hiện có
- Giới thiệu và phân loại tấn công từ chối dịch vụ DoS
- Phân tích thuật toán “Bản đồ tự tổ chức” SOM và ứng dụng vào quá trình học các tấn công đã biết để khi có xảy ra tấn công tương tự thì cảnh báo đến người quản trị hệ thống
- Thiết kế một công cụ cảnh báo tấn công từ chối dịch vụ DoS trên hệ điều hành mã nguồn mở Linux
Cấu trúc của luận văn:
Luận văn gồm các thành phần chính như sau:
MỞ ĐẦU
Chương 1: TỔNG QUAN VỀ IDS VÀ DoS
Chương này trình bày tổng quan về: Hệ thống phát hiện xâm nhập IDS; Giới thiệu chung về mạng neuron nhân tạo và tấn công từ chối dịch vụ DoS
Trang 4Chương 2: CƠ SỞ LÝ THUYẾT: THUẬT TOÁN BẢN ĐỒ TỰ TỔ CHỨC (Self Organizing Map - SOM)
Trình bày tổng quan, kiến trúc, thuật toán và một số ưu điểm, nhược điểm của thuật toán SOM
Chương 3: XÂY DỰNG CÁC VECTOR HUẤN LUYỆN và XÁC ĐỊNH CÁC ĐẶC TRƯNG HỆ THỐNG
Nội dung của chương này trình bày về cách thức lấy thông tin qua Procfile trên hệ điều hành Linux Từ các thông tin đó, chúng ta chọn ra các vector huấn luyện đặc trưng nhất của hệ thống và cách thức lấy vector huấn luyện; giới thiệu thuật toán xây dựng các tham số đặc trưng, cách thức gán trọng số và chuẩn hóa các đặc trưng đã đề xuất
Chương 4: THIẾT KẾ VÀ CÀI ĐẶT THỬ NGHIỆM
Chương này trình bày mục tiêu và tổng quan mô hình đề xuất, thử nghiệm hệ thống phát hiện tấn công IDS với cách tấn công từ chối dịch vụ DoS đã biết trước Từ đó, đưa ra một số nhận xét đánh giá về IDS đề xuất
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
DANH MỤC TÀI LIỆU THAM KHẢO
PHỤ LỤC
Trang 5Chương 1 TỔNG QUAN VỀ IDS VÀ DoS Trong chương này trình bày tổng quan về: Hệ thống phát hiện xâm nhập IDS; Mạng neuron nhân tạo và kĩ thuật tấn công từ chối dịch vụ DoS 1.1 Giới thiệu về hệ thống phát hiện xâm nhập IDS
1.1.1 IDS là gì?
IDS là một hệ thống phòng chống, nhằm phát hiện các hành động tấn công vào một mạng Mục đích của nó là phát hiện các hành động phá hoại đối với vấn đề bảo mật hệ thống, hoặc những hành động trong tiến trình tấn công như sưu tập, quét các cổng
IDS có thể cung cấp thông tin nhận biết về những hành động bất thường và đưa ra các cảnh báo thông báo cho nhà quản trị mạng khóa các kết nối đang tấn công này Thêm vào đó công cụ IDS cũng có thể phân biệt giữa những cuộc tấn công từ bên trong tổ chức (từ chính nhân viên hoặc khách hàng) và tấn công bên ngoài (tấn công từ hacker)
IDS có thể giám sát và phát hiện các lạm dụng tài nguyên hệ thống như quét mạng, tấn công DoS, các hành vi truy cập các dịch vụ của hệ thống mạng một cách trái phép
1.1.2 Phân loại hệ thống phát hiện xâm nhập mạng IDS
Có 2 loại IDS là Network based IDS (NIDS) và Host based IDS (HIDS)
Hệ thống phát hiện xâm nhập mạng (Network based IDS – NIDS): Được đặt giữa kết nối hệ thống mạng bên trong và bên ngoài để giám sát toàn bộ lưu lượng mạng vào ra Có thể là thiết bị phần cứng riêng biệt được thiết lập sẵn hay phần mềm cài đặt trên máy tính Chỉ dùng để đo lưu
lượng mạng được sử dụng, nếu phát hiện dấu hiệu “bất thường” NIDS có thể
phản ứng lại bằng cách ghi hiện trạng, cảnh báo nhà quản trị, chấm dứt phiên
Trang 6làm việc và có thể đưa vào tường lửa [7] Tuy nhiên, có thể xảy ra hiện tượng nghẽn cổ chai khi lưu lượng mạng hoạt động ở mức cao
Ưu điểm: Giám sát được lưu lượng mạng, các kết nối trong mạng Nhược điểm: Khó quan sát được nội dung các gói dữ liệu mạng đã được mã hóa, đồng thời cũng không thể biết được những gì đang diễn ra tại các máy tính trong mạng
Hệ thống phát hiện xâm nhập máy chủ (Host based IDS – HIDS):
Được cài đặt cục bộ trên một máy tính làm cho nó trở nên linh hoạt hơn nhiều so với NIDS, kiểm soát lưu lượng vào ra trên một máy tính, có thể được triển khai nhiều máy tính trong hệ thống mạng, HIDS có thể được cài đặt trên nhiều dạng máy khác nhau như máy chủ, máy trạm hay máy xách tay HIDS cho phép ta thực hiện một cách linh hoạt trong các đoạn mạng mà NIDS không thể thực hiện được, lưu lượng đã gửi tới máy tính HIDS được phân tích
và chuyển qua nếu chúng không chứa mã nguy hiểm HIDS được hoạt động chủ yếu trên hệ điều hành windows, mặc dù vậy vẫn có các sản phẩm hoạt động trong nền Unix và nhiều hệ điều hành khác
Như vậy, khi kết hợp của NIDS và HIDS sẽ cung cấp sự bảo mật hiệu quả đối với hệ thống mạng máy tính, máy chủ và máy trạm
Ưu điểm: Cài đặt trên nhiều dạng máy tính: xách tay, máy trạm, máy chủ
Phân tích lưu lượng mạng rồi mới forward
Giám sát được những hiện thực đang diễn ra trên máy tính
Nhược điểm: Không biết được trạng thái hoạt động của toàn mạng theo phương thức này, người quản trị khó có thể phát hiện xâm nhập theo thời gian thực
Trang 7Hình 1.1: Vị trí của IDS trong mạng
1.2 Giới thiệu mạng neuron:
1.2.1 Mạng neuron nhân tạo là gì?
Định nghĩa: Mạng neuron nhân tạo, Artificial Neuron Network (ANN) gọi tắt là mạng neuron, neuron network, là một mô hình xử lí thông tin phỏng
theo cách xử lý thông tin của các hệ neuron sinh học Nó được tạo nên từ các
số lượng các phân tử (gọi là phần tử xử lý hay neuron) kết nối với nhau thông qua các liên kết (gọi là trọng số liên kết) làm việc như một thể thống nhất để
giải quyết một vấn đề cụ thể nào đó
Một mạng neuron nhân tạo được cấu hình cho một ứng dụng cụ thể
(nhận dạng mẫu, phân loại dữ liệu,…) thông qua một quá trình học từ tập các
mẫu huấn luyện Về bản chất học chính là quá trình hiệu chỉnh trọng số liên kết giữa các neuron
1.2.2 Kiến trúc mạng neuron
Kiến trúc mạng truyền thẳng (feedforward architechture): là kiểu
kiến trúc mạng không có các kết nối ngược trở lại từ các neuron đầu ra về các neuron đầu vào; mạng không lưu lại các giá trị output trước và các trạng thái kích hoạt của neuron Các mạng neuron truyền thẳng cho phép tín hiệu di chuyển theo một đường duy nhất; từ đầu vào tới đầu ra, đầu ra của một tầng
Trang 8bất kì sẽ không ảnh hưởng tới tầng đó Các mạng kiểu perceptron là mạng truyền thẳng
Hình 1.2: – Mạng truyền thẳng
Kiến trúc mạng phản hồi (feedback architechture): là kiểu kiến trúc
mạng có các kết nối từ neuron đầu ra tới neuron đầu vào Mạng lưu các trạng thái trước đó, và trạng thái tiếp theo không chỉ phụ thuộc vào các tín hiệu đầu vào mà còn phụ thuộc vào các trạng thái trước đó của mạng Mạng hopfield thuộc loại này
Hình 1.3 – Mạng kiến trúc phản hồi
Trang 91.2.3 Các hệ học máy
1.2.3.1 Học máy là gì? [2]
Học là quá trình thay đổi hành vi của các vật theo một cách nào đó làm cho chúng có thể thực hiện tốt hơn trong tương lai khi gặp những tình trạng tương tự
Một quá trình mà một chương trình máy tính cải thiện hiệu suất của nó trong một công việc thông qua kinh nghiệm
Việc lập trình các máy tính để tối ưu hóa một tiêu chí hiệu suất dựa trên các dữ liệu ví dụ hoặc kinh nghiệm quá khứ
Học làm gì ?
- Học là cần thiết trong những môi trường chưa quen thuộc
- Học là một phương pháp hữu hiệu để xây dựng hệ thống
- Học là cách để các chương trình thông minh có thể hiệu chỉnh hành vi
để tăng hiệu quả giải quyết vấn đề
Học khi nào ?
- Tri thức con người chưa đủ (Ví dụ: Trên sao hỏa)
- Con người không đủ khả năng giải thích (nhận dạng giọng nói, nhận dạng chữ viết, nhận dạng khuôn mặt người,…)
- Lời giải thay đổi theo thời gian (routing on a computer network)
- Lời giải cần thích nghi trong từng trường hợp cụ thể (sinh vật học)
Một mạng neuron được huấn luyện (hay là học) sao cho một tập các
vector đầu vào X, mạng có khả năng tạo ra tập các vector đầu ra mong muốn
Y của nó Tập X được sử dụng cho huấn luyện mạng được gọi là tập huấn
Trang 10luyện (training set) Quá trình huấn luyện bản chất là sự thay đổi các trọng số liên kết của mạng Trong quá trình này, các trọng số của mạng sẽ hội tụ dần tới các giá trị sao cho với mỗi vector đầu vào x từ tập huấn luyện, mạng sẽ cho ra vector đầu ra y như mong muốn
Có ba phương pháp học phổ biến là học có giám sát (supervised learning), học không có giám sát (unsupervised learning) và học tăng cường (Reinforcement learning)
1.2.3.2 Học có giám sát
Là quá trình học có sự tham gia giám sát của một “thầy giáo”, cũng như việc ta dạy một em nhỏ các chữ cái Ta đưa ra một chữ cái và bảo với em đó rằng đây là chữ “a” Việc này được thực hiện trên tất cả các mẫu chữ cái Sau
đó khi kiểm tra ta sẽ đưa ra một chữ cái bất kì (có thể viết hơi khác đi) và hỏi
Như vậy học có giám sát, số lớp cần phân loại đã được biết trước Nhiệm vụ của thuật toán là phải xác định được một cách thức phân lớp sao cho với mỗi vector đầu vào sẽ được phân loại chính xác vào lớp của nó
1.2.3.3 Học không có giám sát
Là việc học không cần có bất kì một sự giám sát nào
Trang 11Trong bài toán học không giám sát, tập dữ liệu huấn luyện được cho dưới dạng: D = {x1,x2,…,xN}, với (x1,x2,…,xN) là vector đặc trưng của mẫu huấn luyện Nhiệm vụ của thuật toán là phải phân chia tập dữ liệu D thành các nhóm con, mỗi nhóm chứa các vector đầu vào có đặc trưng giống nhau
Như vậy với học không giám sát, số lớp phân loại chưa được biết trước
và tùy theo tiêu chuẩn đánh giá độ tương tự giữa các mẫu mà ta có thể có các
lớp phân loại khác nhau
1.3 Kỹ thuật tấn công, xâm nhập
Một hệ thống mạng khi bị hacker tấn công nó sẽ chiếm một lượng lớn tài nguyên trên máy chủ như dung lượng ổ cứng, bộ nhớ, CPU, băng thông,…lượng tài nguyên này tùy thuộc vào khả năng huy động tấn công của mỗi người tấn công, khi đó, máy chủ sẽ không thể đáp ứng hết những yêu cầu
từ những máy trạm của những người sử dụng, từ đó máy chủ có thể nhanh chóng bị ngưng hoạt động, hư hỏng hoặc khởi động lại
Có rất nhiều kĩ thuật tấn công vào hệ thống mạng như: Ping of Death, Teardrop, Smurf Attack, UDP/ICMP flooding, TCP/SYN flooding, Attack DNS, Trojans, Backdoor, sniffer, SQL injection,…
Theo [15] hầu hết các công cụ xâm nhập thường khai thác các điểm yếu
Trang 12- Cấu hình sai: Hệ thống có thể bị cấu hình sai hay cấu hình ở mức bảo mật thấp nhằm tăng tính dễ sử dụng cho người dùng
Mục tiêu của kẻ tấn công:
Mục tiêu chính của hacker là làm sao để khai thác được 4 đặc tính về bảo mật ?
+ Tấn công bị động: là cố gắng thu thập thông tin từ hoạt động của hệ thống và hoạt động của mạng làm phá vỡ tính bí mật của dữ liệu
Dựa vào nguồn gốc tấn công có thể phân loại tấn công làm hai loại: tấn công từ bên trong và tấn công từ bên ngoài
+ Tấn công từ bên trong: đó là người tấn công ở bên trong hệ thống mạng, người đó muốn truy cập, lấy thông tin nhiều hơn quyền cho phép
+ Tấn công từ bên ngoài: là tấn công từ bên ngoài hay các kết nối truy cập từ xa
Trang 131.4 Tấn công từ chối dịch vụ DoS
1.4.1 Khái niệm
Tấn công từ chối dịch vụ DoS là một cuộc tấn công thực hiện từ một người hoặc một nhóm người nào đó đến hệ thống mục tiêu Khi cuộc tấn công xảy ra, trên hệ thống bị tấn công, người dùng không thể truy xuất dữ liệu hay thực hiện bất kỳ một công việc nào
1.4.2 Mục đích
Mục đích của tấn công từ chối dịch vụ là không cho phép ủy quyền truy cập đến máy hoặc dữ liệu, ngăn chặn các người dùng hợp pháp truy cập dịch
vụ của hệ thống
Khi tấn công, Attacker có thể thực hiện các công việc sau:
- Cố gắng làm ngập hệ thống, ngăn chặn các giao thông mạng hợp lệ
- Phá vỡ các kết nối giữa hai máy, ngăn chặn các truy cập đến dịch vụ
- Ngăn chặn các thiết lập đặc biệt đến dịch vụ
- Phá vỡ hệ thống của một người hoặc một hệ thống chỉ định
1.4.3 Ảnh hưởng của tấn công từ chối dịch vụ DoS
1.4.3.1 Ảnh hưởng
- Mạng mục tiêu bị vô hiệu hóa
- Vô hiệu hóa việc tổ chức
- Ảnh hưởng đến uy tín và tài chính của tổ chức bị tấn công
1.4.3.2 Phương thức
+ Khi cuộc tấn công xảy ra sẽ:
- Làm khan hiếm, giới hạn và không thể phục hồi tài nguyên
- Ảnh hưởng đến băng thông, bộ nhớ, không gian đĩa, CPU và cấu trúc
dữ liệu
Trang 14- Không thể truy cập đến các máy tính khác và mạng
+ Phá hủy, thay thế các thông tin cấu hình
Trang 15Chương 2 CƠ SỞ LÝ THUYẾT: THUẬT TOÁN BẢN ĐỒ TỰ TỔ
CHỨC (Self Organizing Map - SOM) Trình bày tổng quan, kiến trúc, thuật toán và một số ưu điểm, nhược điểm của thuật toán SOM
2.1 Giới thiệu
Bản đồ tự tổ chức (Self – Organizing – Map) được viết tắt là SOM, là
một phần của mạng neuron nhân tạo và là kĩ thuật trực quan hóa dữ liệu Mô
hình này do Giáo sư người Phần Lan tên là Teuvo Kohonen đề xuất đầu tiên vào năm 1980, và được gọi là mạng Kohonen hay là bản đồ Kohonen [6]
Thuật giải xây dựng mạng Kohonen để lưu trữ thông tin và là cách duy trì của các quan hệ hình học bên trong tập huấn luyện, thuật toán phân loại dữ
Trang 16liệu huấn luyện mà không cần bất cứ sự giám sát nào bên ngoài so với giải
thuật học có giám sát truyền thống Do đó, SOM còn được xem là một giải thuật học không giám sát
2.2 Cấu trúc mạng Kohonen
Mạng Kohonen là mạng truyền thẳng là một phần của mạng neuron nhân tạo, các đơn vị cơ bản của SOM là các neuron.Trong bản đồ SOM tùy thuộc neuron nằm ở lớp nào mà cấu trúc của nó có thể khác nhau Một cách hình thức, SOM có hai lớp: lớp đầu vào (input layer) và lớp đầu ra Kohonen
Lớp Kohonen tương tự giống như vỏ não, nếu một neuron trong vỏ não được kích thích bởi tác nhân nào đó, các neuron trong vùng cũng được kích thích, các neuron trong lớp Kohonen được tổ chức thành một không gian n chiều, với n được gọi là số chiều của bản đồ SOM
Ví dụ:
n = 2, Mạng Kohonen là một ma trận các neuron gồm p hàng và q cột Mỗi nút có một cấu hình mạng cụ thể (tọa độ x, y trong bản đồ), nếu dữ liệu huấn luyện chứa vector x-n chiều (x1, x2,…,xn) thì mỗi nút sẽ chứa vector trọng số tương ứng mi(t) tương ứng cũng có n chiều (m1, m2,…,mn)
Số lượng các chiều đầu vào thường nhiều hơn rất nhiều so với chiều của bản đồ, SOM được sử dụng chính cho việc giảm chiều hơn là tăng chiều
Trang 17Hình 2.2: Mô hình mạng Kohonen đơn giản
2.3 Thuật toán
Mục tiêu của việc học trong “Bản đồ tự tổ chức”: là co kéo các neuron trong bản đồ SOM để gom nhóm các neuron tương tự với các mẫu đầu vào nào đó
Từ một giá trị (hay phân phối) khởi tạo của các trọng số ngẫu nhiên và
qua nhiều lần lặp một SOM cuối cùng bố trí trong một bản đồ các vùng ổn
định Mỗi vùng thực sự là một phân loại đặc trưng Do đó, ta có thể xem hình kết quả như một dạng bản đồ đặc trưng của không gian đầu vào
Quá trình huấn luyện diễn ra trong một số bước qua nhiều lần lặp: Bước 1: Khởi tạo mỗi trọng số của nút
Bước 2: Một vector được chọn ngẫu nhiên trong tập huấn luyện và đưa vào cho bản đồ
Trang 18Bước 3: Mỗi nút được kiểm tra và tính toán xem trọng số của nút nào gần giống nhất với vector đầu vào Nút chiến thắng thường được biết như một đơn vị phù hợp nhất (Best Matching Unit - BMU)
Bước 4: Bán kính lân cận của BMU được tính, giá trị lúc đầu lớn, thường được đặt là bán kính của bản đồ, nhưng giảm dần sau mỗi bước Mỗi nút trong bán kính đó được cho rằng nằm trong lân cận của BMU
Bước 5: Các trọng số của mỗi nút láng giềng (các nút được tìm thấy trong bước 4) được điều chỉnh cho giống với các vector đơn vị hơn Các nút càng gần BMU, các trọng số của nó càng thay đổi nhiều hơn
Bước 6: Lặp lại từ bước 2 với n lần lặp
Quá trình được lặp lại cho mỗi vector đầu vào, cho nhiều chu kì khác nhau (thường rất lớn)
Hình 2.3: Mô hình ma trận đầu ra và mô hình thử nghiệm
Trang 19*-Quá trình học của SOM gồm hai pha chính: Đó là pha cạnh tranh và
sự cộng tác
Pha 1: Cạnh tranh
Mỗi nút được kiểm tra và tính toán xem trọng số của nút nào gần giống nhất với vector đầu vào Nút chiến thắng thường được biết như một đơn vị phù hợp nhất (Best Matching Unit - BMU)
Pha 2: Sự cộng tác
Các trọng số của mỗi nút láng giềng với nút chiến thắng được điều chỉnh theo một hàm lân cận cho trước, các nút càng gần BMU, các trọng số của nó càng thay đổi nhiều hơn
2.4 Chi tiết thuật toán
sẽ được chọn
Thuật toán tìm BMU được thực hiện như sau:
Duyệt tất cả các nút và tính khoảng cách Euclide giữa vector trọng số của mỗi nút và vector đầu vào hiện hành theo công thức sau:
2 0
Trong đó: xi là tọa độ của vector đưa vào huấn luyện
mi là tọa độ của neuron
Trang 20Nút có vector trọng số gần với giá trị của vector đầu vào (khoảng cách Euclide nhỏ nhất) sẽ được chọn là BMU
2.4.3 Xác định vùng lân cận cục bộ của BMU
Trong mỗi vòng lặp, sau khi BMU được xác định Bước tiếp theo thực hiện việc tính toán trên các nút để xây dựng lại tập các phần tử lân cận của BMU Các vector trọng số của các phần tử lân cận này sẽ được cập nhật ở bước tiếp theo
Đầu tiên ta tính bán kính của vùng lân cận, sau đó sẽ biết được các nút nằm trong vùng lân cận đó, đặc tính duy nhất của thuật toán học Kohonen là
vùng lân cận của BMU được xây dựng trên vector khoảng cách sẽ được co lại sau một lần lặp nhất định
Phép co được thực hiện theo hàm mũ nội suy của phép co như sau:
0
t ( )t exp(- )
λ
= , t = 1, 2, 3,… (2.2)
Trong đó:
t: là bước lặp hiện tại
σ : bán kính lân cận tại thời điểm t
σ0 : bán kính lân cận tại thời điểm t0Tại thời điểm ban đầu, bán kính của bản đồ được tính bởi công thức sau : với width, height tương đương là chiều rộng và chiều cao của mạng Kohonen
Trang 210 log
: vectơ đầu vào được chọn ở lần lặp thứ t
hc(x),i(t) : hàm lân cận BMU
Với c là chỉ mục của BMU thỏa điều kiện sau:
||x(t)-mc(t)|| ≤ ||x(t)-mi(t)||, ∀ =i 1,n (2.6)
Biểu thức trên cho thấy trọng số của một nút sau khi hiệu chỉnh chính
là giá trị trọng số cũ mi(t) của nó cộng thêm phần giá trị khác biệt giữa trọng
Trang 22( )
2 2 exp
2
r r t
Ý tưởng chính là lượng học giảm dần theo khoảng cách thỏa mãn tốc
độ học (hàm nội suy Gaussian)
tỷ lệ nghịch với thời gian (giảm theo thời gian) Chúng ta thường dùng các hàm tốc độ học α(t) như sau :
Theo [21,tr10], Ta có hàm tốc độ học như sau :
Trang 23- Hàm mũ (Exponential):
( ) 0
0 0.005
t T
α
+
Với T: tổng số lần huấn luyện
t: bước huấn luyện thứ t
: tốc độ học ban đầu Canh lại
Ví dụ : Cho = 0.5, T = 100, ta có biểu đồ của các hàm trên như sau:
Hình 2.5 : Biểu đổ các hàm tốc độ học
Trang 24Thuật toán bản đồ tự tổ chức SOM :
+ Mô tả các vector huấn luyện
+ Mô tả các neuron ngẫu nhiên
+ Mô tả các neuron sau khi huấn luyện
- Lỗi lượng tử trung bình
- Thời gian học
+ Xây dựng thuật toán :
Bước 1 : Khởi tạo bước học đầu tiên t = 0 (t là số lần học)
Bước 2 : Khởi tạo ngẫu nhiên các neuron từ tập giá trị cho trước
Bước 3 : Chọn ngẫu nhiên vector xi từ tập dữ liệu đầu vào
Bước 4 : Tính khoảng cách Euclide từ vector xi đến các vector trọng số của những neuron trên bản đồ
Trang 25Bước 5 : Chọn neuron chiến thắng (BMU) là neuron có vector trọng số gần với vector xi nhất
Bước 6 : Cập nhật trọng số của các neuron trong bản đồ lân cận neuron chiến thắng bằng hàm lân cận nhân và hàm tốc độ học cho trước
Bước 7 : gán t = t + 1, nếu t > T hay lỗi lượng tử trung bình nhỏ hơn Epsilon thì DỪNG thuật toán, ngược lại lặp lại bước 3
xi : là tọa độ các vector huấn luyện
mc : là tọa độ các vector trọng số của BMU
2.6 Các phương pháp trực quan minh họa “Bản đồ tự tổ chức”
Để trực quan hóa kết quả của bản đồ tự chức, chúng ta có rất nhiều
cách mô hình hóa chúng như : tô màu, gán nhãn hay biểu đồ cột
Trang 26Hình 2.6 Ma trận U
Hình 2.7 Không gian điểm
Trang 27Hình 2.8 Biểu đồ cột với mỗi ô là một nơ-ron của “Bản đồ tự tổ chức”
Ngoài ra, còn có các dạng biểu đồ khác nhau như: Cấu trúc nhóm, mật
độ phân bố, nhóm dữ liệu,…
2.7 Phương pháp tìm ngưỡng cảnh báo
Nhằm đánh giá hệ thống phát hiện xâm nhập, chúng ta thường dùng các
độ đo như sau : độ chính xác (accuracy), độ truy hồi (recall), độ rõ ràng (precision)
True Negative (TN) : trường hợp mạng bình thường và không cảnh báo
True Positive (TP) : trường hợp mạng bị tấn công và có cảnh báo False Negative (FN) : trường hợp bị tấn công nhưng không cảnh báo False Positive (FP) : trường hợp mạng bình thường nhưng lại có cảnh báo
Trang 28TN TP A
TP FN
=
+ , với R là độ truy hồi (2.16)
TP P
TP FP
=
+ , với P là độ rõ ràng (2.17)
Muốn hệ thống cảnh báo tốt, chúng ta phải đảm bảo A, R, P cao
Để xác định được ngưỡng cảnh báo δ phù hợp phải thỏa điều kiện tỉ lệ
độ cảnh báo sai thấp Cảnh báo sai gồm hai loại :
False Negative (FN) : có tấn công nhưng ứng dụng không cảnh báo vì chưa đạt được đến ngưỡng cảnh báo cần thiết
False Positive (FP) : trong tình trạng bình thường nhưng ứng dụng vẫn cảnh báo là có tấn công do lưu lượng mạng bình thường này đạt đến ngưỡng cảnh báo
Nếu để ngưỡng cảnh báo thấp (hay bán kính IDS nhỏ) thì FN sẽ cao Ngược lại, nếu để ngưỡng cảnh báo cao (hay bán kính IDS lớn ) thì FP sẽ cao Như vậy, cần đưa ra ngưỡng cảnh báo hay bán kính IDS sao cho hệ thống có
Trang 29Sau đó, trong quá trình tấn công, chúng ta so sánh khoảng cách dx (từ những mẫu tấn công x đến neuron chiến thắng BMUx của chúng), với ngưỡng
x
δ của neuron BMUx, sao cho phù hợp (giá trị được thay đổi dựa vào quá trình
dò tìm thực tế và kinh nghiệm của người quản trị hệ thống)
2.8 Phát hiện tấn công ứng dụng “Bản đồ tự tổ chức”
Kiểm tra từng mẫu trong thời gian thực
For (x ∈ Mt) do // Mt tập hợp các tham số thu nhận được từ hệ thống For (wi∈ W) do //W tập hợp các neuron sau huấn luyện
Tính khoảng cách từ vector x đến tất cả các vector wi End For
dx = min d(x, wi) x
w và δxlà vector trọng số và ngưỡng của neuron chiến thắng khi dừng mẫu thử x
If (dx ≤ δx) then
x có tấn công Else
x không có tấn công
End if
2.9 Ưu điểm và nhược điểm
2.9.1 Ưu điểm
Giải thuật SOM được cài đặt tương đối đơn giản và dễ hiểu SOM được
sử dụng trong việc gom cụm các loại dữ liệu và trực quan hóa chúng trên các bản đồ nhằm đơn giản hóa quá trình khai thác và thu thập dữ liệu
Trang 30SOM là một công cụ khám phá dữ liệu hiệu quả Một trong các lí do đó
là nó dựa trên khái niệm rất đơn giản và sự trực quan hóa của nó rất dễ dàng Một số công trình đã đề xuất hướng mới để làm tăng các khả năng trực quan hóa của SOM trong các lĩnh vực gom nhóm, tìm kiếm sự liên quan,…
2.9.2 Nhược điểm
Bên cạnh những ưu điểm, SOM có một số những nhược điểm sau:
- Do sự khởi tạo ngẫu nhiên nên kết quả cuối cùng của bản đồ khác nhau
- Chi phí cho việc tính toán khá cao khi số chiều của dữ liệu tăng lên
Trang 31Chương 3 XÂY DỰNG CÁC VECTOR HUẤN LUYỆN và XÁC ĐỊNH
CÁC ĐẶC TRƯNG HỆ THỐNG Trong chương này trình bày về cách thức lấy thông tin qua Procfile trên
hệ điều hành Linux Từ các thông tin đó, chúng ta chọn ra các vector huấn luyện đặc trưng nhất của hệ thống và cách thức lấy các vector huấn luyện; giới thuật toán xây dựng các vector huấn luyện, cách thức gán trọng số và chuẩn hóa các đặc trưng đã đề xuất
3.1 Giới thiệu
Hệ thống bị tấn công từ chối dịch vụ DoS nó ảnh hưởng đến các tham
số nào trong hệ thống?, từ đó, có thể xác định các đặc trưng cho máy chủ như:
thông tin về bộ nhớ, CPU, Ram, số gói tin trên đơn vị thời gian, thông tin về tiến trình, luồng xử lí và những thông tin về dịch vụ mạng Khi xác định được
các đặc trưng đó, chúng ta có thể nhận biết được hệ thống mạng ở trạng thái nào? bình thường hay đang bị tấn công
Trong hệ thống mạng đối tượng cần bảo vệ là máy chủ, dịch vụ, tài nguyên hệ thống,…, chúng ta có thể nhận thấy các đặc trưng đó qua việc giám sát hệ thống mạng trong thời điểm hệ thống đó đang hoạt động Do đó,
để chọn các đặc trưng cho hệ thống máy chủ là một vấn đề rất khó
Theo [7,tr51], đã phân nhóm các tài nguyên chính của hệ thống máy chủ như sau:
+ Bộ nhớ máy chủ
+ Tài nguyên của bộ vi xử lí
+ Tài nguyên ổ đĩa lưu trữ
+ Tài nguyên mạng
Ngoài ra, để kiểm soát hệ thống máy chủ, chúng ta cần quan tâm đến một số tài nguyên khác như sau:
Trang 32Thống kê các thông tin của giao thức HTTP hay ở cổng giao dịch vụ :
21, 25, 441,
Thống kê các thông tin của những dịch vụ web
Thống kê các tài nguyên hệ thống máy chủ khác như: luồng (thread), tiến trình (process)
3.2 Tại sao cần phải quản lí bộ nhớ máy chủ
Không đủ bộ nhớ chúng ta gặp khó khăn trong quá trình xử lý của hệ thống máy chủ, nếu ta nghi ngờ một vấn đề khác, chúng ta nên kiểm tra bộ nhớ để tìm nguyên nhân thiếu bộ nhớ hay không
Quản lý bộ nhớ máy chủ để có thể ước lượng khả năng của bộ nhớ và mức độ phân trang và theo dõi ảnh hưởng của việc thiếu bộ nhớ Việc quản lý
bộ nhớ máy chủ có thể giúp chúng ta xác định những vấn đề có thể xảy ra:
- Những chỗ có thể tắc nghẽn bộ nhớ
- Không đủ bộ nhớ
- Thừa phân trang
- Bộ nhớ rò rỉ
- Phân trang và không phân trang Ram
- Lỗi phân trang lớn
Trang 33Các tham số bộ nhớ trong linux (“cat /proc/meminfo”) :
Ý nghĩa của các tham số :
MemTotal: Tổng dung lượng bộ nhớ có thể sử dụng
Trang 34MemFree: Dung lượng bộ nhớ vật lý chưa sử dụng trong hệ thống Buffers: Dung lượng bộ nhớ vật lý được sử dụng cho bộ nhớ đệm
Cache: Dung lượng bộ nhớ vật lý cache
SwapCache: Dung lượng bộ nhớ Swapcache
Active: Tổng dung lượng bộ nhớ đệm đang hoạt động
HighTotal: Tổng dung lượng bộ nhớ ở vùng địa chỉ cao
LowTotal: Tổng dung lượng bộ nhớ địa chỉ thấp
LowFree: Dung lượng bộ nhớ trống của vùng bộ nhớ địa chỉ thấp SwapTotal: Tổng dung lượng bộ nhớ vật lý swap
SwapFree: Tổng dung lượng trống của bộ nhớ vật lý swap
Dirty: Tổng dung lượng bộ nhớ đang đợi để ghi lại vào đĩa
Writeback: Tổng dung lượng bộ nhớ hoạt động được ghi vào đĩa
PageTables: Số lượng bộ nhớ dành riêng cho mức thấp nhất của các bảng trang
Committed_AS: Số lượng bộ nhớ ước lượng để phân bổ các ứng dụng trên hệ thống
Map: Tổng dung lượng bộ nhớ được sử dụng để vẽ bản đồ, các tập tin, hoặc sử dụng cho thư viện lệnh nmap
Slab: Tổng dung lượng bộ nhớ sử dụng riêng cho hạt nhân cấu trúc dữ liệu cache
3.3 Tài nguyên của bộ vi xử lí - CPU
Các tham số bộ vi xử lí trong hệ điều hành Linux là:
- Cpu: Dung lượng bộ xử lí trung tâm
Trang 35- Processes : Số lượng tiến trình kể từ khi khởi động
- Procs_running: Số các tiến trình trong trạng thái Runnable
- Procs_blocked: Số tiến trình bị chặn chờ đợi cho I/O để hoàn thành
- Loadavg: Tải trung bình trên bộ vi xử lý
- Load.for1min: % sử dụng bộ vi xử lý trong 1 phút cuối cùng
- Load.for5min: % sử dụng bộ vi xử lý trong 5 phút cuối cùng
- Load.for15min: % sử dụng bộ vi xử lý trong 15 phút cuối cùng
Hình 3.1 Tham số bộ vi xử lí
3.4 Tài nguyên ổ đĩa lưu trữ
Giám sát những ổ đĩa giữ cho hệ thống hoạt động hiệu quả Chúng ta cũng có thể dùng dữ liệu mà chúng ta thu thập được khi giám sát những ổ đĩa
để biết được có cần nâng cấp phần cứng, phần mềm trong tương lai
Sự tồn tại của hiện tượng tắt nghẽn ổ đĩa được nhận biết dựa vào các điều kiện sau:
- Duy trì tỉ lệ của hoạt động ổ đĩa trên ngưỡng cho phép
- Hàng đợi trên mỗi ổ đĩa lớn hơn 2 được duy trì lâu
Trang 36- Sự thiếu hụt nghiêm trọng số lượng phân trang
Làm thế nào xác định và giải quyết tình trạng tắc nghẽn trên ổ cứng
Tham số
Giới hạn trung bình chấp nhận được
Giá trị mong muốn
Cách giải quyết (nếu không đạt giá trị mong muốn)
% thời gian ổ đĩa
làm việc liên tục < 50% < 50%
Giám sát xem nếu vấn đề phân trang xảy ra Nâng cấp đĩa cứng
Chiều dài hàng đợi
Số lượng Byte trung
bình của ổ cứng/lần
vận chuyển
Vạch ranh giới hay thấp hơn Thấp hơn Nâng cấp đĩa cứng
Số lượng byte của ổ
cứng/giây
Vạch ranh giới hay thấp hơn Thấp hơn Nâng cấp đĩa cứng
Bảng 3.2 Tham số ổ cứng
3.5 Tài nguyên mạng
Tài nguyên mạng là tỉ lệ phần trăm của thông tin truyền mạng được dùng trong phân đoạn được giám sát
Thông tin truyền mạng được đo bằng nhiều cách khác nhau:
- Tỉ lệ số byte được vận chuyển đến và đi từ máy chủ
- Tỉ lệ những gói dữ liệu được gửi từ máy chủ Những gói dữ liệu này bao gồm: frames, những gói tin (packets), những phân đoạn (segments) và những datagrams
- Tỉ lệ số tập tin được gửi và nhận bởi máy chủ
Tại sao phải giám sát tài nguyên mạng ? Ứng dụng của việc giám sát này là phát hiện những hiện tượng tắc nghẽn mạng Hiện tượng tắc nghẽn mạng ảnh hưởng trực tiếp đến người sử dụng và cả hệ thống mạng Hiện
Trang 37tượng tắc nghẽn giới hạn số khách truy cập và đồng thời hạn chế truy xuất hệ thống máy chủ
Những nguyên nhân thường gặp sau:
- Hiện tượng quá tải ở máy chủ
- Hiện tượng mạng quá tải
Trang 38- Các đặc trưng về thông tin lưu trữ
- Các đặc trưng từ các tham số mạng
3.6.2 Danh sách các đặc trưng đề xuất trong cài đặt
Nhóm 1: Bộ nhớ máy chủ (Memory Usage): “/Proc/meminfo”
1 Memavg Trung bình dung lượng Ram đã dùng
cho các tiến trình
2 Buffers Dung lượng bộ nhớ Ram sử dụng
trong buffer cache
3 Cached Dung lượng bộ nhớ Ram sử dụng
7 Committed_AS Committed dung lượng bộ nhớ Ram
cung cấp cho hệ thống
Nhóm 2: Thời gian hệ thống: “/proc/uptime”
8 Uptime Số giây hệ thống đã chạy
9 Idletime Số giây idle hệ thống
Nhóm 3: Tài nguyên của bộ vi xử lí (Processor Usage): “/proc/stat” và
“/proc/net/sockstat”
10 For1min % CPU xử lí trong 1 phút cuối
11 For5min % CPU xử lí trong 5 phút cuối
12 For15min % CPU xử lí trong 15 phút cuối
13 Processes Số lượng tiến trình hệ thống
14 Procs_running Số tiến trình đang thực thi
15 Proc_blocked Số tiến trình đang bị khóa chờ I/O để
hoàn thành Nhóm 4: Gói tin TCP, ICMP và UPD : “/proc/net/snmp” và “/proc/net/dev”
16 ICMP Số lượng gói tin ICMP gởi tới máy
chủ
17 UDP Số lượng gói tin UDP gởi tới máy chủ
18 TCP Số lượng TCP kết nối tới máy chủ