Luận văn Nghiên cứu giải pháp lọc nội dung internet tại máy tính cá nhân và xây dựng phần mềm

Hiện nay, Việt Nam có một sốphần mềm lọc nội dung truy cập Internet cho người dùng cá nhânđược nhiều người biết đến như:VwebFilter (VWF), DWK., Trong đó VWF là sản phẩ m phần mề m của Công ty Điện toán và Truyền sốliệu VDC có lượng người sửdụng khá lớn, sau 6 tháng kểtừkhi phần mềm được cung cấp ra ngoài xã hội đã có khoảng 1 triệu lượt người sửdụng và trên 80% phản hồi nhận xétđánh giá sản phẩm tốt.

pdf71 trang | Chia sẻ: lylyngoc | Lượt xem: 2908 | Lượt tải: 3download
Bạn đang xem trước 20 trang tài liệu Luận văn Nghiên cứu giải pháp lọc nội dung internet tại máy tính cá nhân và xây dựng phần mềm, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ng việc nâng cấp hệ thống khi cần thiết. Kiến trúc một hệ thống lọc nội dung tại ISP cơ bản bao gồm các thành phần như sau [ 1, 3, 14, 15, 16, 17 ]: Tường lửa ISP Người dùng BlackList WhiteList 15 Hình 3.2. Kiến trúc hệ thống lọc nội dung Internet tại ISP 3.1.2. Hoạt động Trong quá trình sử dụng Internet, dữ liệu trao đổi giữa người sử dụng và Internet sẽ được truyền tải qua (1) và (2). Dữ liệu được kiểm soát bởi hệ thống tường lửa lọc nội dung của ISP cung cấp dịch vụ. Dữ liệu được tường lửa kiểm soát theo cơ chế sau:  Gói tin đầu tiên từ người dùng gửi yêu cầu truy cập Internet và ngược lại sẽ được tường lửa xử lý đưa vào nhánh (3): o Thông tin của gói tin (IP,URL) được thành phần Lọc cụ thể, lọc loại trừ kiểm tra trong Kho dữ liệu lọc. o Nếu gói tin có thông tin về IP, URL tồn tại trong kho thì thành phần Lọc cụ thể, lọc loại trừ sẽ gửi kết quả theo nhánh (3) về Bộ quyết định để thực hiện chặn truy cập (danh sách đen) hoặc chuyển tiếp các gói tin còn lại không qua kiểm soát của tường lửa (danh sách trắng). o Trong trường hợp ngược lại, gói tin sẽ được chuyển tiếp qua (5) đến thành phần Proxy cache để tường lửa tiếp tục kiểm soát về mặt nội dung đối với truy cập này. 16  Trong trường hợp gói tin thứ nhất có thông tin về IP, URL không tồn tại trong Kho dữ liệu lọc, từ gói tin thứ 2 trở đi của tiến trình sẽ được tường lửa xử lý đưa vào nhánh (6): o Thành phần Proxy cache thực hiện tổng hợp các gói tin và chuyển tiếp qua (7) tới thành phần Lọc nội dung. o Thành phần Lọc nội dung trên cơ sở dữ liệu đã được tổng hợp thực hiện kiểm tra nội dung thông qua Tập luật: o Kiểu dữ liệu: ảnh, text, movie,… o Từ và cụm từ: bao gồm trọng số. o Biểu thức tính điểm: các từ, cụm từ có trọng số (âm, dương) được đưa vào biểu thức để tính toán với một ngưỡng cho trước. o Căn cứ vào kết quả phân tích thông tin đạt được, thành phần Lọc nội dung gửi kết quả phân tích về Bộ quyết định qua (9) và căn cứ vào các tiêu chí đặt ra sẽ bổ sung IP,URL vào Kho dữ liệu lọc qua (10).  Bộ quyết định: o Bộ quyết định có thực hiện chuyển tiếp các gói tin vào nhánh (3) hoặc nhánh (6) theo tính chất gói tin đưa vào. o Trên cơ sở kết quả các thành phần Lọc cụ thể, lọc loại trừ và Lọc nội dung trả ra, Bộ quyết định sẽ quyết định truy cập đang thực hiện được tiếp tục hay chặn lại. Ngoài ra để đảm bảo hệ thống tường lửa đáp ứng thời gian thực, nếu quá ngưỡng cho phép mà chưa có kết quả trả ra từ các thành phần khác thì Bộ quyết định sẽ tự đưa ra quyết định dựa trên kết quả hiện có và gửi thông báo cho các thành phần liên quan qua (3), (9). 3.1.3. Phân tích các thành phần Bộ quyết định Bộ quyết định là thành phần trung tâm của tường lửa lọc nội dung. Hoạt động của các thành phần khác trong tường lửa đều được kiểm soát bởi thành phần này. Chức năng chính của Bộ quyết định là đưa ra các quyết định liên quan tới hoạt động của tường lửa, bao gồm: o Quyết định gói tin có thuộc diện cần tường lửa xử lý hay không. 17 o Quyết định gói tin sẽ được chuyển tiếp cho các thành phần khác (theo nhánh (3) hoặc nhánh (6)). o Quyết định công việc tường lửa phải thực hiện tiếp trên cơ sở kết quả trả về từ nhánh (3) và nhánh (9): trong đó kết quả trả về từ nhánh (9) là kết quả trực tiếp của các bộ phận trong thành phần Lọc nội dung (bộ phận xử lý về kiểu dữ liệu, xử lý về từ và cụm từ, …) o Quyết định công việc của tường lửa phải thực hiện khi các thành phần gửi kết quả chậm hơn thời gian quy định. o Quyết định các phần dữ liệu đã qua kiểm duyệt được chuyển tới người sử dụng khi dữ liệu chưa tập hợp đầy đủ. Lọc cụ thể, lọc loại trừ Thành phần lọc cụ thể, lọc loại trừ là thành phần cơ bản của hệ thống tường lửa lọc nội dung. Thành phần này thực hiện việc lọc trang web theo chức năng cơ bản: lọc theo địa chỉ IP và địa chỉ URL. Việc duy trì thành phần cơ bản của hệ thống tường lửa trong hệ thống tường lửa lọc nội dung đảm bảo cho việc kiểm soát các trang web đã biết được thực hiện với thời gian là nhanh nhất. Các địa chỉ IP, URL được lưu trữ trong Kho dữ liệu lọc và được phân thành hai loại: danh sách đen và danh sách trắng. Mỗi truy cập của người dùng ra Internet sẽ được kiểm soát một lần bởi thành phần Lọc cụ thể, lọc loại trừ thông qua gói tin đầu tiên đi qua. Các kết quả đạt được: o IP, URL của gói tin nằm trong danh sách đen: truy cập của người dùng bị chặn lại. o IP, URL của gói tin nằm trong danh sách trắng: truy cập của người dùng là hợp pháp, mọi gói tin tiếp theo trong tiến trình truy cập sẽ được chuyển tiếp qua mà không cần phải kiểm soát. o IP, URL của gói tin không nằm trong 2 danh sách: gói tin sẽ được chuyển sang thành phần Lọc nội dung để tiếp tục kiểm soát các gói tin tiếp theo của tiến trình truy cập. Trong trường hợp kết quả đạt được là trường hợp 3: do thông tin IP, URL của các gói tin tiếp theo hoàn toàn giống với gói tin đầu nên việc không cần sử dụng thành phần Lọc cụ thể, lọc loại trừ để kiểm soát sẽ giảm thiểu thời gian bị trì hoãn khi duyệt web của người dùng do hệ thống lọc nội dung gây ra. 18 Kho dữ liệu lọc được bổ sung, cập nhật thường xuyên từ kết quả của thành phần Lọc nội dung. Proxy cache: Proxy cache là cách gọi tắt của “Web proxy cache”, chức năng chính của nó là thực hiện lưu trữ các trang web được truyền qua nó, và khi có một yêu cầu mới về trang web đó thì sẽ được đáp ứng nhanh hơn. Proxy cache đã làm giảm đáng kể về băng thông và thời gian đáp ứng yêu cầu của người dùng khi duyệt web. Đây được coi là vấn đề cố hữu trong giải quyết vấn đề lưu lượng Internet. Bởi vì trang web lúc này đã được lưu lại trên máy chủ (proxy) cục bộ nên khi có một yêu cầu mới tới trang web nó sẽ được đáp ứng ngay từ máy chủ cục bộ. Hiệu năng của máy chủ (proxy) càng được thể hiện rõ nét khi có nhiều trang web được duyệt trên cùng một địa chỉ website. Proxy cache có cơ chế lưu trữ các hình ảnh và file con của các trang web đã được duyệt qua, khi người sử dụng chuyển qua duyệt một trang web mới nhưng trên cùng site đó, nếu trong trang web mới có sử dụng lại các hình ảnh đã có của trang web cũ thì proxy cache sẽ tự động cung cấp tới người sử dụng mà không qua việc lấy lại từ site. Trong hệ thống tường lửa lọc nội dung proxy cache được sử dụng với các mục đích sau: o Tổng hợp các gói tin thành một trang web có nội dung hoàn chỉnh cung cấp đầu vào cho thành phần lọc nội dung. o Tăng tốc độ trong việc phân tích các trang web khác trên cùng một site: do không phải lấy lại những file đã có. o Giảm thiểu thời gian bị trì hoãn khi duyệt web của người dùng do hệ thống lọc nội dung gây ra. Lọc nội dung: Thành phần Lọc nội dung là thành phần chính của tường lửa lọc nội dung. Một tường lửa thông thường sẽ thực hiện lọc các trang web thông qua thông tin đã biết của trang web đó (IP, URL). Tuy nhiên, số lượng trang web thì rất lớn và không ngừng phát triển nên nhiều trang web đi qua được tường lửa thông thường mà không được kiểm soát về nội dung. Thành phần Lọc nội dung là thành phần bổ sung cho tường lửa thông thường, thực hiện nhiệm vụ kiểm soát những trang web hiện đang chưa có thông tin lưu trữ trong Kho dữ liệu lọc. 19 Đối với tường lửa lọc nội dung thì mọi trang web đều được kiểm duyệt, tuy nhiên những trang web được kiểm duyệt bởi thành phần Lọc nội dung sẽ chỉ mang tính tương đối bởi các thuật toán lọc nội dung hiện nay đều chưa đạt độ chính xác tuyệt đối. Thành phần lọc nội dung bao gồm nhiều thành phần con, mỗi thành phần thực hiện một chức năng riêng biệt: xử lý dữ liệu dạng text, dạng hình ảnh, dạng nén,… 3.2. Giải pháp tại cổng Internet của mạng LAN 3.2.1. Kiến trúc tổng quan Về cơ bản giải pháp lọc nội dung cho một mạng LAN của một đơn vị (trường học, doanh nghiệp, điểm truy cập Internet công cộng,…) tương tự như hệ thống lọc nội dung tại ISP nhưng có quy mô nhỏ hơn [ 3, 14, 15, 16, 17 ]. Một hệ thống lọc nội dung bao gồm các thành phần: o Bộ quyết định. o Lọc cụ thể, lọc loại trừ. o Proxy cache. o Lọc nội dung. Hình 3.3. Gateway Filter lọc cho một mạng LAN 3.2.2. Giải thuật và cơ chế hoạt động Giải thuật lọc nội dung (text/html) cho cổng Internet của một mạng LAN (hiện đang được công ty Điện toán và Truyền số liệu áp dụng triển khai trên 20.000 đại lý Internet công cộng): 20 Hình 3.4. Sơ đồ giải thuật lọc cho mạng LAN 1 21 Module WebFilter sẽ lắng nghe kết nối tại port 8080, nếu nhận được kết nối và request HTTP từ client thì nó sẽ kiểm tra xem có phải kết nối này tới Proxy (người dùng tự thiết lập thông số Proxy bằng tay, hoặc Firewall tự động chuyển kết nối port 80 sang port 8080) nếu sai thì hủy kết nối, nếu đúng kiểm tra URL. Chi tiết giải thuật được mô tả trong hình. Các bước chính thực hiện của giải thuật gồm: o WebFilter thực hiện kiểm tra xác định nhận dạng của người dùng bằng cách thử: xác thực header proxy, NTLM, nhận dạng server. o Kiểm tra URL có chứa nội dung hợp lệ hay không? o Bộ lọc tạm thời có cho qua hay không? o IP của client, username, domain request hoặc URL có nằm trong danh sách được phép hay không? o Có cần quét nội dung trang web tương ứng với URL không? o Có phải trang web là ngoại lệ hoặc trong chế độ cookie bypass và request không phải là banned hoặc trong chế độ quét nội dung không? Nếu đúng thì chuyển yêu cầu header của client tới proxy, nếu sai thì kiểm tra tiếp: cho phép banner hoặc HTTPS request và không trong chế độ bypass/exception? Nếu đúng thì kiểm tra xem request có phải banned không và kiểm tra HTTPS. Nếu sai thì chuyển yêu cầu header của client tới proxy, nhận các header trả lại từ proxy (chuyển sang sơ đồ giải thuật tiếp theo). 22 Hình 3.5. Sơ đồ giải thuật lọc cho mạng LAN 2 o Có trong chế độ bypass? o Có trong chế độ exception? o Kiểm tra MIME type trả lại. o Kiểm tra phần mở rộng trả lại. o Kiểm tra Proxy header o Chuyển sang sơ đồ giải thuật tiếp theo. 23 Hình 3.6. Sơ đồ giải thuật lọc cho mạng LAN 3 o Kiểm tra: cache URL là enabled và không trong chế độ scanning; hoặc cache URL được quét là enabled. Nếu đúng, kiểm tra xem URL có nằm trong clean cache không? Nếu URL nằm trong clean cache thì chuyển sang sơ đồ giải thuật tiếp theo. o Tải body từ Proxy o Có trong chế độ scanning? Nếu có: thực hiện quét nội dung. o Có trong chế độ bypass hoặc exception? Nếu không: thực hiện lọc nội dung nếu kiểu MIME là plaintext. o Chuyển sang sơ đồ giải thuật tiếp theo. 24 Hình 3.7. Sơ đồ giải thuật lọc cho mạng LAN 4 o Tải phần còn lại của body từ proxy (nếu có). o Nếu URL không có trong cache, header phù hợp, và nội dung dạng text hoặc caching URL đã được search, thì thêm URL vào cache. o Forward header từ Proxy tới client. o Kiểm tra xem phần body đã được tải xuống và lưu trữ hay chưa. Nếu rồi thì gửi cho client phần nội dung bypass. Nếu chưa thì forward body từ proxy tới client 3.3. Giải pháp trực tiếp trên máy tính cá nhân Giải pháp tường lửa lọc nội dung trên máy tính cá nhân là giải pháp triển khai trực tiếp trên từng máy tính, nó thực hiện kiểm soát nội dung truy cập Internet vào/ra trên máy tính đó. Có thể nói đây là giải pháp có tính ‘phân tán’ cao nhất, vì hoạt động quản lý trực tiếp trên một máy tính thay vì cổng Internet mạng LAN, cổng Internet quốc gia. Phần mềm lọc nội dung truy cập Internet sẽ được cài đặt trực tiếp trên hệ điều hành của người dùng. Thành phần của tường lửa lọc nội dung cá nhân bao gồm: 25 o Thành phần Lấy nội dung. o Thành phần Bộ quyết định. o Thành phần Lọc cụ thể, lọc loại trừ. o Thành phần Lọc nội dung. Về cơ bản tường lửa lọc nội dung cá nhân được xây dựng gồm các thành phần như trên nhưng do áp dụng biện pháp khác nhau tại thành phần Lấy nội dung nên có thể chia ra thành những loại sau: 3.3.1. User mode: lấy nội dung từ lớp ứng dụng (Application) Việc kiểm soát nội dung truy cập Internet của người sử dụng sẽ được thực hiện trực tiếp trên các ứng dụng (trình duyệt) [ 3 ]. Tường lửa lọc nội dung thực hiện lấy các thông tin: o Địa chỉ truy cập. o Dữ liệu trong thẻ meta. o Nội dung: text, hình ảnh,… 26 Hình 3.8. Nội dung kiểm soát lấy từ cửa sổ trình duyệt Giải thuật: 27 Hình 3.9. Sơ đồ giải thuật User mode (lấy nội dung lớp ứng dụng) 28 Hoạt động: Tường lửa định kỳ kiểm tra các trình duyệt đang mở, với mỗi cửa sổ trình duyệt đang mở lấy về PID và URL. Thực hiện đối soát PID, URL với Kho dữ liệu (PID,URL): - Nếu tồn tại trong kho: kết thúc xử lý. - Nếu không tồn tại: thông tin PID, URL chuyển tiếp sang thành phần Lọc cụ thể, lọc loại trừ. Thông tin URL được đối soát trong Kho dữ liệu lọc (URL): - Nếu tồn tại trong kho: thông tin được chuyển tới Bộ quyết định xử lý. - Nếu không tồn tại: lấy dữ liệu của thẻ meta kiểm tra. Đối soát dữ liệu thẻ meta với Kho dữ liệu lọc (thẻ Meta): - Kết quả được chuyển Bộ quyết định xử lý. Bộ quyết định sau khi tiếp nhận thông tin của thành phần: - Lọc cụ thể, lọc loại trừ: quyết định chặn (danh sách đen) hoặc cho phép truy cập (danh sách trắng); cập nhật thông tin PID,URL tại kho dữ liệu (PID,URL). - Lọc nội dung (meta): o Chặn truy cập và cập nhật thông tin PID,URL tại kho dữ liệu (PID,URL). o Không chặn truy cập và điều khiển thành phần Lọc nội dung thực hiện Lấy dữ liệu và kiểm tra. Lọc nội dung đối soát Kho dữ liệu lọc: - Kết quả được chuyển Bộ quyết định xử lý. Nhược điểm: Phụ thuộc vào trình duyệt: để có thể lấy thông tin từ trình duyệt, tường lửa lọc nội dung cần biết tên và cấu trúc của trình duyệt để có thể lấy được các thông tin tương ứng. Khi xác định nội dung trang web thuộc diện không được truy cập thì trang web thường đã hiển thị đầy đủ trên trình duyệt. 29 Xử lý trình duyệt và cache trang web khi nội dung truy cập không được phép gặp nhiều khó khăn. 3.3.2. User Mode: lấy nội dung từ lớp phiên (Session) Còn được gọi là “Circuit Level Gateway”, hoạt động ở lớp session của mô hình OSI, hoặc lớp TCP của mô hình TCP/IP. Chúng giám sát việc bắt tay TCP (TCP handshaking) giữa các gói để xác định rằng một phiên yêu cầu là phù hợp. Tường lửa mức độ này không lọc các gói tuy nhiên dữ liệu trao đổi tại lớp phiên thuộc diện tường minh [ 7, 8, 9, 10, 11, 12, 13 ]. Tường lửa mức độ này sẽ xác định kết nối giữa hai đầu cuối có hợp lệ theo các luật hay không, sau đó mở một session (phiên làm việc) và cho phép luồng lưu thông và có sự giới hạn thời gian. Các thông tin kiểm soát lớp phiên: • Cổng nguồn, cổng đích. • Thời gian trong ngày (time of day). • Giao thức (protocol). • Người dùng (user). • Mật khẩu (password). • Nội dung. Để thực hiện kiểm soát, tường lửa lọc nội dung cần hooking vào một số thư viện của hệ thống mức user mode: 30 Hình 3.10. Hook Firewall ở User Mode Giải thuật: 31 Hình 3.11. Sơ đồ giải thuật User mode (lấy nội dung lớp phiên) 32 3.3.3. Kernel mode: lấy nội dung từ lớp mạng (IP) Tường lửa lọc nội dung tại mức kernel mode về cơ bản tương tự như mức user mode. Tuy nhiên, do tại các mức khác nhau nên có một số thay đổi đối với thông tin kiểm soát [ 7, 8, 9, 10, 11, 12, 13 ]: • Địa chỉ nguồn, địa chỉ đích. • Cổng nguồn, cổng đích. • Giao thức (protocol). • Nội dung. Nội dung kiểm soát thêm thông tin địa chỉ nguồn, địa chỉ đích nhưng không kiểm soát được thông tin về người sử dụng, mật khẩu như tường lửa mức ứng dụng user mode. Để thực hiện lọc nội dung mức kernel mode, tường lửa lọc nội dung cần can thiệp vào giao thức TCP/IP như hình vẽ dưới đây: 33 Hình 3.12. Các chế độ Hook Firewall trên Windows Giải thuật: 34 Hình 3.13. Sơ đồ giải thuật Kernel mode (lấy nội dung lớp IP) 35 Tường lửa hoạt động ở lớp mạng của mô hình OSI, hoặc lớp IP của TCP/IP. Dữ liệu truyền qua lớp này đều ở dạng gói. Mỗi gói là một lượng dữ liệu có kích thước giới hạn, đủ nhỏ để dễ điều khiển. Khi lượng lớn dữ liệu được gửi chúng được chia ra thành nhiều gói và tái hợp ở nơi nhận. Trong tường lửa mức mạng, thường chỉ giao thức và thông tin địa chỉ của mỗi gói được kiểm tra. Nội dung và ngữ cảnh (mối liên hệ với các gói khác) của nó bị bỏ qua. Các gói vào/ra được kiểm soát dựa trên một tập luật, được gọi là chính sách (policies). Về cơ bản, giải thuật lọc nội dung mức kernel mode giống như user mode, tuy nhiên trong các gói tin mức mạng đều có địa chỉ IP nguồn và địa chỉ IP đích nên bất kỳ gói tin nào cũng có thể thực hiện lọc cụ thể, lọc loại trừ (IP). Đa số các tường lửa được xây dựng trên việc kiểm soát luồng dữ liệu mức mạng. Ưu điểm: • Kiểm soát đầy đủ các thông tin vào ra. • Ít ảnh hưởng đến chất lượng mạng. • Hiệu quả trong việc đóng khối các kiểu riêng biệt: dịch vụ, nguồn. Ví dụ, telnet có thể dễ dàng được đóng khối bằng cách áp dụng một luật lọc để đóng khối TCP cổng 23. Nhược điểm: • Không thực hiện kiểm soát việc xác thực người dùng. • Xây dựng cơ chế tổng hợp dữ liệu từ các gói đơn lẻ là rất khó. 3.3.4. Kernel mode: cơ chế nghe lén (sniffer) Kết hợp giữa giải pháp lọc nội dung mức kernel mode mức 3.1 và 3.3 trên: Lấy nội dung từ lớp mạng IP: mở một socket và lắng nghe tất cả dữ liệu được gửi đi và gửi đến máy tính. Tổng hợp phân tích nội dung được trao đổi. Tác động lên trình duyệt (lớp ứng dụng) khi nội dung truy cập không hợp pháp. 36 Điểm khác biệt giữa hook firewall và sniffer:  Cơ chế lấy dữ liệu: o Hook firewall: chèn giữa các lớp trong mô hình OSI, có thể ngăn không cho dữ liệu truyền qua. o Sniffer: lấy dữ liệu đồng thời với các lớp tương ứng trong mô hình OSI, không thể ngăn dữ liệu lại.  Lưu lượng xử lý: o Hook firewall: chỉ xử lý dữ liệu được gửi đi, gửi đến máy tính đó. o Sniffer: đón nhận cả những dữ liệu không phải của máy tính đó. 3.4. Đề xuất giải pháp 3.4.1. Đánh giá giải pháp trực tiếp Các ứng dụng thường xuyên tác động lên nhau trên máy tính. Ví dụ: khi mở một file pdf trên máy tính, windows explorer sẽ gọi chương trình xem pdf mặc định để chứa nội dung pdf. Tường lửa sẽ kiểm tra tác động đó và ngăn chặn những thực thi không được phép truy cập do đó tường lửa cần có vị trí trung gian, chính là các function hook, để có thể kiểm soát các hoạt động giữa các ứng dụng với nhau. Để có chế độ bảo vệ mức cao, các chương trình ứng dụng bảo mật thường cần có mức điều khiển hơn mức tiến trình ứng dụng thông thường. Để đạt được điều đó, tường lửa thay thế một số “internal system functions” bởi các functions của riêng nó. Việc thay thế các function của hệ thống được gọi là “hooking”. Có hai chế độ để thực hiện hooking là “user mode hooks” và “kernel mode hooks”. User mode là phương thức đặc biệt cho việc xử lý các tiến trình của người dùng, với những đặc quyền truy cập thấp hơn so với kernel mode. Kernel mode, mặt khác, là sự thi hành toàn diện hơn và vận hành trực tiếp từ nhân của Windows và xử lý những lệnh đặc biệt của hệ thống. So sánh đặc trưng user mode và kernel mode hook [ 19 ]: Tiêu chuẩn so sánh User-mode hooks Kernel-mode hooks An toàn 1) Hook disabling (unhooking) Dễ dàng bị unhooking nếu không được bảo vệ cẩn thận. Mỗi phương thức của Có thể bị unhooking khi sử dụng quyền quản trị cao nhất của hệ thống. 37 chế độ user mode hook cần có biện pháp đối phó đặc biệt để chống đỡ lại unhooking. 2) Process Có thể xử lý tiến trình trong thời gian thực, một số ngăn chặn: • Kết thúc hợp pháp của ứng dụng. • Xử lý tiến trình ngay cả khi có thể thay đổi ứng dụng, không toàn vẹn dữ liệu. Không thể xử lý tiến trình trong thời gian thực. Độ ổn định 3) Hoạt động ổn định Ổn định, ít gây ra lỗi trong hoạt động. Không ổn định, độ ổn định phụ thuộc vào nhiều yếu tố khác như phần mềm, phần cứng. Tương thích 4) 64-bit Windows compatible Có Không, do Microsoft có chế độ bảo vệ. 5) Windows Vista compatible Có Không, thiết kế ban đầu của window vista không cho phép truy cập (hook) vào kernel mode. 3.4.2. Đề xuất Như đã trình bày trên đây, giải pháp lọc nội dung truy cập Internet có thể được thực hiện tại: ISP, Gateway mạng LAN hoặc trực tiếp trên máy tính người dùng cá nhân. Các giải pháp tại ISP và Gateway mang tính triệt để, tổng quát cao. Tuy nhiên để thực hiện được cần có sự phân tích nghiên cứu lâu dài. Để đáp ứng yêu cầu quản lý hiện nay của nhà nước và người sử dụng cá nhân, giải pháp trực tiếp trên máy tính người dùng cá nhân là giải pháp khả thi. Về các giải pháp trực tiếp trên máy tính người dùng cá nhân nếu thực hiện xây dựng tường lửa thông thường thì đều có thể đáp ứng được yêu cầu trong đó giải pháp thực hiện tại kernel mode được coi là tối ưu nhất. Tuy nhiên, áp dụng với tường lửa lọc nội dung thì cần phải được xem xét trên cơ sở chức năng nhiệm vụ của nó: 38 1) Kiểm soát dịch vụ truy cập ra ngoài. 2) Kiểm soát dịch vụ từ ngoài truy cập vào trong. 3) Theo dõi luồng dữ liệu mạng giữa Internet. 4) Kiểm soát địa chỉ truy cập. 5) Kiểm soát cổng truy cập. 6) Kiểm soát thời gian truy cập. 7) Kiểm soát giao thức sử dụng (HTTP, FTP, Telnet,…). 8) Kiểm soát người sử dụng và việc truy cập của người sử dụng. 9) Kiểm soát nội dung thông tin lưu chuyển trên mạng. Song song với việc kiểm soát được các nội dung như trên, tường lửa lọc nội dung sẽ đảm bảo: 1) Có mức bảo mật cao nhất. 2) Giảm thiểu ảnh hưởng tốc độ mạng tới người sử dụng. 3) Xử lý thời gian thực khi truy cập của người sử dụng không hợp pháp. Để tường lửa lọc nội dung hoạt động với các tính năng như trên và căn cứ phân tích cơ chế hoạt động tường lửa (mục 3), tường lửa lọc nội dung cần được xây dựng dựa trên sự kết hợp giữa user mode và kernel mode để có thể đảm bảo được các yêu cầu đặt ra. 39 Chương 4 - GIẢI PHÁP LỌC NỘI DUNG VÀ XÂY DỰNG PHẦN MỀM TẠI MÁY TÍNH CÁ NHÂN 4.1. Giải thuật Hình 4.1. Sơ đồ giải thuật lọc nội dung trực tiếp trên máy tính cá nhân 40 4.2. Hoạt động Khởi tạo chương trình thực hiện hook vào lớp mạng mức kernel mode của window: Kiểm soát tất cả các gói tin gửi đến và đi trước khi chuyển qua lớp mạng của Window. Các gói tin được kiểm soát theo chế độ thời gian thực: đảm bảo không ảnh hưởng tới tốc độ truy cập của người sử dụng, mỗi gói tin được kiểm soát trong khoảng thời gian nhất định. Thành phần Lấy dữ liệu và Phân tích gói tin sẽ cung cấp thông tin để thực hiện kiểm soát nội dung của gói tin được gửi tới. Các thông số của gói tin được kiểm tra Kho dữ liệu Thread: - Không xử lý: gói tin thuộc dạng không cần kiểm tra (do xác nhận của gói tin trước là phiên làm việc hiện tại thuộc danh sách trắng): gói tin sẽ được chuyển tiếp tới lớp mạng của Window, chương trình quay về trạng thái chờ gói tin tiếp theo. Gửi thông báo tới Bộ quyết định để xác định nếu là gói tin sau cùng sẽ thực hiện đóng Thread. - Nếu gói tin thuộc diện cần kiểm tra (phiên làm việc được xác lập mới, nội dung truy cập không phải thuộc danh sách trắng): sẽ chuyển tiếp cho thành phần tiếp theo xử lý. - Xử lý riêng: khi không phải là gói tin đầu tiên hoặc được điều khiển để bỏ qua những thành phần kiểm tra nhất định. Thành phần Lọc cụ thể, lọc loại trừ (URL, IP): chủ yếu thực hiện đối với gói tin đầu tiên đi và đến của một truy cập, ngoài ra thành phần này có thể thực hiện công việc khi tiếp nhận yêu cầu xử lý trực tiếp. Lọc cụ thể, lọc loại trừ URL, IP chỉ cần thực hiện với gói tin đầu tiên: mọi gói tin tiếp theo sẽ hủy bỏ hoặc chuyển tiếp không cần xử lý. Hiệu quả đối với người sử dụng: một truy cập để chuyển tải nội dung về máy người sử dụng thường bao gồm rất nhiều gói tin Thành phần Lọc kiểu dữ liệu: kiểm soát kiểu dữ liệu truy cập. Thành phần Lọc cổng: kiểm soát cổng truy cập dữ liệu. 41 Thành phần Lọc nội dung: - Lọc nội dung văn bản. - Lọc nội dung hình ảnh. Thành phần Bộ quyết định: - Tiếp nhận thông tin từ các thành phần và đưa ra quyết định đối với gói tin. Trong nhiều trường hợp để đảm bảo chương trình có thể hoạt động theo chế độ thời gian thực, Bộ quyết định sẽ đưa ra quyết định đối với gói tin trước khi có thông tin từ các thành phần khác. - Điều khiển các thành phần xử lý truy cập ở cả hai mức: user mode và kernel mode. - Cập nhật thông tin cho Kho dữ liệu Thread. 4.3. Phân tích các thành phần 4.3.1. Thành phần lấy dữ liệu Để kiểm soát được gói tin và các ứng dụng truy cập internet, tường lửa lọc nội dung thực hiện hook vào hệ thống cả mức user mode và kernel mode [ 7, 8, 9, 10, 11, 12, 13 ] : Hình 4.2. Phân lớp xử lý gói tin 42 Hình 4.3. Sơ đồ xử lý tổng quát giải pháp lọc nội dung Nhìn ở góc độ bộ đệm dữ liệu (Buffer), có thể thấy chu trình dữ liệu đi như ở hình dưới. Dữ liệu gói tin đi qua driver, lên ứng dụng, và được thao tác tại ứng dụng, và có thể đưa ra hệ thống file… Hình 4.4. Quy trình ghi log truy cập 43 Kiến trúc tường lửa lọc nội dung có thể được chia thành hai phần theo chức năng, đó là: o Lọc cụ thể, lọc loại trừ: lọc IP, URL. o Lọc nội dung: lọc cổng, lọc kiểu dữ liệu, tổng hợp, phân tích nội dung truy cập. Tương ứng với từng trường hợp lọc, việc xác định vị trí lấy dữ liệu phù hợp là cần thiết đảm bảo thực hiện yêu cầu đặt ra. Đối với chức năng “lọc cụ thể, lọc loại trừ” và một số chức năng lọc trong chức năng “lọc nội dung”, các thông tin cần thiết để thực hiện lọc có trong các gói tin mức kernel mode (Transport Layer, Network Layer, Data Link Layer). Hình 4.5. Cấu trúc dữ liệu tầng Transport struct tcp_hdr{ unsigned short sport //Source Port unsigned short dport //Destiantion Port unsigned int seq_num //Sequence Number unsigned int ack_num //Acknowledgment Number unsigned char dataoffset //Data Offset unsigned char flags //2 bits Reserve + 6 bits Flags: SYN, ACK, FIN, RST, PUSH, URG unsigned short window //Windows unsigned short checksum //Checksum unsigned short urgpointer //Urgent Pointer } 44 Hình 4.6. Cấu trúc dữ liệu tầng Network struct ip_hdr{ unsigned char ver_ihl; //Version (4 bits) + Internet Header Length (4 bits) unsigned char tos; //Type Of Service unsigned short tol_len //Total Length (Ip Header + TCP Header + Data) unsigned short id //Identification unsigned short offset //Frame Offset trong đó 8 bits cho flags unsigned char ttl //Time to Live unsigned char protocol //Protocol unsigned short checksum //Header Checksum unsigned int saddr //Source Address unsigned int daddr //Destination Address }; Hình 4.7. Cấu trúc dữ liệu tầng DataLink Ứng với mỗi tầng dữ liệu trong mô hình OSI từ tầng Transport đến tầng DataLink, gói tin sẽ được bọc thêm vào phần tiêu đề của tầng dữ liệu tương ứng. Các thông tin cần thiết để thực hiện lọc cụ thể, lọc loại trừ có trong tiêu đề gói tin mức tương ứng: Transport: cổng nguồn, cổng đích, URL và kiểu dữ liệu (trong phần data của gói tin gửi đi hoặc gửi đến). Network: giao thức thực hiện, địa chỉ IP nguồn, địa chỉ IP đích. DataLink: địa chỉ MAC nguồn, địa chỉ MAC đích. Do tường lửa lọc nội dung cho máy tính người dùng cá nhân thực hiện kiểm soát nội dung truy cập Internet của người sử dụng cá nhân nên thông tin về địa chỉ 45 MAC nguồn và đích có tại tầng DataLink là hoàn toàn không cần thiết. Và nếu dữ liệu được lấy từ tầng Transport thì sẽ không có thông tin về địa chỉ IP nguồn, địa chỉ IP đích, giao thức được sử dụng. Do đó, thành phần lấy dữ liệu tại kernel mode sẽ thực hiện lấy dữ liệu tại tầng Network:  Thông tin đầu vào cho các thành phần lọc cụ thể, lọc loại trừ có sẵn và đầy đủ.  Cung cấp các thông tin cần thiết để có thể tổng hợp các gói tin thành phiên giao dịch đầy đủ: sequence number, acknowledgement number, data ofset, flags, window,… đảm bảo dữ liệu đầu vào cho thành phần lọc nội dung đầy đủ và chính xác. Như vậy với thành phần lấy dữ liệu, ta đã có thể thu thập được toàn bộ các gói tin vào ra máy tính. Công việc tiếp theo là phân tích, tổng hợp các gói tin đi và đến. Nhiệm vụ này được các thành phần tiếp theo thực hiện. 4.3.2. Thành phần phân tích nội dung gói tin Với mỗi gói tin lấy được từ tầng Network, thành phần phân tích nội dung gói tin với cấu trúc như sau: IP header: 24 bytes TCP header: 24 bytes Data (<1500 bytes) Hình 4.8. Cấu trúc gói tin lấy dữ liệu Tách 20 bytes IP header (đến 60 bytes) lấy các thông tin:  IHL (4 bits): trường có độ dài 4 bits qui định độ dài của phần header (tính theo đơn vị words 32 bits). Phần header có độ dài tối thiểu là 5 words (160 bits) và tối đa là 15 words (480 bits).  Total length (16bits): độ lớn gói tin, đơn vị tính octets, độ dài tối đa 65535 octets.  Fragment Offset (13 bits): mảnh đầu tiên có giá trị là 0. Tùy theo giá trị của trường này sẽ xác định được có phải gói tin đầu tiên nhận được hay không, hệ thống thực hiện một số tùy chọn về lọc cụ thể, lọc loại trừ và mở tác vụ lọc nội dung mới nếu cần.  Protocol (8 bits): xác định giao thức tầng transport sử dụng, cung cấp dữ liệu cho thành phần lọc cụ thể, lọc loại trừ giao thức. 46  Source address (32 bits): địa chỉ IP nguồn, cung cấp đầu vào cho thành phần lọc cụ thể, lọc loại trừ IP.  Destination address (32bits): địa chỉ IP đích, cung cấp đầu vào cho thành phần lọc cụ thể, lọc loại trừ IP.  Phần dữ liệu còn lại là gói tin TCP. Tách 20 bytes TCP header (đến 60 bytes) lấy các thông tin:  Source port (16 bits): địa chỉ cổng nguồn, cung cấp đầu vào cho thành phần lọc cụ thể, lọc loại trừ cổng.  Destination port (16 bits): địa chỉ cổng đích, cung cấp đầu vào cho thành phần lọc cụ thể, lọc loại trừ cổng.  Sequence number (32 bits): Ở hai bước đầu tiên trong quá trình bắt tay ba bước, hai máy tính trao đổi một số thứ tự gói ban đầu (Initial Sequence Number -ISN). Số này có thể chọn một cách ngẫu nhiên. Số thứ tự này được dùng để đánh dấu các khối dữ liệu gửi từ mỗi máy tính. Sau mỗi byte được truyền đi, số này lại được tăng lên. Nhờ vậy ta có thể sắp xếp lại chúng khi tới máy tính kia bất kể các gói tới nơi theo thứ tự thế nào. Việc xác định gói tin đầu tiên phụ thuộc vào cờ flags, nếu cờ SYN bật thì nó là số thứ tự gói ban đầu và byte đầu tiên được gửi có số thứ tự này cộng thêm 1. Nếu không có cờ SYN thì đây là số thứ tự của byte đầu tiên.  Acknowledgement Number (32 bits): số bytes của gói dữ liệu tiếp theo sẽ được gửi đi. Nếu cờ ACK bật thì giá trị của trường chính là số thứ tự gói tin tiếp theo mà bên nhận cần.  Data offset (4 bits): Trường có độ dài 4 bits qui định độ dài của phần header (tính theo đơn vị words 32 bits). Phần header có độ dài tối thiểu là 5 words (160 bits) và tối đa là 15 words (480 bits).  Flags (6 bits): o URG: The Urgent Pointer field is significant. o ACK: The Acknowledgement field is significant. o EOL: End of Letter. o RST: Reset the connection. o SYN: Synchronize sequence numbrers. 47 o FIN: No more data from the sender.  Phần dữ liệu còn lại là gói tin HTTP. Phần dữ liệu còn lại sau khi được tách IP header và TCP header là dữ liệu tầng ứng dụng. Dữ liệu tầng ứng dụng được chia thành 2 phần: tiêu đề và nội dung được phân cách nhau bởi cặp thẻ “\r\n” xuất hiện 2 lần liên tiếp tính từ đầu gói tin. Cấu trúc tiêu đề gói tin HTTP có dạng: “tên trường” + “: ” + “giá trị thuộc tính” + “\r\n”. Một số “tên trường” sử dụng lấy dữ liệu đầu vào của thành phần lọc cụ thể, lọc loại trừ: GET/POST: giao thức sử dụng. Accept-Language: ngôn ngữ sử dụng. Host: địa chỉ tên miền truy cập. Refered: địa chỉ URL truy cập. Phần dữ liệu còn lại kết hợp với các thông tin trích rút được từ IP header và TCP header sẽ được tổng hợp thành phiên giao dịch đầy đủ, phục vụ kiểm soát nội dung. Hình 4.9. Các gói tin dạng thô và được phân tích theo từng lớp mạng Cùng một thời điểm có thể có nhiều phiên giao dịch tương ứng với các đối tượng của trang web (text, ảnh…). Các phiên này được phân biệt bởi các tham số trong cấu trúc dữ liệu TCP/IP (ở trên), bao gồm: địa chỉ ip, số cổng, số ACK, SEQUENT (xem hình dưới). 48 Hình 4.10. Dữ liệu tầng TCP/IP của một gói tin 4.3.3. Thành phần tách, tổng hợp gói tin thành phiên giao dịch Ở phần trên, module phân tích nội dung gói tin thực hiện xử lý các gói tin trong tầng TCP để thu được các phiên giao dịch. Khi thu được dữ liệu các phiên giao dịch, nhiệm vụ tiếp theo của module tổng hợp sẽ là phân tích nội dung giao dịch để biết đó là giao dịch theo dạng nào. Dạng của phiên giao dịch ở đây có ý nghĩa là: một trang web vốn có nhiều thành phần, gồm ảnh, phim, flash file, javascript, text file… Do đó cần phân loại các đối tượng này, để có thể phân tích nội dung tương ứng. Dưới đây là quy trình tổng hợp dữ liệu dạng text. Dưới đây là ví dụ về nội dung gói tin được phân tích. Hình 4.11. Header file ảnh 49 Trong hình trên ta có thể thấy một cấu trúc header, với nội dung cho biết đây là một gói tin chứa nội dung ảnh gif, với kích thước 12755 bytes. Hình 4.12. Header file text/html Trên đây là tiêu đề của phiên giao dịch nội dung gói tin text/html, với một trang text có nội dung 46071 bytes. Tiếp theo, các gói tin được tổng hợp để ra một trang web hoàn chỉnh. Như trên nội dung gói tin trên cho biết phiên giao dịch này có kích thước text file là 46071 bytes, với kích thước tương đối của một gói tin khoảng 1500 bytes, như vậy phiên giao dịch này sẽ có khoảng 30 gói tin. Trọn vẹn gói tin HTTP đầu tiên của phiên giao dịch có nội dung như sau: Hình 4.13. Gói tin đầu tiên của một phiên giao dịch Công việc tiếp theo đó là tập hợp các gói tin kế tiếp của phiên giao dịch. Thành phần này sẽ thực hiện tổng hợp, sắp xếp các gói tin lại thành phiên giao dịch đầy đủ dựa vào các tham số: địa chỉ ip, số cổng, số ACK, SEQUENT. Hình 4.14. Tham số Seq và Ack 50 Thực hiện kiểm tra các gói tin có các tham số như trên và Seq theo qui luật, để ghép nội dung gói tiếp theo vào phiên. Cụ thể trong ví dụ này, gói tiếp theo như sau, tham số Ack là của gói tin trước nó, tham số Seq bằng tổng của Seq của gói tin trước và kích thước gói tin trước nó (1+1460=1461): Hình 4.15. Tham số Seq và Ack gói tin kế tiếp Thực hiện tương tự đối với các gói tin tiếp theo cho tới khi nhận đủ gói tin cần thiết: tổng số Len bằng kích thước phiên giao dịch (46071 bytes) hoặc khi gói tin đến tại cổng này và ACK đã bị thay đổi. Hình dưới đây mô tả thứ tự các gói tin của phiên giao dịch. Hình 4.16. Tổng hợp các gói tin đơn lẻ thành phiên giao dịch Sau khi đã tổng hợp được hoàn chỉnh một phiên giao dịch Text, bước tiếp theo sẽ là phân tích nội dung phiên giao dịch đó, cụ thể là phân tích nội dung một text file. 51 4.3.4. Thành phần lọc cụ thể, lọc loại trừ Lọc cụ thể, lọc loại trừ: IP Đối soát trực tiếp các thông tin trích rút được từ thành phần phân tích nội dung với kho dữ liệu lọc IP. Cung cấp kết quả kiểm tra cho module Bộ quyết định để thực hiện lọc cụ thể, lọc loại trừ đối với gói tin truy cập. Như ví dụ tại hình 4.10, danh sách lọc cụ thể, lọc loại trừ IP được đối soát với địa chỉ IP trích rút ra từ tiêu đề tầng IP. Lọc cụ thể, lọc loại trừ: URL Quy trình thực hiện tương tự như đối với lọc IP, tuy nhiên thông tin để đối soát với các kho dữ liệu tương ứng không thuộc vị trí nhất định trong tiêu đề của các gói tin IP và TCP mà là một phần dữ liệu trong gói tin HTTP. Thành phần phân tích nội dung gói tin (3.2) thực hiện phân tích nội dung cung cấp thông tin URL để thành phần lọc cụ thể lọc loại trừ URL thực hiện đối soát. Áp dụng thực hiện với một danh sách lọc URL (hiện đang sử dụng cho quản lý đại lý Internet công cộng của Công ty VDC) như sau: 'anhuynh.freehomepage.com', 'datviet.com', 'bangboat.com', 'dddcvn.org', 'bdqvn.org', 'diendanpaltalk.com', 'butvang.org', 'diendangiaodan.com', 'canhen.de', 'dungday.tripod.com', 'canhsatquocgia.com', 'ebonyjoy.com', 'canhtan.choao.com', 'emviet.com', 'caodai.net', 'groups.yahoo.com/group/cpcmvntd-bc', 'conong.com', 'groups.yahoo.com/group/chinhluan', 'congly.com', 'groups.yahoo.com/group/dangcongsanvietnam', 'crfvn.org', 'groups.yahoo.com/group/diendanchinhtri', 'ctnb.org', 'groups.yahoo.com/group/diendandautranh', 'chantroi.net', 'groups.yahoo.com/group/diendantintuc', 'ChaocoVNCH.8m.com', 'groups.yahoo.com/group/freevietnam', 'chinhnghia.org', 'groups.yahoo.com/group/hanoivietnam', 'chuyenluan.com', 'groups.yahoo.com/group/hoinghi', 'daichung.com', 'groups.yahoo.com/group/nghiluan', 'daihoccuunuoc.com', 'groups.yahoo.com/group/nhanquyenchovietnam', 'daiviet.org', 'groups.yahoo.com/group/tiengchuong1', 'danchimviet.com', 'groups.yahoo.com/group/tinhlam', 'danchu.net', 'groups.yahoo.com/group/tinhmuonmau', 'danchuqueme.free.fr', 'groups.yahoo.com/group/tinhthuong36', 'danuoc.org', 'groups.yahoo.com/group/toiacdangcongsanvietnam', 'danguyen.org', 'groups.yahoo.com/group/vietnamdiendan', Hình 4.17. Trích đoạn danh sách lọc đang được áp dụng cho mạng VNN 52 Tường lửa lọc nội dung sẽ kiểm tra gói tin đầu tiên đi/đến máy tính trong một phiên truy cập (hoặc kiểm tra tất cả các gói tin đi/đến, tùy thuộc lựa chọn người sử dụng) trích rút các thông tin của trường Referer và Content-Type: Hình 4.18. Gói tin request(Get) Đối với ví dụ trên, trường Referer trong gói tin cho biết có tiến trình truy cập đến địa chỉ Nếu địa chỉ này nằm trong danh sách ‘đen’ ở trên, tường lửa lọc nội dung sẽ tác động vào trình duyệt đang truy cập trang web đó. 4.3.5. Thành phần lọc nội dung Lọc cổng truy cập Đối soát trực tiếp các thông tin trích rút được từ thành phần phân tích nội dung với kho dữ liệu lọc cổng. Cung cấp kết quả kiểm tra cho module Bộ quyết định để thực hiện lọc đối với gói tin truy cập. Để nâng cao năng lực hoạt động cho tường lửa lọc nội dung, việc kiểm soát tốt danh sách cổng sử dụng cho các ứng dụng của window hay của một số hãng phần mềm lớn đã đăng ký sẽ hạn chế rất nhiều việc kiểm soát những gói tin không cần thiết. Thông thường truy cập web có cổng nguồn là 80, do đó thực hiện lọc nội dung với các thành phần sẽ được thực thi khi gói tin đến có cổng nguồn là 80. Lọc kiểu dữ liệu Thành phần phân tích nội dung gói tin phân tích tiêu đề gói tin HTTP, trích rút thông tin kiểu dữ liệu (content-type) cung cấp thông tin của gói tin đến để thành phần lọc nội dung kiểu dữ liệu thực hiện kiểm soát. Thông qua thành phần này, những kiểu dữ liệu không được phép sẽ được lọc 53 trước khi tới được trình duyệt người sử dụng. Kiểm soát thông tin về cổng và kiểu dữ liệu tuy được lấy từ trực tiếp tại mỗi gói tin riêng biệt (header lớp TCP, HTTP), tuy nhiên đặc thù của thông tin cung cấp khả năng lọc nội dung truy cập người sử dụng nên hai kiểu lọc này được coi là tính năng của thành phần lọc nội dung. Các chức năng lọc còn lại: lọc từ khóa, lọc từ khóa có trọng số, lọc cụm từ, lọc biểu thức. Các chức năng còn lại của module lọc nội dung có điểm khác biệt với module lọc cụ thể, lọc loại trừ: nội dung không được trích rút từ những gói tin tại vị trí nhất định mà được tổng hợp từ các gói tin thuộc cùng phiên giao dịch. Kho dữ liệu lọc từ khóa, từ khóa có trọng số và cụm từ: là kho dữ liệu bao gồm các từ khóa (cụm từ) cần lọc kèm theo trọng số (số lần xuất hiện trong nội dung truy cập), lọc từ khóa là trường hợp riêng của lọc từ khóa có trọng số với trọng số bằng một. Kho dữ liệu lọc biểu thức: là kho dữ liệu bao gồm các từ khóa (cụm từ) có tính điểm trong biểu thức đặt ra với ngưỡng cho trước. Các kho dữ liệu lọc nội dung được xây dựng dựa trên kết quả phân tích thử nghiệm lượng lớn trang web trên Internet, kết quả của những bài toán lớn như: khai phá dữ liệu web, trích chọn thông tin, phân lớp, phân cụm,… Kho dữ liệu lọc như sau: STT Từ khóa Trọng số Điểm 1 xxx 2 30 2 sex 3 20 3 adult 1 4 education -1 -30 Quy trình lọc nội dung được thực hiện như sau: (gói tin trong quy trình được cung cấp bởi thành phần phân tích gói tin, đã thực hiện loại bỏ phần tiêu đề IP, TCP)  Bước 1: o Gói tin đầu của phiên giao dịch: lấy dữ liệu trong cặp thẻ meta và cặp thẻ body, chuyển sang bước 2. o Những gói tin tiếp theo: được xác định toàn bộ phần dữ liệu thuộc thẻ body, 54 chuyển sang bước 4.  Bước 2: kiểm tra dữ liệu trong thẻ meta (nếu có), như ví dụ tại hình 29 thực hiện trích rút thông tin tại trường “content” với trường name là “keywords”. Chuyển thông tin sang bước 3 với cờ báo tất cả từ khóa (cụm từ) có trọng số là một.  Bước 3: đối soát từ khóa (cụm từ) trong thẻ meta với kho dữ liệu lọc, chuyển kết quả sang bước 8 khi có một từ khóa được tìm thấy.  Bước 4: loại bỏ các cặp thẻ html trong phần dữ liệu của thẻ body. Bắt đầu từ byte đầu tiên, từng byte một cho đến byte cuối cùng cần kiểm tra. Lần lượt lấy ra số byte trong khoảng minLength(keyword) và maxLength(keyword) – độ dài nhỏ nhất và lớn nhất của từ khóa hay cụm từ lọc có trong kho dữ liệu. Với mỗi từ khóa (cụm từ) tìm được chuyển sang bước 5, nếu tới byte cuối cùng cần kiểm tra không tìm thấy từ khóa nào nữa thì sẽ kết thúc.  Bước 5 (lọc từ khóa, lọc từ khóa có trọng số và lọc cụm từ): kết hợp kết quả bước 4 và số liệu đã kiểm tra của các gói tin trước trong cùng phiên giao dịch; nếu trong tổng số các gói tin nhận được của phiên giao dịch đến thời điểm kiểm tra có số từ “xxx” >=2 hoặc “sex” >= 3 thì chuyển sang bước 8.  Bước 6 (lọc biểu thức): đối soát với ngưỡng 100; với số từ “xxx” xuất hiện là α và “sex” là β nếu α*30 + β*20 >= 100 thì chuyển sang bước 8.  Bước 7: cập nhật thông tin Kho dữ liệu thread, quay trở lại bước 4.  Bước 8: thành phần Lọc nội dung cung cấp thông tin cần lọc cho thành phần Bộ quyết định: o Cập nhật thông tin kho dữ liệu thread. o Quyết định thực hiện lọc đối với truy cập. o Kết thúc phiên truy cập. Trong một số trường hợp, để giảm thiểu dung lượng trên đường truyền các nội dung truy cập text được nén dưới dạng gzip nên để thực hiện quy trình trên cần xử lý giải nén trước. 4.3.6. Thành phần quản lý ứng dụng Như đã phân tích ở trên, các kernel mode hook tác động lên ứng dụng không đạt hiệu quả như user mode hook nên tường lửa lọc nội dung cần có một thành 55 phần thực hiện việc quản lý các ứng dụng. Tại mức user mode, window quản lý các ứng dụng thông qua định danh PID (process id). Để xác định gói tin truy cập thuộc ứng dụng nào, window sử dụng một trình quản lý ánh xạ Port và PID tương ứng. Thông qua trình quản lý tiến trình này của window, tường lửa lọc nội dung thực hiện user mode hook và kiểm soát truy cập của các ứng dụng:  Kết thúc tiến trình truy cập.  Gửi thông báo đến tiến trình truy cập.  Thay đổi nội dung truy cập. Hình 4.19. Ánh xạ tên tiến trình và cổng tương ứng Hình 4.20. Ánh xạ chi tiết PID (Process number) và số cổng 56 4.3.7. Thành phần ghi log truy cập Do tường lửa lọc nội dung kiểm soát toàn bộ các gói tin vào/ra của người sử dụng và đáp ứng thông tư 02/2005/TTLT-BCVT-VHTT-CA-KHĐT, các nội dung truy cập được ghi lại. Các log file có thể được ghi ra file một cách đầy đủ như sau, gồm các gói tin gửi đi và nhận lại: Các gói tin gửi. Các gói tin nhận Hình 4.21. Tổng hợp ghi log 4.3.8. Thành phần quản lý luật truy cập Các kho dữ liệu lọc được cập nhật bằng hai cách:  Người sử dụng chủ động điều chỉnh.  Cập nhật từ máy chủ tập trung. 57 Hình 4.22. Cập nhật luật truy cập từ server Trong quá trình sử dụng luật truy cập của tường lửa lọc nội dung được sửa đổi thay thế bởi người sử dụng và hệ thống cập nhật tự động. Tùy thuộc từng trường hợp, các sửa đổi của người sử dụng về hệ thống luật lọc sẽ có thể bị thay thế bởi cập nhật từ máy chủ. 4.4. Chương trình thử nghiệm 4.4.1. Kết quả chương trình thử nghiệm Dựa vào giải thuật lọc nội dung truy cập Internet tại máy tính cá nhân trên đây, luận văn đã thực hiện xây dựng chương trình thử nghiệm và đạt được một số kết quả:  Đã có phần mềm lọc nội dung truy cập Internet tại máy tính cá nhân với bộ luật lọc ban đầu được xây dựng dựa trên yêu cầu cơ quan quản lý (Bộ Công an) và kết hợp luật lọc có tại [ 15 ].  Trong điều kiện thử nghiệm: sử dụng công cụ tự động truy cập 1000 địa chỉ website trong đó chứa danh sách địa chỉ cấm của Bộ Công an, chương trình thử nghiệm đạt được một số kết quả: o Đối với danh sách lọc Bộ Công an: hiệu suất lọc đạt 100%, chương trình đã hoàn toàn lọc được các truy cập tới địa chỉ cấm có trong danh sách. o Đối với địa chỉ truy cập ngẫu nhiên (một số địa chỉ là của trang tìm kiếm với 58 từ khóa trong danh sách cấm): hiệu suất lọc đạt 100%, đối chiếu danh sách địa chỉ lọc (log ghi lại của chương trình) với danh sách những trang sẽ bị lọc đưa vào ban đầu, chương trình lọc nội dung của luận văn đã thực hiện lọc hoàn toàn. o Đối với lọc nội dung theo biểu thức tính điểm: áp dụng thử nghiệm đối với một số trang web về giáo dục giới tính với các biểu thức tính điểm sử dụng theo [ 15 ], kết quả cho thấy cần nghiên cứu điều chỉnh biểu thức tính điểm cho phù hợp nếu không sẽ dẫn đến tỷ lệ lọc nhầm tương đối cao. 4.4.2. So sánh với chương trình cùng loại Hiện nay, Việt Nam có một số phần mềm lọc nội dung truy cập Internet cho người dùng cá nhân được nhiều người biết đến như: VwebFilter (VWF), DWK.., Trong đó VWF là sản phẩm phần mềm của Công ty Điện toán và Truyền số liệu VDC có lượng người sử dụng khá lớn, sau 6 tháng kể từ khi phần mềm được cung cấp ra ngoài xã hội đã có khoảng 1 triệu lượt người sử dụng và trên 80% phản hồi nhận xét đánh giá sản phẩm tốt. Do đó, phần mềm VWF có thể được coi như là một thước đo đối với các phần mềm lọc nội dung khác về sự đáp ứng đối của phần mềm với người sử dụng. Do phần mềm của luận văn (Web Filter) chưa cung cấp ra ngoài xã hội nên việc so sánh các đặc trưng của phần mềm lọc nội dung với phần mềm VWF được thực hiện trong các điều kiện thí nghiệm: (mức -1: không có, mức 0: trung bình, mức 1: tốt) Đặc điểm so sánh WF VWF Ghi chú Đánh giá chung Chức năng 1 1 Tính dễ sử dụng 1 1 Tính dễ cài đặt 1 1 Đánh giá của người dùng -1 1 Phần mềm của luận văn chưa cung cấp cho người sử dụng nên không có đánh giá Thuật toán lọc Phân tích đối tượng -1 -1 Lọc cụ thể lọc loại trừ 1 1 Lọc nội dung 1 0 Điểm khác biệt cơ bản: VWF lọc nội dung khi có đủ các gói thuộc phiên giao dịch, phần 59 mềm của luận văn lọc trên từng gói tin một Khả năng lọc Lọc IP 1 1 Lọc URL 1 1 Lọc từ khóa 1 0 Lọc cụm từ 1 0 Lọc biểu thức 1 0 Lọc nội dung mail 1 0 VWF chặn nội dung truy cập khi có đủ gói tin của phiên giao dịch, phần mềm của luận văn thực hiện chặn ngay khi một phần nội dung nhận được đã nằm trong phạm vi lọc. Lọc ảnh -1 -1 Sửa danh sách lọc 1 -1 Lọc nội dung chat -1 -1 Lọc lớp mạng 1 -1 Lọc FTP 1 -1 Lọc cổng chat 1 -1 VWF chưa thực hiện các tính năng này Tính năng khác Mật khẩu quản lý 1 -1 Cập nhật luật lọc tự động 1 1 Hỗ trợ trình duyệt Internet Explorer 1 1 Firefox 1 1 Netscape 1 1 Opera 1 1 Khác 1 1 Hệ điều hành Windows 2000 1 1 Windows 2003 1 1 Windows XP 1 1 Windows Vista -1 -1 Linux -1 -1 60 KẾT LUẬN Kết quả đạt được của luận văn: Thông qua việc khảo sát, phân tích về tình hình lọc nội dung truy cập Internet trên thế giới và tại Việt Nam, luận văn đã hoàn thành một số kết quả chính sau đây:  Thống kê số liệu về lĩnh vực lọc nội dung truy cập Internet trên thế giới và tại Việt Nam (mục 1.1).  Phân tích thực trạng lọc nội dung truy cập Internet hiện nay (mục 1.2). Theo kết quả phân tích về thực trạng lọc nội dung truy cập Internet cho thấy yêu cầu đặt ra đối với giải pháp lọc nội dung truy cập là cần thiết, luận văn đã thực hiện:  Phân tích các nội dung cơ bản, kỹ thuật trong việc thực hiện lọc nội dung truy cập Internet (chương 2).  Trình bày các giải pháp lọc nội dung tại cổng Internet quốc gia, cổng Internet của mạng LAN và trực tiếp trên máy tính cá nhân (chương 3). Từ thông tin về các cơ sở để thực hiện lọc nội dung truy cập đã trình bày trong chương hai và các giải pháp lọc nội dung trong chương ba, luận văn thực hiện phân tích, đánh giá và đề xuất giải pháp lọc nội dung truy cập Internet trực tiếp trên máy tính cá nhân và xây dựng phần mềm thử nghiệm theo giải pháp đề ra. Trong các trường hợp thử nghiệm, chương trình đã hoạt động đúng với chức năng đề ra. Phương hướng nghiên cứu tiếp theo Lĩnh vực nghiên cứu lọc nội dung truy cập Internet hiện đang là một lĩnh vực thời sự hiện nay. Các phương pháp lọc hiện đang được nghiên cứu phát triển nhằm lọc nội dung truy cập hiệu quả. Vấn đề nghiên cứu, xây dựng một phần mềm lọc nội dung đạt hiệu quả cao hơn nữa là vấn đề nghiên cứu tiếp theo của luận văn này. 61 TÀI LIỆU THAM KHẢO Tiếng Việt 1. Cục Công nghệ Tin học nghiệp vụ Bộ Công An (03/2008), “Nghiên cứu, phát triển hệ thống lọc nội dung hỗ trợ quản lý và đảm bảo an toàn – an ninh thông tin trên mạng Internet”, tài liệu kỹ thuật. 2. Trường Đại học Công nghệ - ĐHQGHN (2008), “Nghiên cứu, phân tích và đánh giá các giải thuật lọc hình ảnh trên Internet”, tài liệu kỹ thuật. 3. Công ty Điện toán và Truyền số liệu (12/2006), “Giải pháp ngăn chặn truy cập nội dung Internet độc hại”, tài liệu kỹ thuật. Tiếng Anh 4. Paul Greenfield, Peter Rickwood, Huu Cuong Tran (2001). Effectiveness of Internet Filtering Software Products. NetAlert and the Australian Broadcasting Authority. 5. Sara Carro Martínez (2004). POESIA: Public Open-source Environment for a Safer Internet Access (Evaluation of POESIA Beta Release) In Workshop Present and Future of Open-source Content-based Web Filtering, Pisa, Italia. 6. Yi Zhang (2005). Bayesian Graphical Models for Adaptive Filtering. PhD. Thesis, School of Computer Science, Carnegie Mellon University. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. _hooks.pdf

Các file đính kèm theo tài liệu này:

  • pdfLUẬN VĂN-NGHIÊN CỨU GIẢI PHÁP LỌC NỘI DUNG INTERNET TẠI MÁY TÍNH CÁ NHÂN VÀ XÂY DỰNG PHẦN MỀM.pdf