Ưng dụng của mật mã có rất nhiều xung quanh cuộc sống hàng ngày của chúng ta. Từ hệ thống chống sao chép lậu đĩa DVD, các ứng dụng mã hóa dữ liệu, các hệ thống CA, VPN, mạng không dây… cho đến các hệ thống mã hóa thông tin nhạy cảm của các quốc gia. Điều gì sẽ xảy ra nếu hệ thống mã hóa đang được sử dụng bị vô hiệu hóa có một cách có hệ thống? Điều gì sẽ xảy ra nếu một quốc gia hay một tổ chức luôn có được khả năng giải mã mọi thông điệp đã được mã hóa luân chuyển trên Internet?
Bài viết này khảo sát khả năng tấn công tìm kiếm vét cạn không gian khóa (entire keyspace search) cho đến thời điểm hiện tại của một quốc gia hay một tổ chức.
Các yếu tố giữ cho một hệ thống mã hóa được an toàn
Mọi hệ thống mã hóa được thiết kế nhằm giải quyết bài toán giao tiếp an toàn (secure communication). Bốn tính chất của một cuộc truyền thông an toàn là: tính bí mật, tính xác thực, tính toàn vẹn, tính không thể chối bỏ.
Trong khuôn khổ bài viết này, chúng ta chỉ khảo sát khả năng vô hiệu hóa đặc tính bí mật (Confidentiality) của các hệ thống mật mã thực tế cùng với các hệ quả của nó. Khả năng vô hiệu hóa này được lượng hóa tương đối bằng chi phí và thời gian để tiến hành biện pháp vô hiệu hóa.
Một cách đơn giản, các hệ thống mã hóa dùng cấu trúc sau để giữ bí mật cho thông điệp giao tiếp.
Muốn đọc được bản rõ (plaintext), bên nghe lén có thể làm các việc sau:
- Tiếp cận thông điệp trước quá trình mã hóa hoặc sau quá trình giải mã (dùng chương trình ghi nhận bàn phím, đột nhập máy tính của bên gửi hay bên nhận…). Khả năng này không được đề cập đến trong chủ đề này.
- Có được một bản sao của thông điệp đã mã hóa (ciphertext) trên đường truyền (sẽ được đề cập đến trong một bài viết khác) và tìm cách thám mã (cryptanalysis).
Muốn thám mã - tức là thực hiện công đoạn giải mã mà không cần biết trước khóa, các nhà thám mã cần phải có hai thông tin: một là thuật toán giải mã (decrypt algorithm) hai là khóa đã được các bên trao đổi thông tin dùng.
Thuật toán giải mã thông thường được công bố rộng rãi đặc tả chi tiết (phá mã các hệ thống mã hóa giấu kín thuật toán vượt quá khuôn khổ bài viết này). Độc giả có thể dễ dàng tìm thấy các đặc tả các thuật toán cùng với mã nguồn sẵn có của hầu hết các thuật toán phổ biến như: 3DES, RC4, AES, RSA… Chỉ cần tìm ra khóa hai bên truyền thông đã sử dụng, cung cấp khóa này cùng với bản mã cho hàm giải mã, nhà mã thám sẽ có thông điệp gốc.
Yếu tố giữ cho một hệ thống mã hóa an toàn chính là thời gian và chi phí để tìm ra khóa một cách chính xác.
Tại một thời điểm, một hệ thống mã hóa được xem là an toàn nếu:
Chi phí cần thiết để phá vỡ hệ thống mã hóa lớn hơn giá trị của thông tin đã mã hóa: chi phí 10 tỷ USD để phá mã bí mật công nghệ đã được mã hóa trị giá chỉ 10 ngàn USD, liệu có nên đầu tư phá mã?
Thời gian cần thiết dùng để phá vỡ một thuật toán là quá lớn so với thời gian còn hiệu lực của thông tin cần biết: mất 10 triệu năm mới giải mã xong lệnh phát động tấn công của đối phương qua email đã mã hóa, liệu có nên phá mã?
Khảo sát khả năng tấn công tìm kiếm vét cạn không gian khóa
Khóa (key) là một chuỗi số có độ dài cố định trong các thuật toán. Không gian khóa (keyspace) là tất cả các khóa có thể ứng với một độ dài khóa nhất định.
Chẳng hạn với một thuật toán dùng khóa có độ dài 64 bit sẽ có không gian khóa bao gồm 264 khóa.
Tìm kiếm vét cạn không gian khóa là một phương pháp phá mã trong đó liên tục:
1.Chọn từng khóa trong không gian khóa.
2. Thử giải mã bản mã bằng khóa vừa chọn ra.
3.Nếu tìm được một số kết quả có ngữ nghĩa thì dừng lại. Người thám mã dựa trên kiến thức, kinh nghiệm và ngữ cảnh để chọn ra một kết quả phù hợp nhất.
4.Nếu sai thì quay lại bước 1.
Đây đơn giản là phương pháp thử sai! Tuy nhiên, nó là một phương pháp chắc chắn sẽ dẫn đến kết quả ngoại trừ hai trường hợp sau:
Trường hợp 1: chi phí hay thời gian (hai yếu tố liên quan mật thiết với nhau) là quá lớn để tìm kiếm trên toàn bộ không gian khóa. Người thám mã sẽ không đủ chi phí hay không đủ kiên nhẫn để chờ kết quả.
Trường hợp 2: nếu tồn tại một thông điệp gốc tuần hoàn làm cho bước iii) không thể phát hiện ngữ nghĩa của bản rõ (plaintext). Nó sẽ không thể dừng lại mặc dù đã thử sai toàn bộ không gian khóa. Đây là nền tảng để Dan Brown viết tác phẩm Digital Fortress sẽ được nhắc đến ở phần sau.
Trong phần này chúng ta thử ước lượng tính khả thi của việc phá mã dùng phương pháp tìm kiếm vét cạn không gian khóa.
Hiện tại giá thành của một PC (CPU 4Ghz, 2GRAM) không có màn hình là 300 USD-tạm gọi là crypt-unit (CU). Mỗi CU có thể thử sai 1.000.000.000.000 khóa mỗi ngày (24 giờ). Như vậy để phá mã một hệ thống mã hóa dùng khóa 64 bit (thử sai 264 = 18.446.744.073.709.551.616 khóa) cần thời gian là : 18.446.744.073.709.551.616/1.000.000.000.000 ~ 18.446.744 ngày ~ 50.550 năm.
Thử tính tiền điện để thực hiện việc phá mã trên. Mỗi CU tiêu tốn 1KW/h, tiền điện là 1000 VNĐ/KW. Như vậy chỉ riêng tiền điện để phá mã hệ thống mã hóa trên là:
50.550 X 365 X 24 X 1000 ~ 442.818.000.000 VNĐ ~ 443 tỷ VNĐ.
Mất 50.550 năm cùng với số tiền 443 tỷ VNĐ mới có thể giải mã hệ thống mã hóa dùng khóa 64 bit.
Thử dùng 10.000 CU, chúng ta sẽ rút ngắn được thời gian xuống còn 5 năm với chi phí không giảm đi.
Nếu huy động toàn bộ máy tính có kết nối Internet của Việt Nam (tạm cho là 5 triệu) để giải mã thì thời gian cần là: 0,01 năm ~ 3,65 ngày. Chi phí là không đáng kể! Mỗi máy tính sẽ thử sai một phần nhỏ của không gian khóa, thuật toán giải mã hiện thực trong một chương trình (screen saver chẳng hạn), máy tính này giải mã thành công sẽ gửi khóa đó về cho trung tâm giải mã để kiểm tra.
Hình 1 - Hệ thống mã hóa
Đến đây, một vấn đề được đặt ra là, nếu các hệ thống có độ dài khóa lớn hơn thì sao? Làm thế nào một tổ chức có thể huy động một lượng lớn CU để giải quyết? Khi đó sẽ có hai cách giải quyết:
1. Xây dựng hệ thống siêu máy tính tương đương hàng chục triệu CU hoặc hơn.
2. Sử dụng mạng máy tính toàn cầu (trên 1 tỷ CU). Có thể huy động chính thức hoặc huy động cưỡng bức.
Ngoài ra, còn có một số yếu tố làm giảm thời gian cho quá trình phá mã:
- Định luật Moore: tốc độ các CU sẽ tăng gấp đôi sau mỗi 06 tháng.
- Không cần thiết phải tìm trọn vẹn không gian khóa để phá mã.
- Một số thuật toán có giá trị “cửa sập” (trapdoor), thông thường người xây dựng nên thuật toán nắm giá trị này. Nếu mọi người không chứng minh được sự tồn tại của trapdoor hay không tính toán được giá trị chính xác của nó và sử dụng thuật toán này để mã hóa thì người nắm giá trị cửa sập sẽ luôn giải mã được mọi bản mã hình thành do thuật toán này. Điều này tùy thuộc vào năng lực toán học của từng quốc gia. Như vậy, nghiên cứu toán học sâu sắc để đưa ra các thuật toán mã hóa có ẩn chứa cửa sập cũng là một cách để thu thập thông tin “ngay trước mũi cả thế giới”!m
Phòng Thí nghiệm An ninh thông tin và bài toán đánh giá thiết bị chống xâm nhập
Sử Tâm Nguyên và cộng sự tại ISeLAB
Giới thiệu
Hệ thống phát hiện xâm nhập (Intrusion Detection System - IDS) hoặc phòng chống xâm nhập (Intrusition Prevention System - IPS) ngày nay không còn xa lạ đối với nhiều mô hình mạng. IDS/IPS đóng vai trò quan trọng trong chất lượng của hệ thống phòng vệ cho mạng. Việc lựa chọn, đánh giá khả năng của một IDS/IPS đã trở thành một vấn đề cần tìm hiểu và cân nhắc mỗi khi triển khai một hệ thống mạng. Bài viết này đề cập tới công tác đánh giá một số thiết bị IDS/IPS tại Phòng thí nghiệm an ninh thông tin (ISeLAB) thuộc Khu Công nghệ phần mềm Đại học Quốc gia Thành phố Hồ Chí Minh (ĐHQG-HCM).
IDS/IPS là gì?
IDS là một hệ thống phát hiện và cách ly những tấn công đến mạng cần bảo vệ. Được kết nối “song song” với dòng dữ liệu, IDS có một phiên bản sao của dòng dữ liệu vào/ra mạng. Nếu phát hiện xâm nhập, IDS có những hành động cụ thể để ngăn chặn sự xâm nhập đó. Tuy nhiên, phản ứng của IDS thường xảy ra sau khi cuộc tấn công đến mạng bảo vệ đã được bắt đầu và một số dữ liệu tấn công đã tới đích. Khác với IDS, IPS được đặt nối tiếp trên đường đi của dòng dữ liệu, vì vậy IPS có khả năng ngăn chặn được sự xâm nhập ngay khi nó mới bắt đầu và chưa kịp đến mạng cần bảo vệ. Ngoài sự khác nhau trên, IDS và IPS hoàn toàn giống nhau về cơ chế phát hiện xâm nhập.
Khi đánh giá tính năng của một IDS/IPS, cần xem xét khả năng thực tế của thiết bị qua các yếu tố sau:
- Khả năng phát hiện tấn công trong các điều kiện lưu lượng mạng khác nhau.
- Khả năng nhận biết các kỹ thuật lẩn tránh IDS/IPS.
- Tính đơn giản trong quản lý, cấu hình IDS/IPS.
Nội dung chính của phương pháp đánh giá này là tìm cách tạo ra các cuộc tấn công với nhiều hình thức khác nhau trong điều kiện hoạt động mạng ở các chế độ tải khác nhau nhằm xem xét khả năng thực hiện của các thiết bị đối với những chức năng đã được thiết kế và công bố bởi nhà sản xuất. Đồng thời, cần thử thực hiện các kiểu cấu hình khác nhau để xem tính linh hoạt và dễ quản trị của thiết bị.
Khả năng phát hiện tấn công
Chức năng cơ bản nhất của IDS/IPS là phát hiện và ngăn chặn các cuộc tấn công trong khi vẫn đảm bảo dòng dữ liệu hợp lệ đi qua, đây là một trong những tiêu chí quan trọng nhất để đánh giá chất lượng một IDS/IPS.
Nhằm đánh giá khả năng phát hiện các cuộc tấn công, các chuyên gia lựa chọn phần mềm phát sinh dòng dữ liệu giả lập tấn công Traffic IQ Pro. Công cụ này có khả năng lặp lại (replay) các kiểu dòng dữ liệu (traffic file) khác nhau. Mỗi traffic file là một giả lập của một kiểu tấn công. Số lượng các traffic file của Traffic IQ Pro lên đến hơn 1000 (phiên bản sử dụng để thử nghiệm là 1.0.158 có 661 traffic file).
Việc kiểm tra khả năng phát hiện xâm nhập của IDS/IPS cần được thực hiện với nhiều (3) mức độ cấu hình sử dụng mẫu (signature) nhằm phát hiện xâm nhập khác nhau. Đó là: mặc định theo khuyến cáo của nhà sản xuất, sử dụng tất cả mẫu và hiệu chỉnh mẫu cho phù hợp với hệ thống cần bảo vệ.
Mô hình thử nghiệm IDS/IPS với Traffic IQ Pro (Hình 1)
Mô hình thử nghiệm bao gồm một máy tính với 2 card mạng và thiết bị cần kiểm tra, máy tính và thiết bị cần kiểm tra được nối thành vòng tròn như hình vẽ Traffic IQ Pro tạo ra trên máy tính vật lý 2 máy ảo tách biệt, một dùng như nguồn phát các gói tin và một như đích nhận gói tin. Máy ảo sẽ gửi gói tin qua card mạng thứ nhất đến thiết bị và kiểm tra xem gói tin có đến card mạng thứ hai không. Qua việc so sánh gói tin gửi đi và nhận được, chúng ta có thể kiểm tra khả năng phát hiện và ngăn chặn của IDS/IPS.
Khả năng nhận biết các kỹ thuật lẩn tránh IDS/IPS (evasion technique)
Tháng 1/1998, trong bài báo “Insertion, Evasion, and Denial of Service: Eluding Network Intrusion Detection” Thomas H.Ptacek và Timothy N.Newsham đã nêu ra một số kỹ thuật có thể dùng để lẩn tránh khả năng phát hiện của IDS/IPS cho dù IDS/IPS đó có mẫu về cuộc tấn công mà hacker sẽ dùng.
Việc đảm bảo IDS/IPS nhận biết và chống được những kỹ thuật lẩn tránh này là hết sức quan trọng. Một công cụ phần mềm hữu hiệu để kiểm tra chức năng này là Fragroute, nó tập hợp các kỹ thuật được nêu trong bài báo nói trên.
Các kỹ thuật này có nhiều loại nhưng chủ yếu dựa trên nguyên lý: nguồn phát sẽ phân mảnh gói tin theo nhiều kiểu khác nhau, sau đó cách thức mà đích nhận tổng hợp các phân mảnh này sẽ khác với cách mà IDS/IPS tổng hợp để kiểm tra, nhờ đó gói tin tránh được sự kiểm duyệt của IDS/IPS mà vẫn có khả năng tấn công đích. Ngoài ra, việc chèn các ký tự điều khiển vào trong chuỗi URL hoặc trong lệnh của giao thức FTP cũng có thể gây ra sự nguy hiểm với hệ thống cần bảo vệ mà IDS/IPS không thể nhận biết.
Mô hình thử nghiệm (Hình 2)
Trong thử nghiệm này, chúng tôi dùng Metesploit khai thác một lỗi bất kỳ trong mạng bảo vệ, ghi nhận việc phát hiện và ngăn chặn cuộc tấn công này của IDS/IPS. Sau đó lặp lại cuộc tấn công nhưng kết hợp với fragroute (với nhiều kiểu cấu hình khác nhau), kiểm tra xem IDS/IPS có còn phát hiện đúng loại tấn công và ngăn chặn được hay không.
Khả năng chịu tải hay hiệu suất hoạt động trong điều kiện có nhiều dữ liệu
Khả năng xử lý của các sản phẩm IDS/IPS đều được các nhà sản xuất công bố dưới dạng thông số về lưu lượng ra của thiết bị. Thông số này là yếu tố quyết định việc lựa chọn thiết bị cho một mạng cụ thể cũng như giá thành của thiết bị. Vì vậy, cần xem xét khả năng phát hiện và ngăn chặn tấn công của IDS/IPS bị ảnh hưởng như thế nào trong điều kiện có tải vừa và lớn trên mạng. Có thể một IDS/IPS hoạt động tốt trong điều kiện bình thường (lưu lượng mạng nhỏ) nhưng nó lại bỏ sót hoặc không có khả năng xử lý các gói tin nữa khi có một lượng dữ liệu lớn đi qua.
Có rất nhiều công cụ sinh tải, từ những phần cứng chuyên nghiệp như Spirent Communications Avalanche với giá trên một trăm ngàn USD đến phần mềm mã nguồn mở miễn phí như ISIC. Chúng tôi lựa chọn ISIC làm công cụ sinh tải nền trong các đánh giá của mình. Phần mềm ISIC có mã nguồn mở, chạy trên Linux có thể sinh ra lượng lớn gói tin với các loại như trường IP Option, packet fragment hoặc packet invalid length… một cách rất hiệu quả. Việc sinh lượng lớn các packet không hợp lệ này làm cho IDS/IPS không những phải xử lý tối đa mà còn phải ghi nhận những cảnh báo về các packet này, do đó càng làm tăng khối lượng công việc cho IDS/IPS.
Mô hình thử nghiệm (Hình 3)
Kết hợp ISIC + TRAFFIC IQ PRO tạo nên mô hình như sau.
ISIC cho phép cấu hình tốc độ sinh dòng dữ liệu và tỉ lệ gói bất hợp lệ khác nhau. Tùy thuộc vào khả năng của IDS/IPS cần thử nghiệm mà ta có thông số tốc độ thích hợp cho ISIC.
Trên nền tải của ISIC, chúng tôi thử nghiệm lại khả năng phát hiện và ngăn chặn của IDS/IPS bằng Traffic IQ Pro. Bên cạnh đó, chúng tôi cũng tính đến khả năng đảm bảo sự ra vào bình thường của traffic hợp lệ. Từ mô hình trên, chúng ta có thể tìm ra điểm “tới hạn” cho IDS/IPS (phát hiện và ngăn chặn tấn công trong khi vẫn đảm bảo traffic hợp lệ đi qua).
Khả năng quản lý, cấu hình
Phần cuối cùng trong việc đánh giá, xem xét một IDS/IPS là khả năng linh hoạt, đơn giản trong cấu hình và quản lý. Chúng tôi quan tâm tới một số vấn đề sau:
Khả năng tránh bị phát hiện và bị tấn công bởi IDS/IPS: IDS/IPS thường hoạt động ở lớp 2 và “trong suốt” trong mạng. Việc không có địa chỉ IP ngăn ngừa được những nguy cơ tấn công trực tiếp vào các IDS/IPS. Giao tiếp giữa người quản trị và sensor cần thông qua một giao thức bảo mật như SSL hay TLS, phải có ít nhất một loại chứng chỉ người sử dụng và phân quyền cho từng người sử dụng.
Khả năng tập trung hóa quản trị các IDS/IPS trong một mạng: Việc quản lý tập trung là cần thiết khi triển khai hệ thống lớn có nhiều sensor. Ứng dụng quản lý tập trung phải có khả năng tổng hợp thông tin từ dữ liệu của từng sensor riêng rẽ. Việc thiết lập, theo dõi chính sách cũng cần được làm tập trung, sau đó sẽ triển khai đến từng sensor cụ thể.
Khả năng cập nhật các mẫu phát hiện kiểu tấn công mới: Việc cập nhật các mẫu (signature) mới là tối cần thiết cho một IDS/IPS. Mẫu thường phải được cập nhật tự động từ nhà sản xuất, thời gian giữa hai lần đưa ra mẫu mới của nhà sản xuất phần nào cho thấy mức độ hiệu quả của IDS/IPS đó. Một lưu ý về cập nhật mẫu khi lựa chọn IDS/IPS là: một số nhà sản xuất không bán kèm license để cập nhật mẫu khi mua sản phẩm IDS/IPS (như Cisco IPS) trong khi một số khác lại cho cập nhật mẫu miễn phí.
Khả năng phát hiện các tấn công mới chưa có mẫu: Tập mẫu do nhà sản xuất cung cấp khó có thể bao trùm hết các loại tấn công, đặc biệt là những loại tấn công mới. Do đó khả năng ngăn ngừa các loại tấn công chưa có mẫu cũng là một chức năng đáng để xem xét của IDS/IPS.
Ghi và quản lý nhật ký (log): Phát sinh và quản lý nhật ký cũng là một yếu tố cần quan tâm. IDS/IPS phải ghi nhận được những sự kiện cơ bản như: phát hiện traffic tấn công, ngắt một kết nối nào đó, đăng nhập thành công hoặc không thành công của người dùng có quyền quản trị, khi có sự thay đổi về chính sách, phần cứng gặp vấn đề… Trong việc quản lý nhật ký, phải có cơ chế chống tấn công làm tràn bộ nhớ hoặc máy chủ quản lý chứa nhật ký. Các sự kiện sinh ra phải được phân cấp mức độ nguy hiểm và phải có hành động kèm theo đối với mỗi sự kiện mới. Các sự kiện liên quan đến cùng một cuộc tấn công nên nhóm lại và xem xét hành động dựa trên sự kiện tổng hợp này.
Khả năng phát sinh các báo cáo dễ theo dõi. IDS/IPS phải cung cấp chức năng tạo báo cáo, có thể thống kê những thông số cơ bản như: loại tấn công nhiều nhất, nguồn gây nhiều tấn công nhất, đích (có thể là host, protocol hay service) hay bị tấn công nhất …
Kết quả thử nghiệm trên Cisco ASA 5510 có module IPS AIP-SSM-10 và Juniper IDP 50
- Cấu hình IPS của Cisco ASA: bật tất cả các mẫu trừ 3 mẫu có ID mẫu là 50000, cấu hình hành động là chặn (deny) gói gây ra các sự kiện với mức độ nguy hiểm từ 85 - 100 và đặt card mạng trong ở chế độ an ninh tối đa.
- Cấu hình Juniper IDP: bật tất cả các mẫu hiện có.
- Thời điểm cập nhật mẫu lần cuối của Cisco IPS và Juniper IDP: tháng 9/2006. Thời điểm cập nhật kiểu tấn công của Traffic IQ Pro: tháng 8/2006 (phiên bản 1.0.158).
- Phần mềm sinh traffic DoS: ISIC 0.6.
- Cấu hình phần cứng của PC: CPU: 2.4 GHz, RAM: 512 MB với Gigabit card.
- Các kết quả sau là kết quả trung bình của 5 lần thử nghiệm và lấy kết quả.
Khả năng nhận biết các kỹ thuật lẩn tránh IDS/IPS