Lớp chuyển giao là lớp đầu tiên thuần tuý mang tính logic trong mô hình 7 lớp. Đây là điểm đầu tiên nơi các cuộc đối thoại đa dữ liệu đến (hoặc từ) một máy được dồn kênh (chèn nhiều nguồn tin vào một kênh). Một số giao thức như TCP và UDP dùng số hiệu cổng (port numbers) để cho phép các cuộc đối thoại đồng thời giữa các máy mục tiêu, đến được các ứng dụng. Các giao thức khác như ICMP (thông điệp điều khiển internet) dùng để sắp xếp việc dồn kênh. Bởi vì lớp chuyển giao là nơi các đối thoại dữ liệu đến một máy được dồn kênh và sắp xếp, nên lớp này được dùng như là công cụ trước tiên dùng nhận dạng dịch vụ trên một máy chủ. Chẳng hạn, các địa chỉ lớp thứ ba được dùng như thế nào để xác định các vị trí dịch vụ trên mạng.
Một số sơ hở chết người đã được tìm thấy ở lớp này xuất phát từ những cài đặt quá sơ sài không kèm theo điều kiện cụ thể. Nhiều giao thức lớp chuyển giao dường như được chuyên viên mặc nhiên cài đặt với niềm tin ngây thơ rằng chúng sẽ làm việc tốt vì thông tin từ lớp dưới hoặc từ lớp trên chắc chắn sạch. Đó là niềm tin quá sai lầm trong thế giới không mấy trong lành - Internet. Nói cách khác các protocols phải làm việc với những đầu vào không mong muốn hoặc bị cố ý sai hoặc do cài dặt các điều kiện vô lý. Và kết quả là các giao thức không còn làm việc như mong muốn. Nhiều cuộc đánh phá, chẳng hạn Winuke, đã đặt giá trị cờ hiệu (flag) rất mù mờ và ngoài khoảng xác định khi kết nối với cổng mở TCP trên các máy cài hệ điều hành Windows, hậu quả là làm sập các máy này. Các trạng thái ứng xử của một máy host khi thể hiện trong các gói tin TCP và UDP biến đổi theo nội dung có thể bị người ta khai thác để lần ra dấu vết hệ điều hành của máy và tạo ra nhiều loại đánh phá tập trung hơn khi khai thác sự khác nhau của các hiện điều hành và các kiểu stacks mạng.
Cũng còn một số các sơ hở khác liên qua đến việc dùng đi dùng lại một số cổng cho nhiều chức năng. Những chức năng này hay được thực hiện với hệ điều hành Windows: chia sẻ files, máy in, quản trị từ xa, gửi messages trong LAN, các hàm gọi thủ tục từ xa (RPC), và vô số ứng dụng sử dụng các cổng UDP và TCP. Sự lạm dụng cổng (ports) có thể hạn chế việc truy cập lớp thứ tư, do để bảo đảm an toàn, người ta buộc tường lửa phải làm việc với quá nhiều chức năng.
Tại sao như vậy? Thông thường khi các hàm dịch vụ được yêu cầu thì các cổng tường lửa được mở. Về lý thuyết, thông tin đi qua không được kiểm tra. Quả vậy, hãy hình dung sự ngạc nhiên của chuyên viên quản trị tường lửa khi yêu cầu họ đưa chức năng xác thực hay giám sát việc chia sẻ thiết bị vào tường lửa, trong khi về bản chất tường lửa chủ yếu chặn thư rác hay ngăn ngừa các sơ hở từ thao tác truy cập xa. Tại sao lại ngạc nhiên? Bởi việc gia tăng chức năng như vậy sẽ hạn chế rất lớn hiệu quả của các điều khiển trên mạng và làm mất vai trò của các điều khiển an ninh ở mức máy đơn. Rõ ràng yêu cầu đó không có tính thực tế trong môi trường mạng lớn, nhiều máy tính và chạy trên nhiều môi trường được quản trị khác nhau và nhiều vai trò chức năng khác nhau.
Hầu hết các protocols truyền dẫn được xây dựng theo nguyên tắc gọn nhẹ và nhanh chóng. Vì vậy chúng thường không được trang bị các chức năng điều khiển đủ mạnh để xác thực nguồn tin được truyền, các gói tin được mặc nhiên coi là hợp lệ trong quá trình trao truyền dữ liệu. Điều này tạo kẽ hở lớn cho việc giả mạo gói tin nhằm làm đứt đoạn hoặc chuyển hướng dòng dữ liệu.
Một số protocols, chẳng hạn UDP, có thể rất dễ giả mạo do việc đánh số chuỗi gói tin và khai báo trạng thái ở lớp thứ tư không được đầy đủ. Một số các protocols khác, chẳng hạn TCP, lại rất khó để mở rộng chức năng điều khiển và kiểm tra tính toàn vẹn.
Tuy nhiên, với phần lớn các loại protocols này việc mất tính toàn vẹn dữ liệu thường do những lỗi vô tình mất gói tin nào đó chứ không phải do những kẻ tấn công cố ý. Các cuộc tấn công nếu muốn thường phải tổ chức tinh vi hơn. Chẳng hạn, kẻ tấn công phải đoán được các số khởi đầu, số thứ tự của chuỗi gói tin TCP rồi mới chèn các gói tin giả để dòng dữ liệu bị sai lệch khi chuyển lên lớp trên. Cách tấn công như vậy gọi là điều khiển một chiều, kẻ tấn công không lấy được dữ liệu trừ khi anh ta mở được thêm một kênh bí mật nào đó.
Các tường lửa thông thường được điều khiển tại lớp thứ tư và lớp thứ ba. Các lệnh của tường lửa ở các lớp này phải được viết đủ chặt để xác nhận được lớp đóng gói vận chuyển. Nghĩa là các protocols phải được chỉ định rõ ràng từng chức năng một trong câu lệnh chứ không phải dễ dàng chấp nhận bất cứ cuộc truyền thông lớp thứ ba nào giữa hai nodes. Xét cụ thể dưới góc độ truyền thông TCP/IP, thì các câu lệnh của tường lửa phải được viết sao cho áp dụng được phù hợp với các protocols lớp thứ tư như UDP/TCP/ICMP cũng như với các subprotocols chi tiết: số hiệu cổng UDP/TCP hay các kiểu ICMP. Đặc biệt hiện nay công nghệ cổng tường lửa cho phép duyệt được các trạng thái, nghĩa là tường lửa duyệt được các chi tiết của gói tin để xác nhận trạng thái truyền nhận của gói tin đó tại lớp thứ tư (transport layer).
Nói cách khác, tường lửa hiện đại sẽ xác định được liệu một gói tin có phù hợp với dòng dữ liệu đang truyền hay không? Cách thức này khác hẳn với cách kiểm tra gói tin bất kỳ dựa trên một protocol đã có và cũng khác hẳn cách lọc gói tin chỉ dựa vào kiểm tra số hiệu cổng hay vài giá trị cờ hiệu đơn giản.
Các cơ chế mạnh hơn cũng có thể được tiến hành trong lớp thứ tư để chống việc ăn cắp phiên “session hijacking”. Cụ thể, các cải tiến gần đây trong việc gán số hiệu cho gói tin dựa trên bộ tạo số ngẫu nhiên đã gây khó khăn lớn cho những kẻ đoán mò số hiệu gói tin TCP. Thiết bị tường lửa Cisco PIX đã cung cấp thêm dịch vụ đánh số chuỗi gói tin được truyền theo công nghệ ngẫu nhiên hoá, là một hợp phần của ASA (NAT - based Adaptive Security Algorithm), nhằm vá lỗi cho các cài đặt TCP hiện vẫn không ngẫu nhiên và dễ đoán nhận.
Tóm lại, tại lớp thứ tư - Transport Layer, lớp đóng gói chuẩn bị vận chuyển, những những sơ hở an ninh mạng và cách phòng ngừa như sau:
Sơ hở:
- Không định nghĩa, định nghĩa sơ sài hoặc đặt điều kiện vô nghĩa.
- Thiếu nhất quán trong thực thi giao thức lớp transport làm lộ dấu vết hệ điều hành và một số thông tin khác của máy chủ.
- Làm quá tải các chức năng của lớp thứ tư, như mở nhiều dịch vụ cổng, gây mất hiệu quả chức năng lọc (filter) và giảm chất lượng đường truyền.
- Một số cơ chế truyền nhận tạo điều kiên cho kẻ giả mạo, kẻ tấn công, thông qua các gói tin giả và khả năng phán đoán các giá trị số của dòng truyền nhận, chúng có thể doạt quyền hoặc phá hỏng việc điều khiền truyền thông.
Phòng ngừa:
- Thiết lập quy tắc tường lửa chặt chẽ hạn chế truy cập đến các giao thức chuyển giao (transmission) đặc biệt và các thông tin dưới giao thức (subprotocol) như số hiệu cổng TCP/UDP hay các dạng (type) ICMP.
- Kiểm tra trạng thái tại lớp tương lửa để chặn những gói tin khác trạng thái, những giá trị cờ hiệu phi pháp và các gói tin giả khác.
- Thiết lập cơ chế truyền dẫn và xác nhận lớp chia phiên (session layer) mạnh hơn để ngăn chặn việc đánh phá hoặc ăn cắp thông tin.
(còn nữa)
(TS. Hoàng Quang Tuyến)