Công nghệ SDN và vấn đề An toàn thông tin
Công nghệ mạng SDN cho phép tập trung hóa chức năng điều khiển của các thiết bị vào một thực thể duy nhất, gọi là thành phần điều khiển (Controller). Thành phần này tương đương như một hệ điều hành mạng, cung cấp hàm giao tiếp API, cho phép quản trị viên phát triển và tích hợp không giới hạn các ứng dụng khai thác, vận hành và giám sát mạng dễ dàng hơn. Hạ tầng chuyển mạch phần cứng lớp dưới của mọi thiết bị được gọi chung là các thành phần chuyển mạch (Switch). Các thành phần chuyển mạch kết nối với thành phần điều khiển thông qua giao thức chuẩn hóa Openflow trên kênh bảo mật.
Không thể phủ nhận kiến trúc mạng SDN có nhiều ưu điểm vượt trội, mang lại hiệu quả cao khi áp dụng trong lĩnh vực ATTT. Kiến trúc này cho phép các luồng dữ liệu được lập trình xử lý ngay khi truyền qua thiết bị. Do đó, các hệ thống IPS/IDS xây dựng trên mô hình kiến trúc SDN không những có khả năng lọc dữ liệu tức thời với hiệu năng cao, song song với quá trình chuyển mạch mà còn ảnh hưởng rất ít đến độ trễ truyền dẫn. Điển hình như các giải pháp Slick, SIMPLE, FlowTags và OrchSec đã được công bố.
Bên cạnh những lợi ích thì thành phần điều khiển cũng ẩn chứa những điểm yếu lớn, có thể bị kẻ xấu khai thác nhằm mục đích tấn công hệ thống mạng. Một số giải pháp khắc phục điểm yếu này đã được đề xuất, chủ yếu với hướng tiếp cận nâng cao tính bảo mật trong vấn đề tương tác giữa các thành phần của kiến trúc hệ thống, như: FortNOX, Fresco, FermOF.... Các giải pháp này đảm bảo tính an toàn tổng thể, tuy nhiên chưa hệ thống nào được thương mại hóa hoặc triển khai trên thực tế.
Tấn công Dos mạng SDN
Cơ chế hoạt động mạng SDN
Trong mạng SDN, thành phần chuyển mạch được cài đặt một hoặc nhiều bảng định tuyến (flow table). Mỗi bảng định tuyến chứa các luồng dữ liệu vào (flow entry) quy định việc xử lý gói tin đến. Luồng dữ liệu vào bao gồm các trường thông tin: mặt nạ lọc tiêu đề gói tin đến (matched rules), tham số thời gian hiệu dụng (timeouts), tham số định nghĩa các hoạt động xử lý gói tin (actions), số liệu thống kê (stats).
Mạng SDN có thể hoạt động ở hai chế độ là chủ động và thụ động. Chế độ chủ động có phương thức tiếp cận tương tự như các công nghệ mạng truyền thống. Luồng dữ liệu vào sẽ được thiết lập sẵn trong thành phần chuyển mạch. Thành phần điều khiển chỉ có nhiệm vụ quản lý và giám sát hoạt động của thành phần chuyển mạch.
Trong chế độ thụ động, các luồng dữ liệu vào sẽ được thành phần điều khiển tạo ra theo thời gian thực. Khi người dùng gửi gói tin yêu cầu kết nối tới hệ thống mạng, thành phần chuyển mạch sẽ tìm kiếm luồng dữ liệu vào phù hợp trong bảng định tuyến. Nếu không có luồng dữ liệu vào nào phù hợp, gói tin sẽ được chuyển tiếp tới thành phần điều khiển để xử lý và tạo ra một luồng dữ liệu vào mới tương ứng. Sau đó, thành phần chuyển mạch cài đặt luồng dữ liệu vào mới này vào bảng định tuyến và chuyển tiếp các gói tin trao đổi giữa người dùng.
Chế độ thụ động giúp tăng tính linh hoạt trong việc cấu hình hệ thống. Tuy nhiên, nhược điểm là độ trễ xử lý với gói tin đầu tiên, hơn nữa, có thể tạo điều kiện phát sinh các vấn đề gây mất ATTT cho hệ thống.
Mô hình tấn công
Trong bài báo này, thuật ngữ DoS được dùng chung cho tất cả các kiểu tấn công từ chối dịch vụ như DoS, DDoS, DrDoS.... Mô hình tấn công DoS mạng SDN bao gồm hai bước: nhận diện đối tượng và thực hiện tấn công.
Nhận diện đối tượng: trong chế độ thụ động, hệ thống mạng SDN tốn nhiều thời gian hơn để thành phần điều khiển xử lý và thiết lập luồng dữ liệu vào mới cho gói tin. Do đó, thời gian nhận được phản hồi của gói tin đầu sẽ dài hơn so với các gói tin tiếp sau. Điều này khác biệt hoàn toàn với các công nghệ mạng truyền thống. Căn cứ vào đặc điểm đó, kẻ tấn công có thể nhận diện được đặc tính mạng SDN bằng cách phân tích thời gian phản hồi của hai gói tin đầu tiên. Nếu có sự khác biệt thời gian lớn hơn một ngưỡng cho trước thì đó là mạng SDN.
Thực hiện tấn công: Tấn công DoS nhằm làm cho thành phần điều khiển quá tải trong xử lý gói tin mới, chiếm dụng băng thông điều khiển và gây tràn bảng định tuyến trong thành phần chuyển mạch. Kẻ tấn công gửi liên tiếp các gói tin yêu cầu thiết lập kết nối giả mạo trong khoảng thời gian hiệu dụng. Trong thời gian ngắn, toàn bộ tài nguyên hệ thống bị chiếm dụng để xử lý gói tin giả mạo, gây tê liệt hoạt động. Chất lượng dịch vụ của người dùng bình thường không còn được đảm bảo, thậm chí mất kết nối. Hình 1 biểu diễn mô hình tấn công DoS mạng SDN. Luồng dữ liệu màu đỏ thể hiện các hướng tấn công.
Hình 1: Mô hình tấn công DoS mạng SDN
Hình 1: Mô hình tấn công DoS mạng SDN
Cơ chế tự phòng chống tấn công DoS
Hướng tiếp cận
Phân tích lưu lượng gói tin dữ liệu và gói tin yêu cầu thiết lập kết nối để phân loại người dùng, với mỗi loại người dùng khác nhau áp dụng các chính sách định tuyến riêng biệt.
Cơ sở dữ liệu (CSDL) địa chỉ IP của người dùng tin cậy là IAD. Qua khảo sát, trong một chu kỳ thời gian hầu hết người dùng thông thường có nhu cầu thiết lập số lượng kết nối (tương đương số gói tin yêu cầu) trong khoảng [k1, k2] gói tin. Trên mỗi kết nối, số gói tin dữ liệu trao đổi tối thiểu ít nhất n gói tin. Một người dùng được gọi là tin cậy khi đáp ứng cả hai điều kiện trên.
Hai bảng tạm (V và N) được xây dựng để theo dõi số lượng gói tin yêu cầu của các địa chỉ IP. Các IP có trong CSDL IAD được lưu trong bảng V, các địa chỉ IP mới được lưu trong bảng N. Tương ứng với mỗi IP là một bộ đếm (vci và nci) số gói tin yêu cầu.
Định nghĩa ba loại luồng dữ liệu vào:
- Dòng vào thông thường (Normal entry): tham số timeouts như thông thường.
- Dòng vào ngắn (Short entry): tham số timeouts được rút ngắn đáng kể, giảm thời gian hữu dụng của entry.
- Dòng vào dạng khối (Block entry): tham số timeouts được thiết lập với thời gian dài, cấu hình tham số actions DROP để loại bỏ địa chỉ IP tương ứng.
Phân loại người dùng
Dựa trên đặc điểm nguồn gốc và hành vi trao đổi dữ liệu, người dùng được phân loại như sau:
- Người dùng hợp lệ IAD (IAD valid user) là người có địa chỉ IP thuộc CSDL IAD gửi số gói tin yêu cầu thiết lập kết nối trong khoảng [k1, k2] trong một chu kì thời gian nhất định. Trên mỗi kết nối, số gói tin dữ liệu trao đổi ít nhất n gói tin.
- Người dùng bị kẻ xấu lợi dụng IAD (IAD zombie) là người có địa chỉ IP thuộc CSDL IAD nhưng bị kẻ xấu khai thác để làm nguồn tấn công. Đặc điểm của IAD zombie là gửi liên tục các gói tin yêu cầu kết nối giả mạo. Với mỗi kết nối, số gói tin dữ liệu trao đổi ít hơn n gói tin.
- Người dùng bị kẻ xấu lợi dụng (Normal zombie): Hành vi tương tự IAD zombie, tuy nhiên, người dùng này có địa chỉ IP không nằm trong CSDL IAD.
- Người dùng chưa được định danh (Non-identified user): là người dùng có địa chỉ IP không thuộc CSDL IAD. Số gói tin yêu cầu thiết lập kết nối và số gói tin dữ liệu trên một kết nối tương ứng đều ít hơn k1 và n gói tin.
- Người dùng hợp lệ mới (New valid user): là người dùng có địa chỉ IP không thuộc CSDL IAD nhưng hành vi tương tự IAD valid user.
IAD zombie và Normal zombie điển hình cho hình thức tấn công DoS, trong khi đó Non-identified user đại diện cho hình thức tấn công DDoS.
Cơ chế tự phòng chống tấn công DoS
Cơ chế tự phòng tấn công DoS nằm ở lớp ứng dụng, được lập trình hoạt động trên nền thành phần điều khiển, tương tác với thành phần chuyển mạch phía dưới thông qua giao thức Openflow (tham chiếu Hình 1). Phương thức hoạt động của cơ chế tự phòng chống tấn công DoS được minh họa trên Hình 2.
Hình 2: Cơ chế tự phòng chống tấn công DoS
Hình 2: Cơ chế tự phòng chống tấn công DoS
Khi thành phần điều khiển nhận được một gói tin mới từ thành phần chuyển mạch, IP nguồn được kiểm tra xem có thuộc CSDL IAD hay không. Nếu địa chỉ IP nguồn nằm trong IAD, có nghĩa nó có nguồn gốc đáng tin cậy (IAD valid user). Thành phần điều khiển thiết lập Dòng vào thông thường phù hợp với gói tin yêu cầu. Giá trị vci được cập nhật tăng thêm 1 trong bảng V.
Nếu vci vượt qua giá trị k2, đó là dấu hiệu bất thường về hành vi của gói tin yêu cầu kết nối. Thành phần điều khiển gửi bản tin yêu cầu thống kê về gói tin dữ liệu của địa chỉ IP đó tới thành phần chuyển mạch. Thành phần chuyển mạch rà soát trong bảng định tuyến tìm kiếm các luồng dữ liệu vào phù hợp và gửi bản tin trả lời. Căn cứ trên các thông tin nhận được, thành phần điều khiển tính toán số gói tin dữ liệu trung bình s của địa chỉ IP. Nếu s nhỏ hơn n, chứng tỏ người dùng không thực sự có nhu cầu trao đổi dữ liệu, hay nói cách khác, đó là kẻ tấn công (IAD zombie). Chính sách áp dụng với IAD zombie bao gồm: Xóa toàn bộ luồng dữ liệu vào tương ứng trong bảng định tuyến; Thiết lập một Dòng vào dạng khối loại bỏ các gói tin đến; Xóa địa chỉ IP khỏi CSDL IAD và bảng V.
Ngược lại, nếu gói tin mới có địa chỉ IP không nằm trong CSDL IAD, bước đầu chúng ta giả thiết đó là Người dùng chưa được định danh. Thành phần điều khiển thiết lập Short entry phù hợp với gói tin yêu cầu. Giá trị nci được cập nhật tăng thêm 1 trong bảng N.
Nếu nci vượt qua giá trị k1, có thể người dùng đó không phải kẻ tấn công DDoS, cần phân tích hành vi của gói tin dữ liệu tương ứng. Thành phần điều khiển tính toán số gói tin dữ liệu trung bình s của người dùng sau khi gửi yêu cầu báo cáo thống kê tới thành phần chuyển mạch. Nếu s nhỏ hơn n, chứng tỏ đó là kẻ tấn công Người dùng bị kẻ xấu lợi dụng. Chính sách áp dụng với Người dùng bị kẻ xấu lợi dụng bao gồm: Xóa toàn bộ luồng dữ liệu vào tương ứng trong bảng định tuyến; Thiết lập một Dòng vào dạng khối loại bỏ các gói tin đến; Xóa địa chỉ IP khỏi bảng N.
Hình 3: Số lượng luồng dữ liệu vào trong bảng định tuyến
Hình 3: Số lượng luồng dữ liệu vào trong bảng định tuyến
Trường hợp s lớn hơn n, chứng tỏ người dùng thực sự có nhu cầu trao đổi dữ liệu, đáng tin cậy và được gọi là Người dùng hợp lệ mới (New valid user). Chính sách áp dụng với Người dùng hợp lệ mới bao gồm: Cập nhật toàn bộ Dòng vào ngắn thành Dòng vào thông thường; Bổ sung địa chỉ IP vào CSDL IAD; Chuyển địa chỉ IP từ bảng N sang V.
Hiệu quả của giải pháp
Qua kết quả thực nghiệm, cơ chế tự phòng chống tấn công DoS trong mạng Openflow/SDN mang lại hiệu quả tích cực. Số lượng luồng dữ liệu vào vô nghĩa bị triệt tiêu, giảm 49% so với thông thường. Cùng với đó, băng thông điều khiển bị chiếm dụng giảm 51% (như hình 3). Sử dụng kết hợp hai bước phân tích gói tin yêu cầu và gói tin dữ liệu, giải pháp cho phép nhận diện các đối tượng tấn công với độ chính xác cao. Các luồng tấn công DoS bị loại bỏ, hạn chế tác động của tấn công DDoS, trong khi vẫn đảm bảo chất lượng dịch vụ của người dùng bình thường.