Phát triển một số kỹ thuật so khớp ứng dụng trong quá trình phát hiện xâm nhập và giả mạo trên mạng

135 14 0
Phát triển một số kỹ thuật so khớp ứng dụng trong quá trình phát hiện xâm nhập và giả mạo trên mạng

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Thuật toán so khớp dựa trên thừa số thực hiện bằng cách tìm kiếm từ cuối cửa sổ trượt, chúng ta không đọc tất cả các ký tự liên tiếp trong văn bản T mà so sánh từng ký tự đặc biệt để [r]

(1)

ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN _

Lê Đăng Nguyên

PHÁT TRIỂN MỘT SỐ KỸ THUẬT SO KHỚP ỨNG DỤNG TRONG QUÁ TRÌNH PHÁT HIỆN

XÂM NHẬP VÀ GIẢ MO TRấN MNG Chuyên ngành : C s toỏn học cho Tin học

M· sè: 62 46 01 10

LUẬN ÁN TIẾN SĨ TOÁN HỌC

(2)

ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN _

Lê Đăng Nguyên

PHÁT TRIỂN MỘT SỐ KỸ THUẬT SO KHỚP ỨNG DỤNG TRONG QUÁ TRÌNH PHÁT HIỆN

XÂM NHẬP V GI MO TRấN MNG

Chuyên ngành : Cơ sở toán học cho Tin học

M· sè: 62 46 01 10

LUẬN ÁN TIẾN SĨ TOÁN HỌC

NGƯỜI HƯỚNG DẪN KHOA HỌC PGS.TS Lê Trọng Vĩnh PGS.TS Đỗ Trung Tuấn

(3)

LỜI CAM ĐOAN

Tôi xin cam đoan là công trình nghiên cứu của riêng Các số liệu, kết quả nêu luận án này là trung thực và chưa từng được công bố bất kỳ công trình nghiên cứu nào khác

Tác giả luận án

(4)

LỜI CẢM ƠN

Tác giả xin được bày tỏ lòng biết ơn chân thành và sâu sắc tới PGS.TS Lê Trọng Vĩnh, PGS.TS Đỗ Trung Tuấn đã tận tâm hướng dẫn và giúp đỡ tác giả suốt quá trình thực hiện luận án này

Tác giả cũng xin gửi lời cảm ơn đến các thầy giáo, cô giáo mơn Tin học, khoa Tốn - Cơ - Tin học, trường Đại học Khoa học Tự nhiên, Đại học Q́c gia Hà Nội đã góp ý quý báu giúp đỡ tác giả quá trình nghiên cứu thực hiện luận án

Tác giả cũng xin chân thành cảm ơn tất cả các thầy, cô Ban Chủ nhiệm Khoa Toán - Cơ - Tin học, trường Đại học Khoa học Tự nhiên, Đại học Quốc gia Hà Nội, Ban Giám hiệu trường Đại học Hải Phòng, Phòng Đào tạo, Khoa Công nghệ Thông tin, trường Đại học Hải Phòng cùng toàn thể các anh chị em đồng nghiệp, bạn bè đã động viên, tạo điều kiện thuận lợi để giúp đỡ tác giả hoàn thành luận án

Cuối cùng, tác giả xin bày tỏ lòng biết ơn vô hạn đến bố mẹ anh chị và gia đình đã hết lòng ủng hộ, động viên, chia sẻ những khó khăn thuận lợi cùng tác giả trong suốt quá trình thực hiện luận án

Tác giả

(5)

MỤC LỤC

LỜI CAM ĐOAN i

LỜI CẢM ƠN ii

MỤC LỤC iii

DANH MỤC CÁC HÌNH VẼ vi

DANH MỤC CÁC BẢNG viii

DANH MỤC CÁC TỪ VIẾT TẮT ix

LỜI NÓI ĐẦU

CHƯƠNG TỔNG QUAN VỀ SO KHỚP

1.1 So khớp chuỗi

1.1.1 Bài toán so khớp chuỗi

1.1.2 Các thuật tốn so khớp xác cổ điển

1.1.3 Các thuật toán so khớp xác dựa mơ hình Automat 13

1.1.4 Các thuật tốn so khớp xác dựa bảng băm 14

1.1.5 Các thuật toán so khớp gần 16

1.1.6 Một số nghiên cứu liên quan ứng dụng thuật toán so khớp phát xâm nhập mạng 17

1.2 So khớp đồ thị 26

1.2.1 Một số định nghĩa ký hiệu 26

1.2.2 Bài toán so khớp đồ thị 28

1.2.3 Một số nghiên cứu liên quan so khớp đồ thị 29

1.3 Kết chương 33

CHƯƠNG ỨNG DỤNG SO KHỚP MẪU TRONG QUÁ TRÌNH PHÁT HIỆN XÂM NHẬP MẠNG 34

(6)

2.1.1 Một số kỹ thuật xâm nhập trái phép 35

2.1.2 Một số giải pháp kỹ thuật ngăn chặn xâm nhập 38

2.1.3 Hệ thống phát xâm nhập trái phép 39

2.1.4 Một số nghiên cứu liên quan đến hệ thống phát xâm nhập 44

2.2 Thuật toán Aho-Corasick 48

2.3 Một số nghiên cứu liên quan 54

2.4 Cải tiến thuật toán AC kỹ thuật nén dòng bảng số 56

2.4.1 Biểu diễn khơng gian lưu trữ tối ưu hóa kỹ thuật nén dòng56 2.4.2 Cải tiến giai đoạn tiền xử lý AC 58

2.4.3 Thực nghiệm đánh giá 62

2.5 Thuật toán đề xuất xây dựng biểu đồ hướng cấu trúc mẫu kết hợp với danh sách liên kết 64

2.5.1 Giai đoạn tiền xử lý 64

2.5.2 Giai đoạn tìm kiếm 66

2.5.3 Thuật toán đề xuất 69

2.6 Kết chương 72

CHƯƠNG ỨNG DỤNG SO KHỚP ĐỒ THỊ TRONG QUÁ TRÌNH PHÁT HIỆN CÁC TRANG WEB GIẢ MẠO 73

3.1 Giả mạo mạng 73

3.1.1 Giới thiệu 73

3.1.2 Một số kỹ thuật giả mạo 73

3.1.3 Một số nghiên cứu liên quan đến giả mạo Web 75

3.2 Một số nghiên cứu liên quan so khớp đồ thị 77

3.2.1 Tìm đẳng cấu đồ thị đẳng cấu đồ thị 77

3.2.2 Thuật toán SI - COBRA cho toán so khớp đồ thị gán nhãn 80

(7)

3.2.4 Thuật toán Partial Tree Alignment 87

3.2.5 Thuật toán NET 89

3.2.6 Thuật toán di truyền 92

3.3 Giải thuật di truyền cho toán so khớp đồ thị 94

3.3.1 Giải thuật di truyền 94

3.3.2 Kết mô với giải thuật di truyền 99

3.4 Thuật toán đề xuất ứng dụng so khớp đồ thị vào so khớp DOM-tree 107 3.4.1 Khái niệm DOM 107

3.4.2 Xây dựng DOM từ trang Web 108

3.4.3 Phát giả mạo dựa DOM 111

3.5 Kết chương 114

KẾT LUẬN 115

Các kết luận án 115

Hướng phát triển luận án 116

DANH MỤC CÁC CƠNG TRÌNH ĐÃ CƠNG BỐ LIÊN QUAN ĐẾN LUẬN ÁN 117

(8)

DANH MỤC CÁC HÌNH VẼ

Hình 1.1 So khớp dựa tiền tố

Hình 1.2 So khớp dựa hậu tố

Hình 1.3 So khớp dựa thừa số

Hình 2.1 Kiến trúc hệ thống phát xâm nhập mạng 40

Hình 2.2 Hệ thống phát đột nhập cho mạng NIDS 41

Hình 2.3 Hệ thống phát đột nhập cho trạm chủ - HIDS 42

Hình 2.4 Kiến trúc hệ thống Snort 44

Hình 2.5 Quá trình so sánh thuật tốn KMP 49

Hình 2.6 Xây dựng mảng Next ứng với mẫu P = “aabaaa“ 49

Hình 2.7 Xây dựng mơ hình otomat cho tập mẫu P = {her, their, eye, iris, he, is} 53

Hình 2.8 Khơng gian trạng thái AC với tập mẫu P 57

Hình 2.9 Khơng gian trạng thái thuật toán AC gốc 60

Hình 2.10 Khơng gian trạng thái thuật tốn AC sau tối ưu 61

Hình 2.11 So sánh khơng gian nhớ thuật tốn AC với cách tiếp cận lưu trữ trạng thái khác 63

Hình 2.12 Kết giai đoạn tiền xử lý thuật toán AC 64

Hình 2.13 Kết giai đoạn tiền xử lý thuật tốn CW 65

Hình 2.14 Kết giai đoạn tiền xử lý thuật toán WM 66

Hình 2.15 Kết giai đoạn tiền xử lý thuật tốn chúng tơi 66

Hình 2.16 Giai đoạn tìm kiếm thuật tốn CW WM 68

Hình 2.17 Giai đoạn tìm kiếm so khớp thuật tốn chúng tơi đề xuất 69

Hình 2.18 So sánh thời gian thực cố định số lượng mẫu 71

Hình 2.19 So sánh nhớ sử dụng cố định số lượng mẫu 71

Hình 3.1 Minh họa vector hàng - cột biểu diễn ma trận kề đồ thị G 77

Hình 3.2 Đồ thị GM GD 78

Hình 3.3 Cây định biểu diễn tất ma trận kề đồ thị GD 78

Hình 3.4 Cây định biểu diễn hai đồ thị GM GD 80

Hình 3.5 Mơ thuật tốn tìm đồ thị đẳng cấu dựa vào danh sách mã 81

Hình 3.6 Ví dụ chiến lược tìm kiếm theo chiều rộng, chiều sâu sử dụng mã LVEV 83

(9)

Hình 3.8 Ví dụ thuật tốn Simple Tree Matching 86

Hình 3.9 Quá trình mở rộng 88

Hình 3.10 Quá trình so khớp nút thuật toán NET 91

Hình 3.11 Thực nghiệm với đồ thị vơ hướng có số đỉnh nhỏ 10 100

Hình 3.12 Đồ thị tương ứng cá thể 100

Hình 3.13 Thực nghiệm với đồ thị vơ hướng có số đỉnh lớn 10 nhỏ 20 101

Hình 3.14 Thực nghiệm với đồ thị vơ hướng có số đỉnh lớn 20 101

Hình 3.15 Thực nghiệm với đồ thị vơ hướng có trọng số nhỏ 10 đỉnh 102

Hình 3.16 Thực nghiệm với đồ thị vơ hướng có trọng số từ 10 đến 20 đỉnh 103

Hình 3.17 Thực nghiệm với đồ thị vơ hướng có trọng số lớn 20 đỉnh 104

Hình 3.18 Thực nghiệm với đồ thị vơ hướng có gán nhãn với số đỉnh nhỏ 10 105

Hình 3.19 Thực nghiệm với đồ thị vơ hướng có gán nhãn với số đỉnh từ 10 đến 20 106

Hình 3.20 Thực nghiệm với đồ thị vơ hướng có gán nhãn với số đỉnh lớn 20 106

Hình 3.20 Ví dụ DOM trang HTML 108

Hình 3.21 Ví dụ minh họa sử dụng visual cue 110

(10)

DANH MỤC CÁC BẢNG

Bảng 2.1 Nén ma trận chuyển hàm Goto với CSR 57

Bảng 2.2 Nén hàm failure AC dùng bảng số 57

Bảng 2.3 Thống kê không gian trạng thái thực nghiệm Snort với tập luật chuẩn 63 Bảng 3.1 Kết độ thích nghi số hệ với số đỉnh nhỏ 10 100

Bảng 3.2 Kết độ thích nghi số hệ với số đỉnh lớn 10 nhỏ 20 101

Bảng 3.3 Kết độ thích nghi số hệ với số đỉnh lớn 20 102

Bảng 3.4 Kết độ thích nghi số hệ với số đỉnh nhỏ 10 103

Bảng 3.5 Kết độ thích nghi số hệ với số đỉnh lớn 10 nhỏ 20 103

Bảng 3.6 Kết độ thích nghi số hệ với số đỉnh lớn 20 104

Bảng 3.7 Kết độ thích nghi số hệ với số đỉnh nhỏ 10 105

Bảng 3.8 Kết độ thích nghi số hệ với số đỉnh lớn 10 nhỏ 20 106

Bảng 3.9 Kết độ thích nghi số hệ với số đỉnh lớn 20 107

Bảng 3.10 Kết so sánh GA STM (%) 113

(11)

DANH MỤC CÁC TỪ VIẾT TẮT Viết tắt Ý nghĩa

AC Thuật toán Aho-Corasick

AC-BM Aho-Corasick Boyer-Moore

ACMS Aho-Corasick with Magic states String matching

AC-OPT Thuật toán Aho-Corasick – OPT

AC-RDF Thuật toán Aho-Corasick – RDF

APWG Anti Phishing Working Group

ARP Address Resolution Protocol

ASCII American Standard Code for Information Interchange

BDM Thuật toán Backward Dawg Matching

BM Thuật toán Boyer-Moore

BMH Thuật toán Boyer-Moore Horspool

BO Back - Office

BOM Thuật toán Backward Oracle Matching

CIAC Character Index Aho-Corasick

CW Thuật toán Commentz-Walter

DDOS Distributed Denial Of Service

DFA Deterministic Finite Automata

DHCP Dynamic Host Configuration Protocol

DNS Domain Name Service

DOM Document Object Model

DoS Denial Of Service

DRDoS Distributed Reflection DoS

GA Genetic Algorithms

HIDS Host – based IDS

HP Honey Pots

(12)

IDS Intrusion Detection System

IP Internet Protocol

IRC Internet Relay Chat

KMP Thuật toán Knuth-Morris-Pratt

KR Thuật toán Karp-Rabin

MAC Medium Address Control

MDH Thuật toán Multi-Phase Dynamic Hash

NFA Non-Deterministic Finite Automata

NIDS Network - based Intrusion Detection System

NIPS Network - based Intrusion Prevention System

PCA Principle Component Analysis

PMT Possible matching patterns

RSI Thuật toán Recursive Shift Indexing

SBMH Setwise Boyer Moore Horspool

SBOM Set Backward Oracle Matching

SMB Server Message Block

SMTP Simple Mail Transfer Protocol

SNMP Simple Network Management Protocol

STM Simple Tree Matching

SVD Singular Value Decomposition

TCP/IP Transmission Control Protocol / Internet protocol

TCP/UDP Transmission Control Protocol / User Datagram Protocol

TF-IDF Term Frequency – Inverse Document Frequency

URL Uniform Resource Locator

WM Thuật toán Wu Manner

XML eXtensible Markup Language

(13)

LỜI NÓI ĐẦU

Triển khai ứng dụng dịch vụ Internet nhu cầu nhiều ngành kinh tế Nhiều dịch vụ trực tuyến phát triển mạnh mẽ thương mại điện tử, toán trực tuyến, kinh doanh, tài chính, cơng nghiệp, an ninh, y tế,…cho phép người sử dụng truy cập, khai thác chia sẻ thông tin lúc nơi Song song với tiến lợi ích mang lại, Internet không gian rộng mở cho kẻ xấu lợi dụng thực vụ công, truy cập trái phép vào hệ thống máy tính mạng người dùng

Theo báo cáo quan an ninh mạng quốc tế, năm gần đây, năm 2012, thiệt hại kinh tế tội phạm mạng gây lên tới 388 tỷ USD so với năm 2011 114 tỷ USD Đặc biệt, số vụ công mạng vào hệ thống sở hạ tầng trọng yếu nhiều quốc gia ngày gia tăng không thiết bị kết nối Internet truyền thống, thiết bị dân dụng tivi thông minh, máy in,… trở thành mục tiêu công mạng Bên cạnh yếu tố đe dọa an ninh truyền thống, nguy chiến tranh mạng trở nên hữu Đặc biệt có nhiều công trực tiếp vào quan trọng yếu phủ, lấy nhiều tài liệu mật Các thơng tin bị công bố bừa bãi mạng gây bất lợi mặt trị, tâm lý xã hội bị sử dụng vào mục đích chống lại phủ

(14)

Hệ thống phát xâm nhập mạng (Intrusion Detection System) có nhiệm vụ phân tích thơng tin, theo dõi, phát ngăn chặn xâm nhập trái phép tài nguyên làm tổn hại đến tính bảo mật, tính tồn vẹn tính sẵn sàng hệ thống Có nhiều cách tiếp cận khác việc phát triển hệ thống IDS Trong số đó, so khớp mẫu kỹ thuật sử dụng phổ biến hệ thống phát ngăn chặn xâm nhập mạng Việc phát nguy tiềm ẩn hệ thống phát xâm nhập mạng thực cách so khớp nội dung gói tin với mẫu biết Với đa dạng số lượng đợt cơng, hình thức cơng việc thu thập đầy đủ mẫu làm cho kích thước tập mẫu ngày tăng nhanh Có nhiều thuật tốn so khớp mẫu [7][19] sử dụng hệ thống phát xâm nhập Snort [4][5] Tuy nhiên, thuật toán tồn tài số vấn đề hiệu giảm tiêu tốn nhiều thời gian thực số lượng mẫu tăng lên Do vậy, việc nghiên cứu cải tiến hay đề xuất thuật toán so khớp đáp ứng việc so khớp đồng thời nhiều mẫu hệ thống phát xâm nhập nhu cầu cấp thiết

mục tiêu thứ luận án

Một vấn đề khác liên quan đến an toàn vấn đề giả mạo (phishing hay fake) nói chung giả mạo web nói riêng Giả mạo phát tán mạng loại tội phạm kỹ thuật xã hội đáng ý mạng Giả mạo báo cáo vấn nạn web lần vào năm 2001 hiệp hội bảo vệ khách hàng, hiệp hội thương mại liên bang Mỹ ngày nhóm làm việc chống giả mạo APWG (Anti Phishing Working Group) đưa thông số trang web giả tăng khoảng 50% năm

(15)

giải pháp Cantina [46] phát triển nhà nghiên cứu Đại học Carnegie Mellon với việc sử dụng năm từ khóa có tần suất xuất cao trang Nhóm nhà nghiên cứu thuộc Đại học Iowa [47] sử dụng thuật toán lọc Bayesian Lợi thuật tốn có khả phát đối tượng chưa nhìn thấy trước Việc sử dụng phép lọc Bayesian giải pháp hứa hẹn cho việc phát lừa đảo ngày (zero-day) phát trang web lừa đảo không dựa danh sách đen Một số tác giả Hồng Kơng [48] quan tâm đến thuật tốn phát giống hai trang web mặt hình ảnh Hướng tiếp cận kiểm tra hiển thị tương đồng trang web so sánh đặc trưng hiển thị với trang web hợp lệ Trong nghiên cứu mình, Kranti đồng nghiệp đề xuất giải pháp chống giả mạo cách sử dụng hai thuật tốn K-mean Nạve Bayes [49]

Một đặc tính bật trang web giả mạo phải tương tự trang web gốc Điều có nghĩa hai trang web gốc web giả mạo có cấu trúc giống nhau Mặt khác, DOM tên gọi tắt Document Object Model - Mô hình đối tượng tài liệu - chuẩn định nghĩa W3C [22] dùng để truy xuất thao tác tài liệu có cấu trúc dạng HTML hay XML ngôn ngữ lập trình Javascript, PHP, Python, Do vậy, để so sánh hai trang web với so sánh hai DOM-Tree tương ứng chúng Vì mục tiêu thứ hai luận án nghiên cứu phương pháp để so sánh nhanh hiệu xem hai DOM-Tree có giống hay không, tổng quát nghiên cứu việc so khớp hai đồ thị với “cây” dạng đặc biệt đồ thị áp dụng kết việc so khớp đồ thị vào so khớp hai DOM-Tree với

Liên quan đến việc giải vấn đề nêu trên, luận án hướng đến hai mục tiêu sau:

(1) Nghiên cứu về hệ thống phát hiện xâm nhập Phát triển áp dụng thuật toán so khớp mẫu vào việc xây dựng hệ thống phát xâm nhập

(2) Nghiên cứu về giả mạo Web Phát triển thuật toán so khớp đồ thị ứng dụng vào việc phát trang Web giả mạo

(16)

(i) Phân tích đánh giá hiệu thời gian thực thuật tốn so khớp mẫu có hệ thống phát thâm nhập Snort; (ii) Đưa cải tiến cho thuật toán so khớp đa mẫu Aho-Corasick

cách sử dụng kỹ thuật nén dòng bảng số nhằm nâng cao hiệu thuật toán, phân tích so sánh thực tế nhằm kiểm nghiệm lý thuyết thực hệ thống Snort;

(iii) Đề xuất thuật toán so khớp đa mẫu cách xây dựng biểu đồ mẫu kết hợp với danh sách liên kết làm giảm thời gian thực việc so khớp đồng thời đa mẫu Việc cài đặt thực nghiệm thuật toán so sánh với số thuật toán tồn triển khai hệ thống Snort

Với mục tiêu (2), dạng đặc biệt đồ thị, với mục tiêu thứ hai, luận án nghiên cứu toán tổng quát so khớp đồ thị Với mục tiêu này, kết luận án đạt là:

(i) Đưa thuật toán dựa thuật toán di truyền để so khớp đồ thị khơng xác, thuật tốn áp dụng lớp đồ thị vơ hướng, có hướng, có trọng số hay gán nhãn

(ii) Áp dụng việc so khớp đồ thị vào việc so khớp DOM-Tree để phát trang Web giả mạo

Với mục tiêu luận án trên, phần mở đầu, luận án tổ chức thành ba chương sau

- Chương trình bày tổng quan so khớp chuỗi so khớp đồ thị ứng dụng Trong đó, luận án tập trung giới thiệu thuật toán so khớp đơn mẫu đa mẫu, so khớp xác khơng xác áp dụng việc phát xâm nhập mạng;

(17)

- Chương luận án giới thiệu kỹ thuật giả mạo trang web Từ đề xuất ứng dụng thuật toán di truyền việc so khớp đồ thị, ứng dụng việc so khớp đồ thị so sánh DOM để phát giả mạo mạng

(18)

CHƯƠNG TỔNG QUAN VỀ SO KHỚP

Trong bối cảnh tiến trình hội nhập, vấn đề an ninh mạng bảo mật liệu trở nên quan tâm Khi sở hạ tầng công nghệ mạng đáp ứng tốt yêu cầu băng thông, chất lượng dịch vụ, đồng thời thực trạng công mạng ngày gia tăng vấn đề bảo mật trọng Không nhà cung cấp dịch vụ Internet, quan phủ mà doanh nghiệp, tổ chức có ý thức an tồn thơng tin

Triển khai ứng dụng dịch vụ Internet cần có chế bảo vệ chặt chẽ, an tồn, nhằm góp phần trì tính bền vững cho hệ thống thơng tin doanh nghiệp Tất hiểu giá trị thông tin doanh nghiệp tài sản vô giá Không túy mặt vật chất, giá trị khác đo đếm uy tín họ với khách hàng sao, thông tin giao dịch với khách hàng bị đánh cắp, sau bị lợi dụng với mục đích khác nhau,… Các thơng tin dịch vụ làm cho mạng máy tính trở thành mục tiêu hấp dẫn cho lạm dụng tổn thương đến cộng đồng người sử dụng Thêm nữa, giả mạo mạng loại tội phạm kỹ thuật xã hội đáng ý mạng Giả mạo báo cáo vấn nạn Web lần vào năm 2001 hiệp hội bảo vệ khách hàng, hiệp hội thương mại liên bang Mỹ ngày nhóm làm việc chống giả mạo APWG đưa cảnh báo trang Web giả tăng khoảng 50% năm

Vì thế, bên cạnh việc phát triển dịch vụ ứng dụng mạng, an ninh thơng tin an tồn hệ thống vấn đề quan trọng cần quan tâm nghiên cứu thường xuyên Vấn đề an ninh thơng tin an tồn hệ thống bao gồm nhiều chủ đề, nhiên luận án tập trung nghiên cứu thuật tốn so khớp ứng dụng phát xâm nhập mạng giả mạo mạng

1.1 So khớp chuỗi

1.1.1 Bài toán so khớp chuỗi

(19)

chuỗi văn Gọi Y tập liệu X mẫu So khớp mẫu (Pattern Matching) tìm tất lần xuất mẫu X tập liệu Y

Trong [7], toán so khớp mẫu mô tả sau: Cho bảng chữ Σ là tập hữu hạn ký tự, mẫu P (P [1 m]) độ dài m chuỗi ký tự T (T [1 n]) độ dài n (trong m<<n) Bài tốn đặt cần tìm vị trí xuất P trong T P có khớp với chuỗi T hay không?

Gọi Σ tập hữu hạn ký tự Thông thường, ký tự mẫu tìm kiếm đoạn văn gốc nằm Σ Tập Σ tùy ứng dụng cụ thể bảng chữ tiếng Anh từ A đến Z thông thường, tập nhị phân gồm hai phần tử (Σ = {0,1}) tập ký tự DNA sinh học (Σ = {A,C,G,T}) Phương pháp đơn giản nghĩ đến xét vị trí i xâu ký tự gốc từ đến n-m+1, so sánh T[i…(i+m-1)] với P[1 m] cách xét cặp ký tự đưa kết tìm kiếm Dễ thấy độ phức tạp thuật toán O(n*m)

Các thuật toán so khớp thường sử dụng chế cửa sổ trượt (một khung có kích thước với kích thước mẫu cần tìm) để so sánh ký tự mẫu cửa sổ với ký tự văn Tất thuật toán so khớp chuỗi có hai giai đoạn là: tiền xử lý tìm kiếm Việc đánh giá thuật tốn thực dựa dung lượng nhớ sử dụng tốc độ so khớp Các thuật toán so khớp phân loại theo cách tiếp cận xây dựng thuật toán số lượng mẫu Các thuật toán so khớp chuỗi phân loại theo nhiều tiêu chí:

Dựa sớ lượng mẫu, có hai loại: so khớp đơn mẫu (single pattern) và so khớp đa mẫu (multiple patterns) Các thuật toán so khớp đơn mẫu tiến hành so sánh mẫu P văn T, so khớp đa mẫu cho phép so sánh cùng lúc nhiều mẫu Pi (i=1 k) văn T Các thuật toán so khớp mẫu thường

là cải tiến so khớp đơn mẫu nhằm nâng cao hiệu so khớp

(20)

Dựa độ xác của kết quả so khớp: thuật tốn so khớp chia thành hai loại: so khớp xác (Extract String Matching) so khớp gần (Approximate String Matching) So khớp xác khẳng định mẫu P có xuất ở chuỗi T hay khơng? Cịn thuật tốn so khớp xấp xỉ đánh giá tương đồng của mẫu P so với mẫu T dựa hàm đo khoảng cách Đa số thuật tốn so khớp khơng xác sử dụng khoảng cách Hamming hay khoảng cách Levenshtein với k vị trí khác biệt thiết lập trước [65]

Dựa sở thiết kế thuật toán: Các thuật toán so khớp chia thành ba loại:

- So khớp dựa tiền tố (prefix) - So khớp dựa hậu tố (suffix) - So khớp dựa nhân tố (factor)

Hình 1.1 So khớp dựa tiền tố

Quá trình so khớp thuật toán so khớp dựa tiền tố thực cách tìm kiếm từ đầu cửa sổ trượt, tất ký tự văn T đọc kiểm tra, khơng khớp dịch chuyển sang ký tự Đây chiến lược đơn giản số lượng phép so sánh lớn nên tốc độ thực chậm (xem Hình 1.1)

Thuật toán so khớp dựa hậu tố thực cách tìm kiếm từ cuối cửa sổ trượt, không đọc tất ký tự liên tiếp văn T mà dịch hay bỏ qua ký tự dựa vào kết so sánh ký tự cuối cửa sổ (xem Hình 1.2) Đây sở để giảm số lượng phép so sánh giảm độ phức tạp thuật toán

Cửa sổ trượt Chuỗi văn T

(21)

Hình 1.2 So khớp dựa hậu tố

Thuật toán so khớp dựa thừa số thực cách tìm kiếm từ cuối cửa sổ trượt, không đọc tất ký tự liên tiếp văn T mà so sánh từng ký tự đặc biệt để đoán nhận tập nhân tố (các mẫu con) mẫu P ban đầu (Hình 1.3)

Hình 1.3 So khớp dựa nhân tố

Dựa sự thay đổi của mẫu và văn bản: có ba loại: - So khớp mẫu thay đổi, văn cố định

- So khớp mẫu cố định, văn thay đổi - So khớp mẫu thay đổi, văn thay đổi

Để đánh giá hiệu thuật tốn đối sánh chuỗi, dựa tiêu chí sau:

- Số lần tìm kiếm, duyệt mẫu văn - Độ phức tạp thời gian

- Tiêu chuẩn lựa chọn để đối sánh - Số mẫu so khớp

- Kỹ thuật biểu diễn mẫu

1.1.2 Các thuật toán so khớp xác cổ điển Cửa sổ trượt Chuỗi văn T

Mẫu P

Cửa sổ trượt Chuỗi vănbản T

(22)

Các kỹ thuật so khớp xác cổ điển xây dựng dựa số ký tự so sánh Sự khác biệt thuật toán q trình tính tốn xác định số ký tự dịch chuyển sau lần so sánh Việc so sánh tiến hành từ trái qua phải hay từ phải qua trái, vị trí ký tự so sánh dựa tiền tố, hậu tố, Các thuật tốn so khớp điển hình kể đến gồm:

Thuật toán Brute Force [7]: thuật toán đơn giản biết đến Thuật toán Brute Force kiểm tra tất vị trí văn n - m, có xuất mẫu P hay khơng Sau đó, sau lần so sánh dịch chuyển mẫu vị trí sang bên phải Thuật tốn Brute Force khơng u cầu giai đoạn tiền xử lý không gian thêm liên tục thêm vào mẫu văn Trong giai đoạn tìm kiếm so sánh ký tự văn thực theo thứ tự Độ phức tạp giai đoạn tìm kiếm làO m( n)

Thuật toán KMP (1972) [8] đề xuất Knuth, Morris Pratt dựa tiếp cận tiền tố cách không so sánh mẫu với vị trí văn thuật tốn Brute Force mà dịch chuyển mẫu sang phải văn số vị trí sử dụng thơng tin lần thử trước cho lần thử sau Ý tưởng phương pháp sau : trình tìm kiếm vị trí mẫu P xâu gốc T, tìm thấy vị trí sai ta chuyển sang vị trí tìm kiếm trình tìm kiếm sau tận dụng thơng tin từ q trình tìm kiếm trước để khơng phải xét trường hợp khơng cần thiết Thuật tốn KMP cải tiến thời gian thực cách giảm số phép so sánh dựa mẫu tiền xử lý để tìm mẫu từ đó xây dựng mảng Next để xác định ký tự mẫu kiểm tra dựa mô hình Automat Việc so khớp thực dựa ký tự xâu văn T và dịch trạng thái mảng Next Ưu điểm thuật toán KMP trỏ văn T khơng bị giảm lùi lại Thuật tốn KMP dùng phép so sánh thuật tốn Brute Force, độ phức tạp thời gian không gian để xây dựng bảng kmpNext O(m)và độ phức tạp tính tốn thuật toán O(m+n) = O(n)

(23)

mẫu sang phải văn cho vị trí có đoạn u mẫu P khớp với đoạn u trên văn T ký tự c mẫu P trước u phải khác a Ta chọn đoạn dịch ngắn nhất Nếu đoạn u P, ta chọn cho phần đuôi dài u xuất hiện đầu mẫu P Với Bad-character, xuất khác mẫu P văn bản T với bT i  j P i a, ta dịch cho có ký tự giống b mẫu khớp vào vị trí đó, có nhiều vị trí xuất b mẫu ta chọn vị trí bên phải Nếu khơng có ký tự b mẫu ta dịch cho ký tự trái mẫu vào vị trí sau ký tự T i  jb để đảm bảo ăn khớp Hai hướng tiếp cận tạo giá trị dịch chuyển khác nhau, từ lựa chọn giá trị lớn làm giá trị dịch chuyển Độ phức tạp trung bình thuật tốn BM O(n/m) trường hợp ký tự T không thường xuyên xuất mẫu P, trường hợp xấu O(n+m) Thời gian thực thi BM giảm độ dài mẫu tăng

(24)

Thuật toán Apostolico-Giancarlo (1986) [7] dựa tiếp cận ghi nhớ tất hậu tố mẫu tìm thấy văn sử dụng bảng dịch chuyển kmpNext để tính số lần dịch chuyển Từ tính tốn khoảng cách dịch chuyển phù hợp đến vị trí ký tự cuối mẫu với lần thử Giai đoạn tiền xử lý bao gồm cơng đoạn tính tốn bảng kmpNext[] số ngun Nó bị O(m) khơng gian thời gian xử lý Việc tìm kiếm O(n) thời gian, thuật toán thuật toán Apostolico– Giancarlo thực so sánh

2n ký tự văn trường hợp xấu

Thuật toán Quick Search (1990) [7] cải tiến đơn giản hóa thuật toán Boyer Moore sử dụng bảng dịch “Bad-character shift” xác định số bước dịch chuyển trường hợp xấu Thuật toán Quick Search thực nhanh với tập mẫu ngắn văn lớn Sau lần thử, cửa sổ trượt dịch chuyển sang vị trí gói tin dựa vào bảng qsBC, độ dài lần dịch

Thuật toán Boyer-Moore-Smith (1991) [62] kết hợp việc đánh giá hiệu từ lựa chọn số ký tự dịch chuyển lớn dựa tính tốn bước dịch chuyển văn bên phải ký tự xét

Thuật toán Colussi Algorithm (1991) [62]cũng cải tiến từ thuật toán KMP cách chia vị trí ký tự mẫu thành hai tập tách biệt Các vị trí tập thứ duyệt từ trái phải vị trí khơng khớp duyệt lại tập thứ hai từ phải qua trái

(25)

Thuật toán Berry-Ravindran (1999) [62] cải tiến thuật toán Quick Search dựa việc sử dụng luật cho phép thực nhanh lần lặp với ký tự khơng khớp tìm thấy

Ngồi cịn nhiều thuật tốn khác như: Not So Naïve, Simon, Galil-Giancarlo, Horspool, Zhu-Takaoka, Smith, Two way, KMPSkip, Alpha Skip,…

1.1.3 Các thuật tốn so khớp xác dựa mơ hình Automat

Các kỹ thuật so khớp xác đề xuất sử dụng mơ hình Automat tất định hữu hạn (Deterministic Finite Automata-DFA) để lưu trữ ký tự tiền tố hậu tố mẫu Việc sử dụng lược đồ chuyển trạng thái cho phép so khớp nhanh chuỗi ký tự Các thuật toán đề xuất hướng đến việc thu hẹp không gian trạng thái nhớ yêu cầu biểu diễn mẫu Các thuật tốn so khớp điển hình kể đến gồm:

Thuật toán Automaton Matcher (1974) [62]: thuật tốn tuyến tính đầu tiên sựa automat tất định Thuật toán cho phép duyệt ký tự từ trái qua phái dựa việc dịch chuyển trạng thái sơ đồ chuyển trạng thái tương ứng

Thuật toán Aho-Corasick (1975): Thuật toán KMP áp dụng mẫu đơn, để mở rộng tập đa mẫu, tác giả [9] cải tiến KMP gọi thuật toán Aho-Corasick (AC) Thuật toán AC cho tập đa mẫu sử dụng mơ hình otomat hữu hạn (S, Q, I, T, F) Trong đó: Q tập hữu hạn trạng thái, I trạng thái bắt đầu, T tập trạng thái kết thúc, F hàm dịch chuyển Trong otomat đơn định (DFA) không đơn định (NFA) với kết hợp hàm Goto function, Failure function, Output function Khi xây dựng otomat áp dụng thuật toán KMP so khớp đơn mẫu cho nhánh otomat Thuật toán AC cách sử dụng thuật toán KMP cho đơn mẫu nhiều lần Độ phức tạp thời gian thuật toán AC O(n) độc lập với kích thước chuỗi vào cho tốc độ thực thi tốt với tập nhiều mẫu Các cải tiến AC ACMS [8] CIAC [9]

(26)

bên phải đến kí tự mẫu, kết hơp thành nút Trong giai đoạn tìm kiếm, thuật tốn CW sử dụng chiến lược thuật toán Boyer-Moore Chiều dài cửa sổ trượt chiều dài mẫu ngắn Trong cửa sổ trượt, thuật toán CW so sánh ký tự mẫu từ bên phải sang trái (từ cuối lên đầu) bắt đầu với ký tự bên phải Trong trường hợp khơng phù hợp (hoặc hồn tồn so khớp tồn mẫu) tính tốn lại để thay đổi cửa sổ trượt bên phải Một thuật toán so khớp đa mẫu sử dụng để so khớp từ điểm cuối mẫu, giống Boyer-Moore, sử dụng otomat hữu hạn, AC Thuật toán CW phát minh Beate CW, giống thuật tốn so khớp mẫu AC, CW dùng cho việc so khớp đa mẫu

Thuật toán Reverse Factor (1994) [62]: phép toán so sánh thực từ phải qua trái sử dụng nhân tố mẫu đảo ngược để nhanh chóng tìm hậu tố Giai đoạn tiền xử lý thực thi thời gian tuyến tính với khơng gian nhớ độ dài mẫu tương ứng

Thuật toán Backward Dawg Matching (1998) [17] xây dựng để tìm kiếm vị trí xuất ký tự mẫu dựa nhân tố thực cách xây dựng bảng mặt nạ mẫu, vị trí xuất bit bảng tương ứng với vị trí ký tự xuất mẫu Việc tìm thừa số thực cách thực phép toán AND Nếu kết phép AND trả lại chuỗi tồn bit mẫu khơng xuất chuỗi Thuật tốn BDM nhanh chóng tìm việc có hay khơng xuất mẫu mẫu ban đầu văn T, từ dễ dàng loại bỏ mẫu dịch chuyển nhanh văn

Thuật toán Backward Oracle Matching (1999) cải tiến BDM tập đơn mẫu [7], thuật tốn BOM thực thi tìm kiếm nhanh tập mẫu lớn với số lượng ký tự nhỏ Trong giai đoạn tiền xử lý độ phức tạp thời gian không gian O(m), độ phức tạp thời gian tìm kiếm O(m*n) lại cho kết tối ưu trường hợp trung bình Các cải tiến BDM BOM dùng cho tập đa mẫu theo hướng tiếp cận thừa số SBDM SBOM [17]

1.1.4 Các thuật tốn so khớp xác dựa bảng băm

(27)

tiếp ký tự tương ứng mẫu văn bản, thực so sánh dựa kết đại diện tính tốn lưu trữ bảng băm Các thuật tốn so khớp điển hình kể đến gồm:

Thuật tốn Karp-Rabin (1987)[7] với tư tưởng sử dụng phương pháp băm (hashing) Tức xâu gán với giá trị hàm băm (hash function) Thuật toán sử dụng hàm băm để tránh so sánh không cần thiết Thay so sánh tất vị trí văn bản, ta so sánh phần gồm ký tự giống với mẫu Hàm băm phải có đặc tính tính tốn hiệu quả, dễ dàng tính chuỗi Hàm băm chọn sau:

 

 1  

hash y j j m phải dễ dàng tính từ hash y j j   m 1 Sau thực

hiện giá trị băm tính lại Trong q trình tìm kiếm mẫu x, hash(x) so sánh với hash j m  1 j với 0  j n Nếu tìm thấy giống cần

kiểm tra xy j  m j Vấn đề đặt có nhiều xâu tồn trường hợp xâu ký tự khác có giá trị băm giống nhau, tìm thấy hai xâu có giá trị băm giống phải kiểm tra lại xem chúng có thực hay khơng, trường hợp xảy với hàm băm thiết kế đủ tốt Thuật tốn Karp-Rabin có độ phức tạp tính tốn O(m + n)

(28)

lượng mẫu danh sách tăng, khả xung đột hàm băm cao lên hạn chế giá trị trung bình bước dịch chuyển Vì cần thỏa hiệp trong trình so khớp Bằng cách tăng kích thước khối b xử lý xung đột, tăng b kích thước bảng SHIFT HASH tăng theo làm tăng yều cầu nhớ

1.1.5 Các thuật toán so khớp gần

Các cách tiếp cận so khớp xấp xỉ đánh giá tương đồng mẫu P so với mẫu T dựa hàm khoảng cách với độ dài xâu k cho trước Đa số thuật tốn so khớp khơng xác sử dụng khoảng cách Hamming hay khoảng cách Levenshtein với k vị trí khác biệt thiết lập trước

Khoảng cách Hamming (Hamming distance) [62] hai xâu văn xét mẫu có chiều dài số ký hiệu vị trí tương đương có giá trị khác Nói cách khác, khoảng cách Hamming đo số lượng thay cần phải có để đổi giá trị dãy ký tự sang dãy ký tự khác, hay số lượng lỗi xảy biến đổi dãy ký tự sang dãy ký tự khác Chúng ta gọi thuật toán so khớp gần sử dụng hàm khoảng cách Hamming k vị trí lỗi

Khoảng cách Levenshtein [62] thể khoảng cách khác biệt chuỗi kí tự đang xét mẫu Khoảng cách Levenshtein mẫu P chuỗi T xét số bước ít biến chuỗi T thành mẫu P thơng qua ba phép biến đổi xóa ký tự, thêm ký tự thay ký từ ký tự khác Chúng ta gọi thuật toán so khớp gần sử dụng hàm khoảng cách Levenshtein với k vị trí khác biệt

Hàm khoảng cách d(P, T) đóng vai trị hàm heuristic, giá trị tùy thuộc vào thuật toán cụ thể Các thuật toán so khớp gần phân loại dựa tiêu chí sau:

(29)

toán Diagonal Transition (1985), thuật toán Landau (1986), thuật toán Vishkin (1989), thuật toán Chang–Lampe (1992) [62]

- Phương pháp đếm (Counting Method): dựa phép tính số học, sử dụng đếm cho vị trí văn từ tính khoảng cách Các thuật tốn tiêu biểu kể đến là: Thuật toán Baeza–Yates– Perleberg (1996) sử dụng cách tiết cận đơn giản để tìm k vị trí lỗi độc lập [62]

- Phương pháp sử dụng mơ hình automat khơng tất định biết đến với thuật toán Ukkonen (1985), thuật toán Wu–Manber–Myers (1996), thuật toán Kurtz (1996), thuật toán Navarro (1997) [62]

- Phương pháp xử lý bit song song (Bit-Parallelism): sử dụng kết hợp mơ hình automat khơng tất định xử lý song song đồng thời Các thuật toán tiêu biểu sử dụng phương pháp gồm có: Thuật toán Tarhio–Ukkonen (1993), thuật toán Linear Expected Time (1994), thuật toán Baeza (1996), thuật toán Myers (1998), thuật toán Yates (1999) [62]

- Phương pháp lọc (Filtering): dựa việc tìm kiếm thuật tốn nhanh để loại bỏ số lượng lớn ký tự văn xét khơng có khả khớp với mẫu áp dụng thuật tốn tìm so khớp khác để kiểm tra phần lại văn Đây hướng tiếp cận dựa quy hoạch động Các thuật tốn so khớp kiểu kể đến là: Baeza-Yates (1996), COUNT (1997) [62]

1.1.6 Một số nghiên cứu liên quan ứng dụng thuật toán so khớp phát xâm nhập mạng

Năm 2000, thuật toán Navarro and Raffinot xây dựng dựa mơ hình automat sử dụng hậu tố tương thích với so khớp xác [62] Thuật tốn cho phép tìm kiếm đơn giản với mẫu phức tạp

(30)

[15] có nhiều kỹ thuật so khớp chuỗi thiết kế như: E2xB để giải số

đặc trưng hệ thống phát xâm nhập mạng làm tăng hiệu khả hoạt động hệ thống Kỹ thuật đề xuất E2xB [16] để nhanh chóng

phủ định chuỗi cần tìm khơng tồn nội dung gói tin Những cải tiến để loại bỏ liên hệ bước đầu liên quan đến việc khởi tạo biến cố danh giai đoạn tiền xử lý Ý tưởng E2

xB kiểm tra gói liệu nhận có chứa tồn chuỗi bit mẫu virus cho trước khơng không xem xét bit cách hay giống thuật tốn có E2xB khai

báo mẫu không khớp, chuỗi bit mẫu virus khơng xuất gói tin E2xB tạo đồ bit biến cố, đánh dấu mẫu cách cố định kích thước chuỗi bit tồn gói tin Những đồ chuỗi bit so khớp với chuỗi bit mẫu kết tập không khớp hay tập đại lượng dương sai sau: giả thiết S chuỗi nhỏ I chuỗi đầu vào, S chứa ký tự không nằm I S khơng chuỗi I Trong trường hợp khác tất các ký tự S thuộc I S không chuỗi I S đại lượng dương sai Phép kiểm tra thực với trợ giúp đồ biến cố Để hạn chế giá trị dương sai họ đưa cặp ký tự Ví dụ: thay ghi lại biến cố ký tự đơn chuỗi I, ghi lại cặp ký tự liên tiếp chuỗi I Trong trình xử lý so khớp, thay xác định ký tự đơn xuất I, E2xB kiểm tra cặp ký tự xuất I

Năm 2003, thuật toán Yuebin Bai and Hidetsune Kobayashi Yuebin Bai Hidetsune Kobayashi đề xuất dựa thuật toán BMH (Boyer-Moore-Horspool) [14] BMH thiết kế dựa việc tìm kiếm ký tự lỗi với hai thủ tục tìm kiếm đơn giản dùng để tìm ký tự (SFC- search for first character) quét ký tự có tần suất xuất (SLFC- scan for lowest frequency character) nhằm hỗ trợ thuật tốn Boyer-Moore để q trình tìm kiếm thực khơng phụ thuộc vào trạng thái chuỗi Ngồi cịn có thuật tốn AKC (2003), Simplified BNDM (2003), Long BNDM (2003), Shift-Vector Matching (2003), Fast-Search (2003) dựa mơ hình xử lý song song bit

(31)

hơn nhiều tổng số ký tự gọi thuật toán so khớp chuỗi đánh số ký tự (CIAC: Character Index Aho-Corasick) sử dụng mơ hình DFA Việc tìm kiếm DFA nhanh trình tìm kiếm NFA Thủ tục so khớp chuỗi thuật toán bao gồm hai bước Bước tiền xử lý, mơ hình DFA xây dựng dựa thuật tốn AC, việc tìm kiếm DFA tìm cột có giá trị ma trận Chuyển đổi ma trận thành Aho-Corasick DFA cách dịch nút trạng thái thành nút ký tự, với mỗi nút ký tự có n mục trạng thái ứng với tất trạng thái Tiếp theo cột tìm kiếm có giá trị dịng trộn lại thành dòng Một bảng số ký tự tạo với trỏ trỏ đến tất nút ký tự Ở giai đoạn tìm kiếm đọc ký tự để trỏ đến nút ký tự CIAC DFA tương ứng bảng số ký tự Sau đọc trạng thái thời để nhảy đến giá trị trạng thái cách kiểm tra nút ký tự Bây tập trạng thái tìm thấy trước trạng thái thời Kiểm tra trạng thái thời để định việc so khớp có khớp hay khơng tiếp tục xử lý đến tất ký tự hoàn tất [11]

Bo Xu, Xin Zhou Jun Li đưa thuật toán RSI (Recursive Shift Indexing) [16] RSI kiểm tra theo heuristic ký tự 1, ký tự với đơn đa mẫu sử dụng cấu trúc đệ qui để thu hẹp số lượng mẫu so khớp để đạt kết hợp yêu cầu nhớ thời gian RSI thực qua ba giai đoạn: Giai đoạn là sinh bảng BLT#1 BLT#2 (Block Leap Table) Giai đoạn hai sinh bảng FLT (Further Leap Table) giai đoạn ba sinh bảng PTM (Potential Match Table) Thuật toán RSI giảm số lượng phép so sách ký tự nhờ cấu trúc số đệ qui cho thời gian thực nhanh tập mẫu lớn RSI sử dụng heuristic với kết hợp hai khối ký tự hậu tố kề cửa sổ trượt Thuật toán sử dụng ánh xạ bit bảng đệ qui để nâng cao hiệu so khớp Các ý tưởng sử dụng cho thuật toán so khớp chuỗi kích thước lớn

(32)

trên tập mẫu có kích thước vừa phải Tuy nhiên, kích thước tập mẫu tăng lên, thuật tốn khơng đủ tốt cho thời gian tìm kiếm khơng gian nhớ Ngoài ra, vài tác gả đưa thuật toán Backward kết hợp từ ý tưởng thuật toán BM otomat AC Trong [50], C Coit, S Staniford, J Mc Alerney trình bày thuật toán AC_BM Thuật toán xây dựng tiền tố tất mẫu giai đoạn tiền xử lý, sau sử dụng phương pháp heuristic BM để tính giá trị dịch chuyển Một thuật toán đơn giản gọi Setwise Boyer Moore Horspool (SBMH)[13] đề xuất bời M Fisk G Varghese Nó sử dụng cấu trúc phân tầng theo tiền tố tất mẫu tính giá trị chuyển dịch sử dụng hậu tố tồi Tuy nhiên, hai thuật tốn có nhược điểm tiêu thụ nhớ nhiều kích thược tập mẫu lớn

Năm 2007, Z W Zhou,Y B Xue, J D Liu, W Zhang, and J Li, MDH [18] giới thiệu nhiều pha hàm băm để hạn chế nhớ sử dụng đưa dựa ý tưởng tăng tốc độ thủ tục tìm kiếm dùng hàm Heuristic cắt động MDH (Multi-Phase Dynamic Hash) Thuật toán mở rộng từ thuật toán WM Các mục bảng HASH PREFIX có mối quan hệ một-một, thuật tốn MDH sử dụng hai bảng nén HASH, bảng mẫu so khớp PMT (Possible matching patterns) kết hợp với bảng SHIFT Bảng HASH giống bảng HASH bảng HASH thứ hai, MDH băm lại giá trị bảng SHIFT lưu chúng bảng PTM Trong giai đoạn tìm kiếm, kích thước b cửa sổ trượt từ trái sang phải Với cửa sổ ký tự có kích thước b, tính tốn hàm băm kiểm tra mục liên quan bảng SHIFT Nếu giá trị SHIFT di chuyển cửa sổ sang phải Ngược lại, băm ký tự cửa sổ lần sử dụng hàm băm thứ hai, sử dụng giá trị băm để định danh sách mục bảng PMT Bước cuối cùng, cần xác minh tất mẫu thích hợp liên kết mục di chuyển cửa sổ văn sang phải để khởi động lại thủ tục lần Theo kết thực nghiệm Zhou hiệu MDH cao WM vài thuật toán khác

(33)

hậu tố đảo ngược mẫu ngắn Thuật toán sử dụng nhớ hợp lý kích thước tập mẫu tương đối lớn

Thuật toán CCSH (Contents Correction Signature Hashing): Các tác giả [13] đề xuất thuật toán so khớp chuỗi dựa hàm băm để xác hóa nội dung kiểm tra phạm vi rộng với tập mẫu phát gói tin nguy hiểm mạng tốc độ cao Để áp dụng thuật toán CCSH, họ xây dựng cấu hình bảng băm cho mẫu Thuật tốn có hai bước: xây dựng cửa sổ byte luật so khớp Trong cửa sổ byte, so sánh thực cửa sổ nội dung gói liệu cần duyệt Cửa sổ thực xác thực dựa giá trị byte tham chiếu Giá trị tham chiếu cửa sổ byte lấy từ mẫu với lược đồ lựa chọn ngẫu nhiên vị trí Lược đồ thiết kế tùy theo môi trường mạng với cảnh báo, loại sâu, virus mạng khác sinh ngày Đa số mẫu cảnh báo virus có tương tự định, nghĩa tìm mối quan hệ mẫu Điều giúp tăng độ xác hàm băm dựa vị trí cố định phương pháp lựa chọn giá trị cho byte tham chiếu Từ cho phép giá trị lần băm dài danh sách chữ ký Với byte có cần phải sinh 65536 giá trị với tất luật có Quá trình tính tốn giá trị băm cửa sổ byte so sánh với giá trị bảng băm mẫu Nếu tăng kích thước cửa sổ lên, làm giảm chất lượng hàm băm làm tăng kích thước liệu cần tìm kiếm cho chuỗi cần so khớp Sau tính tốn giá trị cửa sổ byte hồn tất luật so khớp xem xét để tìm kiếm đảm bảo gói tin theo luật thực hay khơng Trước xây dựng luật so khớp, vài thông tin chi tiết sửa đổi, thơng tin so sánh độ ưu tiên chữ ký phạm vi liệu Việc sửa chữa thông tin chi tiết hạn chế số lượng cần so khớp mà cho phép phát lỗi sai nhanh Quá trình xử lý tiếp tục đến tìm giá trị khớp di chuyển đến vị trí cuối bảng băm Thuật tốn đề xuất sử dụng bổ sung nâng cao hiệu thực với việc đảm bảo số lượng luật

(34)

luật bad-character phương pháp lọc sử dụng bảng băm tính tốn theo mơ hình 2-grams mẫu [62]

Năm 2010, Baeza-Yates Gonnet dưa kỹ thuật Bit-parallelism [16] Trong đó, sử dụng lợi ích việc song song thao tác bít từ máy cho phép giảm số lượng thao tác mà thuật toán thực với tỷ số w (là độ dài từ máy máy tính) Kỹ thuật song song hóa bit đặc biệt thích hợp cho việc mô hiệu otomat không đơn định Tiếp đó, Abdulwahab cộng đề xuất thuật tốn BRSS cho so khớp xác dựa kết hợp Berry-Ravindran Skip Search

Năm 2011, Aldwairi Alansari đề xuất thuật toán so khớp nhanh cho hệ thống phát ngăn chặn xâm nhập mạng dứng dụng lọc Exscind [59] Thuật toán cho phép tối thiểu thời gian so sánh mẫu cách sử dụng mã tiền tố tương tự thuật toán Wu-Manber Bộ lọc ứng dụng mơ hình lọc Bloom với danh sách mã đặc tả cho gói tin

Năm 2012, M Kharbutli cộng đề xuất liệu hàm thực thi thuật toán Wu-Manber cho hệ thống phát ngăn chặn xâm nhập mạng NIDS [60] Trong sử dụng khai báo song song cho thuật toán Wu-Manber Khai báo dùng thuật tốn chia sẻ vị trí (Shared Position) cho phép hỗ trợ cửa sổ quét song song với biến vị trí chia sẻ Khai báo thứ hai sử dụng thuật toán lần vết phân tán (Trace Distribution) dùng để ghi nhận theo dấu vết luồng xử lý song song đồng thời Khai báo thứ ba kết hợp hai thuật tốn chia sẻ vị trí lần vết phân tán để đưa định

Năm 2013, Zhenlong Yuan đồng nghiệp đưa thuật toán so khớp đa mẫu tên TFD cho việc lọc URL tốc độ cao với kích thước lớn [17] TFD sử dụng bảng băm hai giai đoạn, otomat hữu hạn hai mảng lưu trữ để khử nút thắt hiệu lọc danh sách đen Kamal Alhendawi Ahmad Baharudin cài đặt thực nghiệm thuật toán so khớp chuỗi đánh giá dựa hai tiêu chí kích thước chuỗi vào vào kích thước mẫu để lọc gói tin mạng

(35)

Lọc gói tin chế kiểm tra gói liệu đến mạng, dựa giá trị tìm thấy trường chọn, xác định cách xử lý gói tin [63] Lọc gói sử dụng nhiều ứng dụng giám sát mạng, đo lường hiệu suất, giải mã kênh điểm đầu cuối giao thức truyền thông, phân loại gói tin định tuyến, tường lửa phát xâm nhập Thông thường, ứng dụng định nhiều trình lọc áp dụng cho gói liệu mạng Những định hình thức mã mệnh lệnh viết vài ngôn ngữ lọc đặc biệt Mã dành cho lọc gói bao gồm trình kiểm tra thực trường gói tin trường vượt qua tất kiểm tra lọc Mã dành cho nhiều lọc gói bao gồm mã lọc riêng lẽ kết hợp hướng dẫn luồng kiểm sốt thích hợp Rõ ràng, kích thước mã tăng số lượng lọc tăng Viết mã lọc cách thủ công cồng kềnh thường bị lỗi Thêm lọc thay đổi giao thức yêu cầu phải viết lại mã để phù hợp Do đó, việc trì mã lọc trở nên khó khăn

Một hệ thống lọc gói tin chứa nhiều lọc so khớp gói tin dựa vào mẫu theo hai cách Trong phương pháp đầu tiên, lọc gói xem thực thể riêng biệt Hệ thống lọc gói chạy lọc gói tin mạng Ở đây, gói tin so khớp dựa tất mẫu mà không sử dụng thông tin đạt trường gói tin từ lần so khớp trước Chi phí xác định mơ hình so khớp mẫu (hoặc mẫu) tăng tuyến tính với số lọc gói định

(36)

so khớp Mơ hình automat khơng đơn định (nondeterministic) hay đơn định (deterministic) Việc duyệt mô hình automat khơng đơn định liên quan đến quay lùi (backtracking) Vì vậy, mơ automat khơng đơn định thời điểm thực thi khơng hiệu Dó đó, automat đơn định ưa thích automat khơng đơn định Trong automat đơn định thuộc tính kiểm tra lần Vì thời gian thực thi tốt so với automat không đơn định tương ứng Nhưng kích thước automat đơn định lớn để trở thành giải pháp thực tế [64][65]

1.1.6.1 Bộ lọc gói tin CSPF (CMU/Standord Packet Filter)

CMU/Standord packet filter [63] trình thơng dịch dựa chế lọc Ngôn ngữ đặc tả lọc sử dụng biểu thị logic Mơ hình ánh xạ vào mã cách tự nhiên cho máy stack (stack machine) Trong mơ hình cây, nút bên biểu thị biểu thức logic (như AND, OR) biểu thị tiền điều kiện kiểm tra trường gói tin Mỗi cạnh kết nối với biểu thức (nút cha) với toán hạng (nút con) Thuật tốn tiến hành so khớp từ lên Gói tin phân loại cách tìm giá trị việc kiểm tra tiền điều kiện sau truyền kết lên Một gói tin khớp với lọc gói gốc có giá trị

Tuy nhiên, CSPF bị hạn chế mô hình Mơ hình đánh giá biểu thức liên quan đến việc tính tốn dư thừa Vì biểu thức đại diện cho trường đơc lập gói tin so với khác, phân tích dư thừa xảy nằm ngồi tính tốn tồn

1.1.6.2 Bộ lọc gói BPF (The Berkeley Packet Filter)

(37)

1.1.6.3 Bộ lọc gói MPF (The Mach Packet Filter)

MPF tăng cường BPF để xử lý cổng cuối (end-port) dựa trình xử lý giao thức hệ điều hành Match [65] Trọng tâm MPF giả mả kênh gói tin Vì vậy, xem xét lọc chia tiền tố phổ biến khác điểm đơn header, gọi TCP port Tiền tố phổ biến, chấp nhận sử dụng giải thuật heuristics so khớp mẫu đơn giản, kết hợp bao gồm kiểm tra bổ sung trường khác gói tin Mặc dù MPF thực giải mã kênh hiệu quả, khơng cung cấp phương pháp phổ biến cho thành phần lọc khác

1.1.6.4 Bộ lọc PATHFINDER

PATHFINDER [63] chế lọc gói dựa mẫu thiết kế để thực thi hiệu kể phần mềm lẫn phần cứng Nó cho phép nhiều thành phần phổ biến lọc với tiền tố phổ biến MPF Tiền điều kiện trường gói tin được biểu diễn mẫu gọi “cells” Các cell gần tạo thành “đường” (line) Một đường, coi lọc đơn, đại diện cho biểu thức logic AND thông qua tiền điều kiện cấu thành Một tập đường tức thành phần cấu tạo lọc gói, đại diện cho biểu thức logic OR thông qua tất đường PATHFINDER loại bỏ tiền tố phổ biến đường cài đặt

1.1.6.5 Bộ lọc DPF (Dynamic Packet Filter)

DPF sử dụng cách tiếp cận so khớp mẫu tương tự PATHFINDER DPF kết hợp nhóm lại tiền tố phổ biến dài thực số tối ưu hóa cục (local) bổ sung để loại bỏ tính tốn khơng cần thiết DPF sử dụng hệ mã động (dynamic code generation) để đạt cải thiện hiệu suất hệ thống dựa thông dịch khác

Các tiền tố phổ biến luôn xuất theo thứ DPF thực thi duyệt header gói tin theo thứ tự Nhưng, việc nén tiền tố thất bại thân lọc không phù hợp với thứ tự lọc cài đặt khác [65]

1.1.6.6 Bộ lọc BPF+ (Dynamic Packet Filter Plus)

(38)

soát thành mã bậc thấp, BPF+ áp dụng thuật toán luồng liệu (data-flow algorithm), gọi “loại bỏ thuộc tính dư thừa” (redundant predicate elimination) để tối ưu hóa thuộc tính BPF+ sử dụng tối ưu hóa trình biên dịch phổ biến phép biến đổi peephole Ở đây, MPF, PATHFINDER DPF khơng có khả tối ưu hóa khơng có tiền tố phổ biến Nhưng BPF+ có khả xác định hội để tối ưu hóa sử dụng công nghệ tối ưu luồng liệu toàn cục

1.2 So khớp đồ thị

1.2.1 Một số định nghĩa ký hiệu

Định nghĩa 1.1: Đồ thị cặp G = (V, E), đó:

V = {vi: i = 1, , n} tập hữu hạn đỉnh (vertex), V ≠ Ø≠ θ E ⊆ V X V tập hữu hạn cạnh (edge), E = {e = (vi, vj)| vi,vj V}

Số đỉnh số cạnh đồ thị G ký hiệu |G| |E|

Cặp đỉnh (vi,vj) E không thứ tự gọi cạnh vô hướng, cịn

nó thứ tự gọi cạnh có hướng Vì đồ thị phân thành hai lớp

Định nghĩa 1.2: Đồ thị chứa cạnh vô hướng gọi đồ thị vô

hướng, đồ thị chứa cạnh có hướng gọi đờ thị có hướng

Định nghĩa 1.3: Đồ thị mà cạnh (hay cung) gán thêm số

thực, gọi trọng số cạnh (cung), thể chi phí phải tốn (khoảng cách, thời gian, tiền bạc, ) qua cạnh (cung) gọi đờ thị có trọng sớ

Định nghĩa 1.4: Đồ thị G 6, G = {V, E, LV, LE, }, đó: V = {vi: i = 1, , n} tập hữu hạn đỉnh(vertex), V≠ Ø

 E V V tập hữu hạn cạnh (edge), E = {e = {vi, vj}| vi,vj V}

 LV tập hợp nhãn đỉnh

 LE tập hợp nhãn cạnh

 : V → LV hàm gán nhãn cho đỉnh

(39)

Định nghĩa 1.5 : Cho đồ thị G = {V, E, LV, LE, }, đồ thị S

G, S = {VS, ES, LV, LE,αS, βS } thỏa mãn:

VS V

ES = E (VS VS) αS(v) =

S(e) =

Cho đồ thị gán nhãn G = {V, E, LV, LE, } với |V| = n Đồ thị G biểu

diễn ma trận kề M = (mi,j)n*n, i, j = , trong mii = mi,j =

với i j ( V)

Ma trận M ma trận biểu diễn đồ thị G Nếu ma trận M biểu diễn đồ thị G ma trận hốn vị M biểu diễn cho đồ thị G [44]

Định nghĩa 1.6: Ma trận P = (pij)n*n gọi ma trận hoán vị nếu:

o pi,j {0,1}

o , j =

o ,i =

Nếu ma trận kề M = (mi,j)n*n và ma trận P = (pij)n*n biểu diễn đồ thị G ma trận M’ = P.M.PT cũng ma trận kề G

Định nghĩa 1.7: Cho đồ thị gán nhãn G = {V, E, LV, LE, } với |V| = n M

là ma trận kề G Khi đóA(G) tập hợp tất ma trận hoán vị G nếu: A(G) = { MP| MP = P.M.PT} (1)

Định nghĩa 1.8: Cho hai đồ thị GM GD hai ma trận kề tương ứng M1

M2 Hai đồ thị GM và GD được gọi đẳng cấu với tồn ma trận hoán vị P cho

(40)

Như ma trận P hiểu hàm song ánh f ánh xạ đỉnh đồ thị GM vào GD ngược lại [44] Bài tốn tìm đẳng cấu hai đồ thị tương đương

với tốn tìm ma trận hốn vị P thỏa mãn (2)

Định nghĩa 1.9: Cho ma trận kề M = (mi,j)n*n. Khi Sk,m(M) ký hiệu ma

trận kích thước k m thu cách xóa hàng thứ k+1, , n cột thứ m+1, , n (k,m n) ma trận M Sk,m(M) = (mi,j)k*m,i = , j =

Cho hai đồ thị GM GD với hai ma trận kề tương ứng M1 kích thước m m

M2 kích thước n n (m n) Đẳng cấu đồ thị (subgraph imorsophism) từ GM vào GD

nếu tồn ma trận hoán vị P cho:

M1 = Sm,m(P.M2.PT) (3)

Trong đó:

Sm,m(P.M2.PT) = Sm,n(P).M2 (Sm,n(P))T (4)

Bài tốn tìm đẳng cấu đồ thị từ GM vào GD tương đương với tốn tìm ma

trận chuyển vị P thỏa mãn (3)

1.2.2 Bài toán so khớp đồ thị

Một cách tổng quát, phát biểu toán so khớp hai đồ thị sau: đưa hai đồ thị GM = (VM, EM) GD = (VD, ED) với |VM| = |VD|, mục tiêu

tốn tìm ánh xạ một-một f: VM→ VD cho (u,v) EM (f(u),

f(v))ED. Nếu tồn ánh xạ f f gọi đẳng cấu GD gọi đẳng cấu với GM Trường hợp biết so khớp đồ thị xác

(exact graph matching) [58]

(41)

khớp đồ thị khơng xác gồm so khớp đồ thị thuộc tính (Attributed Graph Matching) so khớp đồ thị thuộc tính (Attributed Sub-Graph Matching)

Bài tốn dẫn việc tìm đơn ánh đồ thị mơ hình GM đồ thị

dữ liệu GD giả sử |VM| < |VD| Bài tốn có nhiều ứng dụng thực tế

hơn lớp toán so khớp đồ thị xác [43]

1.2.3 Một số nghiên cứu liên quan so khớp đồ thị

Có hai cách để thực so khớp đồ thị tính tốn độ tương đồng (similarity) và tính tốn độ bất tương đồng (dissimilarity) đồ thị mơ hình GM đồ thị liệu

GD Sự khác biệt hai phương pháp nhỏ cho dù sở để xây dựng khác Các tiếp cận tính đốn độ tương đồng dựa việc biểu diễn đồ thị dưới dạng vecto khoảng cách ngầm định (implicitly induced vector space) Còn cách tiếp cận thứ hai xây dựng dựa hai phép biến đổi (incarnations) để tìm bất tương đồng hai đồ thị thông qua vecto khoảng cách rõ gắn đồ thị (explicit embedding) [58]

1.2.3.1 So khớp đồ thị dựa đồ thị đẳng cấu và đồ thị đẳng cấu

Cho đồ thị mơ hình GM có ma trận kề M1 đồ thị liệu GD có ma

trận kề M2, ban đầu ta phải tính tất ma trận hốn vị M2 và chuyển ma trận

thành định Khi thực thuật toán, ma trận kề M1 đồ thị GM tìm ma

trận kề định mà đồng với Ma trận kề tương ứng với ma trận kề biểu diễn đẳng cấu đồ thị đẳng cấu đồ thị mà tốn cần tìm

1.2.3.2 So khớp đồ thị dựa đồ thị khoảng cách

Sử dụng đồ thị khoảng cách (Graph edit distance-GED) [56]: cách tiếp cận so khớp đồ thị trực tiếp miền xác định nhờ tính tốn khoảng cách hai đồ thị Các tiếp cận dễ thực áp dụng nhiều loại đồ thị khác số lại u cầu số lượng phép tính tốn lớn

(42)

path định nghĩa phép chiếu f V: ˆ1Vˆ2 với Vˆ1V V1, ˆ2 V2 Phép chiếu f gọi edit path đồ thị G1 G2

Các thuật toán đề xuất sử dụng đồ thị khoảng cách gồm: Thuật tốn GED A*, thuật tốn tìm đồ thị lân cận (Neighborhood subgraph), thuật tốn tồn phương (Quadratic programming), chiến lược ước lượng hàm khoảng cách,… [56], [58]

1.2.3.3 So khớp đồ thị dựa đồ thị đặc trưng

Hướng tiếp cận sử dụng hàm để tính tốn phần cốt lõi đồ thị gọi là đồ thị đặc trưng (Graph kernels) [57] Khi đó, đồ thị biểu diễn thành phần cấu trúc rời rạc dạng xâu ký tự automat Đây kỹ thuật cốt lõi phương pháp sử dụng vectơ trạng thái (Support Vector Machine) áp dụng đồ thị gán nhãn với khơng gian Hilbert Các đồ thị tính tốn để tìm đặc trưng riêng chúng, đặc trưng biểu diễn không gian hữu hạn chiều, chiều ứng với đặc trưng lựa chọn từ đồ thị

Một số hàm đặc trưng sử dụng tính tốn từ đồ thị là: - Hàm tuyến tính (Linear): x z,  x z

- Hàm đa thức (Polynomial):  , 

d x zv

- Hàm RBF: exp xz 2, 0

- Phân bố Gause: exp x z TC xz

- Phân bố (Normalized):  

   

,

, ,

k x z k x xk z z

- Tổng trọng số (Weighted sum): i i , , i

iw k X Z w

Các thuật toán đề xuất sử dụng đồ thị đặc trưng gồm: so khớp xác trực tiếp, thuật tốn tìm tương đồng Random walk, Marginalized, Convolution [58]

(43)

Ý tưởng phương pháp sử dụng đồ thị nhúng nhận dạng mẫu có cấu trúc dựa việc xem xét đối tượng lân cận có cấu trúc tương đồng Có nhiều kịch nhúng khác với khơng gian đồ thị cho trước như: không gian nhúng không tương đồng (dissimilarity space embedding) [54], không gian nhúng metric (metric space embedding) [55] Các thuật toán sử dụng tiếp cận gồm: Nhúng đồ thị khoảng cách (GED Embeding), nhúng lược đồ ký hiệu histogram (Symbolic histogram), nhúng không gian cấu trúc (Structure space) [58]

1.2.3.5 Thuật toán SI - COBRA cho bài toán so khớp đồ thị gán nhãn

Ý tưởng thuật toán cho hai đồ thị gán nhãn G G’ (tương ứng với hai đồ thị mô hình GM đồ thị liệu GD mục phát biểu tốn) ta phải tìm

một đồ thị S G cho S G Bài tốn gọi tốn tìm đẳng cấu đồ thị Năm 2005 Olmos, Gonzalez & Osorio phát triển thuật toán SI-COBRA (subgraph isomorphism) Họ phát triển thuật tốn để phát xác đồ thị G’nằm đồ thị G (được gọi đẳng cấu đồ thị con) chuỗi tuyến tính mã sử dụng để biểu diễn đồ thị [45]

1.2.3.6 So khớp đồ thị dựa thuật toán di truyền

(44)

tưởng lý thuyết chương trình hóa với ngơn ngữ C, cho giải thuật di truyền di truyền song song

1.2.3.7 So khớp đồ thị dựa quyết định

Hướng tiếp cận sử dụng địnhlà kiểu mơ hình dự báo (predictive model), nghĩa ánh xạ từ đồ thị thành cây, nút trong (internal node) tương ứng với phần đồ thị [45] Ta biểu diễn đồ thị GM và GD hai ma trận kề M1 M2 Sau tìm tất ma trận hốn vị M1, M2 biểu diễn thành định Cây định xây dựng theo phần tử hàng-cột ma trận kề tương ứng Ban đầu xuất phát từ nút giả khởi tạo gốc định Đây coi mức Tiếp theo xây dựng nút mức định Mỗi nút mức có cung nối với nút gốc mức cung biểu diễn phần tử hàng-cột ma trận hốn vị Khi đường nối nút cha với nút thể giá trị cụ thể cho biến Mỗi nút đại diện cho giá trị dự đoán khả khớp đồ thị

Hai thuật toán tiêu biểu sử dụng định so khớp đồ thị biết đến Messmer Bunke đề xuất năm 1998 năm 1999 dùng để tìm đồ thị đẳng cấu áp dụng so khớp đa đồ thị xác

1.2.3.8 So khớp đồ thị dựa mạng neuron

Để nâng cao hiệu việc so khớp, nhiều nghiên cứu hướng đến việc áp dụng mạng neuron so sánh hai đồ thị Các nghiên cứu tiêu biểu hướng tiếp cận kể đến gồm: Mơ hình mạng neuron 3D, mơ hình mạng neuron nhận dạng đồ thị biểu diễn khn mặt Hopfield Huang (1998, 1999) đề xuất cho việc so sánh khuôn mặt với sở liệu khuông mặt mẫu dựa đặc trưng biểu diễn dạng đồ thị Riviere cộng đề xuất thuật toán hybrid RBF áp dụng cho so khớp đồ thị sử dụng mạng neuron năm 2000 Năm 2002, Lee Liu cải tiến mơ hình áp dụng cho so khớp liên kết động để đặc tả thông đồ thị biểu diễn khuôn mặt [40]

1.2.3.9 So khớp đồ thị dựa kỹ thuật phân cụm

(45)

đồ thị dựa mô tả hàm (function-described graphs) áp dụng nhận dạng đồ thị thuộc tính theo mẫu cấu trúc cho trước Sanfeliu cộng (2000), thuật toán phân cụm Carcassoni Hancock (2001) áp dụng so khớp đồ thị dựa thuộc tính [58]

1.3 Kết chương

(46)

CHƯƠNG ỨNG DỤNG SO KHỚP MẪU TRONG QUÁ TRÌNH PHÁT HIỆN XÂM NHẬP MẠNG

Trong chương này, luận án trình bày việc phát xâm nhập trái phép giả mạo mạng Về phát xâm nhập trái phép, luận án trình bày lại kỹ thuật xâm nhập trái phép sử dụng kẻ công; giải pháp kỹ thuật nhằm ngăn chặn kỹ thuật xâm nhập trái phép biết; kiến trúc tổng quát hệ thống phát xâm nhập chi tiết hệ thống phát xâm nhập trái phép dựa mã nguồn mở Snort Trong đó, so khớp mẫu kỹ thuật quan trọng ứng dụng nhiều an ninh mạng kiểm tra lọc nội dung gói tin tường lửa, so khớp mã virus ứng dụng diệt virus, hệ thống phát ngăn chặn xâm nhập mạng IDS/IPS [4] Vì vậy, chương này, luận án phân tích đánh giá thuật toán so khớp đơn mẫu đa mẫu hiệu chúng Tiếp theo, luận án trình bày cải tiến thuật tốn so khớp đa mẫu Cuối cùng, luận án trình bày thuật tốn đề xuất cho so khớp đa mẫu Tất việc triển khai thực nghiệm để so sánh, đánh giá hiệu thuật toán thực hệ thống Snort

2.1 Xâm nhập mạng

Hiện chưa có định nghĩa xác thuật ngữ “tấn công” hay “xâm nhập trái phép” Mỗi chun gia lĩnh vực an tồn thơng tin luận giải thuật ngữ theo ý hiểu Chẳng hạn, “xâm nhập tác động đưa hệ thống từ trạng thái an tồn vào tình trạng nguy hiểm”, hay “xâm nhập phá hủy sách an tồn thơng tin” “là tác động dẫn đến việc phá hủy tình tồn vẹn, tính bí mật, tính sẵn sàng hệ thống thơng tin xử lý hệ thống”,… Tuy nhiên, “tấn công” thường hiểu theo nghĩa “là hoạt động có chủ ý kẻ phạm tội lợi dụng tổn thương hệ thống thơng tin phá vỡ tính sẵn sàng, tính tồn vẹn tính bí mật hệ thống thông tin”

(47)

2.1.1 Một số kỹ thuật xâm nhập trái phép 2.1.1.1 Tấn công thăm dò

Thăm dò việc thu thập thông tin trái phép tài nguyên, lỗ hổng dịch vụ hệ thống Tấn cơng thăm dị thường bao gồm hình thức: Sniffing, Ping Sweep, Ports Scanning

Sniffer hình thức nghe hệ thống mạng dựa đặc điểm chế TCP/IP Sniffer ban đầu kỹ thuật bảo mật, phát triển nhằm giúp nhà quản trị mạng khai thác mạng hiệu kiểm tra liệu vào mạng liệu mạng, tức kiểm tra lỗi Sau này, kẻ công dùng phương pháp để lấy cắp mật hay thông tin nhạy cảm khác Biến thể sniffer chương trình nghe bất hợp pháp như: công cụ nghe yahoo, ăn cắp mật thư điện tử,… Có hai loại nghe (i) nghe chủ động (ii) Nghe bị động

Nghe chủ động: chủ yếu hoạt động mạng sử dụng thiết bị chuyển mạch với mục đích thay đổi đường dòng liệu, áp dụng chế ARP RARP, hai chế chuyển đổi từ IP sang MAC từ MAC sang IP, cách phát gói tin đầu độc Đặc điểm nghe chủ động phải gửi gói tin nên chiếm băng thông mạng, nghe nhiều mạng lượng gói tin gửi lớn, liên tục gửi thông tin giả mạo, dẫn tới nghẽn mạng hay gây tải lên NIC máy Tuy nhiên, có số kỹ thuật ép dòng liệu qua NIC như: thay đổi thơng tin ARP, làm tràn nhớ MAC, từ chuyển mạch chạy chế độ chuyển tiếp mà khơng chuyển mạch gói; giả MAC (các kẻ nghe thay đổi MAC thành MAC máy hợp lệ qua chức lọc MAC thiết bị); đầu độc DHCP để thay đổi cổng vào máy trạm hay phân giải sai tên miền DNS

(48)

1 Dựa vào trình đầu độc ARP nghe để phát hiện: phải đầu độc ARP nên kẻ nghe liên tục gửi gói tin đầu độc tới nạn nhân Do ta dùng cơng cụ bắt gói tin mạng để phát Một cách khác ta kiểm tra bảng ARP trạm chủ Nếu thấy bảng APR có MAC giống mạng bị nghe lén;

2 Dựa băng thông: q trình gửi gói tin đầu độc kẻ nghe nên q trình chiếm băng thơng từ dùng số cơng cụ kiểm tra băng thông để phát Các công cụ phát nghe Xarp, ARPwatch, thiết bị bảo vệ đầu cuối Simantec;

3 Ping sweep: đưa gói yêu cầu ICMP đợi trả thông báo trả lời từ máy hoạt động Mục đích Ping Sweep xác định hệ thống “sống” hay khơng quan trọng kẻ công ngừng công xác định hệ thống “chết” Việc xác định trạng thái hệ thống sử dụng kỹ thuật Ping Scan hay gọi với tên Ping Sweep Bản chất trình gửi ICMP Echo Request đến máy chủ mà kẻ công muốn công mong đợi ICMP Reply Ngồi lệnh ping có sẵn Windows, cịn có số cơng cụ ping sweep như: Pinger, Friendly Pinger, Ping Pro,…

4 Quét cổng (port scanning) trình kết nối cổng giao thức TCP UDP, hệ thống mục tiêu nhằm xác định xem dịch vụ “chạy” trạng thái “nghe” Xác định cổng nghe công việc quan trọng nhằm xác định loại hình hệ thống ứng dụng sử dụng Mỗi cơng cụ có chế port scan riêng Ví dụ kỹ thuật quét TCP, tức Nmap, kiểm tra cổng hệ thống đích mở hay đóng cách thực kết nối TCP đầy đủ

2.1.1.2 Tấn công thâm nhập

(49)

Tấn công truy nhập hệ thống hành động đạt quyền truy cập cách bất hợp pháp đến hệ thống mà kẻ cơng khơng có tài khoản sử dụng Tấn công truy nhập thao túng liệu, kẻ xâm nhập đọc, viết, xóa, chép hay thay đổi liệu Tấn cơng xâm nhập hệ thống lợi dụng cổng hậu, sử dụng kỹ thuật người đứng hay công leo thang, hay nghe trộm,

2.1.1.3 Tấn công từ chối dịch vụ

Cơ bản, công từ chối dịch vụ tên gọi chung cách công làm cho hệ thống bị q tải khơng thể cung cấp dịch vụ, làm gián đoạn hoạt động hệ thống hệ thống phải ngưng hoạt động

Tùy theo phương thức thực mà biết nhiều tên gọi khác Bắt đầu lợi dụng yếu giao thức TCP để thực công từ chối dịch vụ DoS, công từ chối dịch vụ phân tán DDoS, công từ chối dịch vụ theo phương pháp phản xạ DRDoS

Tấn công từ chối dịch vụ cổ điển DoS sử dụng hình thức: bom thư, đăng nhập liên tiếp, làm ngập SYN, cơng Smurf, thủ phạm sinh nhiều giao tiếp ICMP tới địa Broadcast mạng với địa nguồn mục tiêu cần công, công “gây lụt” UDP…

Tấn công dịch vụ phân tán DDoS xuất vào năm 1999, so với công DoS cổ điển, sức mạnh DDoS cao gấp nhiều lần Hầu hết công DDoS nhằm vào việc chiếm dụng băng thông gây nghẽn mạch hệ thống dẫn đến hệ thống ngưng hoạt động Để thực kẻ cơng tìm cách chiếm dụng điều khiển nhiều máy tính/mạng máy tính trung gian, từ nhiều nơi để đồng loạt gửi ạt gói tin với số lượng lớn nhằm chiếm dụng tài nguyên làm nghẽn đường truyền mục tiêu xác định

2.1.1.4 Tấn cơng sử dụng mã độc

Tấn công sử dụng mã độc việc cài đặt mã độc hại dạng phần mềm hợp lệ hay gắn với phần mềm khác người dùng với mục đích xấu Các kỹ thuật công sử dụng mã độc thường là:

(50)

thỏa mãn số điều kiện xác định Bom logic kích hoạt phá hoại hệ thống, biến đổi, xóa tệp, làm hệ thống ngừng hoạt động;

Virus Trojan đoạn mã giấu chương trình, thường hấp dẫn phần mềm trò chơi hay phần mềm nâng cấp… Khi người dùng chạy chương trình này, đoạn mã độc hoạt động, lưu lại máy tính người dùng Đoạn mã độc nhằm nhiều mục đích khác nhau, thu thập mật khẩu, thẻ tín dụng, gửi tới kẻ công, điều khiển theo ý người ta;

Sâu chương trình có khả tự nhân giống virus máy tính Khác với virus, sâu di chuyển từ máy sang máy khác mà không nhờ vào tác động người dùng, dựa vào lỗ hổng hệ thống Khi sâu lây nhiễm vào máy, sử dụng máy làm “bàn đạp” để tiếp tục công máy khác Chúng phát tán qua môi trường Internet, mạng ngang hàng, dịch vụ chia sẻ,…

Xác chết (zombies) chương trình thiết kế để giành quyền kiểm sốt máy tính có kết nối Internet, sử dụng máy tính bị kiểm sốt để cơng hệ thống khác Các xác chết thường dùng để công DDOS máy chủ Website lớn Rất khó để lần vết phát tác giả tạo điều khiển xác chết

2.1.2 Một số giải pháp kỹ thuật ngăn chặn xâm nhập

Các biện pháp ngăn chặn xâm nhập sử dụng phổ biến gồm tường lửa, xác thực, mã hóa, quyền truy cập,

2.1.2.1 Tường lửa

Tường lửa (Firewall) phần mềm hay phần cứng thiết kế để ngăn chặn truy cập trái phép cho phép truy cập hợp pháp lưu thông dựa tập luật tiêu chuẩn khác Ngoài tường lửa cịn mã hóa, giải mã hay ủy quyền cho giao dịch miền bảo mật khác Một số loại tường lửa có chức chuyên dụng như: tường lửa lọc gói, cổng ứng dụng, cổng mức mạch…

(51)

trong mạng đánh tin cậy (ii) không chống lây nhiễm, phá hoại chương trình virus mã độc (iii) không chống công kiểu bỏ qua Tường lửa cho kết nối bên mạng cần qua tường lửa, thực tế có số kết nối khơng qua tường lửa thân tổ chức tạo nên

2.1.2.2 Mã hóa dữ liệu

Mã hóa liệu phương pháp bảo vệ thông tin liệu cách chuyển liệu từ dạng thông thường sang dạng bị mã hóa khơng thể đọc được, đưa dạng ban đầu nhờ hình thức giải mã tương ứng Tác dụng ngăn chặn việc nghe trộm chỉnh sửa liệu đường truyền, bên thứ ba lấy gói tin mã hóa, khơng thể đọc nội dung thơng điệp từ gói tin Ngăn chặn việc giả mạo thông tin đảm bảo tính khơng thể phủ nhận an tồn mạng Tương ứng với cách mã hóa cách giải mã định, bao gồm thuật toán khóa mã bí mật

2.1.2.3 Xác thực

Xác thực trình xác định xem người dùng truy nhập vào hệ thống có phải người dùng hợp lệ hay không

2.1.2.4 Quyền truy cập

Quyền truy cập mức bảo vệ Sau xác thực thành công, người dùng truy cập vào hệ thống Tùy vào người dùng cụ thể mà hệ thống phân quyền truy cập, sử dụng hệ thống khác

2.1.3 Hệ thống phát xâm nhập trái phép

Các hệ thống tùy vào qui mô có biện pháp an ninh khác để ngăn chặn hành vi xâm nhập trái phép Tuy nhiên, khơng có biện pháp ngăn chặn hành vi xâm nhập mạng Người ta ngăn chặn hành vi xâm nhập mạng biết Do vậy, việc phát xâm nhập trái phép khâu quan trọng việc đảm bảo an tồn cho hệ thống máy tính mạng

(52)

có dấu hiệu phát cách sử dụng phần mềm Hệ thống phát dựa dấu hiệu tìm liệu gói tin mà có chứa dấu hiệu xâm nhập bất thường biết đến Dựa tập hợp dấu hiệu này, hệ thống phát xâm nhập dị tìm, ghi lại hoạt động đáng ngờ đưa cảnh báo Hệ thống phát xâm nhập dựa vào bất thường thường dựa vào phần tiêu đề giao thức gói tin cho bất thường Thơng thường hệ thống dựa bất thường bắt lấy gói tin mạng so sánh với luật, qui luật để tìm dấu hiệu bất thường gói tin

2.1.3.1 Hệ thớng phát hiện xâm nhập mạng

Hệ thống phát xâm nhập IDS [6] thiết bị phần cứng phần mềm hay kết hợp hai để thực việc giám sát, theo dõi thu thập thông tin từ nhiều nguồn khác Sau phân tích để tìm dấu hiệu xâm nhập hay công hệ thống thông báo đến người quản trị hệ thống Nói cách khác, IDS hệ thống phát dấu hiệu làm tổn hại đến tính bảo mật, tính tồn vẹn tính sẵn dùng hệ thống máy tính hệ thống mạng IDS sở ban đầu cho bảo đảm an ninh hệ thống Kiến trúc hệ thống IDS bao gồm thành phần sau:

- Thành phần thu thập gói tin (information collection), - Thành phần phân tích gói tin (detection)

- Thành phần phản hồi (respotion)

Hình 2.1 Kiến trúc hệ thống phát xâm nhập mạng

(53)

đoạn phát đóng vai trị cốt lõi hệ thống phát xâm nhập với trách nhiệm phát hành vi xâm nhập mạng dựa chế định Từ liệu thô nhận từ thu thập gói tin, dựa sách quán áp dụng kiện phân tích đánh giá hành vi xem xét loại bỏ liệu khơng tương thích từ kiện liên quan cần bảo vệ Từ phát hành động nghi ngờ Bộ cảm biến có sở liệu riêng lưu lại hành vi xâm nhập từ nhiều hành động khác

2.1.3.2 Phân loại hệ thống phát hiện xâm nhập mạng

Người ta thường phân loại hệ thống IDS dựa nguồn cung cấp liệu cho phát đột nhập Có hai loại hệ thống phát xâm nhập IDS bản:

1 Hệ thống phát xâm nhập mạng; Hệ thống phát xâm nhập trạm chủ

Hệ thống phát xâm nhập mạng NIDS đặt nút mạng, lưu giữ phân tích gói tin mạng để phát công Tuy nhiên hệ thống gặp nhiều khó khăn mạng có lưu lượng lớn

Hình 2.2 Hệ thống phát đột nhập cho mạng NIDS

(54)

liệu phân mảnh chồng chéo Một cảm biến không phát hoạt động xâm nhập không xếp gói tin lại cách xác

Hệ thống phát xâm nhập cho trạm chủ (HIDS) phát cơng cách phân tích thơng tin thu nội hệ thống Điều cho phép hệ thống cung cấp chế phân tích toàn diện hành vi hệ thống, phát cách xác thành phần cơng hệ thống HIDS sử dụng dịch vụ mã hóa dựa máy trạm chủ, để kiểm tra lưu lượng, liệu, hành vi mã hóa Nhược điểm hệ thống việc thu thập liệu xảy trạm chủ ghi vào logs làm giảm hiệu mạng IDS cho trạm chủ bị vơ hiệu hố cơng từ chối dịch vụ DoS, DoS ngăn chặn lưu lượng đến trạm chủ - nơi chúng hoạt động ngăn chặn thông báo công tới nơi khác mạng

Hình 2.3 Hệ thống phát đột nhập cho trạm chủ - HIDS HIDS thường phân tích thành phần sau:

- Các tiến trình;

- Các lối vào đăng nhập; - Mức độ sử dụng CPU;

- Kiểm tra tính toàn vẹn truy cập tệp hệ thống; - Một vài thông số khác

(55)

Trên giới thiệu khái quát hệ thống IDS, phần trình bày cụ thể hệ thống phát xâm nhập sử dụng rộng rãi thực tế nghiên cứu

2.1.3.3 Hệ thống phát hiện xâm nhập Snort

Snort [4] phần mềm dạng IDS Martin Roesh phát triển mơ hình mã nguồn mở có chức ngăn chặn phát xâm nhập mạng dựa dấu hiệu thiết lập sẵn, hệ thống kết hợp dấu hiệu chữ ký, giao thức bất thường dựa phương pháp kiểm tra Khi chạy, Snort trả kết dạng nhật ký cảnh báo lưu trữ nhờ sử dụng hệ quản trị sở liệu MySQL, PostgreSQL, MSQL Oracle Tuy Snort miễn phí lại có nhiều tính đặc biệt mà sản phẩm thương mại có Với kiến trúc thiết kế theo kiểu mơ đun, người dùng tự tăng cường tính cho hệ thống Snort việc cài đặt hay viết thêm mô đun Snort chạy nhiều hệ thống Windows, Linux, OpenBSD, FreeBSD, NetBSD, Solaris, HP-UX, AIX, IRIX, MacOS Bên cạnh việc hoạt động ứng dụng thu bắt gói tin thơng thường, Snort cịn cấu hình để chạy NIDS Snort hỗ trợ khả hoạt động giao thức sau: Ethernet, 802.11, Token Ring, FDDI, Cisco HDLC, SLIP, PPP, PF OpenBSD

Snort hệ thống ngăn chặn xâm nhập phát xâm nhập kết hợp lợi ích dấu hiệu, giao thức dấu hiệu bất thường Snort triển khai rộng rãi toàn giới Snort ứng dụng bảo mật đại với chức phục vụ phận lắng nghe gói tin, lưu lại thơng tin gói tin phát xâm nhập mạng Bên cạnh có nhiều tính cho Snort để quản lý, tức ghi truy cập, quản lý, tạo luật,… Tuy phần lõi Snort thành phần đóng vai trị quan trọng việc sử dụng khai thác tính Snort Thơng thường, Snort phân tích cảnh báo giao thức TCP/IP giao thức giao thức Internet Mặc dù vậy, với phần tùy chỉnh mở rộng, Snort thực để hỗ trợ giao thức mạng khác, chẳng hạn Novell’s IPX

Kiến trúc Snort: Snort bao gồm nhiều thành phần (mô đun), với mô

(56)

- Giải mã gói tin; - Tiền xử lý; - Phát hiện;

- Truy cập cảnh báo; - Kết xuất thông tin

Kiến trúc Snort mô tả hình sau:

Kiến trúc hệ thống SNORT

Giải mã

gói tin Tiền xử lý Phát

Log & Cảnh báo

Tập luật

Cơ sở liệu cảnh báo

`1

Cảnh báo

Thu nhận nắm bắt gói tin

Hình 2.4 Kiến trúc hệ thống Snort

Khi Snort hoạt động thực việc lắng nghe thu bắt tất gói tin di chuyển qua Các gói tin sau “bị bắt” đưa vào mô đun “giải mã gói tin” Tiếp theo gói tin đưa vào mô đun “tiền xử lý”, chuyển sang mô đun “phát hiện” Tại tùy theo việc có phát xâm nhập hay khơng mà gói tin bỏ qua để lưu thông tiếp đưa vào mô đun “log cảnh báo” để xử lý Khi cảnh báo xác định, mô đun “kết xuất thông tin” thực việc đưa cảnh báo theo định dạng mong muốn Sau ta sâu vào chi tiết chế hoạt động chức thành phần

2.1.4 Một số nghiên cứu liên quan đến hệ thống phát xâm nhập 2.1.4.1 Giới thiệu

(57)

trong thực tế, phải đảm bảo ý tưởng để làm hệ thống phát cơng kỹ thuật xâm nhập

Vấn đề quan tâm đảm bảo trường hợp có nguy xâm nhập, hệ thống (i) phát hiện, theo chức mô đun phát hiện; (ii) báo cáo theo chức mô đun báo cáo Sau phát đáng tin cậy, bước để bảo vệ mạng theo chức mơ đun phản ứng Tuy nhiên, khơng có hệ thống IDS mức độ hoàn toàn đáng tin cậy Các nhà nghiên cứu đồng thời tham gia vào hai hoạt động (i) phát hiện; (ii) phản ứng, bên hệ thống Vấn đề hệ thống IDS phải bảo đảm việc phát xâm nhập điều khó xác với tỷ lệ chấp nhận cao Đây lý mà hệ thống IDS thường sử dụng với chuyên gia Trong cách này, IDS hệ thống trợ giúp chuyên gia an ninh mạng phát xâm nhập trái phép hệ thống IDS khó để tự thay đổi mơ hình để việc phát cơng Mặc dù hệ kỹ thuật phát cải thiện đáng kể tỷ lệ phát xâm nhập, chặng đường dài để phát triển

Có hai phương pháp để phát xâm nhập mạng: dựa trên dấu hiệu đặc trưng dựa dấu hiệu bất thường Trong cách tiếp cận đầu tiên, mơ hình cơng hay hành vi kẻ xâm nhập mơ hình hóa Ở đây, hệ thống báo hiệu xâm nhập xảy phép so khớp trùng xác định Trong cách tiếp cận thứ hai, hành vi bình thường mạng mơ hình hóa Trong cách tiếp cận này, hệ thống đưa cảnh bảo hành vi mạng không phù hợp với bình thường

Việc có kẻ xâm nhập vào hệ thống mà không phát điều tồi tệ cho người phụ trách an ninh mạng Vì cơng nghệ phát xâm nhập khơng đủ xác để cung cấp việc phát xâm nhập đáng tin cậy, phương pháp đốn giải pháp Để thu thập mẫu công, người ta quản trị thường tạo bẫy tựa bình mật dùng làm mồi cho ong để bẫy kẻ cơng xâm nhập vào Phương pháp cài đặt hệ thống hành động bẫy mồi cho kẻ công nhằm thu thập mẫu công

(58)

xác, kịp thời, hệ thống phải hoạt động thời gian thực Hoạt động thời gian thực không phát thời gian thực, để thích ứng với thay đổi mạng Hệ thống IDS hoạt động thời gian thực lĩnh vực nghiên cứu quan tâm nhiều nhà nghiên cứu Hầu hết cơng trình nghiên cứu nhằm mục đích giới thiệu các phương pháp có hiệu thời gian phù hợp với thời gian thực

Từ góc độ khác nhau, hai cách tiếp cận nhìn thấy việc triển khai IDS Trong phân loại này, IDS đặt máy tính, đặt mạng Trong IDS trạm chủ, hệ thống bảo vệ máy tính cục Mặt khác, IDS mạng, trình phát triển khai mạng theo cách hệ thống bảo vệ mạng thực thể Trong kiến trúc IDS kiểm sốt hay giám sát tường lửa, thiết bị định tuyến mạng chuyển mạng máy trạm

Các nhà nghiên cứu quan tâm đến cách tiếp cận khác kết hợp phương pháp khác để giải vấn đề Mỗi phương pháp có lý thuyết suy đốn riêng Lý khơng có mơ hình hành vi xác cho người sử dụng hợp pháp, kẻ đột nhập mạng riêng

2.1.4.2 Tiếp cận dựa vào trí tuệ nhân tạo

Ứng dụng trí tuệ nhân tạo sử dụng rộng rãi cho mục đích phát xâm nhập Các nhà nghiên cứu đề xuất số phương pháp tiếp cận vấn đề Barbara cộng [27][28], sử dụng luật kết hợp để xây dựng hệ thống testbed cho việc phát thâm nhập mạng Yoshida [39] đề xuất việc phát xâm nhập mạng dựa Lee cộng [36] đề xuất mơ hình phát xâm nhập mạng dựa khai phá liệu kiểm toán hệ thống (Audit) Một số nhà nghiên cứu khác đề xuất áp dụng khái niệm logic mờ vào vấn đề phát xâm nhập [29], [30] [33] Gomez cộng [41] kết hợp logic mờ, thuật toán di truyền luật kết hợp để phát triển hệ thống phát xâm nhập mạng S.B Cho [32] kết hợp logic mờ mơ hình Markov ẩn với để phát xâm nhập Trong phương pháp HMM sử dụng để giảm số chiều không gian đặc trưng

(59)

đáo phương pháp Bayes Đối với kết định, cách sử dụng phương pháp tính tốn xác suất Bayes di chuyển ngược thời gian tìm ngun nhân kiện Tính phù hợp cho việc tìm kiếm lý cho bất thường đặc biệt hành vi mạng Sử dụng thuật toán Bayes, hệ thống cách quay trở lại tìm nguyên nhân cho kiện Tiếp cận theo hướng cơng trình cơng bố Barbara cộng [28] Bilodeau đồng nghiệp, Bulatovic đồng nghiệp [31]

Mặc dù sử dụng Bayes để phát xâm nhập dự báo hành vi xâm nhập hấp dẫn, nhiên, có số vấn đề mà người ta phải quan tâm đến chúng Vì độ xác phương pháp phụ thuộc vào giả định đó, khoảng cách với giả định làm giảm độ xác Thơng thường, giả định dựa mơ hình hành vi hệ thống đích Lựa chọn mơ hình khơng xác dẫn đến hệ thống phát khơng xác Vì vậy, lựa chọn mơ hình xác bước hướng tới việc giải vấn đề Thực tế cho thấy phức tạp mơ hình hành vi hệ thống, nhiệm vụ khó khăn

Nhóm nghiên cứu Zanero cộng [40], Kayacik cộng [35] Lei cộng [38] dụng mạng nơ ron nhân tạo Trong việc làm này, nhà nghiên cứu phải vượt qua khó khăn số chiều đưa mô hình thích hợp gọi đồ đặc trưng tự tổ chức Kohonen, SOM Sau nhóm Hu [34] tiến cách tiếp cận SOM việc sử dụng máy học véc tơ Mục tiêu việc sử dụng mạng nơ ron nhân tạo cung cấp phương pháp phân loại không giám sát để vượt qua số chiều nhiều số lượng lớn tính đầu vào Vì hệ thống phức tạp tính đầu vào nhiều, phân nhóm kiện nhiệm vụ tốn thời gian Sử dụng phương pháp PCA SVD sử dụng thay [26] Tuy nhiên, không sử dụng cách hai phương pháp, thuật tốn phải tính tốn lớn Thêm nữa, giảm số lượng tính dẫn đến mơ hình xác làm giảm tỷ lệ phát xâm nhập

(60)

lớn Đây lý số nhà nghiên cứu, chọn cửa sổ thời gian lấy mẫu nhỏ giảm số chiều khơng gian đặc trưng Vì thời gian xử lý yếu tố quan trọng việc phát kịp thời trường hợp xâm nhập, hiệu thuật toán triển khai quan trọng Thời gian hạn chế đơi buộc phải giảm bớt số tính quan trọng, tức giảm chiều Tuy nhiên, phương pháp cắt tỉa khơng phải ln ln thực Trong việc triển khai phương pháp khai phá liệu, số nhà nghiên cứu đề xuất phương pháp tiếp cận giảm liệu việc nén liệu để giải vấn đề số chiều lớn Tạo luật kết hợp đề xuất nhóm tác giả Lee [36] giải pháp để giảm kích thước liệu đầu vào, theo tiếp cận dựa luật

2.1.4.3 Tiếp cận so khớp mẫu

Các thuật toán so khớp đa mẫu trái tim nhiều hệ thống IDS tiếp cận theo phương pháp dựa dấu hiệu đặc trưng Chúng cho phép cơng cụ nhanh chóng tìm kiếm nhiều mẫu lúc đầu vào hệ thống IDS Rất nhiều thuật toán so khớp cài đặt hệ thống Snort [19] Tuy nhiên, thuật toán tồn tài số vấn đề hiệu giảm tiêu tốn nhiều thời gian thực số lượng mẫu tăng lên Do vậy, việc nghiên cứu cải tiến hay đề xuất thuật toán so khớp đáp ứng việc so khớp đồng thời nhiều mẫu hệ thống phát xâm nhập nhu cầu cấp thiết mục tiêu thứ nhất luận án trình bày chi tiết phần

2.2 Thuật toán Aho-Corasick

(61)

Hình 2.5 Q trình so sánh thuật tốn KMP

Giả sử ta kiểm tra đến vị trí thứ j + i văn có i ký tự đầu mẫu khớp với đoạn u văn x  0 iy j j  iu Nếu ký tự thứ i + không khớp (tương ứng với vị trí thứ (j + i + 1) văn Tức

   

 1 

     

a x i y j i b ta khơng phải so sánh ký tự thứ mẫu với i -1 ký tự văn Ta dịch cửa sổ số vị trí cho thỏa mãn v phần đầu xâu x khớp với phần đuôi xâu u văn Hơn ký tự c ngay sau v mẫu phải khác với ký tự a Trong đoạn v thoả mãn tính chất ta quan tâm đến đoạn có độ dài lớn

Thuật tốn KMP cải tiến thời gian thực cách giảm số phép so sánh dựa mẫu tiền xử lý để tìm mẫu từ xây dựng mảng Next để xác định ký tự mẫu kiểm tra dựa mơ hình otomat Việc so khớp thực dựa ký tự xâu văn T dịch trạng thái mảng Next Ví dụ mẫu P = “aabaaa”, ta tiền xử lý để xây dựng mảng Next

Hình 2.6 Xây dựng mảng Next ứng với mẫu P = “aabaaa“

(62)

mẫu P vị trí thứ 0, 1, 3, 4, có giá trị 0, 0, 0, 0, Mảng Next thu có giá trị (0, 0, 2, 0, 0, 3)

Ví dụ: Minh họa hoạt động thuật toán KMP Xét mẫu x = “GCAGAGAG” văn y = ”GCATCGCAGAGAGTATCAGTACG”

Từ mẫu x ta xây dựng mảng kmpNext lưu trữ vị trí quay lui otomat xây dựng mẫu x ( - 1, 0, 0, - 1, 1, - 1, 1, - 1, 1)

i x[i]

kmpNext[i]

G C A G A G A G - 0 - 1 - 1 - 1 Giai đoạn tìm kiếm:

Lần 1:

Ta bắt đầu so sánh ký tự mẫu x với văn y Đến vị trí thứ thấy ký tự “G” mẫu x khác với ký tự “T” văn dịch chuyển mẫu Tại vị trí i = giá trị kmpNext[3] = - có bước dịch chuyển sau

Dịch chuyển 4: (i kmpNext i [ ] 3  1) Lần 2:

Tiếp tục so sánh ký tự mẫu x với văn y bắt đầu vị trí văn y Tại vị trí thấy ký tự “G” mẫu x khác với ký tự “C” văn dịch chuyển mẫu Tại vị trí i = giá trị kmpNext[0] = - có bước dịch chuyển sau

Dịch chuyển 1: (i kmpNext i [ ] 0 1)

(63)

Lần 3:

Dịch chuyển (i kmpNext i [ ] 1)  Lần 4:

Dịch chuyển (i kmpNext i [ ] 0)  Lần 5:

Dịch chuyển (i kmpNext i [ ] 0 1) Lần 6:

Dịch chuyển (ikmpNext i[ ]  0 1) Lần 7:

(64)

Lần 8:

Dịch chuyển (i kmpNext i [ ] 0 1)

Trong ví dụ trên, qua lần dịch chuyển thuật tốn KMP dùng 18 phép so sánh Tuy nhiên thực tế, thuật toán KMP làm việc khơng tốt tìm kiếm văn ngơn ngữ tự nhiên, bỏ qua ký tự phần đầu mẫu giống với phần văn

Thuật tốn tính mảng Next sau:

InitNext(p,int m)

{ int i,j,*kmpNext; i = - 1; j = 0;

*kmpNext = - 1; while (j < m) {

while (i > - 1)&&(p[i] ! = p[j]) i = *(kmpNext + i);

i++; j++;

if (p[i] = = p[j])

*(kmpNext + j) = *(kmpNext + i);

else *(kmpNext + j) = i;

}

return kmpNext; }

Thuật toán Knuth - Morris - Pratt

int KMP(char *p, char *t)

{ int i, j, M = strlen(p), N = strlen(t); InitNext(p);

for (i = 0, j = 0; j < M && i < N; i++, j++) while ((j > = 0) && (t[i] ! = p[j]))

j = next[j];

if (j = = M) return i - M;

else return i;

(65)

Đánh giá: Thuật tốn KMP dùng phép so sánh thuật toán BF, độ phức tạp thời gian không gian để xây dựng bảng kmpNext O(m)và độ phức tạp tính tốn của thuật tốn O(m+n) = O(n)

Thuật toán KMP áp dụng mẫu đơn, để mở rộng tập đa mẫu, tác giả [9] cải tiến KMP gọi thuật toán Aho-Corasick (AC) Thuật toán AC cho tập đa mẫu sử dụng mơ hình otomat hữu hạn (S, Q, I, T, F) Trong đó: Q tập hữu hạn trạng thái, I trạng thái bắt đầu, T tập trạng thái kết thúc, F hàm dịch chuyển Trong otomat đơn định (DFA) không đơn định (NFA) với kết hợp hàm Goto function, Failure function, Output function

Ví dụ, để xây dựng mơ hình otomat cho tập mẫu P = {her, their, eye, iris, he, is} ta có biểu diễn hình 2.7

Hình 2.7 Xây dựng mơ hình otomat cho tập mẫu P = {her, their, eye, iris, he, is} Khi xây dựng otomat hình vẽ ta áp dụng thuật toán KMP so khớp đơn mẫu cho nhánh otomat Thuật toán AC cách sử dụng thuật toán KMP cho đơn mẫu nhiều lần

Thuật tốn mơ tả hình thức sau:

Thuật toán Aho-Corasick

1: Procedure AC (y,n,q0) Input

y ← array of n bytes representing the text input n ← integerrepresenting the text leght

(66)

2: state ← q0

3: For i = → n → Matching

4: While g(state, y [i]) = fail → whileg(state, y [i]) is undefined

5: state ← f(state) → use the failure function

6: end while

7: state←g(state, y [i]) 8: Ifo(state) ≠Ø then

9: output I → This an accepting state, i.e state ∈A 10: end if

11:end for

12:end procedure

Độ phức tạp thời gian thuật toán AC O(n) độc lập với kích thước chuỗi vào cho tốc độ thực thi tốt với tập nhiều mẫu

2.3 Một số nghiên cứu liên quan

Các cải tiến AC ACMS (Aho-Corasick with Magic states String matching algorithm) [8] Thuật toán ACMS cho phép hạn chế yêu cầu nhớ không làm giảm tốc độ sử dụng đặc tính trạng thái từ việc xác định DFA tương ứng Thuật toán ACMS sử dụng cấu trúc liệu nhỏ với chi phí thực giảm thiểu nhờ ma trận dịch chuyển trạng thái, thành phần e(x,y) ma trận cho biết trạng thái trạng thái y nhận ký tự vào x Các tác giả [9] mô tả cách thức tăng tốc độ thuật toán so khớp AC cách xếp lại toàn trạng thái, ACMS thực xếp lại trạng thái từ đến t Phạm vi xếp xử lý thông qua hai bước: bước tìm trạng thái ảo bước thứ hai phân chia ma trận dịch chuyển Nếu trạng thái nhận ký tự vào có trạng thái gọi trạng thái ảo Ma trận dịch chuyển phân chia dựa sở ngưỡng, ma trận đầu có giá trị nhỏ ngưỡng ma trận thứ hai nén trình phát sinh ma trận ảnh B ma trận danh sách trạng thái S Kích thước ma trận thứ hai ma trận B tất trạng thái ma trận thứ hai có trạng thái S

(67)

ứng B đặt Tồn thuật tốn kiểm chứng với ví dụ [10] Bằng cách phân chia ma trận dịch chuyển trạng thái ảo sở tìm kiếm hạn chế thời gian thực thi Trong trường hợp xấu nhất, số lượng trạng thái dịch chuyển nhiều ngưỡng ký tự vào giả định để tìm trạng thái từ ma trận thứ hai số ánh xạ tăng tác động đến hiệu thực thi thuật toán Để đánh giá thuật toán RQS, xét trường hợp xấu trường hợp tốt chuỗi vào chuỗi tìm kiếm giống độ phức tạp dịch chuyển ln ln nhớ ký tự khớp tránh phải so sánh tất thời điểm Phép so sánh loại trừ sở thuật toán so khớp chuỗi để cải tiến làm tăng số lượng cặp chuỗi bit Thuật tốn làm việc tốt với gói tin có kích thước nhỏ tập luật nhỏ

Các tác giả [9] đề xuất thuật toán so khớp chuỗi hiệu nhớ cho hệ thống NIDS cách kiểm tra số ký tự tập mẫu nhiều tổng số các ký tự gọi thuật toán so khớp chuỗi Aho-Corasick đánh số ký tự (CIAC- Character Index Aho-Corasick) sử dụng mơ hình DFA Việc tìm kiếm DFA nhanh trình tìm kiếm NFA Thủ tục so khớp chuỗi thuật toán bao gồm hai bước Bước tiền xử lý, mơ hình DFA xây dựng dựa thuật toán AC tương tự thuật toán 2.2 Việc tìm kiếm DFA tìm cột có giá trị ma trận Chuyển đổi ma trận thành Aho-Corasick DFA cách dịch nút trạng thái thành nút ký tự, với nút ký tự có n mục trạng thái ứng với tất trạng thái Tiếp theo cột tìm kiếm có giá trị dòng trộn lại thành dòng Một bảng số ký tự tạo với trỏ trỏ đến tất nút ký tự Ở giai đoạn tìm kiếm đọc ký tự để trỏ đến nút ký tự CIAC DFA tương ứng bảng số ký tự Sau đọc trạng thái thời để nhảy đến giá trị trạng thái cách kiểm tra nút ký tự Bây tập trạng thái tìm thấy trước trạng thái thời Kiểm tra trạng thái thời để định việc so khớp có khớp hay không tiếp tục xử lý đến tất ký tự hoàn tất

Nhận xét:

(68)

nhưng lại có độ phức tạp thời gian với số lượng ký tự vào Để giảm thiểu nhớ sử dụng, thuật toán ACMS sử dụng trạng thái ảo Thuật toán so sánh cách sử dụng nhớ lưu lượng với ngưỡng khác quan sát đâu lưu lượng cao yêu cầu sử dụng nhớ nhiều Ở đây, ngưỡng định đến vai trò cách sử dụng nhớ hiệu thực Nếu ngưỡng nhỏ ánh xạ sang ma trận chuyển dịch ma trận trạng thái tăng điều làm giảm khả thực thi Khi xem xét ảnh ma trận yêu cầu nhớ so với cách so sánh truyền thống

- Thuật toán so khớp chuỗi CIAC xây dựng với việc đánh số ma trận dịch chuyển dựa ký tự cho phép truy cập nhanh đến ma trận độ phức tạp không gian cấu trúc liệu giảm

2.4 Cải tiến thuật toán AC kỹ thuật nén dòng bảng chỉ số

2.4.1 Biểu diễn khơng gian lưu trữ tối ưu hóa kỹ thuật nén dịng

Xét ví dụ có tập mẫu P = {hers, she, his, he} Mô hình NFA AC biểu diễn tập mẫu P = {hers, she, his, he} cho hình 2.8

(a) Hàm Goto

i

f(i) 0 7

(b) Hàm Failure

i

Output(i) he she, he his hers

(c) Hàm Output Trạng

thái

Đầu vào

(69)

0 0

1 0

2 0

3 0 0

5 0 0

7 0

8 0 0

(d) Ma trận chuyển cho hàm Goto

Hình 2.8 Khơng gian trạng thái AC với tập mẫu P

Khi tập mẫu lớn với nhiều mẫu số trạng thái tăng lên nhanh Thêm nữa, ma trận trạng thái NFA có nhiều thành phần có giá trị Do vậy, ý tưởng sử dụng kỹ thuật nén dòng (CSR: Compressed Row Storage) [13] để giảm bớt không gian lưu trữ

Với tập mẫu P trên, không gian trạng thái AC sau sử dụng kỹ thuật CSR trình bày Bảng 2.1

Bảng 2.1 Nén ma trận chuyển hàm Goto với CSR Giá trị

Cột 2 5 Dòng 1 2

Không gian lưu trữ hàm failure vectơ chiều hình 2.8.b có số thành phần lớn Để tối ưu không gian lưu trữ, sử dụng kỹ thuật bảng số lưu lại dòng thưa trỏ vị trí có giá trị khác hình 2.8 với phần tử số lượng mục, số giá trị mục tương ứng

Bảng 2.2 Nén hàm failure AC dùng bảng số

Giá trị 7

Chỉ số

(a) Nén hàm Failure dùng bảng số chiều

(70)

Số lượng mục

Chỉ số bắt đầu

Giá trị 7

Dải lưu trữ 7

(c) Nén hàm Failure dùng bảng số lưu trữ

Chúng ta hồn tồn áp dụng cách lưu trữ cho dòng ma trận để tối ưu không gian trạng thái, biểu diễn bảng dịch chuyển danh sách trỏ vectơ trạng thái

2.4.2 Cải tiến giai đoạn tiền xử lý AC 2.3.2.1 Hai thuật toán cải tiến

Do otomat đơn định DFA (Deterministic Finite Automata) yêu cầu xác định trạng thái ứng với ký tự vào nên cho hiệu thực thi tốt nên Snort chúng tơi khai báo thuật tốn AC sử dụng DFA Mơ tả cấu trúc liệu danh sách liên kết DFA sau:

struct DFA {

struct State *NextState [256]; struct State *Failurelist; struct Matched *Matchlist; }

Với trạng thái có tập trỏ trỏ đến trạng thái (*NextState) với số lượng trỏ tối đa 256 ứng với tập ký tự vào 256 ký tự bảng mã Tập trạng thái lỗi (quay lui) mô tả danh sách trỏ *Failure tập trạng thái kết thúc mô tả danh sách trỏ mẫu khớp *Matchlist.Như với trạng thái DFA chứa 256 trạng thái ứng với ký tự vào

Thuật toán 2.1 Xây dựng ma trận chuyển trạng thái dựa DFA ứng với tập mẫu P sử dụng cấu trúc bảng số ký tự

INPUT: Tập mẫu P có n mẫu

OUTPUT: Bảng chuyển trạng thái DFA chấp nhận tất mẫu P DFA dfaBuild(Patterns P [], int n)

{

(71)

String w;

State *state, *NextState; //Cấp phát trạng thái state = dfa.newState(); //Thiết lập trạng thái ban đầu dfa.setStartState(state); for (int i = 0; i < n; i++){

w = P [i]; //Xử lý mẫu P [i] state = dfa.getStartState();

for (int j = 0; j < w.length(); i++){

*NextState = dfa.getTransition(*state, w(j)) if (!NextState.isValid()){

// Loại bỏ trạng thái *NextState = dfa.newState(); //Cấp phát trạng thái

// Thêm liên kết chuyển trạng thái nút với ký tự vào w(j) dfa.addTransition(*state,w(j),*NextState);}

*state = *NextState; } dfa.addMatchlist(*state);} return dfa;

}

Trong đó, hàm addMatchlist, addTransition có nhiệm vụ thêm trạng thái vào danh sách NextStatevà Matchlist ứng với ký tự xét w(j) mẫu P[i]

Thuật toán duyệt mẫu P [i] tập mẫu P sinh tập trạng thái ứng với ký tự khác xuất mẫu sau duyệt ký tự mẫu để tạo bước chuyển trạng thái ứng với ký tự xét Các trạng thái ứng với mẫu đoán nhận thêm vào danh sách *Matchlist thông qua hàm add(Matchlist).(so với thuật toán AC, số lượng trạng thái sinh hơn) Thuật tốn 2.2 Xây dựng bảng sớ trỏ failure ứng với DFA

- INPUT: DFA ứng với tập mẫu P xây dựng thuật toán 2.1 - OUTPUT: Danh sách trạng thái lỗi lưu trữ *failure

(72)

State state, nextState, s; char ch; q.add(dfa.getStartState());

*dfa.Failurelist.setFailure(dfa.getStartState(), null); while (! q.isEmpty()) {

state = q.remove();

for (int i = 0; i < 256; i++) { ch = *dfa.Nextstate(i);

nextState = dfa.getTransition(state, ch); if (nextState.isValid()){

s = *dfa.Failurelist.getFailure(state);

while((s! = null)&&!dfa.getTransition(s,ch).isValid()) {s = *dfa.Failurelist.getFailure(s);}

if (s ! = null)

{*dfa.Failurelist.setFailure(nextState, dfa.getTransition(s,ch));} else

{*dfa.Failurelist.setFailure(nextState, dfa.getStartState());} if (f.getFailure(nextState).isMatchlist())

{dfa.addMatchlist(nextState);} q.add(nextState);}}}

}

Khơng gian lưu trữ thuật tốn AC gốc cho tập mẫu P minh họa hình 2.9 với số lượng phần tử lưu trữ trạng thái với độ dài ký tự gói tin cần kiểm sốt phụ thuộc vào số trạng thái Chính điều dẫn đến kích thước khơng gian lưu trữ thuật tốn AC gốc lớn kích thước tập mẫu kích thước gói tin tăng

Hình 2.9 Khơng gian trạng thái thuật toán AC gốc

(73)

trạng thái xét xuất MatchList Sau sinh trỏ để biểu diễn không gian thay cho ma trận trạng thái AC

Thay biểu diễn trỏ trạng thái ta biểu diễn thông qua trỏ ký tự Với giải pháp tối ưu cách biểu diễn không gian trạng thái tối ưu hóa kỹ thuật nén dịng, loại bỏ trạng thái có giá trị không gian lưu trữ thực thuật toán 2.1 thuật toán 2.2

Thay phụ thuộc vào độ dài gói tin, không gian lưu trữ thực thi phụ thuộc vào số lượng ký tự khác xuất tập mẫu độc lập hồn tồn với kích thước gói tin kiểm sốt thực thi (xem hình 2.10)

Hình 2.10 Khơng gian trạng thái thuật toán AC sau tối ưu

2.3.2.2 Cải tiến giai đoạn tìm kiếm của thuật toán AC

Trong thuật toán AC gốc, trình tìm kiếm mẫu thực cách sử dụng bảng số trạng thái Việc xác định trạng thái phụ thuộc vào trạng thái thời ký tự vào bảng trạng thái

Sau thuật tốn tìm kiếm cải tiến dựa bảng số ký tự, trạng thái xác định bảng số ký tự

Thuật toán 2.3 Tìm kiếm mẫu bảng số ký tự

INPUT: Tập mẫu P có n mẫu Gói tin cần kiểm sốt M

(74)

{

DFA dfa = dfaBuild(P, n); FailureBuild(DFA dfa) State state, nextState; char ch; Results r = new Results(); state = dfa.getStartState(); while (! M.eof()){

ch = M.getChar();

nextState = dfa.getTransition(state,ch); if (!NextState.isValid()){

nextState = *dfa.Failurelist.getFailure(state);

while ((nextState! = null) && ! dfa.getTransition(nextState,ch).isValid()) {nextState = *dfa.Failurelist.getFailure(nextState);}

if (nextState ! = null) {

nextState = dfa.getTransition(s,ch);} else {

nextState = dfa.getStartState();} }

if (nextState.isMatchlist()) {

r.add(M.getPosition(),*dfa.Matchlist);} state = *dfa.NextState [state.getChar];} return r;

}

2.4.3 Thực nghiệm đánh giá

Để đánh giá hiệu không gian nhớ thực thi, khai báo cài đặt thử nghiệm hệ thống Snort 2.4.2 với thuật toán AC gốc, thuật toán AC-OPT[20], thuật tốn AC sử dụng dụng định dạng dịng thay (AC-RDF)[21] thuật tốn AC sau nén khơng gian lưu trữ trạng thái

Số lượng mẫu thực nghiệm từ 10 đến 1000 mẫu, chiều dài mẫu từ đến 30 ký tự bảng chữ |S| = 256

(75)

Hình 2.11 So sánh khơng gian nhớ thuật toán AC với cách tiếp cận lưu trữ trạng thái khác

Kết thống kê thực nghiệm so sánh thuật toán cải tiến chúng tơi với thuật tốn AC gốc tập luật chuẩn Snort 2.4.2 cho bảng 3.3 với tiêu chí số lần chuyển trạng thái tổng số trạng thái Qua thực nghiệm ta dễ nhận thấy số lượng trạng thái giảm phụ thuộc nhiều vào số lượng mẫu số lượng ký tự Khi số lượng mẫu lớn tổng số ký tự nhiều hiệu tối ưu lớn

Trong việc làm này, chúng tơi phân tích kỹ thuật nén dịng để tối ưu khơng gian trạng thái thuật tốn so khớp chuỗi AC dùng bảng số thay cho bảng số trạng thái thử nghiệm hệ thống phát xâm nhập mạng Snort 2.4.2

Bảng 2.3 Thống kê không gian trạng thái thực nghiệm Snort với tập luật chuẩn Tập luật Số lượng mẫu Số lượng ký tự

Thuật toán AC gốc Thuật toán AC cải tiến

Tỷ lệ % tổng số trạng thái rút gọn Số lần chuyển trạng thái Tổng số trạng thái Số lần chuyển trạng thái Tổng số trạng thái

Ftp 96 466 402 406 391 375 7.63 %

Smtp 104 989 715 719 613 602 16.27 %

Web-misc 160 2.052 1.420 1.425 1.318 1.259 11.65 %

(76)

Các kết thực nghiệm cho thấy thuật tốn mà chúng tơi đề xuất cho kết tốt thuật toán AC gốc số thuật toán AC cải tiến AC-OPT [20] AC-RDF[21]

Việc hiểu rõ cấu trúc biểu diễn không gian trạng thái thuật toán giúp xây dựng hệ thống an ninh mạng đạt hiệu cao thực tế đáp ứng phát triển nhanh đa dạng mẫu công mạng

2.5 Thuật toán đề xuất xây dựng biểu đồ hướng cấu trúc mẫu kết hợp với danh sách liên kết

Khác với thuật toán so khớp đa mẫu trước đây, thuật tốn chúng tơi đề xuất xây dựng biểu đồ cấu trúc dựa tập mẫu sử dụng kỹ thuật tìm kiếm danh sách liên kết cho việc so khớp đa mẫu Điều cho phép thuật tốn xử lý đồng thời số lượng lớn mẫu dễ dàng để kết hợp ứng dụng so khớp đa mẫu tồn

Để mô q trình thuật tốn, quan tâm đến ví dụ sau: Giả sử, có tập mẫu P = {"search", "ear", "arch", "chart"} liệu đầu vào xâu T = “strcmatecadnsearchof”

2.5.1 Giai đoạn tiền xử lý

Theo cách tiếp cận thuật toán AC xây dựng otomat hình 2.12 đây:

(77)

Thuật toán CW tạo cấu trúc liệu đa lớp sử dụng ký tự riêng biệt xuất hiện tập mẫu Mỗi nút v, trừ nút gốc, dán nhãn với ký tự từ tập mẫu Các cấu trúc liệu CW cho tập mẫu P hình 2.13

Các nút kết thúc thể từ khóa cần tìm từ nút gốc đến nút xét, ngược lại khơng đốn nhận mẫu Đường từ nút gốc đến nút xét thể phần tiền tố mẫu P

Hàm goto

i 4 6 9 14

Output(i) arch search ear chart

Hàm Output

Trạng thái

Đầu vào

a c e h r Others

0 1 1 2 3 1 3

7 1 1 1 2 1 3

8 1 1 1 1 1 2

9 2 2 2 2 2 2

others 3 3 3 3 3 3

Bảng dịch chuyển của thuật toán CW

Hình 2.13 Kết giai đoạn tiền xử lý thuật toán CW

Trong giai đoạn tiền xử lý, thuật toán WM xây dựng ba bảng: SHIFT,HASH, PREFIX Bảng HASH PREFIX sử dụng giá trị dịch chuyển Hình 2.14 bảng SHIFT HASH với B =

(78)

Bảng WM Hash

Hình 2.14 Kết giai đoạn tiền xử lý thuật toán WM

Trong giai đoạn tiền xử lý, xây dựng biểu đồ cấu trúc để biểu diễn tập mẫu P Biểu đồ cấu trúc G có n mức (n độ dài mẫu dài tập mẫu P), mức i (chẳng hạn) phải giữ lại ký tự khác thứ i trong mẫu tập P

Biểu đồ cấu trúc tập mẫu P = {"search", "ear", "arch", "chart"} hình 2.15:

Hình 2.15 Kết giai đoạn tiền xử lý thuật toán

Rõ ràng, với cách tiếp cận chúng tôi, không gian lưu trữ giảm lưu trữ ký tự khác mức.Yêu cầu nhớ thuật toán giai đoạn nhỏ không gian nhớ DFA hàm trạng thái hàm goto thuật toán AC, WM, CW Thêm nữa, thuật tốn chúng tơi khơng sử dụng bảng SHIFT HASH giảm thời gian xây dựng bảng không gian lưu trữ bảng

(79)

Để phân tích q trình tìm kiếm so khớp, giả sử đầu vào xâu T = “strcmatecadnsearchof” Quá trình tìm kiếm thuật tốn AC thực thơng qua phép chuyển trạng thái otomat ký tự xét khớp làm thay đổi trạng thái dịch chuyển, ngược lại kiểm tra hàm failure để tính bước dịch chuyển tiếp theo Thuật tốn CW sử dụng 15 bước để phát ba mẫu {ear, arch, search}, nhìn thấy hình 2.16 Trong đó, thuật tốn WM cần bước để phát hai mẫu{ear, search}

Trong pha tìm kiếm so khớp, thuật toán sử dụng danh sách trỏ để tối ưu hóa khơng gian Số lượng tối đa thành phần trỏ số lượng mẫu (bằng lực lượng tập P)

Ban đầu, thuật toán khởi tạo giá trị thành phần trò độ dài tương ứng mẫu tập mẫu Cấu trúc trỏ sau:

Pi 6 3 4 5

(80)

Hình 2.16 Giai đoạn tìm kiếm thuật tốn CW WM

Trong trình duyệt liệu vào T, bước khới tạo con trỏ Pi (i tương ứng với vị trí ký tự hành xét T) Nếu ký tự

hiện hành trùng khớp với ký thứ j mẫu thứ k thành phần thứ k trỏ Pj

(lưu ý j luôn nhỏ i) tương ứng giảm

Các trỏ bị xóa bước thứ i mà khơng có thành phần bị giảm Ngược lại, chúng trì bước duyệt Khi có thành phần trỏ mà giá trị giảm đến mẫu tương ứng tìm thấy Các thao tác tìm kiếm so khớp thuật tốn đề xuất mơ tả hình 2.17

Số bước cần thực thuật toán với chiều dài xâu vào T Với xâu T độ dài n, độ dài mẫu dài L, m số lượng mẫu Trong trường hợp xấu nhất, thời gian thực thuật toán O(n*m*L) Mặc dù vậy, các trường hợp trung bình thường bé nhiều có m trỏ Pi tồn

(81)

Hình 2.17 Giai đoạn tìm kiếm so khớp thuật tốn đề xuất

2.5.3 Thuật toán đề xuất

2.5.3.1 Thuật toán cải tiến

Mã giả thuật tốn đề xuất viết sau:

Thuật toán đề xuất, thuật toán 2.4

Procedure DNL (T, n, m, p, G)

1: T ← array of n byte representing the text input n ← integer represent the text length

P [j] ← array of patterns

P0← array of keyword lengths P0 [j] (j = 1…m)

m ← number of patterns G ← graph of pattern P 2: S = ∅;

3: for i = → n

(82)

6: If (T [i] in G) and (PjinS) then

7: Pj [position of T [i] in P [j]] = Pj [position of T [i] in P [j]] -1;

8: If (Pj [k] = 0) then

9: Output P [k] detected;

10: Remove Pj;

11: endif

12: If (PjinS) and (Pjnot change) then Remove Pj

13: endif

14: endif

15: end for

16: End procedure

2.5.3.2 Các kết quả thực nghiệ, so sánh mức độ cải tiến

Các thực nghiệm thiết kể để kiểm tra hiệu thuật toán đề xuất với theo hai tiêu chí thời gian thực không gian lưu trữ so sanh với thuật toán AC, CW WM Luận án sử dụng mã nguồn thuật toán AC, CW WM trích từ hệ thống Snort version 2.8.3.1 [18]

Tất kết thực nghiệm thực đồng thời máy PC với cấu hình Intel Pentium GHz CPU Dual Core GB RAM Các so sánh thực hai kịch bản:

- Thứ nhất, cố định số lượng mẫu thay đổi độ dài mẫu; - Thứ hai, cố định số lượng mẫu thay đổi số lượng mẫu

Tất mẫu sinh ngẫu nhiên với độ dài nhau, văn tạo dựa phần mẫu có chèn thêm ký tự ngẫu nhiên.Ví dụ, cần xâu có độ dài 10.000, sinh 500 ngẫu nhiên, phần lại sinh theo cách: lần, lấy vài ký tự từ 500 ký tự sinh chèn chúng vào cuối độ dài đạt đến 10.000 (vị trí độ dài lần lấy sinh ngẫu nhiên)

(83)

Hình 2.18 So sánh thời gian thực cố định số lượng mẫu

Hình 2.19 So sánh nhớ sử dụng cố định số lượng mẫu

(84)

2.6 Kết chương

Trong chương này, luận án trình bày tổng quan việc phát xâm nhập trái phép giả mạo mạng Về phát xâm nhập trái phép, luận án trình bày lại kỹ thuật xâm nhập trái phép sử dụng kẻ công; giải pháp kỹ thuật nhằm ngăn chặn kỹ thuật xâm nhập trái phép biết; kiến trúc tổng quát hệ thống phát xâm nhập chi tiết hệ thống phát xâm nhập trái phép dựa mã nguồn mở Snort, tảng để triển khai thử nghiệm thuật toán đề xuất

(85)

CHƯƠNG ỨNG DỤNG SO KHỚP ĐỒ THỊ TRONG QUÁ TRÌNH PHÁT HIỆN CÁC TRANG WEB GIẢ MẠO

Chương trình bày việc phát trang Web giả mạo dựa cấu trúc DOM-Tree trang HTML XML Việc trích xuất liệu từ trang Web thực thơng qua việc phân tích cấu trúc trang Web Cụ thể nhóm trang có cấu trúc thành nhóm trang tìm biểu diễn giống cấu trúc trang Web nhóm Từ áp dụng việc so sánh cấu trúc DOM-Tree trang Web giả mạo để phát giả mạo cách sử dụng thuật toán so khớp đồ thị

3.1 Giả mạo mạng

3.1.1 Giới thiệu

Giả mạo lĩnh vực bảo mật máy tính, hành vi giả mạo ác ý nhằm lấy thông tin nhạy cảm tên người dùng, mật chi tiết thẻ tín dụng cách giả dạng thành chủ thể tin cậy giao dịch điện tử

Hầu hết ngày công lừa đảo đại xảy cách thu hút người sử dụng truy cập vào trang Web độc hại trông hoạt động gốc Khi đó, người sử dụng, bị thuyết phục trang xác thực, cung cấp thông tin cá nhân bao gồm thông tin xác thực thông tin ngân hàng Những thông tin thường kẻ công sử dụng để thực số hình thức hành vi trộm cắp hay gian lận thực tế Do vậy, việc nghiên cứu phát trang Web giả mạo nhu cầu cấp thiết

3.1.2 Một số kỹ thuật giả mạo

(86)

3.1.2.1 Sử dụng thư điện tử giả mạo

Trong kiểu cơng điển hình, kẻ cơng gửi số lượng lớn, thư giả mạo tới người sử dụng Internet cách ngẫu nhiên mà thư tựa thư đến từ tổ chức hợp pháp kinh doanh tiếng, chẳng hạn cơng ty tài chính, thẻ tín dụng,… Nội dung thư giả mạo yêu cầu nạn nhân cập nhật thông tin cá nhân điều kiện để tránh quyền truy nhập đến dịch vụ đó, quyền truy nhập tài khoản ngân hàng trực tuyến Tuy nhiên, người dùng kích chuột vào đường liên kết cung cấp, họ điều hướng đến trang Web giả mạo kẻ công xây dựng

3.1.2.2 Sử dụng các trang Web giả mạo

Phần lớn trang Web giả mạo cố gắng bắt chước trang Web hợp lệ đến mức tốt để người dùng có đủ tự tin tiết lộ thông tin nhạy cảm Hầu hết trang lừa đảo làm tốt việc tạo giao diện hợp lệ cách chép cách bố trí trang, phơng chữ, kiểu, logo chí thơng tin bảo mật trang hợp lệ Thực tế, nhiều liên kết trang lừa đảo thực kết nối đến trang hợp lệ, điều khiến giống với trang hợp lệ

3.1.2.3 Bắt chước URL

Ngồi việc mơ theo nội dung thực tế, số trang lừa đảo cố gắng bắt chước URL, chẳng hạn thay chữ W hai chữ V thay chữ “l” số “1” Các trang Web lừa đảo thường sử dụng URL giả mạo URL hợp lệ bao gồm URL hợp lệ URL lừa đảo

3.1.2.4 Thông tin cá nhân

(87)

3.1.2.5 Che giấu URL

Một vài trang lừa đảo biết cách thử ẩn URL thực trang lừa đảo thay URL trang hợp lệ Khai thác lỗ hổng trình duyệt sử dụng Javascript để ghi đè lên địa khác ký thuật lừa đảo cao cấp để ẩn URL thực trang lừa đảo Khi người dùng nhìn vào địa trình duyệt, họ nhìn thấy địa URL trang hợp lệ, chất lại trang lừa đảo

3.1.2.6 Nhiễm độc DNS

Một kỹ thuật lừa đảo khác nhiễm độc bảng DNS máy tính người dùng Đây kết hợp phần mềm độc hại lừa đảo thường phần mềm độc hại cài đặt để ghi đè lên bảng DNS máy tính Bảng DNS đổi địa IP trang Web hợp lệ thành địa IP trang Web lừa đảo Khi người dùng truy cập trang Web tự động bị đẩy vào trang lừa đảo

Ngoài kỹ thuật nêu trên, kỹ thuật khác thường sử dụng dựa vào thông tin xã hội, để lấy thông tin nhạy cảm người khác, chẳng hạn gọi điện thoại đến nạn nhân đặt nạn nhân vào tình có khả cao cung cấp các thơng tin này… Tuy nhiên, khuôn khổ luận án này, nghiên cứu sinh tập trung nghiên cứu về giả mạo Web Phần tiếp trình bày nghiên cứu liên quan đến Web giả mạo

3.1.3 Một số nghiên cứu liên quan đến giả mạo Web

Phần lớn trang Web giả mạo cố gắng bắt chước trang Web hợp lệ đến mức tốt để người dùng có đủ tự tin tiết lộ thông tin nhạy cảm Hầu hết trang lừa đảo làm tốt việc tạo giao diện hợp lệ cách chép cách bố trí trang, font, kiểu, logo chí thơng tin bảo mật trang hợp lệ Thực tế, nhiều liên kết trang lừa đảo thực kết nối đến trang hợp lệ; điều khiến giống với trang hợp lệ

(88)

này sử dụng từ khóa để xác định trang cụ thể Thuật toán TF-IDF xác định từ khóa trang Web, từ khóa đưa vào máy tìm kiếm chẳng hạn Google lấy nhóm URL Nếu trang Web bị nghi ngờ nằm nhóm trang coi hợp lệ, ngược lại bị cho lừa đảo hầu hết trang lừa đảo khơng có thứ hạng cao kết máy tìm kiếm Thuật tốn ứng dụng giải pháp Cantina [46] nhà nghiên cứu đại học Carnegie Mellon phát triển với việc sử dụng năm từ khóa có tần suất xuất cao trang Tuy nhiên giải pháp phù hợp có hai giả thiết sau:

1 Thứ nhất, trang lừa đảo phải nhìn hoạt động giống với trang hợp lệ cho kết từ khóa xác định TF-IDF giống

2 Thứ hai, máy tìm kiếm phải cho kết xếp hạng trang Web hợp lệ xác cao trang lừa đảo

Thuật toán thứ hai sử dụng thuật toán lọc Bayes, phát triển để phát thư rác Các nhà nghiên cứu Đại học Iowa [47] sử dụng thuật tốn phát triển cơng cụ chống lừa đảo đặt tên B-APT Lợi thuật tốn có khả phát đối tượng chưa nhìn thấy trước Việc sử dụng phép lọc Bayes giải pháp hứa hẹn cho việc phát lừa đảo ngày zero, phát trang Web lừa đảo không dựa danh sách đen

Giải pháp thứ ba đến từ nhà nghiên cứu Hồng Kông [48] liên quan đến thuật toán phát giống hai trang Web mặt hình ảnh Hướng tiếp cận kiểm tra hiển thị tương đồng trang Web so sánh đặc trưng hiển thị với trang Web hợp lệ lưu danh sách trắng

(89)

liệu có cấu trúc dạng HTML hay XML ngơn ngữ lập trình thơng dịch, Javascript, PHP, Python, Do vậy, hướng tiếp cận luận án chuyển trang Web cấu trúc DOM chúng dạng cây, sau so sánh xem hai trang Web có giống hay không cách so sánh DOM-Tree Nếu hai trang Web có cấu trúc giống nghi ngờ, nghiên cứu sinh sử dụng thuật toán so khớp để so sánh thành phần chi tiết chúng để phát trang Web giả mạo Và mục tiêu thứ hai của luận án Phần luận án phân tích đánh giá ưu nhược điểm cách tiếp cận so khớp đồ thị đề xuất thuật toán

3.2 Một số nghiên cứu liên quan so khớp đồ thị

3.2.1 Tìm đẳng cấu đồ thị đẳng cấu đồ thị

Cho đồ thị mơ hình GM có ma trận kề M1 và đồ thị liệu GD có ma trận kề M2, ban đầu ta phải tính tất ma trận hoán vị M2 và chuyển ma trận

thành định Khi thực thuật toán, ma trận kề M1 đồ thị GM tìm ma

trận kề định mà đồng với Ma trận kề tương ứng với ma trận kề biểu diễn đẳng cấu đồ thị đẳng cấu đồ thị mà tốn cần tìm

Giả sử A(GD) tập hợp tất ma trận kề hoán vị đồ thị GD Như vậy,

tập hợp A(GD) xây dựng thành định Khi ma trận kề MD

bao gồm mảng phần tử gọi phần tử hàng-cột ai, mà

vector có công thức sau:

ai = (m1i, m2i, , mii, mi(i-1), , mi1)

Ma trận M viết lại sau: M = (a1, a2, ,an); i =

(90)

Để hiểu sơ lược thuật tốn trên, xem xét ví dụ minh họa sau đây: Cho hai đồ thị GM GD có hướng gán nhãn đây:

Đồ thị GM Đồ thị GD

Hình 3.2 Đồ thị GM GD

Ta biểu diễn đồ thị GM GD hai ma trận kề M1 M2 Sau tìm tất

các ma trận hốn vị M1, M2 biểu diễn thành định

Hình 3.3 Cây định biểu diễn tất ma trận kề đồ thị GD

Hình 3.3 minh họa việc tìm tất ma trận hoán vị M1 xây dựng

cây định ứng với đồ thị GD Ma trận kề M1 có tất ma trận hoán vị

sắp xếp từ A->F Các ma trận biểu diễn phần tử hàng-cột tương ứng Cây định xây dựng theo phần tử hàng-cột ma trận kề MP A(GD) sau:

(91)

quyết định Mỗi nút mức có cung nối với nút gốc mức cung biểu diễn phần tử hàng-cột a1 ma trận hoán vị

Ở ví dụ trên, ma trận hốn vị từ A->F, hai ma trận A, B có phần tử hàng cột a1 = {b} ma trận C, D, E, F có phần tử hàng cột a1 = {a} có

hai cung biểu diễn cho phần tử a1 Nút nối với nút gốc hai cung

trên Ở mức 2, ta tìm cung nối biểu diễn phần tử hàng cột a2 ma trận

hoán vị Và bước kiểm tra phần tử hàng-cột a1 để xác định

xem cung nhánh thuộc cung mức Ví dụ ma trận hốn vị A, B, D có cùng a2 = {1, a, 0} ma trận A, B có phần tử hàng-cột a1 = {a} cung biểu diễn phần tử hàng-cột a2 ma trận A, B thuộc nhánh cung nối nút

2 cịn ma trận hốn vị D lại có phần tử hàng-cột a1 = {b} nên cung biểu diễn phần tử

hàng-cột a2 ma trận D thuộc vào nhánh cung nối nút

Làm tương tự, mức thu cung biểu diễn cho phần tử a2 của

ma trận hoán vị ứng với nút 4, 5, 6, (như hình vẽ 3.5) Các cung mức biểu diễn phần tử hàng cột a3 ma trận hốn vị A, B, C, D, E, F Trong ví dụ ta

thu cung biểu diễn cho phần tử hàng-cột mức

Như ta thu nhánh thuộc định, nhánh biểu diễn cho ma trận hoán vị xếp từ A->F

Một điều lưu ý xây dựng định biểu diễn tất ma trân hoán vị số mức định với số phần tử hàng-cột ai ma trận

hốn vị

Cây định biểu diễn đồ thị GM thực tương tự việc xây dựng

cây định biểu diễn đồ thị GD Nếu hai đồ thị GM GD tồn đẳng cấu

(nếu số đỉnh hai đồ thị nhau) đẳng cấu đồ thị (nếu số đỉnh đồ thị GM nhỏ GD) định biểu diễn đồ thị GM GD đồng với

nhau định GM đồng với nhánh GD không tạo

nút Hình 3.3 3.4 minh họa cho định biểu diễn hai đồ thị GD

GM ví dụ nêu Ta thấy định hai đồ thị GM GD không

đồng với nhau, định đồ thị GM có hai nút nút 13 15

(92)

Hình 3.4 Cây định biểu diễn hai đồ thị GM GD

Ưu điểm thuật toán đơn giản, dễ hiểu, dễ cài đặt Giải hai toán phức tạp toán đẳng cấu đồ thị đẳng cấu đồ thị áp dụng cho nhiều dạng đồ thị khác Nhưng nhược điểm thuật toán trường hợp đồ thị lớn dẫn đến bùng nổ tổ hợp dẫn đến tính tất hốn vị biểu diễn cho đồ thị GM

và GD nên thời gian thực thuật toán hàm giai thừa

3.2.2 Thuật toán SI - COBRA cho toán so khớp đồ thị gán nhãn

Ý tưởng thuật toán cho hai đồ thị gán nhãn G G’ (tương ứng với hai đồ thị mơ hình GM đồ thị liệu GD mục phát biểu tốn) ta phải tìm

một đồ thị S G cho S G Bài tốn gọi tốn tìm đẳng cấu đồ thị Năm 2005 Olmos, Gonzalez & Osorio phát triển thuật toán SI-COBRA (subgraph isomorphism) Họ phát triển thuật tốn để phát xác đồ thị G’nằm đồ thị G (được gọi đẳng cấu đồ thị con) chuỗi tuyến tính mã sử dụng để biểu diễn đồ thị [45]

Một mã, ký hiệu ci, biểu diễn thơng tin cung có nhãn e đỉnh

liền kề Mỗi mã ci xếp theo chuỗi tuyến tính gọi LVEV = { ci / i =

(93)

Hình 3.5 Mơ thuật tốn tìm đồ thị đẳng cấu dựa vào danh sách mã Bước thuật toán phải xây dựng đồ thị mô hình G’, mơ hình biểu diễn chuỗi tuyến tính mã gọi DFC’ Mơ hình DFC’ chuỗi mã xếp <dfc’1, , dfcn’> dfcx’ = (i,j,ck, t) i, j là số hai đỉnh liền kề cung ex _E

, ck = LVEV(ex) t dấu hiệu đặc biệt phân loại cung ex cung tìm kiếm (F) hay cung quay lại (B) Để xếp chuỗi DFC

ta sử dụng ba tiêu chí sau: - Bậc đỉnh;

- Nhãn dùng để biểu diễn đỉnh nhiều nhất;

- Tổ hợp nhãn (dựa vào trình tự từ điển LVEV)

Với chiến lược DFS việc sử dụng hạn chế ta xây dựng mã DFC’ theo bước sau:

- Bước 1: Chọn đỉnh vi Gchưa duyệt (vi phải thỏa mãn tiêu chí

trên);

- Bước 2: Xét đỉnh vj kề với đỉnh vi cho vj thỏa mãn tiêu chí trên;

- Bước 3: Thêm (i,j,LV EV ({vi, vj }), F) vào DFC’;

- Bước 4: Mở rộng tất cung quay lại: {vj, vx} trong vxđã

được duyệt, thêm (j,x,LV EV({vj, vx}), B) vào DFC

’ theo thứ tự L V EV;

(94)

- Bước 6: Nếu cịn có đỉnh chưa thăm ta quay lại bước Các trường hợp cịn lại kết thúc việc xây dựng

Sau xây dựng chuỗi tuyến tính DFC’ G’ ta tiến hành xây dựng chuỗi tuyến tính DFC G Kích thước chuỗi DFC phải giống với chuỗi DFCcác mã mục tương ứng phải đồng Nếu chuỗi DFC xây dựng ta tìm đồ thị S G đồ thị S biểu diễn chuỗi DFC G’ S Đây ý tưởng thuật tốn đẳng cấu đồ thị

Trước xây dựng chuỗi DFC ta phải tiến hành cắt tỉa đồ thị G Mục đích việc cắt tỉa giảm số lượng phần tử không hợp lệ tham gia vào trình xây dựng

- Trường hợp 1: Nếu v V: LV’ e E: LE ta xóa đỉnh v cung E khỏi đồ thị G.(Nếu đỉnh v thuộc đồ thị G mà nhãn đỉnh khơng có tập nhãn đồ thị G’ thấy đỉnh v khơng phải ảnh đỉnh G’)

- Trường hợp 2: e G: LV EV(e) LV EV ta xóa cung e khỏi đồ thị G

- Trường hợp 3: Tính degmin( 1), degmin( 2), ,degmin( n) bậc nhỏ nhãn x LV Khi v V khơng phải đỉnh chung deg( (v))<degmin( ’)

(v) = ’

Đây gọi giai đoạn tiền xử lý Sau giai đoạn đồ thị G bị phân hoạch thành s đồ thị liên thông Mỗi đồ thị lại đem so sánh với đồ thị G’

Cho Gset tập hợp tất đồ thị phân hoạch G Bài tốn tìm ánh xạ giữa đỉnh cung đồ thị G G’ chuyển thành tốn nhỏ tìm ánh xạ đỉnh cung đồ thị Gi G’ Gi Gset Chúng ta sử dụng

thuật tốn quay lui kỹ thuật tương đối ổn định thực tốt hầu hết trường hợp, kết sử dụng kết trước nên khơng địi hỏi nhiều tài ngun chặt chẽ thuật tốn khác

Ta tìm đỉnh v Gi đó: = (vi), vi G’, deg(v) deg(vi) dfc1 ’

(95)

Hình 3.6 Ví dụ chiến lược tìm kiếm theo chiều rộng, chiều sâu sử dụng mã LVEV

Trong hình vẽ 3.6, đồ thị G’ so sánh với đồ thị Gi (là đồ thị sau

phân hoạch G) Trong chuỗi DFC xây dựng ta thấy có nhánh kết có cùng mức bốn với chuỗi DFC’ Đây hai đồ thị Gi đẳng cấu với đồ

thị G’ Bằng trực quan ta thấy hai đồ thị trùng khớp với đồ thị G’

Việc sử dụng thuật toán SI - COBRA tỏ hiệu toán so khớp đồ thị Thuật tốn tìm xác đồ thị đẳng cấu Tuy nhiên thuật toán sử dụng việc tìm kiếm duyệt theo chiều sâu rộng mà chất vét cạn nên với tốn có khơng gian lớn ta khơng thể dùng chiến lược thời gian thực thuật tốn trường hợp xấu O(mn) n

số đỉnh G’ m số đỉnh G Ngoài thuật toán áp dụng cho loại đồ thị có nhãn (có thể vơ hướng có hướng)

3.2.3 Thuật toán Simple Tree Matching

(96)

Một ánh xạ (mapping) M A có kích thước n1 B có kích thước n2

là tập cặp (i, j) có thứ tự, cho: (i , j ), (i , j ) M1 2  thì:

(1) i1=i2 j1=j2

(2) A[i1] bên trái A[j2] A[j1] bên trái A[j2] (3) A[i1] cha A[j2] A[j1] cha A[j2]

Các điều kiện xác định đỉnh không xuất lần ánh xạ, bảo toàn thứ tự nút quan hệ phân tầng nút

Hình 3.7 Ví dụ phép ánh xạ

Một số giải thuật đưa để giải tốn tìm tập tối thiểu thao tác để chuyển đổi từ sang khác Tuy nhiên tất công thức có độ phức tạp cấp đa thức bậc hai

Với định nghĩa chung trên, ánh xạ thực tầng khác (cross levels) hai Ví dụ, nút a A nút a B (hình 3.7) Những thay cho phép, ví dụ, nút b A nút h B Chúng ta định nghĩa ánh xạ giới hạn gọi Simple Tree Matching (STM) [24], đó, khơng có thay thay khác tầng

Cho hai A, B i ∈A j ∈ 𝐵 nút A, B Một phép so trùng (matching) hai ánh xạ M, bao gồm tất cặp (i, j) ∈ M, cho i j nút gốc, (parent(i), parent(j)) ∈ M

(97)

Cho A = RA:<A1,…, Ak> B = RB:<B1,…, Bn>, RA RB

gốc A B, Ai Bj tầng thứ i j A B

Gọi W(A, B) số lượng cặp phép so trùng tối đa hai A B Ta có cơng thức sau:

Ký hiệu:

 m(<>, <>) = mô tả danh sách rỗng

 m(s, <>)=m(<>, s) mô tả s không khớp với danh sách rỗng

(98)

Nhận xét:

 STM giải thuật top-down, tính tốn giống cách tìm giá trị so trùng tối đa tính tốn động (dynamic programming)  Giải thuật có độ phức tạp O(n1*n2), với n1 n2 kích cỡ

các A B

Ban đầu, nút gốc A B so sánh Nếu nút gốc chứa giá trị khác hai khơng tồn ánh xạ Cịn khơng, giải thuật đệ quy tìm số lượng tối đa ánh xạ tầng A B, giá trị ma trận W

Dựa vào ma trận W, quy tắc tính tốn động áp dụng để tìm số lượng cặp ánh xạ tối đa hai A B Ví dụ:

(99)

Để tìm ánh xạ tối đa hai A B, nút gốc chúng (N1 N15) so sánh trước Vì N1 N15 chứa giá trị giống nhau, nên ánh xạ tối đa trả m1, 15[4, 2] + Ma trận m1, 15 tính tốn dựa ma trận W1, 15 Mỗi giá

trị thuộc W1, 15 giá trị ánh xạ tối đa tầng thứ i thứ j A

B Ví dụ trên, W1, 15 [4, 2] tính toán đệ quy cách xây dựng ma trận

(E)-(H) Các ô hàng cột ma trận m khởi tạo với giá trị Chú ý số bên (1, 15) ma trận W m nút mà tính tốn

Giá trị normalized simple tree matching NSTM(A, B) tính cách chia giá trị STM cho trung bình cộng số lượng nút hai

Trong đó, mẫu số cịn sử dụng max(nodes(A), nodes(B)), nodes(X) số lượng nút X Sau tính tốn, lần ngược giá trị ma trận m để nút từ hai

3.2.4 Thuật toán Partial Tree Alignment

Để tìm mơ hình (pattern) lặp từ chuỗi HTML dựa vào chi phí chuyển đổi chuỗi (string edit distance) kết hợp (tree matching), cần xếp (alignment) chuỗi Một trang web thường chứa hai data record, có nhiều hai chuỗi cần phải liên kết Việc tạo liên kết tổng thể tất chuỗi quan trọng Đó Multiple Alignment

Thuật toán Partial Tree Alignment [67] phương pháp xếp theo kinh nghiệm Trước đến với giải thuật đầy đủ, ta nhìn vào liên kết phần Sau Ts Ti kết, số nút Ti liên kết với

các nút tương ứng Ts chúng phù hợp với Đối với nút Ti

không phù hợp, ta chèn chúng vào Ts với liệu tùy chọn

Có hai tình chèn nút vi từ Ti vào Ts, tùy thuộc vào vị

trí Ts xác định để chèn vi Thay xem xét nút

nhất vi, xem xét tập nút liền kề vj vm chưa liên kết từ Ti

(100)

khớp Ts ta muốn chèn vj vm vào Ts nút cha Ta chèn vj

vm vào Ts vị trí để chèn vj vm xác định Ts Nếu không, chúng không chèn vào Ts (unaligned)

Các vị trí để chèn vj vm định bởi:

(1) Nếu vj vm có nút kết cận Ti, bên phải bên trái,thì chúng trùng với nút liên tiếp Ts (Hình 4.9A)

(2) Nếu vj vm có nút trái x thuộc Ti x lại trùng với nút phải Ts, vj vm thêm vào sau nút x Ts (Hình 4.9B) (3) Nếu vj vm có nút phả x thuộc Ti x lại trùng với nút trái

trong Ts, vj vm thêm vào trước nút x Ts (Hình 4.9C)

(4) Các trường hợp cịn lại, ta khơng thể xác định vị trí để thêm vào Ts

Hình 3.9 Quá trình mở rộng

(101)

dịng thực việc kết nối Dịng tìm tất cặp trùng khớp cách lần theo ma trận kết từ dòng Hàm tương tự việc xếp chuỗi sử dụng khoảng cách chỉnh sửa Dòng dòng cố găng thêm nút không trùng vào Ts Đây giải thuật partial tree alignment nêu Dòng 13, 14 thêm T2 vào R, danh sách cần kết hợp lại số mục liệu chưa xếp chưa thêm vào Ts Dòng 10, 11 đưa R vào S khởi tạo lại R Dòng 18 xuất data items từ theo xếp

Thuật tốn Partial Tree Alignment mơ tả sau

3.2.5 Thuật toán NET

(102)

(1) Một nhóm mục chứa thơng tin đối tượng giống đặt vùng liên tiếp page định dạng thẻ HTML tương tự

(2) Các mục liệu vùng page tạo từ node Một data record kết thúc khác Nó thường phần đầu kết thúc cuối cuối kế sau

Ý tưởng giải thuật duyệt DOM theo thứ tự từ lên (post-order) Các data record tìm dựa lặp lại cấu trúc Những data record lồng xử lý mức thấp trước xử lý mức cha cao Thuật tốn NET [66] mơ tả sau:

Hàm TraverseAndMatch duyệt DOM theo thứ tự từ lên (post-order) Trong duyệt, ghi liệu kiểu biến đổi Hàm PutDataInTables xuất liệu rút trích thành dạng bảng (một page có nhiều vùng liệu, liệu vùng xuất thành bảng riêng)

(103)

Hình bên ví dụ Trong hình Ni biểu diễn node trong, ti biểu diễn node có chứa data item Cho trước đối số đầu vào Node, dòng hàm Match lấy tất Node để so trùng Trong hình ví dụ, p t1, N1, N2, N3, N4, 2, N5, N6, N7, N8, N9 Dòng 2-4 so trùng cặp Việc so trùng thực hàm TreeMatch Hàm sử dụng giải thuật Simple Tree Matching đề cập phần trước Hàm AlignAndLink dòng xếp nối data item trùng khớp với Nếu ChildR trùng khớp với ChildFirst, ChildR loại khỏi Children để tránh bị so trùng lần Trong ví dụ chúng ta, sau dòng 4-11, đường nối data item biểu diễn nét đứt (giả sử chúng thỏa điều kiện trùng khớp)

(104)

Tại dòng 9-10, có trùng khớp với ChildFirst, hàm GenNodePattern gọi để tạo node pattern từ khớp Hàm sử dụng giải thuật Partial Tree Alignment tập trùng khớp để tạo pattern Tại dòng 12-13, pattern cho data record tạo Cuối hàm PutDataInTables xuất liệu bảng Việc đơn giản mẫu ghi tạo

3.2.6 Thuật toán di truyền

Năm 1997, Andrew D.J Cross cộng trình bày phân tích tập trung vào tốn đồ thị có gán nhãn giải tốn giải thuật dị truyền [51] Tác giả xây dựng nghiên cứu so khớp đồ thị cho thấy độ đo bền vững Bayes tối ưu cách hiệu so với hàm độ thích nghi trước đề xuất Wilson and Hancock (1996)

Năm 1998, Yong Wang Naohiro Ishii cho thấy ý nghĩa độ đo tương tự so khớp đồ thị theo cách song song hóa So khớp đồ thị độ đo tương tự đồ thị có nhiều ứng dụng việc nhận dạng mẫu, lập luận xấp xỉ dựa độ đo tương tự Tác giả trình bày phương pháp so khớp đo độ tương tự hai đồ thị gán nhãn trực tiếp Bài báo xác định mức độ tương tự đo tương ứng theo tương tự khớp theo tương tự để so sánh đồ thị với Với tiếp cận tác giả sử dụng giải thuật di truyền GA để phát sơ đồ tính tương tự tính tốn độ tương tự đồ thị Để tăng tốc thuật toán, báo đề xuất kỹ thuật song song hóa tất bước giải thuật di truyền Các ý tưởng lý thuyết chương trình hóa với ngôn ngữ C, cho giải thuật di truyền di truyền song song [53]

Năm 2000, Andrew D.J Cross cộng tiếp tục cải tiến thuật toán di truyền [51] cách kết hợp với ý tưởng thuật toán leo đồi Đề xuất tác giả trình bày cách tốn học ý nghĩa ý tưởng thuật toán leo đồi cho phép nâng mức độ hội tụ kích thước nút đồ thị so khớp lớn [52] Trong đó, cá thể quần thể đánh số α, hàm 𝑓∝(𝑖) định nghĩa

(105)

phần cấu trúc khác đồ thị Phép toán đột biết thiết lập ngẫu nhiên nhãn khớp 𝑓∝(𝑖) với tập đỉnh lựa chọn V

2 Để cao

hiệu việc lựa chọn khôi phục đồ thị thành phần đổi phép toán lai ghép đột biến, nhóm tác giả kết hợp thuật tốn leo đồi để tái cấu hình đồ thị nhằm cực đại giá trị so khớp 𝑃𝐺∝ sau vòng lặp Điều

cho phép thực song song vòng lặp với qui tắc lựa chọn tập định là: 𝑓∝(𝑖) = arg 𝑚𝑎𝑥

𝑉2𝑃𝐺∝

Luật dùng để định vị phương án gần tối ưu cục để đưa phương án tối ưu tồn cục Do đó, việc phân bố lại quần thể giải pháp đánh giá lần dựa giá trị hàm thích nghi Các phương án tối ưu cục mức tối ưu tồn cục có bị loại khỏi quần thể thơng qua phép chọn lọc tự nhiên Q trình không làm tăng tốc độ hội tụ, mà làm giảm yêu cầu độ lớn quần thể biểu đồ thị có cấu trúc lớn Xác suất lựa chọn cá thể cho quần thể xác định 𝑃𝑠∝ = 𝑃𝐺

(∝)

∑∝′∈𝒫𝑃𝐺(∝′) Trong đó, 𝑃𝐺 (∝)

xác suất cấu hình tối ưu tồn cục cá thể quần thể

Năm 2002, Khoo Suganthan đề xuất sở lý luận cho phép toán lai ghép đột biến tương thích cho tốn so khớp đồ thị Thuật toán đề xuất cho phép sử dụng hai kiểu biểu diễn quần thể khác để thực thi đồng thời Đây sở để thực phép tốn so khớp máy tính song song dựa việc so sánh quần thể cách độc lập

(106)

3.3 Giải thuật di truyền cho toán so khớp đồ thị

3.3.1 Giải thuật di truyền

Thuật toán di truyền xây dựng dựa quy luật tiến hóa sinh học hay phát triển tự nhiên quần thể sống Goldberg đề xuất David Michalevicz [45] phát triển để giải toán tối ưu hóa tổ hợp

Các cá thể phải trải qua trình phát triển sinh sản để tạo cá thể cho hệ Trong trình tăng trưởng phát triển cá thể xấu (theo tiêu chuẩn ví dụ độ thích nghi với mơi trường cá thể có độ thích nghi với mơi trường khác nhau) bị đào thải, đồng thời, cá thể tốt giữ lại (quá trình gọi trình chọn lọc) lai ghép (quá trình lai ghép) để tạo cá thể cho hệ sau

Quá trình lai ghép thực ngẫu nhiên cá thể quần thể Những cá thể sinh mang tính trạng cá thể cha mẹ (di truyền) Các cá thể q trình lai ghép xảy tượng đột biến tạo cá thể khác với cá thể cha mẹ Các cá thể tốt xấu cá thể cha mẹ chúng Tuy nhiên xác suất xảy tượng đột biến nhỏ nhiều so với tượng di truyền Như lai ghép chọn lọc hai trình xuyên suốt q trình tiến hóa tự nhiên

Thuật tốn di truyền thuật tốn tiến hóa, hình thành dựa quan niệm cho rằng, trình tiến hóa tự nhiên q trình hồn hảo hợp lý nhất, tự mang tính tối ưu Điều chưa chứng minh phù hợp với thực tế khách quan Tính tối ưu hệ sau tốt hơn, hoàn thiện hệ trước Tuy nhiên, tất trường hợp vậy, có cá thể hệ trước tốt hệ sau vậy, sử dụng thuật toán di truyền, phải lưu lại cá thể tốt hệ, trải qua số hệ định (đây tham số thiết kế) đem so sánh cá thể tốt hệ với chọn cá thể tốt chúng Đó lời giải tối ưu toán hội tụ tới lời giải tối ưu toán

(107)

thể để đơn giản ta coi cá thể mang nhiễm sắc thể mã gen mang đặc tính cá thể, nhiễm sắc thể lời giải tốn

Như nói mục trên, với hai đồ thị GM = (VM, EM) GD = (VD,ED) với |VM| =

m, |VD| = n (m < n) ta phải tìm ánh xạ f: VM  VD phù hợp biến cặp đỉnh đồ thị GM thành cặp đỉnh đồ thị GD Nếu tổng số cặp đỉnh thỏa mãn

ánh xạ f lớn ánh xạ f phù hợp

Ta nói f song ánh với cặp đỉnh (u EM, cho ta cặp

(f(u),f(v)) ED Như cung (f(u),f(v)) ảnh cung (u,v) đồ thị GD

Nếu qua ánh xạ f cặp đỉnh (u,v) EM với u, v VM đều cho ảnh đồ thị GD ta thu đồ thị ảnh đồ thị GM Nếu ảnh trùng khớp

với GD thì ta khẳng định hai đồ thị nhau, trường hợp hai đồ thị trùng

khớp phần ta nói hai đồ thị khơng hồn tồn giống Khi khơng tồn ảnh đồ thị GM GD, ta nói hai đồ thị GD GM khác

Ta coi cá thể qua ánh xạ f đồ thị GM, lời giải toán đại

diện cho đồ thị đồ thị GD với số đỉnh số đỉnh đồ thị GM Như

tổng số đồ thị đồ thị GD tổ hợp chập m phần tử n

- Biểu diễn của cá thể: Mỗi cá thể véctơ gồm n thành phần I = (i1, i2,…,ij,… im) với ý nghĩa ánh xạ đỉnh biến j VM thành đỉnh ij VD hay đỉnh ij VD ảnh qua ánh xạ đỉnh j VM Với cách biểu diễn cá thể I có m nhiễm sắc thể ứng với m đỉnh đồ thị GD

- Khởi tạo quần thể ban đầu: Ban đầu ta khởi tạo quần thể gồm P_SIZE cá thể (P_SIZE số xác định trước) kích thước quần thể Mỗi cá thể sinh ngẫu nhiên cách sinh ngẫu nhiên m số nguyên đoạn [1 n] Tất nhiên, m số nguyên ngẫu nhiên sinh phải khác Quần thể ban đầu sinh P_SIZE cá thể

(108)

Dựa vào ý tưởng đó, ta dùng hàm check(u,v) để kiểm tra với (u,v) EM, có

cho ta ảnh (f(u), f(v)) ED chúng hay không? Hay kiểm tra cặp (u,v) có

thỏa mãn ánh xạ f hay khơng? Nếu thỏa mãn check = 1, không thỏa mãn ta gán giá trị

Check(u, v) = (5)

Đối với dạng đồ thị khác điều kiện kiểm tra cặp (u,v) thỏa mãn ánh xạ f khác

- Trường hợp đồ thị vô hướng: Điều kiện thỏa mãn ánh xạ fnếu cặp (u,v) cạnh đồ thị GM (f(u), f(v)) cạnh đồ thị GD f(u), f(v)

là ảnh u, v qua ánh xạ f

- Trường hợp đồ thị có hướng: Điều kiện thỏa mãn ánh xạ fnếu cặp (u,v) cung đồ thị GM (f(u), f(v)) là cung đồ thị GD

- Trường hợp đồ thị có trọng số vơ hướng (có hướng): Điều kiện thỏa mãn ánh xạ f cặp (u,v) cạnh (cung) đồ thị GM (f(u), f(v))

là cạnh cung đồ thị GD thì trọng số cạnh(cung) chúng phải

bằng

- Trường hợp đồ thị gán nhãn vơ hướng (có hướng): Trường hợp tương tự trường hợp đồ thị có trọng số vơ hướng (có hướng) nhiên điều kiện thỏa mãn ánh xạ f trường hợp nhãn đỉnh hai đồ thị phải giống tức nhãn đỉnh u đồ thị mô hình GM trùng

với nhãn đỉnh f(u) đồ thị liệuGD, nhãn đỉnh v đồ thị mơ

hìnhGM trùng với nhãn đỉnh f(v) đồ thị liệuGD

Hàm cost(I) để tính tổng tất cặp (u,v) thỏa mãn ánh xạ f

cost(I) = (6);

Công thức tính độ thích nghi là:

(109)

Nếu cost(I) lớn fit(I) gần cá thể I gần với nghiệm tối ưu

- Phép toán lai ghép: đồ thị mẫu bé, độ dài (số thành phần, hay gen) cá thể ngắn việc lai ghép đơn điểm đủ tốt Tuy nhiên, kích thước đồ thị mẫu lớn lên, độ dài cá thể dài với điểm lai ghép cá thể thường mang nhiều gen hai cá thể cha mẹ, điều dẫn đến quần thể không đủ đa dạng Mặt khác, tiến hành lai ghép đa điểm cho hai cá thể tốt (độ thích nghi cao) xác suất để lấy đoạn nhiễm sắc thể tốt từ hai cá thể lai ghép cao hơn Vì vậy, lai ghép đa điểm nên sử dụng Trong trường hợp này, nghiên cứu sinh sử dụng lai ghép điểm Để đảm bảo tính ngẫu nhiên q trình lai ghép thuật tốn phải chọn hai cá thể (ngẫu nhiên) quần thể để thực việc lai ghép xác suất lai ghép cặp cá thể (xác suất sinh ngẫu nhiên) phải nhỏ xác suất lai ghép pc (pc tham số thiết kế) Trong trình lai ghép, hai cá thể chọn để thực lai ghép, sinh số ngẫu nhiên thuộc 𝑟 ∈ [0,1], 𝑟 ≥ 𝑝𝑐 thực phép hai cá thể này,

ngược lại không thực Xác suất lai ghép pc (chẳng hạn pc =

0.6 – tức 60% cá thể lai ghép với nhau) có nghĩa lựa chọn hai cá thể cha mẹ để thực lai ghép ta sinh số ngẫu nhiên r khoảng [0,1], r < 0.6 ta thực lai ghép lai ghép, ngược lại ta không thực việc lai ghép hai cá thể

(110)

thể (là số sinh ngẫu nhiên 𝑟 ∈ [0,1]) phải nhỏ pm (pm

tham số thiết kế)

Vì cá thể sinh chủ yếu trình lai ghép, việc lựa chọn xác suất lai ghép đột biến hay phương pháp lai ghép hay đột biến (đơn điểm hay đa điểm) cách phù hợp với toán vấn đề khó cần phải thực nghiệm cách xâu rộng Tuy nhiên, theo khuyến nghị tác giả [51,53,68,69.70] với thuật tốn di truyền chuẩn xác suất lai ghép đột biến nên dùng 0.6 0.02 tương ứng Vì vậy, chúng tơi sử dụng hai giá trị thực nghiệm

Ban đầu thuật toán sinh ngẫu nhiên số nguyên k khoảng từ [1 n] (k được gọi điểm đột biến) Sinh ngẫu nhiên đỉnh j thay cho đỉnh vị trí k cá thể I với điều kiện đỉnh j không trùng với đỉnh thuộc cá thể I

- Chọn lọc các cá thể cho thế hệ tiếp: hệ ta chon P_SIZE cá thể có độ thích nghi (Fitness Function) cao cá thế, cá thể sinh trình lai ghép đột biến lựa chọn cho hệ

- Điều kiện dừng: thuật toán dừng sau G hệ (G tham số thiết kế) giá trị trung bình độ thích nghi cá thể khơng thay đổi sau khi tìm cá thể I có độ thích nghi cao Cost(I) = |EM| Đây

chính cá thể cho tốt quần thể Ta chọn cá thể tốt cá thể để tiến hành so khớp với đồ thị mẫu Nếu cá thể đồ thị đồ thị mẫu ta kết luận hai đồ thị GM

và GD giống

Mã giả thuật toán di truyền áp dụng cho toán so khớp đồ thị viết sau:

Thuật tốn di truyền cải biên, Thuật toán 3.1

Bắt đầu t = 0;

P(0) = initial_Population();// khởi tạo quần thể ban đầu

(111)

While(! điều kiện dừng){

rd1 = rand()%10/10.000;// Sinh ngẫu nhiên xác suất lai ghép if (rd1<0.6){

child_c = crossover(P(t));// Lai ghép cá thể quần thể P(t) đưa vào child_c child_c.fit = getFit(child_c);// Tính độ thích nghi cho cá thể lai ghép }

rd2 = rand()%10/10.000;// Sinh ngẫu nhiên xác suất đột biến if (rd2<0.02){

child_m = mutation(P(t));// Đột biến cá thể quần thể P(t) đưa vào child_m child_m.fit = getFit(child_m);// Tính độ thích nghi cho cá thể đột biến }

// Chọn P_SIZE cá thể có độ thích nghi lớn từ quần thể P(t) hệ t, cá thể // lai ghép child_c, cá thể đột biến child_m

P(t+1) = Chon_loc(P(t), child_c, child_m); t++;

}

Kết thúc

Độ phức tạp thuật toán: Gọi T(n) độ phức tạp thuật toán di truyền áp dụng cho toán so khớp đồ thị Thuật tốn sử dụng vịng lặp thực G hệ của quần thể Quần thể có P_SIZE cá thể cá thể tính độ thích nghi với thời gian thực O(m2) Tại thế hệ cá thể quần thể thực

hiện trình lai ghép Quá trình lai ghép thực việc đổi chỗ đỉnh hai cá thể cho trường hợp xấu (hai điểm lai nằm vị trí thứ hai và vị trí thứ m-1) phép tốn lai ghép tốn O(m-2) Nếu q trình đột biến xảy thực phép toán đổi chỗ điểm đột biến (đột biến đơn điểm) thời gian thực O(1) Vậy thời gian thực thuật toán T(n) = O(P.G.m2

)

3.3.2 Kết mô với giải thuật di truyền

(112)

GHZ, RAM 2GB Các kết số kết trung bình 100 lần chạy độc lập thuật tốn

3.3.2.1 Đồ thị vô hướng

Trong trường hợp tham số pc pm thiết lập theo khuyến cáo

chung thuật toán di truyền pc = 0.02 pm = 0.6 [45]

Trường hợp 1: Đồ thị vô hướng với số đỉnh nhỏ 10 Giả sử hai đồ thị cho hình

Hình 3.11 Thực nghiệm với đồ thị vơ hướng có số đỉnh nhỏ 10

Bảng 3.1 trình bày số kết cho độ thích nghi số hệ Cột bên trái cho biết số hệ xem xét cột bên phải cho biết độ thích nghi tốt cá thể hệ Sau hệ cá thể tốt thu có độ thích nghi fit = 0.75 cá thể biểu diễn cho đồ thị đồ thị GD

Đồ thị GD

Hình 3.12 Đồ thị tương ứng cá thể

Bảng 3.1 Kết độ thích nghi số hệ với số đỉnh nhỏ 10

Số hệ đạt cá thể tốt Số lượng cá thể Cá thể tốt Độ thích nghi

G = 64 0.75

(113)

G = 24 0.75

G = 16 0.75

Trường hợp 2: Đồ thị vô hướng với số đỉnh lớn 10 nhỏ 20 Chúng tơi sử dụng hai đồ thị hình vẽ sau:

Hình 3.13 Thực nghiệm với đồ thị vơ hướng có số đỉnh lớn 10 nhỏ 20 Kết thực nghiệm thuật toán di truyền Bảng 3.2:

Bảng 3.2 Kết độ thích nghi số hệ với số đỉnh lớn 10 nhỏ hơn 20

Số hệ đạt cá thể tốt Số lượng cá thể Cá thể tốt Độ thích nghi

G = 128 0.75

G = 64 10 11 0.75

G = 12 32 11 10 0.75

G = 16 6 0.75

Trường hợp 3: Đồ thị vô hướng với số đỉnh lớn 20, chúng tơi sử dụng hai đồ thị hình vẽ sau:

Đồ thị GM Đồ thị GD

(114)

Bảng 3.3 Kết độ thích nghi số hệ với số đỉnh lớn 20

Số lượng quần thể Thế hệ thứ Cá thể tốt Độ thích nghi

24 16 0.50

32 24 21 10 0.50

64 32 21 0.75

128 64 10 0.75

265 128 0.833

3.3.2.2 Đồ thị vơ hướng có trọng sớ

Trong trường hợp tham số pc pm thiết lập theo khuyến cáo

chung thuật toán di truyền pc = 0.02 pm = 0.6 [45]

Trường hợp 1: Đồ thị vô hướng có trọng số với số đỉnh nhỏ 10, chúng tơi sử dụng hai đồ thị hình vẽ sau

Hình 3.15 Thực nghiệm với đồ thị vơ hướng có trọng số nhỏ 10 đỉnh

(115)

Bảng 3.4 Kết độ thích nghi số hệ với số đỉnh nhỏ 10

Thế hệ thứ Độ thích nghi Số cá thể có độ thích nghi cao

2 0.667 Từ 0- cá thể

3 0.75 Từ 0- cá thể

4 0.75 Từ 0-8 cá thể

Trường hợp 2: Đồ thị vô hướng có trọng số với số đỉnh lớn 10 nhỏ 20, sử dụng hai đồ thị hình vẽ sau

Hình 3.16 Thực nghiệm với đồ thị vơ hướng có trọng số từ 10 đến 20 đỉnh Kết thực nghiệm thuật toán di truyền bảng 3.5

Bảng 3.5 Kết độ thích nghi số hệ với số đỉnh lớn 10 nhỏ hơn 20

Số lượng quần thể Thế hệ thứ Cá thể tốt Độ thích nghi

(116)

64 10 10 0.5

128 20 0.667

128 24 0.75

Trường hợp 3: Đồ thị vơ hướng có trọng số với số đỉnh lớn 20, sử dụng hai đồ thị hình vẽ sau

Đồ thị GM Đồ thị GD

Hình 3.17 Thực nghiệm với đồ thị vơ hướng có trọng số lớn 20 đỉnh Kết thực nghiệm thuật toán di truyền bảng 3.6:

Bảng 3.6 Kết độ thích nghi số hệ với số đỉnh lớn 20

Số lượng quần thể Thế hệ thứ Cá thể tốt Độ thích nghi

24 16 0.50

32 24 21 10 0.50

64 32 21 0.75

128 64 10 0.75

265 128 0.833

3.3.2.3 Đồ thị vô hướng có nhãn

(117)

Đồ thị GM Đồ thị GD

Hình 3.18 Thực nghiệm với đồ thị vơ hướng có gán nhãn với số đỉnh nhỏ 10 Các kết thực nghiệm:

Bảng 3.7 trình bày số kết cho độ thích nghi fit số hệ Cột cho biết số hệ xem xét cột thứ hai thứ ba cho biết độ thích nghi tốt cá thể hệ cá thể có độ thích nghi cao Sau 14 hệ, cá thể tốt nhất thu có độ thích nghi fit = 0.75 cá thể biểu diễn cho đồ thị (nhánh) đồ thị GD

Đồ thị GD

Bảng 3.7 Kết độ thích nghi số hệ với số đỉnh nhỏ 10

Số lượng quần thể Thế hệ thứ Cá thể tốt Độ thích nghi

64 0.667

64 0.75

64 10 0.75

(118)

Trường hợp 2: Đồ thị vơ hướng có nhãn với số đỉnh lớn 10 nhỏ 20, sử dụng hai đồ thị hình vẽ sau

Hình 3.19 Thực nghiệm với đồ thị vơ hướng có gán nhãn với số đỉnh từ 10 đến 20 Kết thực nghiệm thuật toán di truyền bảng 3.8:

Bảng 3.8 Kết độ thích nghi số hệ với số đỉnh lớn 10 nhỏ hơn 20

Số lượng quần thể Thế hệ thứ Cá thể tốt Độ thích nghi

32 24 0.50

32 64 0.50

64 32 10 0.50

128 64 0.75

265 64 0.833

Trường hợp 3: Đồ thị vơ hướng có nhãn với số đỉnh lớn 20, sử dụng hai đồ thị hình vẽ sau

Đồ thị GM Đồ thị G

D

(119)

Kết thực nghiệm thuật toán di truyền bảng 4.9:

Bảng 3.9 Kết độ thích nghi số hệ với số đỉnh lớn 20 Số lượng quần thể Thế hệ thứ Cá thể tốt Độ thích nghi

24 16 0.50

32 24 21 10 0.50

64 32 21 0.75

128 64 10 0.75

265 128 0.833

3.4 Thuật toán đề xuất ứng dụng so khớp đồ thị vào so khớp DOM-tree

3.4.1 Khái niệm DOM

Đối với lập trình Web, kiến thức DOM khả thao tác DOM thành thạo hai yếu tố quan trọng Mô hình đối tượng tài liệu DOM chuẩn định nghĩa W3C [22] dùng để truy xuất thao tác tài liệu có cấu trúc dạng HTML hay XML ngơn ngữ lập trình thơng dịch Javascript, PHP, Python,

Ngoài ra, DOM giúp thao tác liệu theo mơ hình hướng đối tượng Các phần tử bên tài liệu có cấu trúc định nghĩa thành đối tượng, phương thức thuộc tính để truy xuất dễ dàng mà đảm bảo tính cấu trúc: phần tử đối tượng, sở hữu thuộc tính phương thức để làm việc với thuộc tính thêm, xóa, sửa, cập nhật Bên cạnh đó, thêm bớt phần tử tùy thích, giúp cho nội dung cấu trúc trang Web cập nhật động

3.4.1.1 Cấu trúc DOM

(120)

- Nút gốc tài liệu HTML, thường biểu diễn thẻ <html>; - Nút phần tử: biểu diễn cho phần tử HTML;

- Nút văn bản: đoạn kí tự tài liệu HTML, bên thẻ HTML nút văn Đó tên trang Web thẻ <title>, tên đề mục thẻ <h1>, hay đoạn văn thẻ <p>,… - Ngồi cịn có nút thuộc tính (Attribute node) nút thích

(Comment node)

3.4.1.2 Quan hệ giữa các nút

Cấu trúc DOM trang HTML tổ chức dạng Hình 2.4

Hình 3.20 Ví dụ DOM trang HTML Trong đó:

- Nút gốc (document) nút đầu tiên;

- Tất nút khơng phải nút gốc có nút cha (parent); - Một nút có nhiều con, khơng có nào; - Những nút có nút cha gọi nút anh em (siblings);

- Trong nút anh em, nút gọi (firstChild) nút cuối út (lastChild)

(121)

Xây dựng DOM từ trang Web đầu vào bước cần thiết trang nhiều giải thuật trích xuất liệu [42] Có hai phương pháp để xây dựng DOM sử dụng cá thẻ riêng biệt thẻ hộp ảo

Sử dụng thẻ riêng biệt: Hầu hết thẻ HTML làm việc cặp Mỗi cặp chứa thẻ mở <> thẻ đóng </> Bên cặp thẻ có cặp thẻ khác, kết cấu trúc trở nên chồng chéo Xây dựng DOM từ trang Web cách sử dụng mã HTML vấn đề cần thiết

Trong DOM, cặp thẻ node, cặp thẻ ẩn bên node node

Có hai nhiệm vụ cần thi hành là:

- Làm sạch mã HTML: Một vài thẻ khơng cần thẻ đóng (như <li>, <hr>,<p>,…) chúng có thẻ đóng Bởi thẻ đóng nên chèn vào để tất thẻ cân Các thẻ định dạng không tốt cần thiết sửa chữa Một thẻ sai thường thẻ đóng, thẻ cắt ngang khối ẩn bên Ví dụ: <tr>… <td>… </tr>… </td>, khó để sửa lỗi trường hợp tồn chồng chéo đa cấp Có vài phần mềm mã nguồn mở để làm mã HTML, số phần mềm thông dụng như: JTidy, NekoHTML, HTMLCleaner - Xây dựng cây: Chúng ta theo khối thẻ HTML

để xây dựng DOM

Sử dụng thẻ hộp ảo: Thay phân tích mã HTML để sửa lỗi, sử dụng biểu diễn thơng tin ảo (ví dụ như: địa hình mà thẻ biểu diễn) để suy luận mối quan hệ có cấu trúc thẻ xây dựng DOM Phương thức xây dựng phân tích mã HTML thành DOM, miễn trình duyệt hiển thị đoạn mã cách xác

(122)

- Tìm đường biên hình chữ nhật ứng với phần tử HTML thơng qua việc cơng cụ trình diễn trình duyệt, ví dụ: Internet Explorer - Theo thẻ mở kiểm tra xem hình chữ nhật có

nằm hình chữ nhật khác không, để xây dựng DOM

Ví dụ minh họa sử dụng visual cue:

Hình 3.21 Ví dụ minh họa sử dụng visual cue

(123)

3.4.3 Phát giả mạo dựa DOM

Như phân tích trên, trang Web (hay trang HTML) biểu diễn dạng DOM – tree ngược lại người ta cập nhật trang Web dễ dàng việc sửa đổi DOM-Tree Do vậy, việc xem xét hai trang Web có giống hay khơng, hồn tồn so sánh xem hai DOM-Tree tương ứng chúng

Lí sử dụng so khớp đồ thị luận án là:

- Một tư liệu Web biểu diễn qua DOM, người dùng thay đổi nội dung, nên kẻ xấu lợi dụng, làm an toàn liệu, hay cơng giả mạo mạng máy tính Tuy nhiên cơng để lại vết DOM Người ta nhận dạng nguy qua DOM

- Một có mẫu truy cập trái phép, thể DOM, người ta so sánh mẫu với đối tượng khác, để phát truy cập khơng hợp lệ, hay có nguy gây an toàn liệu Vậy, toán so khớp DOM biện pháp an tồn mạng máy tính, đáng nghiên cứu ứng dụng Mơ hình đối tượng tư liệu, DOM, giao diện chương trình cho tư liệu HTML, XML SVG Nó đảm bảo việc biểu diễn có cấu trúc tư liệu, hay tư liệu, xác định cách để chương trình truy cập cấu trúc Các chương trình thay đổi cấu trúc, phong cách nội dung tư liệu Mơ hình DOM biểu diễn tư liệu nhóm nút có cấu trúc đối tượng Đối với ngôn ngữ XML, DOM XML xác định cách truy cập xử lí tư liệu XML; DOM thể tư liệu XML cấu trúc

- Mặt khác, kết toán học việc so khớp đồ thị ứng dụng so khớp đồ thị, cây, áp dụng cho DOM Mặt khác, dạng đặc biệt đồ thị Vì vậy, để tổng quát, luận án nghiên cứu toán so khớp đồ thị

(124)

tồn giống lại có cách bố trí giống Điều người quản trị thay đổi số cấu trúc trang Web chép để trông giống với trang Web gốc, nghĩa là, trang Web trang lừa đảo

Đưa hai DOM- Tree, so sánh tương đồng chúng theo hai cách khác nhau:

- Thứ nhất, so sánh thẻ (tag) hai trang;

- Thứ hai, so sánh đồ thị trích từ hai DOM-Tree Trong việc làm này, tập trung vào cách tiếp cận thứ hai

Hình 3.23 Biểu diễn trang web thật giả mạo dạng DOM

Chúng giả định đưa đồ thị G(V,E) mẫu Ω, tìm đồ thị G cho ∀Gi∈ Ω tương đồng lớn ngưỡng δ

Sau mã giả thuật toán 3.2 Thuật toán Phishing Detect, thuật toán 3.2 Input: - GP = (VP, EP)

- Tập đồ thị mẫu Ω = {G1, ,GN}

- Threshold δ

Output: - R Gi |SGi  Begin

 

(125)

for (i = 1; i< = N; i++)

if (Computing similarity(Gi)>δ)

RR Gi ;

Return R; End

Thuật toán viết ngôn ngữ C Chúng kiểm tra cách tiếp cận tập trang Web ví dụ (ký hiệu p1,p2, p3, p4 p5) với ba kích thước khác (DOM-Tree 10 nút, DOM-Tree từ 10 đến 20 nút, và DOM-Tree lớn 20 nút) 10 trang Web mẫu (ký hiệu T1,T2, ,T10) với ba kích thước khác (DOM-Tree 20 nút, từ 20 đến 50 nút, và lớn 50 nút) để tính tốn tương tự trang ví dụ trang mẫu

Chúng tơi so sánh thuật tốn chúng tơi với thuật tốn so khớp STM (Simple Tree Matching) đưa [24]

Bảng 3.10 Kết so sánh GA STM (%)

P1 P2 P3 P4 P5

GA STM GA STM GA STM GA STM GA STM

T1 72 64 61 61 87 83 93 93 100 100

T2 32 12 23 20 41 34 68 68 54 61

T3 52 43 28 13 76 62 27 18 39 34

T4 65 58 55 40 90 80 54 49 27 18

T5 99 90 29 22 63 57 67 59 83 68

T6 79 68 83 70 76 68 79 70 40 32

T7 71 61 87 80 100 85 76 62 51 43

T8 49 41 91 86 61 51 41 31 92 81

T9 80 71 61 51 78 69 74 62 97 86

T10 88 83 37 29 71 59 91 82 46 33

(126)

của trang Web giả mạo Trong thực nghiệm, chúng đôi đặt ngưỡng δ từ 0.1 tới 0.9 Chúng phát 100 Web tập liệu phishtank bao gồm: Lừa đảo (valid phishing), không lừa đảo (novalid phishing) chưa xác định (unknow)

Chúng ta nhìn từ bảng 16 kết liên quan chặt chẽ đến việc phát hiện trang Web giả mạo với ngưỡng δ = 0.6 Trong thực tế, trang Web hợp pháp chữa nhiều thành phần đặc biệt DOM-Tree, dễ dàng phân biệt từ trang Web khác

Bảng 3.11 Tỷ lệ % phát đúng, sai với ngưỡng khác

δ 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9

Nhận dạng (%) 75 63 57 35 22 17 0

Nhận dạng sai (%) 0 0 0 21 48 92

3.5 Kết chương

Trong chương 3, luận án trình bày chi tiết tốn so khớp đồ thị khơng xác Một số cách tiếp cận liên quan tồn chúng Tiếp theo, luận án trình bày cách tiếp cận cho việc so khớp đồ thị dựa thuật toán di truyền chi tiết Thuật tốn đề xuất áp dụng số lớp đồ thị vơ hướng, có hướng, có trọng số hay gán nhãn Tuy nhiên, nhược điểm thuật toán áp dụng số lớp đồ thị cụ thể Kết công bố tài liệu [4]

(127)

KẾT LUẬN

Các kết luận án

Hệ thống phát xâm nhập mạng giả mạo có nhiệm vụ phân tích thơng tin, theo dõi, phát ngăn chặn xâm nhập trái phép tài nguyên làm tổn hại đến tính bảo mật, tính tồn vẹn tính sẵn sàng hệ thống Có nhiều cách tiếp cận khác so khớp mẫu kỹ thuật sử dụng phổ biến hệ thống phát ngăn chặn xâm nhập mạng Việc phát nguy tiềm ẩn hệ thống phát xâm nhập mạng thực cách so khớp nội dung gói tin với mẫu biết

Trong luận án này, với mục tiêu áp dụng thuật toán so khớp việc phát triển hệ thống phát xâm nhập trái phép, luận án đạt kết sau:

1 Phân tích đánh giá hiệu thời gian thực thuật toán so khớp mẫu có hệ thống phát thâm nhập Snort Kết công bố tài liệu [1];

2 Đưa cải tiến cho thuật toán so khớp đa mẫu Aho - Corasick cách sử dụng kỹ thuật nén dòng bảng số nhằm nâng cao hiệu thuật tốn, phân tích so sánh thực tế nhằm kiểm nghiệm lý thuyết thực hệ thống Snort Kết công bố tài liệu [3];

3 Luận án đề xuất thuật toán so khớp đa mẫu cách xây dựng biểu đồ mẫu kết hợp với danh sách liên kết làm giảm thời gian thực việc so khớp đồng thời đa mẫu Việc cài đặt thực nghiệm thuật toán với so sánh với số thuật toán tồn triển khai hệ thống Snort Kết công bố tài liệu [5]

Với mục tiêu phát trang Web giả mạo, luận án đạt kết sau:

(128)

5 Áp dụng việc so khớp đồ thị vào việc so khớp DOM-Tree để phát trang Web giả mạo Kết công bố tài liệu [6];

Hướng phát triển luận án

(129)

DANH MỤC CÁC CƠNG TRÌNH ĐÃ CƠNG BỐ LIÊN QUAN ĐẾN LUẬN ÁN

[1] Lê Đắc Nhường, Lê Đăng Nguyên, Trịnh Thị Thùy Giang, Lê Trọng Vĩnh Phân tích, đánh giá hiệu quả của các thuật toán so khớp chuỗi dùng an ninh mạng, Hội thảo vấn đề chọn lọc CNTT & TT lần thứ 14, Tr.451-463, Cần Thơ 7-8/10/2011 NXB Khoa học kỹ thuật Hà Nội 2012

[2] Lê Đắc Nhường, Nguyễn Gia Như, Lê Đăng Ngun, Lê Trọng Vĩnh Song song hóa tḥt tốn so khớp mẫu QuickSearch NIDS sử dụng mơ hình chia sẻ nhớ OpenMP Pthreads Tạp chí Đại học Quốc gia Hà Nội, tháng 12/2012 Vol 28(4), Tr 255 – 263

[3] Lê Đắc Nhường, Nguyễn Gia Như, Lê Đăng Nguyên, Lê Trọng Vĩnh, Tới ưu khơng gian trạng thái của tḥt tốn AHO-CORASICK sử dụng kỹ thuật nén dòng bảng sớ, Chun san Bưu viễn thơng cơng trình nghiên cứu ứng dụng cơng nghệ thơng tin số 9(29), Tr 23 – 29, 2013

[4] Le Dang Nguyen, Dac-Nhuong Le, Tran Thi Huong, Le Trong Vinh, A New Genetic Algorithm Applied to Inexact Graph Matching International Journal of Computer Science and Telecommunications, Volume 5, Issue 5, pp.1-7, May 2014

[5] Le Dang Nguyen, Dac-Nhuong Le, Le Trong Vinh, A New Multiple-Pattern Matching Algorithm for the Network Intrusion Detection System – 4th International Conference on Security Science and Technology (ICSST 2015) January 15-16, 2015 Portsmouth, UK Vol 8, No 2, 2015 pp 94-100

(130)

TÀI LIỆU THAM KHẢO TIẾNG VIỆT

[1] Nguyễn Thúc Hải, Mạng máy tính và các hệ thớng mở, NXB Giáo dục -1999 [2] Nguyễn Phương Lan, Hoàng Đức Hải, Lập trình LINUX,Tập 1, NXB Giáo Dục -

2001

[3] Lê Đắc Nhường, Lê Đăng Nguyên, Trịnh Thị Thùy Giang, Lê Trọng Vĩnh Phân tích, đánh giá hiệu quả của các thuật toán so khớp chuỗi dùng an ninh mạng, Hội thảo vấn đề chọn lọc CNTT & TT lần thứ 14, Tr.451-463, Cần Thơ 7-8/10/2011 NXB Khoa học kỹ thuật Hà Nội 2012

TIẾNG ANH

[4] Rafeeq Rehman, Intrusion Detection with Snort, Prentice Hall, 2003 [5] Martin Roesch, Chris Green, Snort User Manual, The Snort Project, 2003

[6] Stefan Axelson, Intrusion Detection Systems: A Survey and Taxonomy Chalmers University of Technology, Sweden, 2000

[7] Christian Charras, Therry Lecroq, Handbook of Exact String Matching Algorithms, King's College Publications, 2004

[8] J S Wang, H K Kwak, Y J Jung, H U Kwon, C G Kim and K S Chung, “A Fast and Scalable string matching algorithm using contents correction signature hashing for network IDS”, IEICE Electronic Press, vol 5, no 22, pages 949-953, 2008

[9] Alfred V Aho and Margaret J Corasick “Efficient string matching: an aid to bibliographic search” Commun ACM Vol 18, No 6, pp 333-340, 1975

[10] Nen-Fu Huang; Yen-Ming Chu; Chen-Ying Hsieh; Chi-Hung Tsai; Yih-Jou Tzang, “A Deterministic Cost-effective String Matching Algorithm for Network Intrusion Detection System”, In the Pro.c of The IEEE International Conference on Communication, pp.1292-1297, June 2007

[11] Jianming, Y., Yibo, X., and Jun, L., “Memory Efficient String Matching Algorithm for Network Intrusion Management System”, In Proceedings of Global Telecommunications Conference, San Francisco, California, USA, pages 1-5, 2006

[12] R Boyer and J Moore “A Fast String Searching Algorithm”, Commun ACM, pp 762-772, 1977

(131)

[14] Yuebin Bai; Kobayashi, H, “New string matching technology for network security, Advanced Information Networking and Applications” AINA, pp 198 -201, 2003

[15] S Wu and U Manner, “A Fast Algorithm for Multi-pattern Searching”, Technical Report, Department of Computer Science, University of Arizona, pp.94-117, 1994

[16] B Xu, X Zhou, and J Li, “Recursive Shift Indexing: a Aast Multi-pattern String Matching Algorithm”, In the Proc of the 4th International Conference on Applied Cryptography and Network Security (ACNS), 2006

[17] C Allauzen and M Raffinot, “Factor Oracle of a Set of Words”, Technical report 99-11, Institut Gaspard-Monge, Universite de Marne-la-Vallee,1999 [18] Z W Zhou,Y B Xue, J D Liu, W Zhang, and J Li, MDH, “A High Speed

Multi-Phase Dynamic Hash String Matching Algorithm for Large-Scale Pattern Set”, In the Proc of the 9th International Conference on Information and Communication Security (ICICS), 2007

[19] Stephen Gossen, Neil Jones, Neil McCurdy, Rayan Persaud Pattern Matching in Snort, 2002

[20] Mars A.Nortoon et.al, Methods and Systems for Multipattern Searching, Patent US7996424, 2009

[21] Branimir Z Lambov, Efficient Storage for Finite State Machines, Patent 7949679, 2011

[22] W3C Document Object Model http://www.w3 org/TR/2004/REC-DOM-Level-3-Core-20040407/core.html, 2007

[23] Le Dang Nguyen, Dac-Nhuong Le, Tran Thi Huong, Le Trong Vinh, “A New Genetic Algorithm Applied to Inexact Graph Matching”, International Journal of Computer Science and Telecommunications, Vol.5 No.5, pp.1-6, 2014

[24] Hua Wang, Yang Zhang, “Web Data Extraction Based on Simple Tree Matching,” IEEE, 2010, pp 15-18

[25] Report a Phishing Website, http://www.phishtank.com (truy cập lần cuối 15/11/2015)

[26] M Analoui, A Mirzaei, and P Kabiri, “Intrusion detection using multivariate analysis of variance al-gorithm,” In the Proc of the Third International Conference on Sys-tems, Signals & Devices SSD05, vol 3, 2005

(132)

[28] D Barbara, N Wu, and S Jajodia, “Detecting novelnetwork intrusions using bayes estimators,” in the Proc of the First SIAM International Conferenceon Data Mining (SDM 2001), Chicago, USA, Apr 2001

[29] M Botha and R von Solms, “Utilising fuzzy logicand trend analysis for effective intrusion detection,” Computers & Security, vol 22, no 5, pp 423– 434,2003

[30] Susan M Bridges and M Vaughn Rayford, “Fuzzydata mining and genetic algorithms applied to intrusion detection,” in Proc of the Twenty-thirdNational Information Systems ecurity Conference National Institute of Standards and Technology, Oct.2000

[31] D Bulatovic and D Velasevic, “A distributed in-trusion detection system based on bayesian alarm networks,” Lecture Notes in Computer Science (Se-cure Networking CQRE (Secure) 1999), vol 1740, pp 219–228, 1999

[32] S B Cho, “Incorporating soft computing techniques into a probabilistic intrusion detection system,” IEEE Transactions on system, Man, and cybernetic sppart, vol 32, pp 154–160, May 2002

[33] John E Dickerson and Julie A Dickerson, “Fuzzy network profiling for intrusion detection,” in Proc of NAFIPS 19th International Conference of the North American Fuzzy Information Processing Society, pp 301–306, Atlanta, USA, July 2000

[34] P Z Hu and Malcolm I Heywood, “Predicting intru-sions with local linear model,” in the Proc of the International Joint Conference on Neural Networks, vol 3, pp 1780–1785 IEEE, IEEE, July 2003

[35] H Gunes Kayacik, A Nur Zincir-Heywood, and Mal-colm I Heywood, “On the capability of an som basedintrusion detection system,” in the Proc of theInternational Joint Conference on Neural Networks, vol 3, pp 1808–1813 IEEE, July 2003

[36] W Lee, Salvatore J Stolfo, and Kui W Mok, “Mining audit data to build intrusion detection models,” in the Proc of the Fourth International Conference on Knowledge Discovery and Data Mining (KDD ’98), New York, NY, USA, Aug 1998

[37] W Lee, Salvatore J Stolfo, and Kui W Mok, “Adap-tive intrusion detection: A data mining pproach,” Artificial Inteligence Review, vol 14, no 6, pp 533–567, 2000

(133)

Conference on Communication Networks and Services Research (CNSR04), pp 190–197 IEEE-Computer Society, IEEE, May 2004

[39] Ken Yoshida, “Entropy based intrusion detection,” in the Proc of IEEE Pacific Rim Conference on Communications, Computers and signal Processing (PACRIM2003), vol 2, pp 840–843, 2003

[40] Ste Zanero and Sergio M Savaresi, “Unsupervised learning techniques for an intrusion detection sys-tem,” in Proc of the 2004 ACM symposium on Applied computing, pp 412–419, 2004

[41] J Gomez and D Dasgupta, “Evolving fuzzy clas-sifiers for intrusion detection,” in the Proc of the 2002 IEEE Workshop on the Information Assurance

[42] Bing Liu, Web Data Mining Exploring Hyperlinks, Contents, and Usage Data, http://www.cs.uic.edu/~liub/WebMiningBook.html,December, 2006

[43] Endika Bengoetxea, “Inexact Graph Matching Using Estimation of Distribution Algorithms”, PhD These, University of the Basque Country Computer Engineering Faculty, 2002

[44] Bruno T.Mesmer, “Efficient subgraph isomorphism detection: a decomposition approach”, PhD These, Bern, 1995

[45] Ivan Olmos, Jesus A.Gonzalez and Mauricio Osorio “Inexact Graph Matching: A Case of Study”, American Association for Artificial Intelligence, pp.586-588, 2006

[46] Yue Zhang, Jason Hong, and Lorrie Cranor “CANTINA: A Content-Based Approach to Detecting Phishing Web Sites”, In the Proc of the 16th International Conference on World Wide Web, pp.639-648, 2007

[47] Likarish, Eunjin Jung, Dunbar D., and Hansen T.E., “B-APT: Bayesian Anti-Phishing Toolbar, ” In the Proc of the 16th International Conference on Communication 2008 (ICC’08), pp 1745 – 1749 2008

[48] Vinnarasi Tharania I, R Sangareswari, and M Saleembabu, “Web Phishing Detection In Machine Learning Using Heuristic Image Based Method,” International Journal of Engineering Research and Applications, Vol 2, Issue 5, pp.1589-1593, 2012

(134)

[50] Jangjong Fan, Kehyih Su, “An Efficient Algorithm for Matching Multiple Patterns”, IEEE Transactions on Knowledge and Data Engineering, vol 5, no 2, pp.339-351, 1993

[51] Andrew D.J Cross, Richard C Winson and Edwin R.Hancock, “Inexact graph matching using genetic search”, Pattern Recognition,Vol.30, No.6, pp 953-970, 1997

[52] Andrew D.J Cross, Richard C Winson and Edwin R.Hancock, “Convergence of a hill-climbing gennetic algorithm for graph matching” Pattern Recognition,Vol.33, pp 1863-1880, 2000

[53] Yong Wang Naohiro Ishii, “A genetic algorithm and its parallelization for graph matching with similatarity measure” Artif Life Robotics,Vol.33, pp 68-73, 1998 [54] Pekalska E, Duin R (2005) The dissimilarity representation for pattern

recognition: foundations and applications Series in machine perception and artificial intelligence World Scientific

[55] Luxburg UV, Bousquet O (2003) Distance-based classification with Lipschitz functions J Mach Learn Res 5:669–695

[56] Gao X, Xiao B, Tao D, Li X (2010) A survey of graph edit distance Pattern Anal Appl 13(1):113–129

[57] Gartner T (2008) Kernels for structured data No v 72 in kernels for structured data World Scientific

[58] Lorenzo Livi, Antonello Rizzi (2013), The graph matching problem- Survey, Pattern Anal Applic (2013) 16:253–283

[59] M Aldwairi, and D Alansari, “Exscind: Fast pattern matching for intrusion detection using exclusion and inclusion filters”, Next Generation Web Services Practices (NWeSP), 2011 7th International Conference on, pp 24-30, 2011

[60] M Kharbutli, M Aldwairi, and Abdullah Mughrabi, “Function and Data Parallelization of Wu-Manber Pattern Matching for Intrusion Detection Systems”, Network Protocols & Algorithms, volume 4(3), 2012

[61] G Ahmed and N Khare, “Hardware based String Matching Algorithms: A Survey”,International Journal of Computer Applications, volume 88(11):16-19, February 2014

(135)

[63] Alok S Tongaonkar (2004), Fast Pattern-Matching Techniques for Packet Filtering, Stony Brook University, 5-2004

[64] J.S.Wang, H.K.Kwak, Y.J.Jung, H.U.Kwon, C.G.Kim and K.S.Chung (2008), A Fast and Scalable string matching algorithm using contents correction signature hashing for network IDS, IEICE Electronic Press, vol 5, no 22, pages 949-953 [65] Nen-Fu Huang; Yen-Ming Chu; Chen-Ying Hsieh; Chi-Hung Tsai; Yih-Jou

Tzang (2007), A Deterministic Cost-effective String Matching Algorithm for Network Intrusion Detection System, Communications IEEE International Conference, pp.1292-1297, June

[66] Zhai, Y and B Liu Structured data extraction from the web based on partial tree alignment IEEE Transactions on knowledge and Data Engineering, 2006: p 1614-1628

[67] Zhai, Y and B Liu Web data extraction based on partial tree alignment In Proceedings of International conference on World Wide Web (WWW-2005), 2005 [68] Surapong Auwatanamongkol 2007 Inexact graph matching using a genetic algorithm for image recognition Pattern Recogn Lett 28, 12 (September 2007), 1428-1437

[69] Gerard Sanromà, Francesc Serratosa, and René Alquézar 2008 Hybrid Genetic Algorithm and Procrustes Analysis for Enhancing the Matching of Graphs Generated from Shapes In Proceedings of the 2008 Joint IAPR International Workshop on Structural, Syntactic, and Statistical Pattern Recognition (SSPR & SPR '08), Springer-Verlag, Berlin, Heidelberg, 298-307

[70] M Ferrer, E Valveny, F Serratosa, Median graphs: A genetic approach based on new theoretical properties, Pattern Recognition, v.42 n.9, p.2003-2012, September, 2009

[71] Weibo Chu; Zhu, B.B.; Feng Xue; Xiaohong Guan; Zhongmin Cai (2013), Protect sensitive sites from phishing attacks using features extractable from inaccessible phishing URLs, IEEE International Conference on Communications (ICC), pp 1990-1994, DOI: 10.1109/ICC.2013.6654816

Model http://www.w3 site, http://www.phishtank.com Weibo Chu; Zhu, B.B.; Feng Xue; Xiaohong Guan; Zhongmin Cai Protect sensitive sites from phishing attacks using features extractable from inaccessible phishing URLs, 10.1109/ICC.2013.6654816. Luong Anh Tuan Nguyen; Ba Lam To; Huu Khuong Nguyen; Chuan Pham; Choong Seon Hong 10.1109/ICCAIS.2014.7020555

Ngày đăng: 02/02/2021, 07:14

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan