Tải bản đầy đủ (.docx) (42 trang)

Phương pháp tiếp cận lai phát hiện tấn công SQL injection

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (734.6 KB, 42 trang )

HỌC VIỆN KỸ THUẬT MẬT MÃ
KHOA AN TOÀN THÔNG TIN

ĐỀ TÀI

PHƯƠNG PHÁP TIẾP CẬN LAI ĐỂ PHÁT HIỆN TẤN CÔNG
SQLI VÀ CÁC KỸ THUẬT TRÁNH NÉ TINH VI

HÀ NỘI, 2015

MỤC LỤC


Nghiên cứu ứng dụng của khai phá dữ liệu trong phát hiện tấn công Web

Page


DANH MỤC CÁC BẢNG

Nghiên cứu ứng dụng của khai phá dữ liệu trong phát hiện tấn công Web

Page


DANH MỤC CÁC HÌNH

Nghiên cứu ứng dụng của khai phá dữ liệu trong phát hiện tấn công Web

Page



LỜI MỞ ĐẦU
Sự phát triển của công nghệ thông tin và việc ứng dụng công nghệ thông tin
trong nhiều lĩnh vực của đời sống, kinh tế xã hội trong nhiều năm qua cũng đồng
nghĩa với lượng dữ liệu đã được các cơ quan thu thập và lưu trữ ngày một tích
luỹ nhiều lên. Họ lưu trữ các dữ liệu này vì cho rằng trong nó ẩn chứa những giá
trị nhất định nào đó. Tuy nhiên, theo thống kê thì chỉ có một lượng nhỏ của
những dữ liệu này (khoảng từ 5% đến 10%) là luôn được phân tích, số còn lại họ
không biết sẽ phải làm gì hoặc có thể làm gì với chúng nhưng họ vẫn tiếp tục thu
thập rất tốn kém với ý nghĩ lo sợ rằng sẽ có cái gì đó quan trọng đã bị bỏ qua sau
này có lúc cần đến nó. Các phương pháp quản trị và khai thác cơ sở dữ liệu
truyền thống không đáp ứng được kỳ vọng này, nên đã ra đời Kỹ thuật phát hiện
tri thức và khai phá dữ liệu (KDD - Knowledge Discovery and Data bMining).
Kỹ thuật phát hiện tri thức và khai phá dữ liệu đã và đang được nghiên
cứu, ứng dụng trong nhiều lĩnh vực khác nhau ở các nước trên thế giới, tại Việt
Nam kỹ thuật này tương đối còn mới mẻ tuy nhiên cũng đang được nghiên cứu
và dần đưa vào ứng dụng.
Ngày nay, các ứng dụng web ngày càng đóng một vai trò quan trọng đối
với mọi tổ chức. Điều này trở nên rõ ràng khi các ứng dụng web bị tấn công sẽ
làm ảnh hưởng nghiêm trọng đến các chức năng hoạt động của tổ chức. Trong
phạm vi của đề tài nghiên cứu này, nhóm xin được trình bày những kiến thức cơ
bản về khai phá dữ liệu và việc ứng dụng khai phá dữ liệu trong phát hiện tấn
công SQLi và các kỹ thuật tránh né tinh vi.
Nội dung nghiên cứu:
1. Tổng quan về khai phá dữ liệu
2. Nghiên cứu phương pháp lai phát hiện tấn công SQL injection và các kỹ
thuật tránh né tinh vi
Sau đây sẽ trình bày chi tiết các nội dung trên.

Nghiên cứu ứng dụng của khai phá dữ liệu trong phát hiện tấn công Web


Page


CHƯƠNG I: TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU
1.1. Tổng quan về khai phá dữ liệu [1]
Khai phá dữ liệu được định nghĩa là quá trình trích xuất các thông tin có giá
trị tiềm ẩn bên trong lượng lớn dữ liệu được lưu trữ trong các cơ sở dữ liệu, kho
dữ liệu. Cụ thể hơn đó là tiến trình trích lọc, sản sinh những tri thức hoặc những
mẫu tiềm ẩn, chưa biết nhưng hữu ích từ các cơ sở dữ liệu lớn. Đồng thời là tiến
trình khái quát các sự kiện rời rạc trong dữ liệu thành các tri thức mang tính khái
quát, tính qui luật hỗ trợ tích cực cho các tiến trình ra quyết định. Hiện nay, ngoài
thuật ngữ khai phá dữ liệu, người ta còn dùng một số thuật ngữ khác có ý nghĩa
tương tự như: Khai phá tri thức từ CSDL, trích lọc dữ liệu, phân tích dữ liệu/mẫu,
khảo cổ dữ liệu (data archaeology), nạo vét dữ liệu (data dredredging). Nhiều
người coi khai phá dữ liệu và một số thuật ngữ thông dụng khác là khám phá tri
thức trong CSDL (Knowledge Discovery in Databases-KDD) là như nhau. Tuy
nhiên trên thực tế khai phá dữ liệu chỉ là một bước thiết yếu trong quá trình Khám
phá tri thức trong CSDL.
Nguồn dữ liệu phục vụ cho KTDL có thể là các CSDL lớn hay các kho dữ
liệu (Datawarehouse) có hay không có cấu trúc. Các tác vụ khai phá dữ liệu có
thể được phân thành hai loại: miêu tả và dự báo
- Các tác vụ khai phá miêu tả mô tả các đặc tính chung của dữ liệu trong cơ
sở dữ liệu. Kỹ thuật khai phá dữ liệu mô tả: Có nhiệm vụ mô tả về các tính chất
hoặc các đặc tính chung của dữ liệu trong CSDL hiện có. Các kỹ thuật này gồm
có: phân cụm (clustering), tóm tắt (summerization), trực quan hoá (visualiztion),
phân tích sự phát triển và độ lệch (Evolution and deviation analyst), phân tích
luật kết hợp (association rules)…
-


Các tác vụ khai phá dự báo thực hiện việc suy luận trên dữ liệu hiện thời để đưa
ra các dự báo. Kỹ thuật khai phá dữ liệu dự đoán: Có nhiệm vụ đưa ra các dự
đoán dựa vào các suy diễn trên dữ liệu hiện thời. Các kỹ thuật này gồm có: Phân
lớp (classification), hồi quy (regression)…
Khai thác dữ liệu được ứng dụng rộng rãi trong rất nhiều lĩnh vực như: ngân
hàng, thương mại điện tử, nhân sự, y học, an ninh, an toàn mạng...
1.2. Quy trình tổng quát thực hiện khai phá dữ liệu
Quá trình này gồm các bước[1]:
1) Làm sạch dữ liệu (data cleaning): Loại bỏ nhiễu hoặc các dữ liệu không

thích hợp.
2) Tích hợp dữ liệu (data integration): Tích hợp dữ liệu từ các nguồn khác nhau
như: CSDL, Kho dữ liệu, file text…
Nghiên cứu ứng dụng của khai phá dữ liệu trong phát hiện tấn công Web

Page


3) Chọn dữ liệu (data selection): Ở bước này, những dữ liệu liên quan trực tiếp
4)

5)
6)
7)

đến nhiệm vụ sẽ được thu thập từ các nguồn dữ liệu ban đầu.
Chuyển đổi dữ liệu (data transformation): Trong bước này, dữ liệu sẽ được
chuyển đổi về dạng phù hợp cho việc khai phá bằng cách thực hiện các thao
tác nhóm hoặc tập hợp.
Khai phá dữ liệu (data mining): Là giai đoạn thiết yếu, trong đó các phương

pháp thông minh sẽ được áp dụng để trích xuất ra các mẫu dữ liệu.
Đánh giá mẫu (pattern evaluation): Đánh giá sự hữu ích của các mẫu biểu
diễn tri thức dựa vào một số phép đo.
Trình diễn dữ liệu (Knowlegde presention): Sử dụng các kỹ thuật trình diễn
và trực quan hoá dữ liệu để biểu diễn tri thức khai phá được cho người sử
dụng.

Hình 1.1. Datamining – một bước trong quá trình khám phá tri thức
1.3. Tiến trình khám phá tri thức khi đi vào một bài toán cụ thể
Chính vì mục tiêu khám phá trí thức ngầm định trong cơ sở dữ liệu nên quá
trình khai phá thường phải qua một số các giai đoạn cần thiết. Bao gồm những
giai đoạn chuẩn bị dữ liệu khai phá, giai đoạn khai phá dữ liệu và cuối cùng là
giai đoạn chuyển kết quả khai phá sang những tri thức cho con người hiểu được.
Chi tiết các bước thực hiện được mô tả trong bảng tóm tắt như sau[2]:
 Giai đoạn 1: đầu tiên là phát triển một sự hiểu biết về lĩnh vực ứng dụng và
những tri thức tương ứng. Xác định mục đích của tiến trình khai phá dữ
liệu từ quan điểm của người dùng.
 Giai đoạn 2: chuẩn bị dữ liệu để khai phá, thu thập dữ liệu và dữ liệu mẫu
Nghiên cứu ứng dụng của khai phá dữ liệu trong phát hiện tấn công Web

Page


 Giai đoạn 3: tiền xử lý dữ liệu, xóa các thông tin bị nhiễu trong dữ liệu, loại

bỏ sự trùng lặp dữ liệu và xác định chiến lược để xử lý dữ liệu bị mất
 Giai đoạn 4: chiếu dữ liệu, thu nhỏ dữ liệu và tìm những đặc trưng để khai
phá
 Giai đoạn 5: chọn một phương pháp khai phá dữ liệu thích hợp nhất trong
số các phương pháp phổ biến như: tóm tắt, phân lớp, hồi quy, phân nhóm,

kết hợp…
 Giai đoạn 6: từ thuật toán đã chọn, mô hình hóa thuật toán để giải quyết
trong trường hợp cụ thể đang xét. Lựa chọn những phương pháp tìm kiếm
mẫu dữ liệu, quyết định các tham số.
 Giai đoạn 7: đây là giai đoạn khai phá dữ liệu, sử dụng thuật toán để tìm
kiếm những mẫu thú vị trong một hình thức thể hiện đặc thù hoặc một tập
những thể hiện bao gồm những luật phân lớp, cây, sự hồi quy và phân
nhóm.
 Giai đoạn 8: thông dịch lại những mẫu đã được khai phá dưới các hình thức
thể hiện tri thức của dữ liệu như ngôn ngữ, biểu đồ, hình cây, bảng…

Hình 1.2. Tổng quan tiến trình khai phá dữ liệu
Quá trình khai phá này có sự tương tác và lặp lại giữa hai bước bất kỳ,
những bước cơ bản của tiến trình được minh họa trong hình trên. Hầu hết những
công việc trước đây đều tập trung ở bước 7 là giai đoạn khai phá dữ liệu. Tuy
nhiên, các bước còn lại quan trọng không kém và những bước đó đóng góp rất
nhiều vào sự thành công của toàn bộ tiến trình khai phá dữ liệu.
1.4. Một số kỹ thuật dùng trong Data Mining
Cho tới nay đã có rất nhiều kỹ thuật có thể áp dụng trong việc khai phá dữ
liệu như: tập mờ, phương pháp Bayes, cây quyết định, lập trình tiến hóa với thuật
Nghiên cứu ứng dụng của khai phá dữ liệu trong phát hiện tấn công Web

Page


toán di truyền, máy học, mạng neural, kỹ thuật phân nhóm, luật kết hợp, mô hình
dữ liệu đa chiều, công cụ phân tích dữ liệu trực tuyến (OLAP), khoảng cách ngắn
nhất, kỹ thuật k-láng giềng gần nhất, luật kết hợp với giải thuật AprioriTID, học
quy nạp… Ở đây chỉ trình bày sơ lược một số kỹ thuật thường được sử dụng [2]
[5] [6] [9].

1.4.1. Cây quyết định
Trong lý thuyết quyết định (chẳng hạn quản lí rủi ro), một cây quyết định là
một đồ thị của các quyết định và các hậu quả có thể của nó (bao gồm rủi ro và
hao phí tài nguyên). Cây quyết định được sử dụng để xây dựng một kế hoạch
nhằm đạt được mục tiêu mong muốn. Các cây quyết định được dùng để hỗ trợ
quá trình ra quyết định. Cây quyết định là một dạng đặc biệt của cấu trúc cây.
Trong lĩnh vực học máy, cây quyết định là một kiểu mô hình dự báo nghĩa
là một ánh xạ từ các quan sát về một sự vật/hiện tượng tới các kết luận về giá trị
mục tiêu của sự vật/hiện tượng. Mỗi một nút trong tương ứng với một biến,
đường nối giữa nó với nút con của nó thể hiện một giá trị cụ thể cho biến đó. Mỗi
nút lá đại diện cho giá trị dự đoán của biến mục tiêu, cho trước các giá trị của các
biến được biểu diễn bởi đường đi từ nút gốc tới nút lá đó. Kỹ thuật học máy dùng
trong cây quyết định được gọi là học bằng cây quyết định, hay chỉ gọi với cái tên
ngắn gọn là cây quyết định.
Học bằng cây quyết định cũng là một phương pháp thông dụng trong khai
phá dữ liệu. Khi đó, cây quyết định mô tả một cấu trúc cây, trong đó, các lá đại
diện cho các phân loại còn cành đại diện cho các kết hợp của các thuộc tính dẫn
tới phân loại đó. Một cây quyết định có thể được học bằng cách chia tập hợp
nguồn thành các tập con dựa theo một kiểm tra giá trị thuộc tính. Quá trình này
được lặp lại một cách đệ qui cho mỗi tập con dẫn xuất. Quá trình đệ qui hoàn
thành khi không thể tiếp tục thực hiện việc chia tách được nữa, hay khi một phân
loại đơn có thể áp dụng cho từng phần tử của tập con dẫn xuất. Một bộ phân loại
rừng ngẫu nhiên (random forest) sử dụng một số cây quyết định để có thể cải
thiện tỉ lệ phân loại.
Cây quyết định cũng là một phương tiện có tính mô tả dành cho việc tính
toán các xác suất có điều kiện. Cây quyết định có thể được mô tả như là sự kết
hợp của các kỹ thuật toán học và tính toán nhằm hỗ trợ việc mô tả, phân loại và
tổng quát hóa một tập dữ liệu cho trước.
Dữ liệu được cho dưới dạng các bản ghi có dạng:
( x, y ) = ( x1 , x2 , x3 ,..., xk , y)


Nghiên cứu ứng dụng của khai phá dữ liệu trong phát hiện tấn công Web

Page


Biến phụ thuộc (dependant variable) y là biến mà chúng ta cần tìm hiểu,
phân loại hay tổng quát hóa.
đó.

x1 , x2 , x3 ...

là các biến sẽ giúp ta thực hiện công việc

Cây quyết định còn có hai tên khác:
Cây hồi quy (Regression tree): ước lượng các hàm giá có giá trị là số thực
thay vì được sử dụng cho các nhiệm vụ phân loại (ví dụ: ước tính giá một ngôi
nhà hoặc khoảng thời gian một bệnh nhân nằm viện).
Cây phân loại (Classification tree): nếu y là một biến phân loại như: giới
tính (nam hay nữ), kết quả của một trận đấu (thắng hay thua).
Ví dụ: Ta sẽ dùng một ví dụ để giải thích về cây quyết định:
David là quản lý của một câu lạc bộ đánh golf nổi tiếng. Anh ta đang có rắc
rối chuyện các thành viên đến hay không đến. Có ngày ai cũng muốn chơi golf
nhưng số nhân viên câu lạc bộ lại không đủ phục vụ. Có hôm, không hiểu vì lý
do gì mà chẳng ai đến chơi, và câu lạc bộ lại thừa nhân viên.
Mục tiêu của David là tối ưu hóa số nhân viên phục vụ mỗi ngày bằng cách
dựa theo thông tin dự báo thời tiết để đoán xem khi nào người ta sẽ đến chơi golf.
Để thực hiện điều đó, anh cần hiểu được tại sao khách hàng quyết định chơi và
tìm hiểu xem có cách giải thích nào cho việc đó hay không.
Vậy là trong hai tuần, anh ta thu thập thông tin về:

Trời (outlook) (nắng (sunny), nhiều mây (clouded) hoặc mưa (raining)).
Nhiệt độ (temperature) bằng độ F. Độ ẩm (humidity). Có gió mạnh (windy) hay
không.
Và tất nhiên là số người đến chơi golf vào hôm đó. David thu được một bộ
dữ liệu gồm 14 dòng và 5 cột.

Quang cảnh
Nắng
Nắng
Âm u
Mưa
Mưa
Mưa
Âm u

Dữ liệu chơi golf
Các biến độc lập
Nhiệt độ
Độ ẩm
85
85
80
90
83
78
70
96
68
80
65

70
64
65

Gió
Không

Không
Không
Không



Chơi
Không
Không



Không


Nghiên cứu ứng dụng của khai phá dữ liệu trong phát hiện tấn công Web

Page 10


Nắng
Nắng
Mưa

Nắng
Âm u
Âm u
mưa

72
69
75
75
72
81
71

95
không
70
không
80
không
70

90

75
không
80

Bảng 1-1. Dữ liệu chơi golf

Không






Không

Sau đó, để giải quyết bài toán của David, người ta đã đưa ra một mô hình cây
quyết định.

Hình 1.3. Kết quả của cây quyết định
Cây quyết định là một mô hình dữ liệu mã hóa phân bố của nhãn lớp (cũng là
y) theo các thuộc tính dùng để dự đoán. Đây là một đồ thị có hướng phi chu trình
dưới dạng một cây. Nút gốc (nút nằm trên đỉnh) đại diện cho toàn bộ dữ liệu.
Thuật toán cây phân loại phát hiện ra rằng cách tốt nhất để giải thích biến phụ
thuộc, play (chơi), là sử dụng biến Outlook. Phân loại theo các giá trị của biến
Outlook, ta có ba nhóm khác nhau: Nhóm người chơi golf khi trời nắng, nhóm
chơi khi trời nhiều mây, và nhóm chơi khi trời mưa.
Kết luận thứ nhất: nếu trời nhiều mây, người ta luôn luôn chơi golf. Và có
một số người ham mê đến mức chơi golf cả khi trời mưa.
Tiếp theo, ta lại chia nhóm trời nắng thành hai nhóm con. Ta thấy rằng
khách hàng không muốn chơi golf nếu độ ẩm lên quá 70%.
Cuối cùng, ta chia nhóm trời mưa thành hai và thấy rằng khách hàng sẽ
không chơi golf nếu trời nhiều gió.
Nghiên cứu ứng dụng của khai phá dữ liệu trong phát hiện tấn công Web

Page 11


Và đây là lời giải ngắn gọn cho bài toán mô tả bởi cây phân loại. David cho

phần lớn nhân viên nghỉ vào những ngày trời nắng và ẩm, hoặc những ngày mưa
gió. Vì hầu như sẽ chẳng có ai chơi golf trong những ngày đó. Vào những hôm
khác, khi nhiều người sẽ đến chơi golf, anh ta có thể thuê thêm nhân viên thời vụ
để phụ giúp công việc.
Kết luận là cây quyết định giúp ta biến một biểu diễn dữ liệu phức tạp thành
một cấu trúc đơn giản hơn rất nhiều.
So với các phương pháp khai phá dữ liệu khác, cây quyết định là phương
pháp có một số ưu điểm:
• Cây quyết định dễ hiểu. Người ta có thể hiểu mô hình cây quyết định sau khi









được giải thích ngắn.
Việc chuẩn bị dữ liệu cho một cây quyết định là cơ bản hoặc không cần thiết. Các
kỹ thuật khác thường đòi hỏi chuẩn hóa dữ liệu, cần tạo các biến phụ (dummy
variable) và loại bỏ các giá trị rỗng.
Cây quyết định có thể xử lý cả dữ liệu có giá trị bằng số và dữ liệu có giá trị là
tên thể loại. Các kỹ thuật khác thường chuyên để phân tích các bộ dữ liệu chỉ
gồm một loại biến. Chẳng hạn, các luật quan hệ chỉ có thể dùng cho các biến tên,
trong khi mạng nơ-ron chỉ có thể dùng cho các biến có giá trị bằng số.
Cây quyết định là một mô hình hộp trắng. Nếu có thể quan sát một tình huống
cho trước trong một mô hình, thì có thể dễ dàng giải thích điều kiện đó bằng logic
Boolean. Mạng nơ-ron là một ví dụ về mô hình hộp đen, do lời giải thích cho kết
quả quá phức tạp để có thể hiểu được.

Có thể thẩm định một mô hình bằng các kiểm tra thống kê. Điều này làm cho ta
có thể tin tưởng vào mô hình.
Cây quyết định có thể xử lý tốt một lượng dữ liệu lớn trong thời gian ngắn. Có
thể dùng máy tính cá nhân để phân tích các lượng dữ liệu lớn trong một thời gian
đủ ngắn để cho phép các nhà chiến lược đưa ra quyết định dựa trên phân tích của
cây quyết định.
1.4.2. Luật kết hợp
Luật kết hợp là một hướng quan trọng trong khai phá dữ liệu. Luật kết hợp
giúp chúng ta tìm được các mối liên hệ giữa các mục dữ liệu (items) của CSDL.
Luật kết hợp là dạng khá đơn giản nhưng lại mang khá nhiều ý nghĩa. Thông tin
mà dạng luật này đem lại là rất đáng kể và hỗ trợ không nhỏ trong quá trình ra
quyết định. Tìm các luật kết hợp “quý hiếm” và mang nhiều thông tin từ CSDL
tác nghiệp là một trong những hướng tiếp cận chính của lĩnh vực khai phá dữ
liệu.

Nghiên cứu ứng dụng của khai phá dữ liệu trong phát hiện tấn công Web

Page 12


Luật kết hợp là những luật có dạng “80 % khách hàng mua máy điện thoại di
động thì mua thêm simcard, 30% có mua cả máy điện thoại di động lẫn simcard”
hoặc “75 % khách hàng gọi điện liên tỉnh và sống ở các huyện thì gọi điện thoại
IP 171 liên tỉnh, trong đó 25% số khách hàng vừa gọi liên tỉnh, sống ở các huyện
vừa gọi điện thoại IP 171 liên tỉnh”. “mua máy điện thoại di động” hay gọi liên
tỉnh và sống ở các huyện” ở đây được xem là các vế trái (tiền đề) của luật, còn
“mua simcard” hay “gọi điện thoại IP 171 liên tỉnh” là vế phải (kết luận) của luật.
Các con số 30%, 25% là độ hỗ trợ của luật (support - số phần trăm các giao dịch
chứa cả vế trái và vế phải), còn 80%, 75% là độ tin cậy của luật (confidence - số
phần trăm các giao dịch thoả mãn vế trái thì cũng thoả mãn vế phải).

Độ hỗ trợ (support) và độ tin cậy (confidence) là hai thước đo cho một luật kết
hợp. Trong luật kết hợp thứ nhất ta có thể hiểu độ hỗ trợ bằng 30% có nghĩa là
“Trong số các khách hàng thì có 30% khách hàng vừa mua điện thoại di động,
vừa mua simcard”. Độ tin cậy của luật kết hợp này là 80% có nghĩa là “Trong số
các khách hàng mua điện thoại di động thì sẽ có 80% khách hàng mua simcard”.
Ở luật kết hợp thứ hai, độ hỗ trợ bằng 25% có nghĩa là “Trong các khách hàng có
sử dụng điện thoại thì có 25% khách hàng sử dụng điện thoại liên tỉnh và điện
thoại IP 171”. Độ tin cậy bằng 75% có nghĩa là “Trong các khách hàng có sử
dụng điện thoại liên tỉnh thì có 75% khách hàng sử dụng điện thoại IP 171”.
- Bài toán khai phá luật kết hợp:
I = {i1, i2, …, in} là tập bao gồm n mục (Item – còn gọi là các thuộc tính attribute). X



I được gọi là tập mục (itemset).

T = {t1, t2, …, tm} là tập gồm m giao dịch (transacstion – còn gọi là bản ghi record), mỗi giao dịch được định danh bởi TID (Transaction Identification).
R là một quan hệ nhị phân trên I và T (hay R




IxT). Nếu giao dịch t có

chứa mục i thì ta viết (i, t) R (hoặc iRt). (T, I, R) là ngữ cảnh khai thác dữ liệu.
Một CSDL D, về mắt hình thức, chính là một quan hệ nhị phân R như trên. Về ý
nghĩa, một CSDL là một tập các giao dịch, mỗi giao dịch t là một tập mục, t
(2I là tập cấc tập con của I).




2I

Ví dụ về CSDL giao dịch: I = {A, B, C, D, E}, T = {1, 2, 3, 4, 5, 6}
Thông tin về các giao dịch cho ở bảng sau:
Định danh giao dịch (TID)
1
2

Tập mục (itemset)
AB DE
BC E

Nghiên cứu ứng dụng của khai phá dữ liệu trong phát hiện tấn công Web

Page 13


3
4
5
6

AB DE
ABC E
ABCDE
BCDE
Bảng 1-2. Ví dụ về một CSDL giao dịch - D



Cho một tập mục X I. Ký hiệu s(X) là Độ hỗ trợ(support) của một tập mục
X – là tỷ lệ phần trăm số giao dịch trong CSDL D chứa X trên tổng số các giao
dịch trong CSDL D. s(X) = Card(X)/Card(D)%
Tập mục phổ biến: Cho một tập mục X



I và ngưỡng phổ biến tối thiểu



minsup (0, 1],(minsup được xác định bởi người sử dụng). Một tập mục X được
gọi là một tập phổ biến theo ngưỡng minsup nếu và chỉ nếu độ hỗ trợ của nó lớn


hơn hoặc bằng một ngưỡng minsup: s(X) minsup.
Ký hiệu FX(T, I, R, minsup) = {X



I | s(X)



minsup}

Với (T, I, R) trong ví dụ CSDL bảng 1.2, và giá trị ngưỡng minsup = 50% sẽ
liệt kê các tập mục phổ biến (frenquent-itemset) như sau:
Tập mục phổ biến
Độ hỗ trợ (s) tương ứng

B
100%
E, BE
83%
A, C, D, AB, AE, BC, BD,ABE
67%
AD, CE, DE, ABD, ADE, BCE, BDE
50%
Bảng 1-3. Tập mục thường xuyên minsup = 50%
Độ hỗ trợ s của luật kết hợp X
có chứa X và Y là s(X





Y là tỷ lệ phần trăm các giao dịch trong D


Y) = Card(X Y)/Card(D) %

Luật kết hợp có dạng X

c

→

Y trong đó:

X, Y là các tập mục thoả mãn điều kiện X




Y = Ø và c là độ tin cậy.



Độ tin cậy của luật c = s(X Y)/s(X)%: Là tỷ lệ phần trăm các giao dịch
trong D có chứa X thì chứa Y. Về mặt xác suất, độ tin cậy c của một luật kết hợp
là xác suất (có điểu kiện) xảy ra Y với điều kiện đã xảy ra X.
Luật kết hợp tin cậy: Một luật được xem là tin cậy nếu độ tin cậy c của nó lớn
hơn hoặc bằng một ngưỡng minconf



(0, 1] nào đó do người dùng xác định.

Nghiên cứu ứng dụng của khai phá dữ liệu trong phát hiện tấn công Web

Page 14


Ngưỡng minconf phản ánh mức độ xuất hiện của Y khi cho trước X. (( c
minconf) (minimum Confidence)).



Luật kết hợp cần tìm là luật kết hợp thoả mãn Minsup và minconf cho trước.
Chúng ta chỉ quan tâm đến các luật có độ hỗ trợ lớn hơn Độ hỗ trợ tối thiểu và độ
tin cậy lớn hơn Độ tin cậy tối thiểu.

Hầu hết các thuật toán khai phá luật kết hợp thường chia thành 2 pha:
Pha 1: Tìm tất cả các tập mục phổ biến từ cơ sở dữ liệu tức là tìm tất cả các
tập mục X thoả s(X)



minsup.

Pha 2: Sinh các luật tin cậy từ các tập phổ biến đã tìm thấy ở pha 1.
Nếu X là một tập mục phổ biến thì luật kết hợp được sinh ra từ X có dạng:
X’

c

X \ X’

trong đó:
X’ là tập con khác rỗng của X.
X\X’ là hiệu của hai tập hợp X và X’.
c là độ tin cậy của luật thoả mãn c



minconf

Với tập mục phổ biến trong bảng 1.3 thì chúng ta có thể sinh luật kết hợp sau
đây:

Luật kết hợp
Độ tin cậy c minconf ?

A
B
E

%
100




%
67




0%
8→


AB
AE
BE

BE
AE
AB

%
100





%
100




0%
8→


E
B
A


Không





Nghiên cứu ứng dụng của khai phá dữ liệu trong phát hiện tấn công Web

Page 15



Bảng 1-4. Luật kết hợp sinh từ tập mục phổ biến ABE
Tập phổ biến tối đại: Cho M



phổ biến tối đại nếu không tồn tại X

FX(T, I, R, minsup) M được gọi là tập mục


FX(T, I, R, minsup), M



X, M



X

- Các hướng tiếp cận khai phá luật kết hợp:
Luật kết hợp nhị phân (binary association rule hoặc Boolean association rule):
là hướng nghiên cứu đầu tiên của luật kết hợp. Hầu hết các nghiên cứu ở thời kỳ
đầu về luật kết hợp đều liên quan đến luật kết hợp nhị phân. Trong dạng luật kết
hợp này, các mục (thuộc tính) chỉ được quan tâm là có hay không xuất hiện trong
giao tác của cơ sở dữ liệu chứ không quan tâm về “mức độ” xuất hiện. Thuật toán
tiêu biểu nhất khai phá dạng luật này là thuật toán Apriori và các biến thể của nó.
Đây là dạng luật đơn giản và các luật khác cũng có thể chuyển về dạng luật này
nhờ một số phương pháp như rời rạc hoá, mờ hoá, v.v.
Luật kết hợp có thuộc tính số và thuộc tính hạng mục (quantitative and

categorical association rule): Các thuộc tính của cơ sở dữ liệu thực tế có kiểu rất
đa dạng (nhị phân – binary, số - quantitative, hạng mục – categorical…) để phát
hiện luật kết hợp với các thuộc tính này,các nhà nghiên cứu đã đề xuất một số
phương pháp rời rạc hoá nhằm chuyển dạng luật này về dạng nhị phân để áp
dụng các các thuật toán đã có.
Luật kết hợp tiếp cận theo hướng tập thô (mining association rule base on
rough set): Tìm kiếm luật kết hợp dựa trên lý thuyết tập thô.
Luật kết hợp nhiều mức (multi-level association rule): Với cách tiếp cận theo
luật này sẽ tìm kiếm thêm những luật có dạng “mua mày tính PC => mua hệ điều
hành AND mua phần mềm tiện ích văn phòng,…” thay vì chỉ những luật quá cụ
thể như “mua máy tính IBM PC => mua hệ điểu hành Micorsoft Windows AND
mua phần mềm tiện ích văn phòng Microsoft Office, …”. Như vậy dạng luật đầu
tiên là luật tổng quát hoá của dạng luật sau và tổng quát theo nhiều mức khác
nhau.
Luật kết hợp mờ (fuzzy association rule): Với những hạn chế còn gặp phải
trong quá trình rời rạc hoá các thuộc tính số, các nhà nghiên cứu đã đề xuất luật
kết hợp mờ nhằm khắc phục các hạn chế trên và chuyển luật kết hợp về dạng tự
nhiên hơn, gần gũi hơn với người sử dụng.
Luật kết hợp với các thuộc tính được đánh trọng số (association rule with
weighted items) Trong thực tế, các thuộc tính trong CSDL không phải lúc nào
cũng có vai trò như nhau. Có một số thuộc tính được chú trọng hơn và có mức độ
quan trọng cao hơn các thuộc tính khác.
Nghiên cứu ứng dụng của khai phá dữ liệu trong phát hiện tấn công Web

Page 16


Khai thác luật kết hợp song song (parallel mining of association rule): Bên
cạnh khai thác luật kết hợp tuần tự, các nhà làm tin học cũng tập chung vào
nghiên cứu các giải thuật song song cho quá trình phát hiện luật kết hợp. Nhu cầu

song song hoá và xử lý phân tán là cần thiết bởi kích thước dữ liệu ngày càng lớn
hơn nên đòi hỏi tốc độ xử lý cũng như dung lượng bộ nhớ của hệ thống phải được
đảm bảo. Có rất nhiều thuật toán song song khác nhau đã đề xuất để có thể không
phụ thuộc vào phần cứng.
1.4.3. Khoảng cách ngắn nhất
Đây là phương pháp xem các mẫu tin như là những điểm trong không gian dữ
liệu đa chiều. Áp dụng ý tưởng này có thể xác định khoảng cách giữa hai mẫu tin
trong không gian dữ liệu như sau: các mẫu tin có liên hệ với nhau thì rất gần
nhau. Các mẫu tin ở xa nhau thì có ít điểm chung. Cơ sở dữ liệu mẫu chứa cá
thuộc tính như tuổi, thu nhập và tín dụng. Ba thuộc tính mẫu này thành lập nên
không gian dữ liệu ba chiều và có thể phân tích các khoảng cách giữa các mẫu tin
trong không gian này.
Tuổi
Thu nhập
Tín dụng
Khách hàng 1
32
40.000
10.000
Khách hàng 2
24
30.000
2.000
8
10
8
Bảng 1-5. Mẫu dữ liệu khách hàng

Khoảng cách hai khách hàng được tính
8 2 + 10 2 + 8 2 = 15


Hình 1.4. Các mẫu tin biểu diễn thành điểm trong một không gian bởi các thuộc
tính của chúng và khoảng cách giữa chúng có thể được đo

Nghiên cứu ứng dụng của khai phá dữ liệu trong phát hiện tấn công Web

Page 17


Ví dụ: Tuổi phạm vi: 1→ 100, trong khi thu nhập khoảng từ 0 → 100.000
dollar mỗi tháng. Nếu dùng dữ liệu này mà không hiệu chỉnh cho đúng thì thu
nhập sẽ là một thuộc tính dễ phân biệt hơn rất nhiều so với tuổi và đây là điều mà
chúng ta không mong muốn. Vì vậy chia thu nhập cho 1000 để đạt tới một đơn vị
đo độ lớn như là tuổi. Làm tương tự cho thuộc tính tín dụng. Nếu độ đo tất cả
thuộc tính cùng một độ đo, sẽ có một độ đo khoảng cách đáng tin cậy để đo các
mẫu tin khác nhau. Trong ví dụ sẽ dùng độ đo Enclidean, khoảng cách giữa
khách hàng 1 và khách hàng 2 là 15.
1.4.4. K-Láng giềng gần nhất
Khi đã thông dịch các mẫu tin thành các điểm trong một không gian dữ liệu
nhiều chiều, chúng ta có thể định nghĩa khái niệm của “láng giềng”:
Các mẫu tin ở gần nhau là láng giềng của nhau.
Giả sử ta muốn dự đoán thái độ của một tập khách hàng từ một cơ sở dữ liệu
với những mẫu tin mô tả những khách hàng này. Giả thuyết cơ sở đòi hỏi để làm
một dự án là những khách hàng cùng loại sẽ có cùng thái độ. Trong thuật ngữ ẩn
dụ của không gian dữ liệu đa chiều, một kiểu chỉ là một vùng trong không gian
dữ liệu này. Mặt khác, các mẫu tin cùng kiểu sẽ gần nhau trong không gian dữ
liệu: chúng sẽ là láng giềng của nhau. Dựa vào hiểu biết này, để phát triển một
thuật toán mạnh nhưng rất đơn giản - thuật toán k-láng giềng gần nhất. Lý thuyết
cơ sở của k-láng giềng gần nhất là “làm như láng giềng của bạn đã làm”. Nếu
muốn dự đoán thái độ của một các nhân cụ thể, bắt đầu nhìn vào thái độ của

mười người gần gũi với anh ta trong không gian dữ liệu. Tính trị trung bình về
thái độ của 10 người này, và trị trung bình này sẽ là cơ sở dự đoán cho cá nhân
của anh ta. Chữ k trong k-láng giềng gần nhất đại diện cho số láng giềng điều tra.
K-láng giềng gần nhất đơn giản thật sự không là một kỹ thuật học mà là một
phương pháp tìm kiếm thuần túy bởi vì tập dữ liệu bản thân nó được dùng chỉ để
tham khảo. Nó không thể tạo ra một lý thuyết trong lĩnh vực datamining mà giúp
hiểu cấu trúc tốt hơn. Ví dụ như, nếu muốn ra một quyết định cho mỗi yếu tố
trong tập dữ liệu chứa n mẫu tin, thì cần phải so sánh mẫu tin với các mẫu tin
khác. Điều này dẫn đến độ phức tạp bậc 2, đặc biệt cho tập cơ sở dữ liệu lớn. Nếu
muốn làm một sự phân tích k-láng giềng gần nhất đơn giản đối với một cơ sở dữ
liệu có một triệu mẫu tin, phải thực hiện một ngàn tỷ phép so sánh. Cách tiếp cận
như vậy rõ ràng là không tốt mặc dầu có nhiều kết quả nghiên cứu đã giúp tăng
tốc độ của quá trình tìm kiếm này. Tóm lại các thuật toán data mining không nên
có độ phức tạp tính toán lớn hơn n*log(n) (trong đó n là số các mẫu tin). Trong
thực tế chúng ta ít dùng kỹ thuật k-láng giềng gần nhất.
Một ví dụ dùng thuật toán k-láng giềng:
Nghiên cứu ứng dụng của khai phá dữ liệu trong phát hiện tấn công Web

Page 18


Tạp chí

Độ chính xác của dự đoán

Tạp chí xe

89% đúng

Tạp chí nhà (nội thất)


80% đúng

Tạp chí thể thao

74% đúng

Tạp chí âm nhạc

93% đúng

Tạp chí hài

92% đúng

Bảng 1-6. Một số ví dụ dùng kỹ thuật k-láng giềng
1.4.5. Phân cụm
Gom cụm dữ liệu là hình thức học không giám sát trong đó các mẫu học chưa
được gán nhãn. Mục đích của gom cụm dữ liệu là tìm những mẫu đại diện hoặc
gom dữ liệu tương tự nhau (theo một chuẩn đánh giá nào đó) thành những cụm.
Các điểm dữ liệu nằm trong các cụm khác nhau có độ tương tự thấp hơn các điểm
dữ liệu nằm trong một cụm.
Phân tích cụm có nhiều ứng dụng rộng rãi, bao gồm nghiên cứu thị trường,
nhận dạng mẫu, phân tích dữ liệu và xử lý ảnh. Trong kinh doanh, phân tích cụm
có thể giúp các nhà marketing khám phá sự khác nhau giữa các nhóm khách hàng
dựa trên thông tin khách hàng và các đặc trưng của các nhóm khách hàng dựa
trên các mẫu mua hàng. Trong sinh học, nó có thể được sử dụng để phân loại
thực vật và động vật, các mẫu gen với các chức năng tương tự nhau. Phân tích
cụm còn có thể phân loại đất theo công năng hoặc thực tế sử dụng để có chính
sách qui hoạch phù hợp, phân loại các tài liệu trên Web.

Mục tiêu đầu tiên của các thuật toán của chúng ta là tính có bao nhiêu điểm
là "gần" với từng điểm trong không gian thuộc tính. Một tham số cho các thuật
toán là một bán kính w còn gọi tắt là chiều rộng cụm. Đối với bất kỳ một cặp
điểm x1 và x2, chúng ta xem xét hai điểm "gần" nhau, nếu khoảng cách giữa
chúng là nhỏ hơn hoặc bằng w, d(x1, x2) phạm vi hàm hạt nhân. Đối với mỗi điểm x, chúng ta xác định N(x) là số điểm
mà nằm trong vòng w của điểm x. Một cách hình thức hơn ta xác định như sau:

(1)
Những tính toán đơn giản của N(x) cho tất cả các điểm có một phức tạp
tính toán O(N2) trong đó N là số điểm. Lý do là chúng ta phải tính đến những
khoảng cách giữa các cặp tất cả các điểm. Tuy nhiên, bởi vì chúng ta là chỉ quan
Nghiên cứu ứng dụng của khai phá dữ liệu trong phát hiện tấn công Web

Page 19


tâm đến việc xác định các outliers là gì, chúng ta có thể tính toán gần đúng một
cách có hiệu quả như sau. Trước tiên chúng ta thực hiện phân cụm chiều rộng cố
định trên toàn bộ dữ liệu với cụm có chiều rộng w. Sau đó, chúng ta gán nhãn các
điểm vào trong các cụm nhỏ như các bất thường. Một thuật toán phân cụm chiều
rộng cố định được mô tả như sau. Điểm đầu tiên là trung tâm đầu tiên của nhóm.
Đối với tất cả các điểm tiếp theo, nếu nó cách điểm trung tâm của cụm không quá
w, nó sẽ được thêm vào cụm đó. Nếu không nó là một trung tâm của một nhóm
mới. Lưu ý rằng một số điểm có thể được thêm vào nhiều cụm. Thuật toán phân
cụm chiều rộng cố định đòi hỏi chỉ có một trải qua tập dữ liệu (only one pass
through the data). Độ phức tạp của thuật toán là O(cn) có c là số cụm và n là số
lượng các điểm dữ liệu. Đối với một w hợp lý, c sẽ nhỏ hơn n một cách đáng kể.
Lưu ý rằng theo định nghĩa của công thức ở trên, cho từng nhóm, số lượng các
điểm gần các trung tâm cụm, N(c), là số điểm trong cụm c. Đối với mỗi điểm x,

không phải là một trung tâm của một nhóm, chúng ta xấp xỉ N(x) bằng N(c) đối
với cụm c chứa x. Đối với các điểm nằm trong khu vực dày đặc, nơi mà có rất
nhiều sự chồng chéo giữa các cụm, điều này sẽ làm cho việc đánh giá không
chính xác. Tuy nhiên, đối với các điểm là outliers, sẽ có một số cụm chồng chéo
tương đối trong các khu vực này và N(c) sẽ là một cách xấp xỉ chính xác của
N(x). Vì chúng ta là chỉ quan tâm đến số điểm là outliers, các điểm trong khu vực
dày đặc sẽ cao hơn nhiều so với ngưỡng. Do đó, xấp xỉ là hợp lý trong trường
hợp của chúng ta.
Với giải thuật xấp xỉ hiệu quả, có thể xử lý một tập dữ liệu lớn hơn đáng kể
so với thuật toán đơn giản bởi vì ta không cần phải thực hiện việc so sánh từng
cặp điểm.
Các yêu cầu cơ bản của phân tích cụm trong KTDL:
 Có khả năng làm việc hiệu quả với lượng dữ liệu lớn: Phân tích cụm trên một

mẫu của dữ liệu lớn có thể dẫn đến các kết quả thiên lệch. Cần phải có các thuật
toán phân cụm trên CSDL lớn.
 Có khả năng xử lý các dạng dữ liệu khác nhau: Nhiều thuật toán được thiết kế để
xử lý dữ liệu bằng số. Tuy nhiên, các ứng dụng có thể yêu cầu phân tích cụm các
dạng dữ liệu khác, như dữ liệu nhị phân, phân loại, trật tự hay sự trộn lẫn của các
kiểu dữ liệu.
 Có khả năng khám phá ra các cụm với các dạng bất kỳ: Nhiều thuật toán phân
cụm dựa trên các số đo khoảng cách Euclide hay Manhattan. Các thuật toán dựa
trên các số đo khoảng cách có xu hướng tìm các cụm hình cầu với kích thước và
mật độ tương tự nhau. Tuy nhiên, một cụm (cluster) có thể có hình dạng bất kỳ.
Do đó cần phát triển các thuật toán để tìm các cluster hình dạng bất kỳ.

Nghiên cứu ứng dụng của khai phá dữ liệu trong phát hiện tấn công Web

Page 20



 Yêu cầu tối thiểu tri thức lĩnh vực nhằm xác định các tham số đầu vào: Nhiều







thuật toán phân cụm đòi hỏi người dùng nhập các tham số trong phân tích cụm.
Các kết quả phân cụm có thể bị ảnh hưởng vào các tham số đầu vào. Các tham số
thường khó xác định, đặc biệt đối với các tập dữ liệu chứa các đối tượng dữ liệu
nhiều chiều.
Có khả năng làm việc với dữ liệu nhiễu.
Không bị ảnh hưởng vào thứ tự nhập của dữ liệu.
Làm việc tốt trên CSDL có số chiều cao.
Chấp nhận các ràng buộc do người dùng chỉ định
Có thể hiểu và sử dụng được các kết quả gom cụm
1.4.6. Mạng Neural
Mạng neural nhân tạo (Artificial Neural Network - ANN) là một mô hình
xử lý thông tin dựa trên cơ chế hoạt động của hệ thống thần kinh sinh học, như
não bộ. Thành phần chính yếu của mô hình này là cấu trúc đặc biệt của hệ thống
này. Nó tập hợp một số lượng lớn các phần tử xử lý kết hợp nội tại (được gọi là
các neuron) hoạt động hợp nhất để giải quyết các bài toán cụ thể. Một ANN sẽ
được cấu hình cho một ứng dụng cụ thể nào đó, ví dụ như nhận dạng mô hình
hoặc phân loại dữ liệu thông qua quá trình học. Việc học trong hệ thống nhằm
mục đích điều chỉnh các kết nối thuộc kỳ tiếp hợp được phân chia trong tế bào
mà đã có sẵn giữa các neuron.
Neuron nhân tạo đầu tiên được tạo ra vào năm 1943 bởi nhà nghiên cứu
neuron học Warren McCulloch và nhà logic học Walter Pits. Nhưng kỹ thuật thời

đó không cho phép neuron phát triển được các thế mạnh của nó. Mạng neuron
này nay có nhiều cải tiến cũng như đáp ứng được các yêu cầu đặt ra của các bài
toán, một số ưu điểm của mạng neuron ngày nay so với thời trước là:
1. Học thích ứng: có khả năng học cách thức thực hiện công việc dựa trên
các dữ liệu cho sẵn trong quá trình huấn luyện hoặc định các thông số ban đầu
2. Khả năng tự tổ chức: một ANN có thể tự thân tổ chức hoặc miêu tả các
thông tin mà nó nhận được trong suốt thời gian học
3. Hiệu chỉnh lỗi thông qua mã hóa thông tin dư thừa: có thể hủy một phần
mạng làm cho hiệu suất hệ thống giảm. Tuy nhiên, một số mạng có khả năng nhớ
được phần mạng đã hủy.
Vào năm 1980, các nhà nghiên cứu bắt đầu phát triển mạng Neural với
nhiều kiến trúc phức tạp nhằm khắc phục những hạn chế trước đây.
Mô hình mạng Nơron tổng quát có dạng như sau:

Nghiên cứu ứng dụng của khai phá dữ liệu trong phát hiện tấn công Web

Page 21


Hình 1.5. Mô hình mạng Noron tổng quát
Ngày nay mạng Nơron có thể giải quyết nhiều vấn đề phức tạp đối với con
người, áp dụng trong nhiều lĩnh vực như nhận dạng, định dạng, phân loại, xử lý
tín hiệu, hình ảnh v.v…
Dùng kỹ thuật mạng Neural có thể phân tích một cơ sở dữ liệu như hình 1.6.

Hình 1.6. Mô phỏng kiến trúc mạng neural
Hình trên mô tả một kiến trúc mạng Neural đơn giản dùng để biểu diễn
việc phân tích cơ sở dữ liệu tiếp thị. Trong đó thuộc tính được chia thành ba lớp
tuổi và được đưa vào ba nút nhập riêng rẽ: thuộc tính sở hữu nhà, xe cũng có một
nút nhập riêng và bốn nút nhận dạng bốn vùng. Mỗi nút nhập tương ứng với một

quyết định Yes/No đơn giản. Tương tự như thế cho các nút xuất: mỗi tạp chí là
một nút.
Các nút nhập được nối toàn bộ với các nút ẩn và các nút ẩn được nối toàn
bộ với các nút xuất. Trong mạng, các nhánh giữa các nút đầu có trọng lượng bằng
nhau. Trong quá trình “dạy”, mạng nhận những mẫu nhập và xuất tương ứng với
những record trong cơ sở dữ liệu và cập nhật lại trọng lượng của các nhánh cho
đến khi tất cả nút nhập kết được với nút xuất thích hợp.

Nghiên cứu ứng dụng của khai phá dữ liệu trong phát hiện tấn công Web

Page 22


Các nhánh tô đậm cho thấy mối liên hệ nào đó giữa những người đọc tạp
chí xe hơi và tạp chí hài có cùng lứa tuổi nhỏ hơn 30, có xe hơi và ở vùng 3.
Nhưng mạng không cung cấp luật để nhận dạng mối kết hợp này. Mạng Neural
biểu diễn tốt trên sự phân lớp yêu cầu và có thể được sử dụng rất hữu ích trong
data mining.
1.4.7. Thuật toán di truyền
Có một mối kết hợp tuyệt vời giữa công nghệ và tự nhiên, nguyên lý đó là
thuyết tính toán về sự tiến hóa. Thuyết tính toán về sự tiến hóa là phương pháp
giải quyết vấn đề bằng cách áp dụng kỹ thuật tiến hóa. Lĩnh vực này đưa ra 3 mô
tả độc lập bao gồm: các thuật toán về di truyền, lập trình về sự tiến hóa và chiến
lược tiến hóa. Tất cả 3 mô tả này đã được nghiên cứu lần đầu tiên trong hai thập
niên 1960 và 1970, nhưng mãi cho tới cuối thập niên 1980 thì chúng mới bắt đầu
được chấp nhận. Và thời gian này, các nhà nghiên cứu bắt đầu nhận thấy mối
quan hệ rõ ràng giữa máy tính và sinh học. Hiện tại, các thuật toán di truyền đang
được xem là kỹ thuật máy học thành công nhất. Tự nhiên đã cung cấp nguồn cảm
hứng cho hai vấn đề: “quá trình chọn lọc tự nhiên” là một kỹ thuật để giải quyết
vấn đề. Và DNA như một kỹ thuật mã hóa vấn đề.

Trong “Nguồn gốc của muôn loài”, Darwin mô tả lý thuyết về sự tiến hóa:
“sự chọn lọc tự nhiên” là khái niệm trung tâm. Mỗi loài có một sự sinh sản thừa,
trong cuộc đấu tranh mạnh mẽ giành sự sống, chỉ có những loài nào thích nghi tốt
nhất đối với môi trường thì mới sống sót.
Năm 1953, Jame Watson và Francis Crick phát hiện ra cấu trúc xoắn kép
của DNA. Thông tin di truyền được lưu trữ trong phần tử DNS dài, bao gồm 4
khối, điều này có nghĩa là tất cả thông tin di truyền của các nhân con người, hoặc
của bất kỳ một tạo vật sống nào, đều được đặt trong một ngôn ngữ chỉ có 4 ký tự
(C, G, A và T trong ngôn ngữ di truyền). Tập hợp của các chỉ thị di truyền cho
loài người vào khoảng 3 tỷ ký tự. Mỗi cá nhân đều thừa hưởng vài đặc tính của
người cha hoặc người mẹ. Sự khác nhau giữa các cá nhân như màu tóc hay màu
mắt, và các bệnh bẩm sinh được gây nên bởi sự khác biệt về mã di truyền.
Sự chọn lọc tự nhiên có hai mặt thuận lợi và không thuận lợi. Mặt bất lợi
rõ ràng là sự sinh sản quá mức của các cá thể. Một bất lợi khác là toàn bộ tiến
trình đạt được rất ít mục đích, vì sự cải thiện của các loài phụ thuộc vào các yếu
tố thay đổi môi trường. Các loài có thể tiến hóa bằng cách đột biến Gen ngẫu
nhiên. Công thức xây dựng thuật toán di truyền để giải quyết vấn đề như sau:
 Đặt ra bộ mã tốt, hoàn hảo để mã hóa vấn đề dưới dạng chuỗi bao gồm một số

ký tự giới hạn.
Nghiên cứu ứng dụng của khai phá dữ liệu trong phát hiện tấn công Web

Page 23


 Sáng chế ra một môi trường nhân tạo trong máy tính để các giải pháp có thể kết

nối lại với nhau. Cung cấp đối tượng có thể xét đoán được sự thành công hay thất
bại mà thuật ngữ của chuyên gia gọi là “hàm thích nghi”.
Để kết hợp các giải pháp, cần thực hiện các thao tác chéo – các chuỗi gen

của người cha và người mẹ được cắt ra và sau khi thay đổi thì được kết lại với
nhau. Trong việc tái tạo, tất cả các trường hợp đột biến có thể được áp dụng.
Khởi đầu, ta cung cấp một “số người” hoàn toàn khác nhau, và yêu cầu
máy tính thực hiện “sự tiến hóa” bằng cách loại bỏ các giải pháp xấu trên mỗi thế
hệ và thay thế chúng bởi con cháu hoặc sự đột biến tốt. Dừng lại khi một gia đình
gồm các giải pháp tốt đã được hình thành.
Ưu điểm và khuyết điểm của các thuật toán di truyền luôn tồn tại song
song. Hai hạn chế là sự sinh sản quá nhiều và tính chất ngẫu nhiên trong tiến
trình tìm kiếm. Các cách giải bằng những thuật toán di truyền được mã hóa thành
các ký hiệu, vì vậy thường là dễ đọc, đó là một thuận lợi hơn so với mạng neural.
Một giải thuật di truyền đơn giản bao gồm các bước sau:
Bước 1: Khởi tạo một quần thể ban đầu gồm các chuỗi nhiễm sắc thể.
Bước 2: Xác định giá trị mục tiêu cho từng nhiễm sắc thể tương ứng.
Bước 3: Tạo các nhiễm sắc thể mới dựa trên các toán tử di truyền.
Bước 4: Loại bớt các nhiễm sắc thể có độ thích nghi thấp.
Bước 5: Xác định hàm mục tiêu cho các nhiễm sắc thể mới và đưa vào
quần thể.
Bước 6: Kiểm tra thỏa mãn điều kiện dừng. Nếu điều kiện đúng, lấy ra
nhiễm sắc thể tốt nhất, giải thuật dừng lại; ngược lại, quay về bước 3.

Nghiên cứu ứng dụng của khai phá dữ liệu trong phát hiện tấn công Web

Page 24


Bắt đầu

Khởi tạo quần thể

Mã hoá các biến


Đánh giá độ thích nghi

Chọn lọc

Lai ghép

Đột biến

Thoả mãn điều kiện dừng

Không

Thoả
Kết quả

Kết thúc

Cấu trúc thuật giải di truyền tổng quát
Bắt đầu
t =0;
Khởi tạo P(t)
Tính độ thích nghi cho các cá thể thuộc P(t);
Khi (điều kiện dừng chưa thỏa) lặp
t = t + 1;
Chọn lọc P(t)
Lai P(t)
Đột biến P(t)
Hết lặp
Kết thúc.


Nghiên cứu ứng dụng của khai phá dữ liệu trong phát hiện tấn công Web

Page 25


×