Đề tài “Tiếp cận Máy học và Hệ chuyên gia để nhận dạng, phát hiện virus máy tính” được xây dựng dựa trên các luận điểm: (i) nguồn gốc virus máy tính, (ii) nhận thức về virus máy tính và (iii) phương pháp chữa trị.
• Thứ nhất: Virus máy tính là sản phẩm của con người. Cuộc chiến giữa các AV và virus máy tính là trị chơi trí tuệ giữa các chuyên gia anti-virus (lực lượng chính diện) và hacker (lực lượng phản diện). Vì vậy khoa học trí tuệ nhân tạo là lựa chọn phù hợp cho việc xây dựng các hệ phần mềm dạy cho máy học các trường hợp nhiễm bệnh để máy tính cĩ thể tự xử lý và điều trị bệnh.
• Thứ hai: Định nghĩa virus máy tính của Bordera cĩ ba ý quan trọng:
- Virus máy tính là chỉ thị, thơng tin, dữ liệu, chương trình cĩ khả năng ghép bản thân nĩ vào tài nguyên của máy tính gây nên hiệu ứng lây nhiễm. Nghiên cứu virus máy tính phải gắn với việc phân loại đặc điểm dữ liệu của vật chủ (đối tượng bị lây nhiễm).
- Tính thực thi của virus máy tính giúp nĩ tự kích hoạt khi chương trình máy tính thi hành. Vì vậy chỉ cĩ các loại dữ liệu chứa mã lệnh thực thi mới bị virus lây nhiễm. Nĩi cách khác, khơng phải dữ liệu nào cũng bị virus ghép mã. Đây là một phát hiện quan trọng, làm cơ sở cho việc cải thiện hiệu quả của các hệ phịng chống virus máy tính.
- Hệ thống nhiễm virus bị suy giảm cơng năng, nhưng bản thân các AV cũng tiêu hao tài nguyên rất nhiều. Hậu quả là người sử dụng chưa thấy virus tác hại như thế nào, chỉ thấy các AV cồng kềnh khiến hệ thống luơn quá tải. Như vậy ngồi việc tăng cường hiệu quả chẩn đốn, cần gia tăng tốc độ nhận dạng và cải thiện khả năng dự báo virus mới của hệ.
- 18 -
• Thứ ba: Cơng việc của chuyên gia anti-virus chữa bệnh cho máy tính giống như bác sĩ chữa bệnh cho các cơ thể sống. Để giúp máy tính tự khám chữa bệnh, anti-virus sẽđược xây dựng trên cơ sở hệ chuyên gia, là các hệ thống tích hợp kinh nghiệm của chuyên gia trong thế giới thực cùng với cơ chế phân tích và suy luận chặt chẽđểđưa ra quyết định tốt nhất.
2.5.2. Giải pháp của đề tài
Mỗi cơ chế chẩn đốn virus máy tính (dựa vào chuỗi mã, hành vi hay dựa vào ý định) đều cĩ ưu nhược điểm riêng. Tiếp cận máy học và hệ chuyên gia sẽ kết hợp các ưu điểm các tiếp cận đã biết và khắc phục yếu kém của từng phương pháp.
Áp dụng chiến lược “chia để trị”, bài tốn nhận dạng virus máy tính sẽ được phân hoạch thành các bài tốn con với mơ hình học phù hợp. Mỗi mơ hình học sẽ áp dụng riêng lẻ hoặc phối hợp các tiếp cận để đạt được kết quả tốt nhất. Các tiếp cận nhận dạng virus máy tính sử dụng cho các bài tốn con là:
• Tiếp cận chuỗi mã: Tổ chức CSDL chuỗi mã virus, xây dựng các thuật giải truy vấn để nhận dạng chính xác các mẫu virus đã cập nhật.
• Tiếp cận máy học: Tổ chức CSTT nhận dạng (gồm CSDL virus và các luật dẫn xuất), xây dựng các mơ hình học. Tri thức thu được (mẫu virus và luật nhận dạng mới) sẽđược bổ sung vào CSTT chung, sau đĩ chuyển kết quả nhận dạng sang tiếp cận chuỗi mã.
• Phối hợp tiếp cận hành vi và tiếp cận máy học: Tổ chức tập hành vi, định nghĩa khái niệm virus dựa trên tập hành vi sử dụng cơ chế học khái niệm. Tăng trưởng cơ sở tri thức sau mỗi lần học. Chuyển kết quả sang tiếp cận chuỗi mã.
• Phối hợp tiếp cận ý định và tiếp cận máy học: Tổ chức mơ hình kết hợp giữa CSDL (chứa trạng thái, nội dung đối tượng) và CSTT (lập luận trên tập hành vi thay đổi trạng thái và nội dung đối tượng). Kết quả quá trình lập luận sẽđược chuyển sang tiếp cận chuỗi mã.
2.6. Các hệ cơ sở tri thức 2.6.1. Các Hệ chuyên gia
Hệ chuyên gia (Expert System) là các hệ phần mềm dựa trên tri thức cho phép mơ hình hĩa tri thức chuyên gia để giải quyết các vấn đề phức tạp. Nếu như các chương trình truyền thống được cấu tạo từdữ liệu và thuật giải:
Data Structures + Algorithms = Program
Hệ chuyên gia nĩi riêng, chương trình trí tuệ nhân tạo nĩi chung, được cấu tạo từcơ sở tri thức (knowledge based) và động cơ suy diễn (inference engine):
Knowledge Based + Inference Engine = Expert System
Hình 2.3 mơ tả các thành phần cơ bản của một hệ chuyên gia. Trong mơ hình này, CSTT và động cơ suy diễn tạo nên thành phần cốt lõi của hệ.
Chuyên gia - Các hình thức học - Rút luật Tiếp nhận tri thức - Các sự kiện - Các luật Cơ sở tri thức - Tìm kiếm - Suy luận cĩ lý Động cơ suy diễn - Hội thoại - Tham vấn Giải thích Cơ sở dữ liệu Người dùng Thành phần cốt lõi của hệ
Mức giao tiếp chuyên gia
Mức giao tiếp người dùng
- 20 -
2.6.1.1. Cơ sở tri thức
Cơ sở tri thức là tập hợp các tri thức liên quan đến vấn đề mà chương trình quan tâm giải quyết. Cơ sở tri thức chứa các sự kiện, các luật, các khái niệm, các quan hệ… được biểu diễn thích hợp dùng cho động cơ suy diễn sử dụng. Các dạng biểu diễn tri thức phổ biến là mơ hình đối tượng - thuộc tính - giá trị, mơ hình luật dẫn, mơ hình mạng ngữ nghĩa, mơ hình frame và mơ hình logic.
2.6.1.2. Động cơ suy diễn
Động cơ suy diễn là các phương pháp vận dụng tri thức để giải quyết vấn đề. Động cơ suy diễn giống như loại động cơ tổng quát được chuẩn hĩa để cĩ thể vận hành nhiều loại xe. Nhiên liệu dùng cho động cơ suy diễn là tri thức lấy từ CSTT, hoặc từ bên ngồi qua các thiết lập, lựa chọn, xác nhận của người khai thác hệ thống. Tùy theo đặc điểm của CSTT, động cơ suy diễn được thiết kế thích hợp với hai kiểu suy diễn chính là suy diễn tiến hoặc suy diễn lùi.
Suy diễn tiến bắt đầu bằng tập sự kiện đã biết, rút ra các sự kiện mới cĩ giả thuyết khớp với tập luật cho đến khi đạt trạng thái đích, hoặc hết tập luật. Suy diễn lùi là chiến lược suy diễn để chứng minh một giả thuyết khơng được luật nào cung cấp, bằng cách thu thập các thơng tin hỗ trợ cho đến khi tìm thấy lời giải [1].
Tiếp cận của đề tài sử dụng quá trình suy diễn tiến bằng cách vận dụng tập luật nhận dạng được xây dựng từ trước để phát hiện các virus đã biết. Suy diễn lùi khám phá các luật tiềm ẩn trong dữ liệu để tìm kiếm virus lạ đang ẩn náu trên hệ thống khi các triệu chứng nhiễm bệnh khơng được quá trình suy diễn tiến phát hiện. Nhìn chung, kết hợp cả hai kỹ thuật sẽ cho kết quả tốt nhất.
2.6.2. Các hệ Khám phá tri thức từ cơ sở dữ liệu 2.6.2.1. Giới thiệu
Sự bùng nổ của các CSDL lớn vượt quá khả năng diễn dịch và lĩnh hội của con người. Khám phá tri thức từ cơ sở dữ liệu (KDD – Knowledge Discovery from Database) là các hệ phân tích dữ liệu tựđộng, khám phá các quy luật tiềm ẩn trong CSDL nhằm tạo ra tri thức hữu dụng hỗ trợ cho tiến trình ra quyết định.
Mục đích chính của khám phá dữ liệu là tiên đốn và mơ tả. Tiên đốn giúp phân tích dữ liệu và tìm luật, dựđốn dữ liệu chưa biết hay dữ liệu mới trong tương lai. Mơ tả là quá trình tìm các mẫu mà con người cĩ thể hiểu được đểđặc tả dữ liệu.
2.6.2.2. Tiến trình khám phá tri thức
Tiến trình khám phá tri thức gồm các giai đoạn: Chọn dữ liệu (Data selection), Tinh lọc dữ liệu (Cleaning), Làm giàu dữ liệu (Enrichment), Mã hĩa dữ liệu (Coding), Khai thác dữ liệu (Data mining) và Báo cáo (Reporting) [54]. Trong mỗi giai đoạn, hệ cĩ thể đi lùi qua một số giai đoạn nhằm cải tiến dữ liệu để đạt được kết quả tốt nhất (Hình 2.4). Mỗi giai đoạn cĩ các hoạt động như sau:
• Chọn dữ liệu: thao tác trên dữ liệu, tách nhặt thơng tin cần thiết từ CSDL và tổ chức lại cho phù hợp với hệ.
• Tinh lọc: thao tác lọc nhiễu chống dữ liệu trùng lặp (de-duplication) và tinh chế dữ liệu (data refinement).
• Làm giàu: trong một số trường hợp, cần kết hợp dữ liệu hiện tại với các nguồn thơng tin khác để gia tăng lượng dữ liệu cần cho hệ thống.
• Mã hĩa: chuyển đổi kiểu dữ liệu về dạng thuận tiện để tiến hành các thuật tốn khám phá dữ liệu. Yêu cầu thơng tin Thực hiện Chọn
dữ liệu Tinh lọc Làm giàu Mã hĩa Khai thác Báo cáo
Dữ liệu bổ sung Dữ liệu
thao tác Quay lui
- 22 -
• Khai thác dữ liệu:
- Luật kết hợp (association rule): Phân tích dữ liệu, tìm mối liên hệ giữa các biến trong mơ hình, các trường trong CSDL.
- Phân lớp (classification): Phân tích dữ liệu để tìm hàm ánh xạ điểm dữ liệu vào một trong các lớp đã định nghĩa.
- Phân cụm (clustering):Phân tích dữ liệu, phát hiện sự giống nhau giữa các mục dữ liệu để gom chúng thành từng cụm (nhĩm).
- Dự báo (prediction): Phân tích dữ liệu, xây dựng các mơ hình hồi quy để tiên đốn điều gì sẽ xảy ra.
- Tổng kết: Phân tích dữ liệu, phát hiện phương pháp tìm dạng tối giản cho một mơ tả tập dữ liệu.
• Báo cáo: trình bày kết quả khám phá và khai thác dữ liệu bằng các báo cáo dạng văn bản hoặc báo biểu đồ họa.
2.6.3. Các Hệ học
Trong nhiều tình huống, tri thức là khơng cĩ sẵn. Phần lớn người lập trình khơng cĩ đủ kiến thức thuộc về lĩnh vực chuyên mơn của phần mềm nên khơng biết cách mơ tả các luật trong từng lĩnh vực cụ thể. Do thiếu tri thức nên bài tốn khơng được biểu diễn tường minh theo luật, sự kiện hay các quan hệ. Vì vậy cần xây dựng các hệ thống học cĩ khả năng thu nhận kiến thức từ các chuyên gia và học tập từ các ví dụ do chuyên gia cung cấp.
Máy học (Machine Learning) là các hệ chương trình cĩ khả năng thực thi cơng việc dựa trên kinh nghiệm, tự khám phá tri thức bằng các cấu trúc dữ liệu và thuật giải đặc biệt. Cĩ hai tiếp cận cho hệ thống học là học từ ký hiệu và học từ dữ liệu số. Học từ ký hiệu bao gồm việc hình thức hĩa, sửa chữa các luật tường minh, sự kiện và các quan hệ. Học từ dữ liệu số áp dụng cho các hệ thống sử dụng các mơ hình cĩ liên quan đến các kỹ thuật tối ưu các tham số [2]. Các hệ học cĩ ưu điểm:
- Xử lý dữ liệu với khối lượng lớn.
- Phát sinh luật chuyên gia từ dữ liệu, thích hợp cho các trường hợp cần tham khảo ý kiến chuyên gia tư vấn cho các lĩnh vực cụ thể, cĩ tính chuyên sâu. - Hỗ trợ quyết định xử lý liên quan đến kinh nghiệm của con người…
Các hệ học cĩ hai giai đoạn cơ bản: học dữ liệu và xử lý dữ liệu. Học dữ liệu là quá trình phân tích và tìm ra những điểm tương đồng trong dữ liệu để sản sinh luật. Giai đoạn xử lý ước lượng đặc tính dữ liệu mới dựa trên luật đã được phát sinh ở giai đoạn học. Cĩ thể chia các quá trình học thành hai dạng chính: học cĩ giám sát (suppervised learning) và học khơng giám sát (unsuppervised learning).
2.6.3.1. Học giám sát
Quá trình học giám sát được tiến hành trên một tập dữ liệu mẫu với giá trị được phân loại (gán nhãn) sẵn. Tập dữ liệu luyện gồm:
S = {xi, cj | i = 1,…, M; j = 1,…, C}
Trong đĩ xi là vectơ n chiều (gọi là đặc trưng của dữ liệu)
cj là số lớp biết trước
Thuật tốn học sẽ tìm kiếm trên khơng gian giả thuyết giải pháp tốt nhất cho ánh xạ f với c = f(x). Kết quả tìm được phản ánh đặc trưng của mẫu dữ liệu. Các thuật tốn học tìm cách phát sinh một tập giả thuyết bằng cách tìm ra các đặc trưng và giá trị tương ứng với mẫu dữ liệu của mỗi lớp. Sau đĩ áp dụng các tập giả thuyết tìm được để phân loại (classification) các mẫu dữ liệu mới vào các lớp tương ứng.
Bài tốn nhận dạng virus đã biết của MAV là quá trình học cĩ giám sát. Thư viện S chứa k mẫu virus đã biết, mỗi mẫu virus xi cĩ p thuộc tính. Mục tiêu của quá trình chẩn đốn virus là xác định xem đối tượng cĩ nhiễm virus xi hay khơng và nếu nhiễm thì thuộc lớp virus đã biết trước cj nào.
2.6.3.2. Học khơng giám sát
Thay vì cĩ mục tiêu tường minh, hệ tìm kiếm quy luật hình thành các mẫu và khám phá mối quan hệ của dữ liệu. Các bài tốn gom cụm dữ liệu (clustering) đều thuộc dạng này. Trong mơ hình học cĩ giám sát, số các lớp là biết trước. Ngược lại, trong mơ hình học khơng giám sát, mẫu học chưa được gán nhãn nên nĩi chung, số
- 24 -
lớp chưa biết trước. Các hệ học loại này cĩ khả năng tự giám sát quá trình hình thành và phát sinh của các lớp. Cơng tác gán nhãn được thực hiện tựđộng một cách hệ thống và phân biệt với các lớp khác.
Ở giai đoạn học dữ liệu, MAV sử dụng một cấu trúc dữ liệu và thuật tốn đặc biệt để gán virus vào các nhĩm cĩ cùng đặc trưng. Tùy thuộc vào đặc tính phân bố của dữ liệu, số lớp kết quả và giá trị nhãn lớp sẽ thay đổi. Với mơ hình học khơng giám sát này, khơng gian tìm kiếm được giảm thiểu và MAV cĩ thể nhận dạng nhanh các đối tượng cĩ cùng đặc trưng với các nhĩm virus (xem Chương 4).
2.6.3.3. Các hình thức học
• Học vẹt: Hệ tiếp nhận tập khẳng định của các quyết định đúng. Nếu tạo ra một quyết định khơng đúng, hệ sẽ đưa ra các luật/quan hệ đúng đã sử dụng. Hình thức học vẹt cho phép chuyên gia cung cấp tri thức qua tương tác.
Bài tốn chẩn đốn lớp C-class của MAV hoạt động theo hình thức học vẹt. Thư viện virus chứa các khẳng định đúng trên các mẫu virus trong thế giới thực. Nếu so khớp đúng, hệ sẽ phát cảnh báo (mẫu dữ liệu cĩ dính líu/quan hệ
với một virus cụ thể) và yêu cầu xác nhận hình thức xử lý. Người khai thác sẽ
cung cấp tri thức cho hệ thực hiện các thao tác tiếp theo.
• Học bằng chỉ dẫn: Thay vì đưa ra một luật cụ thể cần áp dụng vào tình huống cho trước, hệ thống được cung cấp các chỉ dẫn tổng quát. Hệ tựđề ra cách biến đổi trừu tượng thành các luật phổ dụng.
Trong bài tốn chẩn đốn lớp B-class, hệ được cung cấp các chỉ dẫn định nghĩa các thao tác của mẫu tin khởi động và các hành vi cơ bản của boot virus. Khi phát hiện hành vi virus, thơng tin đối tượng mới sẽ được chuyển thành luật, bổ sung vào tập luật nhận dạng chung của hệ.
• Học bằng quy nạp: Hệ thống được cung cấp một tập các ví dụ và kết luận của từng ví dụ. Hệ liên tục học các luật và quan hệ nhằm xử lý và rút ra kết luận cho từng ví dụ mới.
Trong MAV, mỗi mẫu tin trong CSDL sử dụng cho lớp A-class được tổ chức thành bộ 〈Ví dụ dữ liệu - Kết luận virus〉. Ngồi cơng dụng nhận dạng virus theo mẫu đã biết, MAV cịn sử dụng tập các ví dụ này như bộ dữ liệu luyện nhằm rút ra các quy luật đặc trưng và mối quan hệ giữa chúng, làm cơ sở cho quá trình nhận dạng các virus mới chưa cĩ trong thư viện mẫu.
• Học bằng tương tự: Hệ thống được cung cấp đáp ứng đúng cho các tác vụ tương tự nhưng khơng giống nhau. Hệ thống cần thích ứng đáp ứng trước đĩ nhằm tạo ra một luật mới cĩ khả năng áp dụng cho tình huống mới.
Khi phát hiện virus đã biết, MAV xử lý virus bằng cách thi hành tập các hành