Hiện nay, trong việc phát triển hệ thống IDS có nhiều phương pháp để phát hiện xâm nhập vào hệ thống như: - Sử dụng phương pháp Bayes với ý tưởng tính toán xác suất Bayes để có thể dịch
Trang 1LỜI CAM ĐOAN Học viên xin cam đoan luận văn “Nghiên cứu một số kỹ thuật phát
hiện xâm nhập mạng bằng phương pháp so khớp” là công trình nghiên
cứu của cá nhân học viên tìm hiểu, nghiên cứu dưới sự hướng dẫn của TS Nguyễn Ngọc Cương Các kết quả là hoàn toàn trung thực, toàn bộ nội dung nghiên cứu của luận văn, các vấn đề được trình bày đều là những tìm hiểu và nghiên cứu của chính cá nhân học viên hoặc là được trích dẫn từ các nguồn tài liệu được trích dẫn và chú thích đầy đủ
TÁC GIẢ LUẬN VĂN
Trần Thanh Hòa
Trang 2LỜI CẢM ƠN
Học viên xin bày tỏ lời cảm ơn chân thành tới tập thể các thầy cô giáo Viện công nghệ thông tin, các thầy cô giáo Trường Đại học Công nghệ thông tin và truyền thông - Đại học Thái Nguyên đã mang lại cho học viên kiến thức
vô cùng quý giá và bổ ích trong suốt quá trình học tập chương trình cao học tại trường Đặc biệt học viên xin bày tỏ lòng biết ơn sâu sắc tới thầy giáo TS.Nguyễn Ngọc Cương - Học viện an ninh đã định hướng khoa học và đưa
ra những góp ý, gợi ý, chỉnh sửa quý báu, quan tâm, tạo điều kiện thuận lợi trong quá trình nghiên cứu hoàn thành luận văn này
Cuối cùng, học viên xin chân thành cảm ơn các bạn bè đồng nghiệp, gia đình và người thân đã quan tâm, giúp đỡ và chia sẻ với học viên trong suốt quá trình học tập
Do thời gian và kiến thức có hạn nên luận văn không tránh khỏi những thiếu sót nhất định Học viên rất mong nhận được những sự góp ý quý báu của thầy cô và các bạn
Thái Nguyên, ngày 10 tháng 5 năm 2016
HỌC VIÊN
Trần Thanh Hòa
Trang 3DANH MỤC CÁC HÌNH VẼ
Hình 1.1 Hệ thống chống xâm nhập IDS 8
Hình 1.2 Mô hình Networt based IDS – NIDS 9
Hình 1.3 Mô hình Host based IDS – HIDS 10
Hình 1.4 Các thành phần của hệ thống phát hiện xâm nhập 14
Hình 2.1 Xây dựng hàm Goto 41
Hình 2.2 Xây dựng hàm Failure 42
Hình 2.3 Xây dựng hàm Output 42
Hình 3.1 Mô hình hệ thống phát hiện xâm nhập mạng 45
Hình 3.2 Các thành phần của Snort 48
Hình 3.3 Lệnh Snort –W xem thông số card mạng 55
Hình 3.4 Mô hình mạng ở trung tâm GDTX Định Hóa 56
Hình 3.5 Mô hình giải pháp kết hợp IDS 57
Hình 3.6 Gói tin được mã hóa 59
Trang 4MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
DANH MỤC CÁC HÌNH VẼ iii
MỞ ĐẦU 3
1 Lý do chọn đề tài 3
2 Hướng nghiên cứu của luận văn 4
3 Đối tượng và phạm vi nghiên cứu 5
4 Những nội dung nghiên cứu chính 5
5 Phương pháp nghiên cứu 5
1.1.1 Định nghĩa 6
1.1.1.1 Phát hiện xâm nhập 6
1.1.1.2 Hệ thống phát hiện xâm nhập 7
1.1.2 Tính năng của IDS 8
1.1.3 Phân loại IDS 8
1.1.3.1 Network based IDS – NIDS 9
1.1.3.2 Host based IDS – HIDS 10
1.1.4 Cơ chế hoạt động của hệ thống IDS 11
1.1.4.1 Phát hiện sự lạm dụng 12
1.1.4.2 Phát hiện sự bất thường 13
1.1.5 Ưu điểm và hạn chế của IDS 13
1.1.5.1 Ưu điểm 13
1.1.5.2 Hạn chế 13
1.2 Các thành phần của hệ thống phát hiện xâm nhập 13
Trang 51.3 Phân biệt những hệ thống không phải là IDS 14
1.4 Một số kỹ thuật phát hiện xâm nhập mạng 15
1.4.1 Phương pháp tiếp cận dựa trên xác suất thống kê 15
1.4.2 Phương pháp tiếp tiếp cận dựa trên trạng thái 15
1.4.3 Phương pháp tiếp cận dựa trên hệ chuyên gia 16
1.4.4 Phương pháp tiếp cận dựa trên khai phá dữ liệu 17
1.4.5 Hệ thống phát hiện xâm nhập dựa trên mạng nơ-ron 17
1.4.6 Tiếp cận dựa trên so khớp mẫu 19
1.5 Kết chương 19
2.1 Bài toán so khớp mẫu 20
2.1.1 So khớp mẫu là gì? 20
2.1.2 Lịch sử phát triển 22
2.1.3 Các bước xử lý 22
2.1.4 Các cách tiếp cận 22
2.1.5 Độ phức tạp tính toán 23
2.1.6 Ứng dụng của so khớp mẫu 24
2.2 Các thuật toán so khớp trong phát hiện xâm nhập mạng 24
2.2.1 Thuật toán Brute Force 24
2.2.2 Các thuật toán so khớp đơn mẫu trong phát hiện xâm nhập mạng 28
2.2.2.1 Thuật toán Knuth-Morris-Pratt (KMP) 28
2.2.2.2 Thuật toán Boyer-Moore Horspool (BMH) 32
2.2.2.3 Thuật toán Karp-Rabin 34
2.2.3 Đánh giá ưu, nhược điểm các thuật toán so khớp đơn mẫu 38
Trang 62.2.3.1 Ưu điểm 39
2.2.3.2 Nhược điểm 40
2.2.4 Các thuật toán so khớp đa mẫu trong phát hiện xâm nhập mạng 40
2.2.4.1 Thuật toán Aho-Corasick (AC) [8] 40
2.2.4.2 Thuật toán Commentz-Walter (CW) 43
2.3 Kết chương 44
3.1 Mô hình phát hiện xâm nhập mạng dựa trên so khớp mẫu 45
3.1.1 Thành phần thu nhập gói tin 45
3.1.2 Thành phần phân tích gói tin 46
3.1.3 Thành phần phản hồi 46
3.2 Hệ thống phát hiện xâm nhập mạng Snort 47
3.2.1 Giới thiệu 47
3.2.2 Các thành phần của Snort 48
3.3 Hệ thống luật 52
3.3.1 Định nghĩa 52
3.3.2 Các thành phần của tập luật 52
3.3.2.1 Rule header 52
3.3.3.2 Rule options 52
3.4 Cài đặt và cấu hình Snort 53
3.5 Mô hình triển khai 55
3.5.1 Mô hình bài toán: 55
3.5.1.1 Đặt ra giải pháp 56
3.5.1.2 Yêu cầu 57
Trang 73.6 Thực hiện 57
3.6.1 Đầu vào của bài toán 57
3.6.2 Đầu ra của bài toán 58
3.6.3 Thử nghiệm và đánh giá kết quả 58
3.6.3.1 Tập dữ liệu thử nghiệm 58
3.6.3.2 Tiền xử lý dữ liệu 59
3.6.3.3 Dữ liệu lựa chọn 59
3.6.3.4 Thiết kế thử nghiệm 60
3.6.3.5 Kết quả thử nghiệm 60
3.6.3.6 Nhận xét kết quả 60
3.6.4 Sử dụng chương trình so khớp đa mẫu Aho-Corasick vào Snort 61
3.6.4.1 Cài đặt chương trình so khớp đa mẫu Aho – Corasick 61
3.6.4.2 Cài đặt thuật toán so khớp đa mẫu Aho Corasick vào Snort 61
3.7 Kết chương 63
KẾT LUẬN 634
TÀI LIỆU THAM KHẢO 635
PHỤ LỤC 637
Trang 8MỞ ĐẦU
1 Lý do chọn đề tài
Mạng Internet từ cuối thế kỷ XX đã mở ra một làn sóng mới về xu hướng phát triển của xã hội - thời đại của công nghệ thông tin và truyền thông, trong đó các dịch vụ trực tuyến được phát triển mạnh mẽ như thương mại điện tử, thanh toán trực tuyến, kinh doanh, tài chính, công nghiệp, an ninh, y tế,…
Người sử dụng nhờ mạng Internet có thể truy cập, khai thác và chia sẻ thông tin mọi lúc mọi nơi, tuy nhiên Internet cũng là không gian rộng mở cho
kẻ xấu lợi dụng thực hiện những vụ tấn công, truy cập trái phép vào các hệ thống máy tính và mạng của người dùng
Phát hiện xâm nhập mạng là một trong các thành phần quan trọng trong
hệ thống các giải pháp đảm bảo an ninh cho các mạng hiện đại
Hệ thống phát hiện xâm nhập mạng IDS (Intrusion Detection System)
có nhiệm vụ phân tích các thông tin, theo dõi, phát hiện và ngăn chặn sự 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 toàn vẹn và tính sẵn sàng của hệ thống
Hiện nay, trong việc phát triển hệ thống IDS có nhiều phương pháp để phát hiện xâm nhập vào hệ thống như:
- Sử dụng phương pháp Bayes với ý tưởng tính toán xác suất Bayes để
có thể dịch chuyển ngược thời gian và tìm ra nguyên nhân của sự kiện, phù hợp cho việc tìm kiếm lý do cho một sự bất thường đặc biệt trong hành vi mạng
- Sử dụng mạng nơ ron nhân tạo trên mô hình Kohonen’s Self
Organizing features Map (SOM) và sử dụng máy học vectơ Mục tiêu chính của việc sử dụng mạng nơ ron nhân tạo là cung cấp một phương pháp phân
Trang 9loại không giám sát để vượt qua số chiều nhiều đối với số lượng lớn các tính năng đầu vào
- Sử dụng kỹ thuật so khớp mẫu: Các thuật toán so khớp mẫu tiếp cận
theo phương pháp dựa trên đặc trưng (signature-based) cho phép các công cụ nhanh chóng tìm kiếm nhiều mẫu cùng một lúc trong đầu vào của hệ thống IDS Kỹ thuật này được sử dụng phổ biến trong các hệ thống phát hiện và
ngăn chặn xâm nhập mạng Nguyên lý của kỹ thuật này là: việc phát hiện các
nguy cơ tiềm ẩn trong hệ thống phát hiện xâm nhập mạng được thực hiện
bằng cách so khớp nội dung gói tin với các mẫu đã biết Với sự đa dạng về số
lượng các đợt tấn công, hình thức tấn công thì việc thu thập đầy đủ các mẫu làm cho kích thước tập mẫu ngày càng tăng nhanh
Vì vậy, em lựa chọn đề tài “Nghiên cứu một số kỹ thuật phát hiện xâm nhập mạng bằng phương pháp so khớp” Luận văn sẽ nghiên cứu việc
sử dụng kỹ thuật so khớp mẫu trong việc phát hiện xâm nhập mạng So khớp mẫu là kỹ thuật được ứng dụng nhiều trong vấn đề an ninh mạng Trong hệ thống phát hiện xâm nhập mạng, so khớp được thể hiện dưới dạng mẫu hoặc biểu thức chính quy nhằm tạo thuận lợi trong việc chia sẻ cơ sở dữ liệu mẫu
Nguyên lý của kỹ thuật này là việc phát hiện các nguy cơ tiềm ẩn trong
hệ thống phát hiện xâm nhập mạng được thực hiện bằng cách so khớp nội dung gói tin với các mẫu đã biết
2 Hướng nghiên cứu của luận văn
- Tìm hiểu, phân tích đánh giá về thời gian thực hiện các thuật toán so khớp đơn mẫu, đa mẫu trên hệ thống phát hiện thâm nhập Snort;
- Tìm hiểu thuật toán so khớp đa mẫu và thử nghiệm
- Cài đặt thực nghiệm của thuật toán so khớp đa mẫu trong việc phát hiện xâm nhập mạng của hệ thống Snort đối với mạng máy tính
Trang 103 Đối tượng và phạm vi nghiên cứu
- Các kỹ thuật xâm nhập trái phép và kỹ thuật ngăn chặn
- Bài toán so khớp mẫu, các thuật toán so khớp đơn mẫu, thuật toán so khớp đa mẫu và ứng dụng trong phát hiện kỹ thuật xâm nhập trái phép
- Chỉ nghiên cứu dựa trên giả thiết các mẫu tấn công đã có các mô hình, luận văn sẽ không nghiên cứu việc phân tích và mô hình hóa các mẫu tấn công hay hành vi của mạng của các cuộc xâm nhập trái phép
- Thử nghiệm phát hiện xâm nhập bằng phương pháp so khớp trên mạng máy tính
4 Những nội dung nghiên cứu chính
Luận văn được trình bày trong 3 chương, có phần mở đầu, phần kết luận, phần mục lục, phần tài liệu tham khảo Các nội dung cơ bản của luận văn được trình bày theo cấu trúc sau:
Chương 1 - Tổng quan về xâm nhập mạng
Chương 2 – Kỹ thuật so khớp trong phát hiện xâm nhập mạng
Chương 3 - Xây dựng mô hình phát hiện xâm nhập mạng bằng phương pháp so khớp
5 Phương pháp nghiên cứu
- Nghiên cứu các tổng hợp các kết quả nghiên cứu có liên quan đến đề tài, giải quyết, lập trình, thử nghiệm
- Hiểu bài toán so khớp mẫu và ứng dụng trong phát hiện xâm nhập mạng, các thuật toán và công cụ lập trình hệ thống
- Sử dụng phương pháp nghiên cứu thực nghiệm trên mô hình mạng máy tính để đánh giá hiệu quả của thuật toán sử dụng
Trang 11CHƯƠNG 1 TỔNG QUAN VỀ XÂM NHẬP MẠNG
Nội dung chương trình bày các kỹ thuật xâm nhập trái phép và một số
kỹ thuật ngăn chặn xâm nhập, đi sâu vào hệ thống phát hiện xâm nhập IDS (Intrusion Detetion System) và các hướng nghiên cứu trong và ngoài nước về
kỹ thuật phát hiện: tiếp cận dựa trên trí tuệ nhân tạo (Artificial Intelligence), tiếp cận dựa trên so khớp mẫu
1.1 Giới thiệu về hệ thống phát hiện xâm nhập mạng
1.1.1 Định nghĩa
Khi một máy tính hay một hệ thống hoạt động trên môi trường mạng,
sẽ có rất nhiều kết nối giữa nó và các máy tính, các thiết bị khác Trong những kết nối đó có những kết nối đang tìm cách tấn công hệ thống để đạt được mục đích nào đó Bản thân mỗi máy tính đều có những cơ chế để tự bảo vệ nhưng
nó có những điểm yếu và thực sự không đủ sức chống lại các cuộc tấn công mới với mức độ nguy hiểm ngày càng lớn hơn Bên cạnh đó các máy tính hay
hệ thống cũng phải chịu các nguy cơ đến từ các hành vi vi phạm chính sách
an toàn và bảo mật công nghệ thông tin một cách vô tình hay hữu ý Bài toán được đặt ra là cần có cơ chế để phát hiện sớm các cuộc tấn công để từ đó có những biện pháp ngăn chặn hoặc giảm thiểu tối đa những thiệt hại, tác động
do các cuộc tấn công gây ra
1.1.1.1 Phát hiện xâm nhập
Phát hiện xâm nhập là tập hợp các kỹ thuật và phương pháp được sử dụng để phát hiện các hành vi đáng ngờ cả ở cấp độ mạng và máy chủ Phát hiện xâm nhập có thể dựa trên dấu hiệu xâm nhập hoặc dựa vào dấu hiệu bất thường Kẻ tấn công có những dấu hiệu tìm ra dữ liệu của gói tin mà có chứa bất kỳ dấu hiệu xâm nhập hoặc dị thường được biết đến Dựa trên một tập hợp các dấu hiệu này hệ thống phát hiện xâm nhập có thể dò tìm, ghi lại những
Trang 12hoạt động đáng ngờ này và đưa ra các cảnh báo Hệ thống phát hiện dựa vào bất thường dựa vào phần tiêu đề giao thức của gói tin được cho là bất thường Thông thường hệ thống dựa trên bất thường sẽ bắt lấy các gói tin trên mạng
và đối chiếu với các quy tắc để tìm ra các dấu hiệu bất thường của gói tin
1.1.1.2 Hệ thống phát hiện xâm nhập
Hệ thống phát hiện xâm nhập (Intrusion Detetion System - IDS) là một
hệ thống giám sát lưu lượng mạng nhằm phát hiện hiện tượng bất thường, các hoạt động trái phép xâm nhập vào hệ thống IDS có thể phân biệt được những tấn công từ bên trong (nội bộ) hay tấn công từ bên ngoài (từ các tin tặc)
IDS phát hiện dựa trên các dấu hiệu đặc biệt về các nguy cơ đã biết (giống như cách các phần mềm diệt virus dựa vào các dấu hiệu đặc biệt để phát hiện và diệt virus) hay dựa trên so sánh lưu thông mạng hiện tại với baseline (thông số đo đạt chuẩn của hệ thống có thể chấp nhận được ngay tại thời điểm hiện tại) để tìm ra các dấu hiệu khác thường
Nói một cách khác, IDS là hệ thống có nhiệm vụ theo dõi, phát hiện và (có thể) ngăn cản sự xâm nhập, cũng như các hành vi khai thác trái phép tài nguyên của hệ thống được bảo vệ mà có thể dẫn đến việc làm tổn hại đến tính bảo mật, tính toàn vẹn và tính sẵn sàng của hệ thống
Hệ thống IDS sẽ thu thập thông tin từ rất nhiều nguồn trong hệ thống được bảo vệ sau đó tiến hành phân tích những thông tin đó theo các cách khác nhau để phát hiện những xâm nhập trái phép
Một hệ thống phát hiện xâm nhập trái phép cần thỏa mãn những yêu cầu sau:
- Tính chính xác
- Hiệu năng
- Tính trọn vẹn
- Chịu lỗi
Trang 13- Khả năng mở rộng
Hình 1.1 Hệ thống chống xâm nhập IDS
1.1.2 Tính năng của IDS
- Giám sát lưu lượng mạng và các hoạt động khả nghi
- Cảnh báo về tình trạng mạng cho hệ thống và nhà quản trị
- Kết hợp với các hệ thống giám sát, tường lửa, diệt virus tạo thành một
hệ thống bảo mật hoàn chỉnh
1.1.3 Phân loại IDS
Cách thông thường nhất để phân loại các hệ thống IDS là dựa vào đặc điểm của nguồn dữ liệu thu thập được Trong trường hợp này, các hệ thống IDS được chia thành các loại sau:
- Host-based IDS (HIDS): Sử dụng dữ liệu kiểm tra từ một máy trạm đơn để phát hiện xâm nhập
- Network-based IDS (NIDS): Sử dụng dữ liệu trên toàn bộ lưu thông mạng, cùng với dữ liệu kiểm tra từ một hoặc một vài máy trạm để phát hiện xâm nhập
Trang 141.1.3.1 Network based IDS – NIDS
NIDS thường bao gồm có hai thành phần logic:
Hình 1.2 Mô hình Network based IDS - NIDS
- Bộ cảm biến – Sensor: đặt tại một đoạn mạng, kiểm soát các cuộc lưu thông nghi ngờ trên đoạn mạng đó
- Trạm quản lý: nhận các tín hiệu cảnh báo từ bộ cảm biến và thông báo cho một điều hành viên
Một NIDS truyền thống với hai bộ cảm biến trên các đoạn mạng khác nhau cùng giao tiếp với một trạm kiểm soát
Ưu điểm
• Chi phí thấp
• Phát hiện được các cuộc tấn công mà HIDS bỏ qua: Khác với HIDS, NIDS kiểm tra header của tất cả các gói tin vì thế nó không bỏ sót các dấu hiệu xuất phát từ đây
• Khó xoá bỏ dấu vết (evidence)
• Phát hiện và đối phó kịp thời
• Có tính độc lập cao
Nhược điểm
• Bị hạn chế với Switch
• Hạn chế về hiệu năng
Trang 15• Tăng thông lượng mạng
• Một hệ thống NIDS thường gặp khó khăn trong việc xử lý các cuộc tấn công trong một phiên được mã hoá Lỗi này càng trở nên trầm trọng khi nhiều công ty và tổ chức đang áp dụng mạng riêng ảo VPN
• Một số hệ thống NIDS cũng gặp khó khăn khi phát hiện các cuộc tấn công mạng từ các gói tin phân mảnh Các gói tin định dạng sai này có thể làm cho NIDS hoạt động sai và đổ vỡ
1.1.3.2 Host based IDS – HIDS
Host-based IDS tìm kiếm dấu hiệu của xâm nhập vào một host cục bộ; thường sử dụng các cơ chế kiểm tra và phân tích các thông tin được logging
Nó tìm kiếm các hoạt động bất thường như login, truy nhập file không thích hợp, bước leo thang các đặc quyền không được chấp nhận
Kiến trúc IDS này thường dựa trên các luật (rule-based) để phân tích các hoạt động Ví dụ: đặc quyền của người sử dụng cấp cao chỉ có thể đạt được thông qua lệnh su-select user, như vậy những cố gắng liên tục để login vào account root có thể được coi là một cuộc tấn công
Hình 1.3 Mô hình Host based IDS – HIDS
Ưu điểm
• Xác định được kết quả của cuộc tấn công
Trang 16• Giám sát được các hoạt động cụ thể của hệ thống
• Phát hiện các xâm nhập mà NIDS bỏ qua
• Thích nghi tốt với môi trường chuyển mạch, mã hoá
• Không yêu cầu thêm phần cứng
Nhược điểm
• Khó quản trị
• Thông tin nguồn không an toàn
• Hệ thống host-based tương đối đắt
• Chiếm tài nguyên hệ thống
Mỗi thành phần tham gia trong kiến trúc mạng đều có chức năng, điểm mạnh, điểm yếu khác nhau Sử dụng, khai thác đúng mục đích sẽ đem lại hiệu quả cao IDS là một trong những thành phần quan trọng trong các giải pháp bảo vệ hệ thống Khi triển khai có thể giúp hệ thống:
- Theo dõi các hoạt động bất thường đối với hệ thống
- Xác định ai đang tác động đến hệ thống và cách thức nhưu thế nào
- Các hoạt động xâm nhập xảy ra tại vị trí nào trong cấu trúc mạng
1.1.4 Cơ chế hoạt động của hệ thống IDS
Có hai cách tiếp cận cơ bản đối với việc phát hiện và phòng chống xâm nhập là:
- Phát hiện sự lạm dụng (Misuse Detection Model): Hệ thống sẽ phát hiện các xâm nhập bằng cách tìm kiếm các hành động tương ứng với các kĩ thuật xâm nhập đã được biết đến (dựa trên các dấu hiệu - signatures) hoặc các điểm dễ bị tấn công của hệ thống
- Phát hiện sự bất thường (Anomaly Detection Model): Hệ thống sẽ phát hiện các xâm nhập bằng cách tìm kiếm các hành động khác với hành vi thông thường của người dùng hay hệ thống
Trang 171.1.4.1 Phát hiện sự lạm dụng [1]
Phát hiện sự lạm dụng là phát hiện những kẻ xâm nhập đang cố gắng đột nhập vào hệ thống mà sử dụng một số kỹ thuật đã biết Nó liên quan đến việc mô tả đặc điểm các cách thức xâm nhập vào hệ thống đã được biết đến, mỗi cách thức này được mô tả như một mẫu
Ở đây, ta sử dụng thuật ngữ kịch bản xâm nhập (intrusion scenario)
Một hệ thống phát hiện sự lạm dụng điển hình sẽ liên tục so sánh hành động của hệ thống hiện tại với một tập các kịch bản xâm nhập để cố gắng dò ra kịch bản đang được tiến hành Hệ thống này có thể xem xét hành động hiện tại của hệ thống được bảo vệ trong thời gian thực hoặc có thể là các bản ghi kiểm tra được ghi lại bởi hệ điều hành
Các kỹ thuật để phát hiện sự lạm dụng khác nhau ở cách thức mà chúng
mô hình hoá các hành vi chỉ định một sự xâm nhập Các hệ thống phát hiện sự lạm dụng thế hệ đầu tiên sử dụng các luật (rules) để mô tả những gì mà các nhà quản trị an ninh tìm kiếm trong hệ thống Một lượng lớn tập luật được tích luỹ dẫn đến khó có thể hiểu và sửa đổi bởi vì chúng không được tạo thành từng nhóm một cách hợp lý trong một kịch bản xâm nhập
Để giải quyết khó khăn này, các hệ thống thế hệ thứ hai đưa ra các biểu diễn kịch bản xen kẽ, bao gồm các tổ chức luật dựa trên mô hình và các biểu diễn về phép biến đổi trạng thái Điều này sẽ mang tính hiệu quả hơn đối với người dùng hệ thống cần đến sự biểu diễn và hiểu rõ ràng về các kịch bản Hệ thống phải thường xuyên duy trì và cập nhật để đương đầu với những kịch bản xâm nhập mới được phát hiện
Do các kịch bản xâm nhập có thể được đặc tả một cách chính xác, các
hệ thống phát hiện sự lạm dụng sẽ dựa theo đó để theo vết hành động xâm nhập Trong một mẫu hành động, hệ thống phát hiện có thể đoán trước được bước tiếp theo của hành động xâm nhập Bộ dò tìm phân tích thông tin hệ
Trang 18thống để kiểm tra bước tiếp theo, và khi cần sẽ can thiệp để làm giảm bởi tác hại có thể
1.1.4.2 Phát hiện sự bất thường
Dựa trên việc định nghĩa và mô tả đặc điểm của các hành vi có thể chấp nhận của hệ thống để phân biệt chúng với các hành vi không mong muốn hoặc bất thường, tìm ra các thay đổi, các hành vi bất hợp pháp
Như vậy, bộ phát hiện sự không bình thường phải có khả năng phân biệt giữa những hiện tượng thông thường và hiện tượng bất thường
Ranh giới giữa dạng thức chấp nhận được và dạng thức bất thường của đoạn mã và dữ liệu lưu trữ được định nghĩa rõ ràng (chỉ cần một bit khác nhau), còn ranh giới giữa hành vi hợp lệ và hành vi bất thường thì khó xác định hơn
1.1.5 Ưu điểm và hạn chế của IDS
1.1.5.1 Ưu điểm
- Cung cấp một cách nhìn toàn diện về toàn bộ lưu lượng mạng
- Giúp kiểm tra các sự cố xảy ra với hệ thống mạng
- Sử dụng để thu thập bằng chứng cho điều tra và ứng cứu sự cố
1.1.5.2 Hạn chế
- Có thể gây ra tình trạng báo động nhầm nếu cấu hình không hợp lý
- Khả năng phân tích lưu lượng bị mã hóa tương đối thấp
- Chi phí triển khai và vận hành hệ thống tương đối lớn
1.2 Các thành phần của hệ thống phát hiện xâm nhập
Các hệ thống phát hiện xâm nhập khác nhau thường dựa vào việc phát hiện các dấu hiệu của xâm nhập trái phép, hoặc những hành động dị thường Một hệ thống phát hiện xâm nhập điển hình thường gồm 3 thành phần chính:
Bộ phận thu thập thông tin, bộ phận phân tích và bộ phận phản ứng/cảnh báo, như minh họa trên hình dưới
Trang 19Bộ phận thu nhập thông tin (Information collection): Thu thập các thông tin cho phát hiện đột nhập, như các gói tin truyền trên mạng, các logs hệ thống
Bộ phận phân tích (Analysis): Phân tích thông tin đã thu thập để nhận biết hành động nào là tấn công, đột nhập
Bộ phận phản ứng/ cảnh báo (Response): Cảnh báo tấn công, đột nhập được phân tích ở trên đến người quản trị hệ thống
Hình 1.4 Các thành phần của hệ thống phát hiện xâm nhập
1.3 Phân biệt những hệ thống không phải là IDS
Theo một cách riêng biệt nào đó, các thiết bị bảo mật dưới đây không phải là IDS:
- Hệ thống đăng nhập mạng được sử dụng để phát hiện lỗ hổng đối với vấn đề tấn công từ chối dịch vụ (DoS) trên một mạng nào đó Ở đó sẽ có hệ thống kiểm tra lưu lượng mạng
- Các công cụ đánh giá lỗ hổng kiểm tra lỗi và lỗ hổng trong hệ điều hành, dịch vụ mạng (các bộ quét bảo mật)
- Các sản phẩm chống virus được thiết kế để phát hiện các phần mềm
mã nguy hiểm như virus, trojan horse, worm… Mặc dù những tính năng mặc định có thể giống IDS và thường cung cấp một công cụ phát hiện lỗ hổng bảo mật hiệu quả
- Tường lửa – firewall
- Các hệ thống bảo mật, mật mã như: SSL, Kerberos, VPN,…
Trang 201.4 Một số kỹ thuật phát hiện xâm nhập mạng
1.4.1 Phương pháp tiếp cận dựa trên xác suất thống kê
Các phương pháp thống kê đo lường các hành vi của người dùng và của
hệ thống bằng một số các biến được lấy mẫu theo thời gian và xây dựng các profile dựa trên các thuộc tính của hành vi bình thường Các thông số theo dõi trên thực tế sẽ được so sánh với các profile này, và các sai khác vượt qua một ngưỡng sẽ bị coi là một bất thường
Các hệ thống phát hiện bất thường như ADAM, NIDES, và SPADE có một cách tiếp cận trong đó hệ thống sẽ học một mô hình thống kê về lưu lượng bình thường của mạng, và xem xét các sai khác so với mô hình này Các mô hình thống kê thường dựa trên sự phân bố của các thành phần như các địa chỉ IP nguồn và đích, các cổng nguồn và đích trên mỗi giao tác (như các kết nối TCP, và đôi khi là các gói tin UDP và ICMP) Các thành phần có xác suất càng nhỏ thì có mức độ bất thường càng cao
Các hệ thống phát hiện bất thường sử dụng các mô hình tần suất, trong
đó xác suất của một sự kiện đã được tính toán bằng tần suất trung bình của nó trong quá trình huấn luyện dựa trên thời gian, trong đó xác suất của một sự kiện phụ thuộc vào thời điểm mà nó xảy ra lần cuối cùng Đối với mỗi thuộc tính, chúng thu thập một tập các giá trị cho phép (mọi thứ quan sát được ít nhất một lần trong quá trình huấn luyện), và sẽ coi các giá trị mới của thuộc tính đó là bất thường
1.4.2 Phương pháp tiếp tiếp cận dựa trên trạng thái
Một cách tiếp cận hơi khác so với phát hiện bất thường truyền thống là cách tiếp cận phát hiện dựa trên trạng thái đối với phát hiện xâm nhập trên mạng Phương pháp luận của nó là cố gắng phát hiện xâm nhập thông qua việc chuyển trạng thái bất thường Ưu điểm chính của cách tiếp cận này là nó
có thể phát hiện với tỷ lệ cao các tấn công đã biết và chưa biết Tại cùng một
Trang 21thời điểm, nó có một tỷ lệ cảnh báo nhầm có thể so sánh được với các phương pháp phát hiện xâm nhập dựa trên dấu hiệu Tuy nhiên nó có giá thành khá cao do phải xây dựng các mô hình chuyển trạng thái của các giao thức mạng Bên cạnh đó, các hệ thống dựa trên trạng thái đều gặp phải vấn đề lớn về kích thước của mô hình hệ thống
Một trong các bộ phân loại phát hiện bất thường áp dụng cách tiếp cận này là các mô hình mẫu Markov ẩn Đây là một máy trạng thái hữu hạn mạnh, mỗi trạng thái đại diện một mẫu các lời gọi hệ thống hoặc các hành vi của người dùng Trong mỗi trạng thái, có một giá trị xác suất của việc sinh ra các trạng thái đầu ra và một xác suất chỉ ra các trạng thái kế tiếp Trong quá trình huấn luyện, máy trạng thái hữu hạn này sẽ được cập nhật các trạng thái mà nó được học Sau đó trong pha phát hiện, các sự kiện chuyển trạng thái bất thường sẽ bị hệ thống phát hiện và phát ra cảnh báo
1.4.3 Phương pháp tiếp cận dựa trên hệ chuyên gia
Để phát hiện bất thường, các hệ chuyên gia mô tả các hành vi bình thường của người sử dụng bằng một tập các luật Các hệ thống phát hiện bất thường sử dụng hệ chuyên gia đã triển khai là ComputerWatch ( Dowell và Ramstedt, 1990) và Wisdom & Sense (Liepins và Vaccaro,1992)
ComputerWatch ( phát triển tại AT&T) sử dụng hệ chuyên gia để tổng kết các sự kiện an ninh nhạy cảm và xây dựng các luật để phát hiện các hành
vi bất thường Nó sẽ kiểm tra các hành vi của người dùng theo một tập các luật mô tả chính sách sử dụng bình thường của hệ thống, và sẽ kết luận các hành động không phù hợp với các mẫu có thể chấp nhận được là bất thường
Wisdom & Sense ( được phát triển tại phòng thí nghiệm Los Alamos National) phát hiện các bất thường có tính thống kê trong hành vi của người dùng Đầu tiên, nó xây dựng một tập các luật mô tả một cách thống kê hành vi dựa trên việc ghi lại các hành vi của người dùng theo một khoảng thời gian
Trang 22cho trước Các mẫu hành vi nhỏ sau đó được so sánh với những luật này để phát hiện các hành vi mâu thuẫn Cơ sở tri thức luật được xây dựng lại một cách định kỳ để phù hợp với các mẫu sử dụng mới
1.4.4 Phương pháp tiếp cận dựa trên khai phá dữ liệu
Khai phá dữ liệu tập trung khai thác các thông tin hữu ích tiềm tàng, chưa biết trước từ các tập dữ liệu Các hệ thống phát hiện xâm nhập có ứng dụng phương pháp khai phá dữ liệu trong phát hiện bất thường là ADAM (Audit Data Analysis and Mining, của Wu,2001, Barbara và cộng sự, 2001), IDDM (Intrusion Detection using Data Mining, của Abraham, 2001), và eBayes (của Valdes và Skinner,2000)
Trong cách tiếp cận này, việc khai phá dữ liệu tìm kiếm các phiên kết nối và nó khác so với cách tiếp cận phát hiện bất thường dựa trên việc tìm kiếm thông tin trên các gói tin riêng biệt Phương pháp này sử dụng các công
cụ và phương pháp khai phá dữ liệu để phân biệt các phiên bất thường so với các phiên bình thường theo cách sử dụng lặp đi lặp lại dữ liệu huấn luyện nó thu thập được như một tham chiếu Khai phá dữ liệu là một công nghệ có hiệu quả cao, mang lại khả năng phát hiện các tấn công chưa biết và đã biết, nhưng lại khá phức tạp và đòi hỏi giá thành cao
1.4.5 Hệ thống phát hiện xâm nhập dựa trên mạng nơ-ron
Từ năm 1998, ba nhà khoa học Jake Ryan, Meng-Jang Lin, Risto Miikkulainen đã đề xuất giải pháp xây dựng hệ thống phát hiện xâm nhập dựa trên mạng nơ- ron (Neural Network Intrusion Detector - NNID) NNID sử dụng giải thuật học lan truyền ngược (backpropagation), hoạt động trên môi trường UNIX và là IDS không trực tuyến Tại cuối mỗi ngày làm việc, người quản trị hệ thống sẽ chạy NNID để kiểm tra phiên đăng nhập của người dùng
có phù hợp với mẫu hoạt động thông thường của họ hay không Nếu hoạt
Trang 23động của người dùng không phù hợp với mẫu hoạt động thông thường thì sẽ đưa ra cảnh báo về một sự xâm nhập tới hệ thống
Các mẫu hoạt động thông thường của người sử dụng hợp pháp được gọi
là hồ sơ người dùng Để tạo ra hồ sơ người dùng, hệ thống sẽ sử dụng phương pháp thống kê, nhằm thống kê tần suất sử dụng các câu lệnh trong hệ thống của mỗi người dùng, từ đó tạo nên các biểu đồ sử dụng lệnh của từng người dùng, việc học hồ sơ người dùng cũng được thực hiện thông qua các biểu đồ này Dữ liệu để sử dụng cho việc thống kê được lấy từ các bản ghi nhật ký (log record) của hệ thống, với mục đích ghi lại toàn bộ hành vi của mỗi người dùng trong phiên đăng nhập của họ Các bản ghi này không làm ảnh hưởng tới quyền riêng tư của người dùng khi tham gia vào hệ thống Tần suất sử dụng các câu lệnh trong hệ thống hay thói quen của mỗi người dùng khi sử dụng các ứng dụng trong hệ thống được gọi là dấu vết người dùng (a “print”
of the user)
Hệ thống NNID gồm 3 tầng chuẩn (tầng đầu vào- input layer, tầng hidden layer và tầng đầu ra- output layer) Tầng đầu vào của hệ thống NNID gồm 100 nơ- ron, đại diện cho vector người dùng; tầng ẩn gồm 30 nơ- ron và tầng đầu ra có 10 nơ- ron tương ứng với 10 người dùng NNID được triển khai theo 3 giai đoạn:
ẩn Thu thập dữ liệu huấn luyện (training data): thống kê nhật ký đăng nhập của mỗi người dùng trong nhiều ngày trước đó Lập vector thể hiện tần suất sử dụng các lệnh của mỗi người dùng trong từng ngày + Huấn luyện (training): Huấn luyện NNID để nhận dạng người dùng dựa trên các vector phân bố câu lệnh
- Thực hiện (performance): Xác định người dùng dựa trên mỗi vector phân bố lệnh mới Nếu hệ thống xác định nó không thuộc các người dùng
Trang 24thường, hoặc không có xác định rõ ràng thì sẽ đưa ra cảnh báo về một sự bất thường
1.4.6 Tiếp cận dựa trên so khớp mẫu
Các thuật toán so khớp đa mẫu là trái tim của nhiều hệ thống IDS tiếp cận theo phương pháp dựa trên đặc trưng Chúng cho phép các công cụ nhanh chóng tìm kiếm nhiều mẫu cùng một lúc trong đầu vào của hệ thống IDS
Trong chương 2 chúng ta sẽ đi nghiên cứu về các kỹ thuật so khớp mẫu trong việc phát hiện xâm nhập mạng
1.5 Kết chương
Chương 1 giới thiệu tổng quan phát hiện xâm nhập mạng, khát quát về các dạng tấn công, đột nhập và các cách tiếp cận trong việc phát hiện tấn công xâm nhập mạng
Trang 25Mặc dù hiện nay dữ liệu được lưu trữ dưới nhiều hình thức khác nhau, nhưng văn bản vẫn là hình thức chủ yếu để lưu trữ và trao đổi thông tin Trong nhiều lĩnh vực như phát hiện đột nhập, trích trọn thông tin và tin sinh học, một lượng lớn dữ liệu thường được lưu trữ trong các tập tin tuyến tính Hơn nữa, khối lượng dữ liệu thu thập được tăng lên rất nhanh nên đòi hỏi phải
có các thuật toán xử lý và so khớp dữ liệu văn bản hiệu quả
Phát biểu bài toán so khớp mẫu như sau:
Cho một mẫu P có độ dài m và một mẫu văn bản T có độ dài n Hãy tìm tất cả các vị trí mà P xuất hiện trong T
Trang 26Cho một mẫu văn bản T[1…n] và một mẫu P[1…m], tìm sự xuất hiện của P trong T chính là sự so khớp mẫu giữa P và T Cả P và T đều thuộc *
* là tập hữu hạn các mẫu tự trong bảng chữ cái
P xuất hiện với độ dịch s (bắt đầu tại s+1):
P[1] = T[s+1], P[2] = T[s+2],… , P[m] = T[s+m]
Do đó, chúng ta gọi s là giá trị dịch, ngược lại, chúng ta gọi là không
có giá trị dịch
Ví dụ:
P = “abab” , T = “abcbabababbc”, P xuất hiện tại s = 4 và s = 6
Theo tính chính xác của phép so khớp, có 2 loại so khớp mẫu:
a So khớp mẫu chính xác (Exact string matching):
Cho một mẫu văn bản T có độ dài n, và một mẫu P có độ dài m Bài toán so khớp mẫu chính xác chính là việc tìm ra sự xuất hiện chính xác của P trong T
b So khớp mẫu gần đúng (Approximate string matching):
Tìm một mẫu phù hợp với mẫu gần đúng (chứ không phải là chính xác)
mà sự so khớp là tốt nhất với mẫu Một vài sai khác có thể chấp nhận được
Chính thức hơn: Đưa một văn bản T, một mẫu P, và một hàm khoảng cách D Tìm tất cả các mẫu con s của T sao cho D(s, P) < k
Sự sai khác cho phép được ở đây có thể là :
Thêm (ran rain) Bớt (brain rain) Thay thế (brain train)
Ví dụ : T = “brainaaranastraindshanb” - P = “ran”
Trang 272.1.2 Lịch sử phát triển
Trong năm 1970, S.A Cook [9] đã chứng minh một kết quả lý thuyết giúp suy ra sự tồn tại của một thuật toán để giải bài toán so khớp mẫu có thời gian tỷ lệ với (M+N) trong trường hợp xấu nhất
D.E.Knuth và V.R.Pratt [9] đã kiên trì theo đuổi kiến trúc mà Cook đã dùng để chứng minh cho định lý của ông và nhận được một thuật toán tương đối đơn giản Đồng thời J.H.Morris [9] cũng khám phá ra thuật toán này
Knuth, Morris, Pratt đã không giới thiệu thuật này của họ cho đến năm
1976, và trong thời gian này R.S.Boyer và J.S.Moore đã khám phá ra một thuật toán nhanh hơn nhiều
Tháng 6 – 1975, Alfred V Aho và Margret J Corasick đã giới thiệu thuật toán so khớp đa mẫu Aho Corasick trong tài liệu “Communications of the ACM 18”
Năm 1980, Nigel Horspool đã giới thiệu thuật toán so khớp mẫu tương
tự thuật toán KMP, nhưng đảo ngược thứ tự so sánh trong tài liệu Software - Practice & Experience, 10(6):501-506
Tháng 3 - 1987, R.M.Karp và M.O.Rabin đã giới thiệu thuật toán đơn giản gần như thuật toán Brute Force có thời gian thực thi tỉ lệ với m+n trong tài liệu IBM J Res develop – vol 31 no.2
2.1.3 Các bước xử lý
Các thuật toán so khớp mẫu thường được thực hiện theo 2 bước xử lý sau: 1) Bước tiền xử lý (Preprocessing phase): bao gồm Xử lý mẫu và khởi tạo cấu trúc dữ liệu
2) Bước tìm kiếm (Searching phase): thực hiện việc tìm kiếm mẫu trong văn bản
2.1.4 Các cách tiếp cận
Có 4 cách tiếp cận chính của các thuật toán so khớp mẫu:
Trang 28- Thuật tốn cổ điển (Classical algorithms): là các thuật tốn chủ yếu dựa vào sự so sánh giữa các ký tự
Các thuật tốn điển hình bao gồm Brute Force, Nạve,…
- Thuật tốn máy tự động hậu tố (Suffix automata algorithms): là các thuật tốn sử dụng cấu trúc dữ liệu hậu tố tự động để nhận ra tất cả các hậu tố của mẫu
Các thuật tốn điển hình bao gồm Knuth – Morris – Pratt, Boyer – Moore, Horspool,…
- Thuật tốn bit song song (Bit – Parallelism algorithms): là các thuật tốn khai thác bản chất song song của các dữ liệu bit để thực hiện các thao tác cùng lúc
Các thuật tốn điển hình bao gồm Shift – Or, …
- Thuật tốn băm (Hashing algorithms): là các thuật tốn sử dụng kỹ thuật băm, tránh việc so sánh các ký tự cĩ độ phức tạp bậc 2
Các thuật tốn điển hình bao gồm Karp – Rabin
Trang 29Tìm kiếm cơ sở dữ liệu như trong GenBank
Trong nhiễu kênh với cho phép chấp nhận được
Trong tìm kiếm mẫu hoặc vết của tấn công, đột nhập và các phần mềm độc hại trong lĩnh vực an toàn mạng và an toàn thông tin…
Các thuật toán so khớp mẫu có thể phân loại theo hai tiêu chí:
- Dựa trên 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)
- Dựa trên cơ sở thiết kế thuật toán, có ba loại: so khớp dựa trên tiền tố (prefix), so khớp hậu tố (suffix) và so khớp thừa số (factor)
Tất cả các thuật toán so khớp mẫu đều có 2 giai đoạn là: tiền xử lý và tìm kiếm Việc đánh giá các thuật toán được thực hiện dựa trên dung lượng bộ nhớ sử dụng và tốc độ so khớp Các thuật toán so khớp được phân loại theo cách tiếp cận xây dựng thuật toán và số lượng mẫu được cho
2.2 Các thuật toán so khớp trong phát hiện xâm nhập mạng
2.2.1 Thuật toán Brute Force
Thuật toán so khớp đầu tiên được biết đến là Brute Force
a Mô tả thuật toán
Trang 30Thuật toán này thử kiểm tra tất cả các vị trí trên văn bản từ 1 cho đến n – m + 1 Sau mỗi lần thử, mẫu được dịch sang bên phải một ký tự cho đến khi kiểm tra hết văn bản
b Đánh giá thuật toán
Trường hợp xấu nhất là tìm đến hết mẫu T mà không thấy Khi đó với n – m + 1 vị trí tìm kiếm, ta phải so sánh m ký tự của mẫu P với các ký tự tương ứng của mẫu T Số lần so sánh: Cmax =m*(n-m+1) Thông thường m rất nhỏ so với n nên ta có thể coi Cmax = m*n Như vậy độ phức tạp thuật toán này là O(m*n)
c Ví dụ
Sử dụng tài liệu tham khảo [9]
- Cho mẫu văn bản T : GCATCGCAGAGAGTATACAGTACG
- Mẫu mẫu P : GCAGAGAG
Trang 332.2.2 Các thuật toán so khớp đơn mẫu trong phát hiện xâm nhập mạng
2.2.2.1 Thuật toán Knuth-Morris-Pratt (KMP)
a Mô tả thuật toán
Knuth, Morris và Pratt đưa ra thuật toán KMP dựa trên tiếp cận tiền tố bằng cách không so sánh mẫu với lần lượt từng vị trí trong văn bản như trong thuật toán Brute Force mà có thể dịch chuyển mẫu sang phải văn bản một số
vị trí do sử dụng những thông tin của lần thử trước cho lần thử sau
Trang 34Bây giờ ta giả sử có bảng đối sánh thành phần (partial match table) chỉ cho chúng ta biết điểm xuất phát tiếp theo khi gặp một ví trí đối sánh sai (mismatch) F[1 m] trong đó giá trị F[i] là tổng số ký tự ta lùi lại để xét tiếp trên xâu T sau khi gặp một vị trí sai trong khi đang xét đến ký tự thứ i trong xâu mẫu tìm kiếm Tức là nếu ở vị trí m mà T[m+i] khác P[i] thì ta sẽ xét tiếp
vị trí m+i-F[i] trên xâu T Có hai ưu điểm ở đây: thứ nhất là F[0]=-1 tức là nếu P[0] là vị trí sai thì ta sẽ chuyển ngay đến ký tự tiếp theo, thứ hai là mặc
dù ta quay lại vị trí m+i-F[i] là vị trí kiểm tra tiếp theo nhưng thực sự ta chỉ cần đối sánh mẫu từ vị trí P[F[i]]
b Đánh giá thuật toán
Mảng next có thể tính trước với chi phí về thời gian là O(m)
Thuật toán KMP có chi phí về thời gian là O(m+n) với nhiều nhất là 2n-1 lần so sánh ký tự trong quá trình tìm kiếm
A
1
G -1
Trang 35Ta bắt đầu so sánh các ký tự của mẫu P với văn bản T Đến vị trí thứ 4 thấy ký tự “G” trong P khác với ký tự “T” trong văn bản thì sẽ dịch chuyển mẫu Tại vị trí này thì i = 3 và giá trị kmpNext[3] = -1, khi đó ta sẽ có bước dịch chuyển như sau:
Lần 4
G C A T C G C A G A G A G T A T A C A G T A CG
Trang 36G C A G A G A G Dịch chuyển 1
Lần 5
G C A T C G C A G A G A G T A T A C A G T A CG
G C A G A G A G Dịch chuyển 1
Lần 6
G C A T C G C A G A G A G T A T A C A G T A C G
G C A G A G A G Dịch chuyển 1
Lần 7
G C A T C G C A G A G A G T A T A C A G T A C G
G C A G A G A G Dịch chuyển 1
Lần 8
Trang 37G C A T C G C A G A G A G T A T A C A G T A C G
G C A G A G A G Dịch chuyển 1
2.2.2.2 Thuật toán Boyer-Moore Horspool (BMH)
a Mô tả thuật toán
Thuật toán Boyer Moore Horspool được công bố bởi R.Nigel Horspool Thuật toán dựa trên nền thuật toán Boyer – Moore nhưng lại thực hiện thuật toán từ trái qua phải, đạt hiệu quả cao hơn đối với thuật toán Boyer – Moore
Bảng bmBC chính là sự dịch tương ứng với kí tự bên phải cuối cùng của sự đối sánh ngay phía trước
b Đánh giá thuật toán
Thời gian chạy: Tệ nhất là O(n*m), với n là độ dài của T và m là độ dài của P