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.
71 trang |
Chia sẻ: lylyngoc | Lượt xem: 2908 | Lượt tải: 3
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:
- 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.pdf