4. Một số hệ thống kiểm duyệt nƣớc ngoà
4.3.1. Dấu hiệu và kiến trúc hoạt động
Ngày 16/3/2015, GreatFire.org thấy máy chủ đã thuê cho trang web là mục tiêu của một tấn công từ chối dịch vụ (DDoS). Ngày 26 tháng 3, hai trang GitHub chạy trên GreatFire.org cũng bị một loại tấn công. Cả hai cuộc tấn công xuất hiện nhắm vào các dịch vụ được thiết kế để chống lại sự kiểm duyệt của Trung Quốc. Báo cáo của GreatFire.org cho rằng các đoạn mã độc Javascript được trả về bởi máy chủ Baidu, là nguồn gốc của các cuộc tấn công. Một số báo cáo kỹ thuật cho rằng GFW của Trung Quốc dàn dựng các cuộc tấn công bằng cách nhúng các đoạn mã độc Javascript vào các liên kết Baidu. Một số nhóm an ninh mạng đã vào cuộc để phân tích nguồn gốc các cuộc tấn cơng, trong đó nổi bật là các kết quả đến từ Citizenlab. Phân tích cho kết quả, cơ sở hạ tầng tấn cơng được đặt cùng vị trí với Siêu tường lửa GFW. Tuy nhiên, cuộc tấn công được thực hiện bởi hệ thống tấn công riêng biệt, với cách thức tấn công khác
nhau (Citizenlab gọi là Đại thần công - Great Cannon GC). GC không chỉ là một
phiên bản mở rộng của GFW, mà là một công cụ tấn công riêng biệt theo các luồng địa chỉ IP riêng, có khả năng thay thế nội dung dữ liệu và các yêu cầu truy cập khơng được mã hóa, phục vụ tấn công phương pháp kẻ đứng giữa. Việc triển khai Greate Cannon là một sự leo thang trong kiểm sốt thơng tin cấp nhà nước, để thực thi kiểm duyệt dữ liệu người dùng. GC thao túng toàn bộ các lưu lượng truy cập vào các hệ thống bên ngoài Trung Quốc, âm thầm dùng trình duyệt của họ để tấn cơng DDoS lớn. Bất kỳ máy tính nước ngoài nào giao tiếp với các trang web Trung Quốc không sử dụng HTTPS, sẽ trao cho GC cơ hội khai thác mục tiêu.
Đơn giản hóa cấu trúc liên kết logic của Greate Cannon và Great Firewall
Các thông số cho thấy, GC nằm cùng hệ thống với GFW, nghi vấn cuộc tấn công từ GFW. Tuy nhiên, khi phân tích sâu hơn cho thấy, đây là hai hệ thống hồn tồn khác nhau về mơ hình hoạt động.
Theo hình vẽ, một hệ thống tường lửa chặn, lọc trên luồng kết nối giữa hai mạng Trung Quốc và Quốc tế và mọi lưu lượng phải đi qua tường
lửa. GFW là một hệ thống trên-luồng (on-path), can thiệp trực tiếp luồng thông tin giữa Trung Quốc và thế giới và hủy các yêu cầu kết nối với nội
dung bị cấm (ví dụ, khi có u cầu cho “http://www.google.com/?falun”, bất kể máy chủ đích thực sự là gì), bằng cách chèn một loạt các giả mạo TCP Reset (RST) vào các gói tin cho cả các yêu cầu và đích đến, để khởi tạo lại giao tiếp. Hệ thống “trên đường dẫn” có lợi cho việc kiểm duyệt, nhưng ít tính linh hoạt và tính ẩn, khi dùng cho mục đích tấn cơng. Vì nó có thể chèn các gói bổ sung, nhưng khơng thể ngăn chặn gói dữ liệu hồn thành (gói tin đã được gửi) đã đến được đích. Vì vậy, cách thường dùng để nhận diện một hệ thống trên-luồng là quan sát các hiện tượng bất thường do sự việc chèn dữ liệu và sự hợp pháp của lưu lượng. Các GFW theo dõi các kết nối và ráp lại các gói tin, để xác định có nên chặn luồng dữ liệu hay khơng. Q trình tái gộp các gói tin địi hỏi tài ngun tính tốn bổ sung, trái ngược với việc xem xét từng gói tin độc lập, nhưng có độ chính xác tốt hơn trong ngăn chặn. Trong khi một yêu cầu web thường phù hợp trong một gói duy nhất, các phản hồi web có thể được phân ra thành nhiều gói dữ liệu và các GFW phải ghép nối lại các gói tin để xác định nội dung web trả về có chứa nội dung bị cấm không. Trên bất kỳ liên kết vật lý (như cáp quang), các GFW
chạy quá trình tái gộp các gói tin và kiểm duyệt logic (có thể chạy song song trên một hoặc nhiều cụm máy tính khác nhau). Mỗi quá trình xử lý trên một tập hợp con của các kết nối có liên kết, tất cả các gói tin trên một kết nối sẽ vào cùng một quá trình xử lý. Kiến trúc cân bằng tải này thể hiện một thiết kế thông thường, khi liên kết vật lý mang dung lượng lớn hơn mức máy chủ
có thể xử lý. Mỗi tiến trình GFW có một kênh đặc biệt duy trì bộ đếm các
gói tin TCP chèn dữ liệu vào.
Khác với GFW, GC là một hệ thống trong-luồng (in-path), có khả năng khơng chỉ chèn luồng dữ liệu, mà còn ngăn chặn luồng dữ liệu, hoạt động như một “người đứng giữa” đầy đủ đối với các luồng mục tiêu. Các GC không chủ động kiểm tra tất cả lưu lượng truy cập vào liên kết, mà chỉ chặn lưu lượng truy cập đến (hoặc từ) một tập các địa chỉ mục tiêu. Toàn bộ tiến trình của GC hoạt động trên nhiều phần nhỏ của luồng dữ liệu đến hoặc đi từ địa chỉ mục tiêu. Ngoài ra, trái ngược với các GFW, GC chỉ kiểm tra các gói dữ liệu đơn lẻ để hoạt động, tránh những chi phí tính tốn kiểm tra tập hợp
các gói tin TCP. Các GC cũng duy trì một bộ nhớ cache lưu lượng các kết
nối mà nó sử dụng, để bỏ qua các kết nối đã được xử lý gần đây, không cần phải kiểm tra. Tuy nhiên, các GC cũng chia sẻ một số tính năng với các
GFW. Giống như GFW, GC cũng là một cụm hệ thống đa tiến trình, với các
địa chỉ IP nguồn khác nhau, được xử lý bởi các tiến trình khác nhau. Các gói tin được chèn bởi GC cũng có cùng một tính năng TTL bên kênh như được chèn bởi GFW, cho thấy cả GFW và GC có thể chia sẻ một số modun với
nhau. Tóm lại, mặc dù các GC và GFW là hệ thống độc lập với chức năng
khác nhau, nhưng có sự liên kết giữa các thành phần quan trọng với nhau. Trong cuộc tấn công trên GitHub và GreatFire.org, GC chặn lưu lượng gửi đến các máy chủ Baidu, được sử dụng cho phân tích, mạng xã hội, hoặc quảng cáo. Nếu GC thấy có yêu cầu đối với một số tệp tin Javascript trên
một trong những máy chủ này, nó xuất hiện và xử lý một trong 2 hành động có xác suất: cho qua các yêu cầu đến các máy chủ của Baidu khoảng 98.25% thời gian và ngắt các yêu cầu kết nối, trước khi yêu cầu đó đến được với Baidu và thay vào đó một đoạn mã độc hại tới trình duyệt của người dùng trong khoảng 1,75% tổng số truy xuất. Các đoạn mã độc biến người dùng thành những Zombie trong mạng Botnet-DDOS đến GreateFire.org và GitHub. Citizenlab điều tra hoạt động bình thường của tính năng kiểm duyệt
và một máy chủ mà Citizenlab thấy Baidu trả lại Javascript độc hại. Citizenlab gửi tới các máy chủ Baidu một yêu cầu mà GFW sẽ xử lý như một truy vấn cho “http://www.google.com/?falun”. Một URL dài kích hoạt các GFW chèn TCP Reset để chấm dứt kết nối. Gói tin bắt được cho thấy kết quả của thí nghiệm của Citizenlab, khẳng định vẫn hoạt động bình thường và GFW vẫn tiếp tục hoạt động. Việc bắt giữ các gói tin gồm cả phần Reset được chèn TCP, sau đó là những phản hồi hợp pháp (HTTP 403) từ máy chủ Baidu. Điều này xảy ra, vì các GFW vẫn hoạt động như một hệ thống trên-luồng và các hệ thống trên luồng khơng ngăn chặn được các gói tin đã được chuyển đi.
Greate Cannon được triển khai trong cuộc tấn công GitHub và GreatFire.org