Malicious TCP
2.5.4.2. Chương trình DDoS điển hình:TFN (Tribe Flood Network)
TFN là một chương trình tấn cơng từ chối dịch vụ phân tán ra đời vào năm 1999, hoạt động trên hệ điều hành Unix, cùng phát triển với nó là Trin00, cũng là một chương trình DDoS ra đời đầu tiên (giới thiệu ở trên). Mã nguồn TFN xây dựng gồm 2 tập tin nhị phân chính, một đóng vai trị Client (nó được điều khiển bởi attacker), một đóng vai trị Deamon (nằm trên máy bị thỏa hiệp – compromised). TFN có khả năng khởi phát tấn công với nhiều loại: ICMP Flood, SYN Flood, UDP Flood và Smurf attack, cũng như cung cấp một cổng TCP
với đặc quyền root (quyền cao nhất trong Unix)
Bằng cách khai thác một lỗ hổng về bảo mật, attacker có thể chèn tập tin nhị phân TFN Daemon và điều khiển nó thơng qua TFN Client (TFN Client
cũng giống như TFN Deamon, cũng là một tập tin sẽ bị lây nhiễm trên một máy tính nào đó, nhưng nó đóng vai trị trung gian là điều khiển các máy Daemon nhằm tăng thêm tính “bảo mật” cho attacker). Về nguyên thủy, những Daemon này sẽ bị điều khiển dựa trên những tập lệnh truy xuất từ xa (remote command shells). Đối với một attacker chuyên nghiệp (experience attacker), họ có thể thay đổi mã nguồn với mật khẩu khác, phương thức tấn công khác hay những dấu hiệu khác.
Hiện tại, cả hai Client và Daemon đều chạy trên môi trường Unix cũng như Linux. Nó tn theo mơ hình tấn cơng từ chối dịch vụ phân tán, đó là: attaker(s) client(s) daemon(s) victim(s).
Mã nguồn TFN có 2 tập tin chính: “tribe.c” làm client và “td.c” làm daemon. Attacker sẽ điều khiển một hoặc nhiều client, client sẽ điều khiển một hoặc nhiều daemon. Những daemon này sẽ trực tiếp xây dựng những gói tin (packet) phục vụ cho mục đích tấn cơng, đồng loạt tấn công vào một hay nhiều mục tiêu (victim) do client yêu cầu.
G
i a o ti ế p:
Điều khiển từ xa của mạng TFN được thực hiện bởi chương trình client thơng qua dịng lệnh, nó xác lập nhiều phương thức kết nối với daemon, chẳng hạn như; tập lệnh truy xuất từ xa dựa trên cổng TCP, hay tập lệnh từ xa theo mơ hình client/server dựa trên UDP, hoặc ICMP như LOKI, phiên đầu cuối SSH, hay một phiên Telnet thông thường.
Khi chạy client không cần password, client sẽ nắm giữ một tập tin liệt kê danh sách những daemon mà nó thuộc về.
Giao tiếp giữa Client và Daemon xác lập thơng qua những gói tin ICMP_ECHOREPLY. Do nó khơng phải là những gói TCP hay UDP, người ta ít khi nào“dán mắt” vào những gói ICMP, cho nên nó lợi dụng đặc điểm nào để truyền thông vớinhau.
Nguyên thủy (không thay đổi mã nguồn), sau khi biên dịch chạy chương trình Client, nó có giao diện như sau (giả định chương trình Daemon được kích hoạt và chạy tiềm ẩn):
Hình 2.18: Minh họa cơng cụ DDoS – TFN
<iplist>: chứa danh sách những máy tính (host) bị nhiễm phần mềm Daemon. Nó sẽ thỏa hiệp phát lệnh tấn cơng cho những host này.
<type>: các loại tấn cơng ngập lụt (Flood). Ví dụ: số 1 đại diện loại tấn công là UDP.
<ip>: địa chỉ IP của máy victim, nếu nhiều victim, cách nhau bởi dấu “@” <port>: chỉ định cổng tấn công, 0 :ngẩu nhiên
N
h ậ n d ạ n g m ậ t kh ẩ u:
Trong khi client khơng có mật khẩu, mỗi lệnh gởi qua Daemon chứa một con số nhị phân 16 bit trong trường id của gói ICMP_ECHOREPLY.
Trong khi trường sequence number chứa hằng số là 0x0000, trơng giống như gói tin bằng lệnh “ping” đầu tiên.
Giá trị những con số này được quy định trong tập tin cấu hình config.h
Hình 2.19: Tập tin chứa danh sách các mật khẩu điều khiển agent
Nhìn vào hình trên, có thể thấy, nếu như một attacker kinh nghiệm, họ có thể thay đổicác thông số giao tiếp. Như vậy sẽ giúp cho họ dễ điều khiển các Daemon cũng như khỏi“đụng chạm” với các attacker khác.
Dưới đây là quá trình thực hiện ngập lụt các gói tin TCP vào máy victim:
Hình 2.20: q trình tấn cơng diễn ra
Quan sát trên máy victim bằng phần mềm bắt gói Ethereal, sẽ nhận biết được lưu lượng TCP tăng đột biến:
Cơng cụ TFN cịn giả mạo cả địa chỉ IP nguồn (source address) khiến cho người quản trị khó nhận biết được lưu lượng thực xuất phát từ daemon.
Hình 2.22: Minh họa bằng cơng cụ bắt gói Ethereal L
ầ n tìm dấ u hi ệ u:
Giám sát lưu lượng mạng bằng công cụ Ethearel, thực hiện lệnh “ping –c 3 192.168.1.111” (ý nghĩa: gửi 3 gói ICMP_ECHO và chờ đáp ứng trở lại). Ta sẽ thấy được những gói ICMP_ECHOREQUEST với trường payload cố định và gói đáp trả về ICMP_ECHOREPLY cũng với payload tương tự. Đồng thời trường sequence number sẽ tăng dần khi mỗi gói tin gởi đến (cũng
như trả về tương ứng)
Khi điều khiển TFN Client, gởi những lệnh tới Daemon đều sử dụng những gói
ICMP_ECHOREPLY thay vì ICMP_ECHO. Lý do thực hiện điều này
nhằm tránh nhân (kernel) của hệ thống máy Daemon khơng chấp nhận những gói ICMP_ECHOREQUEST mà vẫn chấp nhận những gói ICMP_ECHOREPLY.
Daemon sau đó nếu cần thiết có thể đáp lại Client cũng bằng những gói
ICMP_ECHOREPLY.
Sử dụng tiện ích tcpdump (tiện ích bắt gói và giải mã gói tin, hỗ trợ sẵn có trong kernel) của Linux, có thể thấy được một thủ tục truyền thơng giữa Client và Daemon:
Hình 2.23: nhận dạng q trình giao tiếp giữa Client – Deamon
Theo dõi quá trình trao đổi ICMP, Client sẽ gởi gói ICMP_ECHOREPLY
với trường ID có mã hexa là 0x016F (dạng thập phân là 567) theo như tập tin cấu hình config.h trong mã nguồn, yêu cầu Daemon ngưng tấn cơng. Ngồi ra, trường sequence number luôn là
0x0000 (khơng giống như gói tin “ping” thơng thường).
TFN (nếu như mã nguồn khơng thay đổi).
2.6. TÌM HIỂU VỀ IDS:
2.6.1. Khái niệm:
IDS (Intrusion Detection System_ hệ thống phát hiện xâm nhập) là một thống giám sát lưu thông mạng, các hoạt động khả nghi và cảnh báo cho hệ thống, nhà quản trị
Ngoài ra IDS cũng đảm nhận việc phản ứng lại với các lưu thơng bất thường hay có hại bằng cách hành động đã được thiết lập trước như khóa người dùng hay địa chỉ IP nguồn đó truy cập hệ thống mạng,…..
IDS cũng có thể phân biệt giữa những tấn cơng bên trong từ bên trong (từ những người trong công ty) hay tấn cơng từ bên ngồi (từ các hacker). IDS phát hiện dựa trên các dấu hiệu đặc biệt về các nguy cơ đã biết (giống như cách các phần mềm diệt virus dựa vào các dấu hiệu đặc biệt để phát hiện và diệt virus) hay dựa trên so sánh lưu thông mạng hiện tại với baseline(thông số đo đạc chuẩn của hệ thống) để tìm ra các dấu hiệu khác thường.
Ta có thể hiểu tóm tắt về IDS như sau :
Chức năng quan trọng nhất : giám sát -cảnh báo - bảo vệ
- Giám sát : lưu lượng mạng + các hoạt động khả nghi.
- Cảnh báo : báo cáo về tình trạng mạng cho hệ thống + nhà quản trị.
- Bảo vệ : Dùng những thiết lập mặc định và sự cấu hình từ nhà quản trị mà có những hành động thiết thực chống lại kẻ xâm nhập và phá hoại.
- Chức năng mở rộng :
- Phân biệt : "thù trong giặc ngoài"
- Phát hiện : những dấu hiệu bất thường dựa trên những gì đã biết hoặc nhờ vào sự so sánh thông lượng mạng hiện tại với baseline