Được sếp giới thiệu bộ ký sự này, tôi quyết định copy về blog của mình để sau này nghiền ngầm tiếp, chắc chắn là sẽ có ích cho tôi trong tương lai… bài học đầu tiên, theo dõi các Request liên quan đến dữ liệu POST
Dấu hiệu
Mấy tuần lễ gần đây, đột nhiên lượng tải trên máy chủ HVA tăng vọt trong khi số lượng thành viên chính thức truy nhập diễn đàn vẫn ở mức bình thường. DoS? hay DDoS? Lượng tải này tăng vọt khá đều đặn vài giờ trong mỗi ngày. Lượng thành viên gia tăng nên có quá nhiều người cùng truy cập? không phải. HVA đang có đề tài gì hấp dẫn nên thiên hạ ùn ùn kéo vào? cũng không phải.
Dấu vết
Tôi nhận công tác điều tra và xử lý tình trạng bất bình thường này, trong đầu đã phần nào đoán sự thể do DoS. Khuya ngày 10 tháng 10, tôi log vào server của HVA và tạo ra vài console, mở ra vài cái đuôi -1-, làm một ấm trà và ngồi đó nhâm nhi… một mình. Không cần phải đợi lâu, hàng loạt thông tin từ log của web server hiện lên màn hình với một số chi tiết rất lý thú:
210.245.31.246 – – [10/Oct/2004:06:57:19 -0400] “POST /forum/ HTTP/1.0” 200 1618 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)”
211.199.192.157 – – [10/Oct/2004:06:57:19 -0400] “POST /forum/ HTTP/1.1” 200 1619 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; iebar)”
203.162.3.148 – – [10/Oct/2004:06:57:19 -0400] “POST /forum/ HTTP/1.1” 200 1619 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; FunWebProducts)”
203.162.3.148 – – [10/Oct/2004:06:57:19 -0400] “POST /forum/ HTTP/1.1” 200 1619 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; FunWebProducts)”
80.170.198.46 – – [10/Oct/2004:06:57:19 -0400] “POST /forum/ HTTP/1.1” 200 1617 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 1.0.3705)”
81.66.147.0 – – [10/Oct/2004:06:57:19 -0400] “POST /forum/ HTTP/1.1” 200 1615 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)”
211.199.192.157 – – [10/Oct/2004:06:57:19 -0400] “POST /forum/ HTTP/1.1” 200 1619 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; iebar)”
210.245.31.246 – – [10/Oct/2004:06:57:19 -0400] “POST /forum/ HTTP/1.0” 200 1618 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)”
203.162.3.148 – – [10/Oct/2004:06:57:19 -0400] “POST /forum/ HTTP/1.1” 200 1614 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)”
210.245.31.246 – – [10/Oct/2004:06:57:19 -0400] “POST /forum/ HTTP/1.0” 200 1618 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)”
24.17.150.114 – – [10/Oct/2004:06:57:19 -0400] “POST /forum/ HTTP/1.1” 200 1504 “-” “Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040803 Firefox/0.9.3”
203.162.3.148 – – [10/Oct/2004:06:57:19 -0400] “POST /forum/ HTTP/1.1” 200 1614 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)”
210.245.31.246 – – [10/Oct/2004:06:57:19 -0400] “POST /forum/ HTTP/1.0” 200 1618 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)”
210.245.31.246 – – [10/Oct/2004:06:57:19 -0400] “POST /forum/ HTTP/1.0” 200 1618 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)”
210.245.31.246 – – [10/Oct/2004:06:57:19 -0400] “POST /forum/ HTTP/1.0” 200 1618 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)”
210.245.31.246 – – [10/Oct/2004:06:57:19 -0400] “POST /forum/ HTTP/1.0” 200 1618 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)”
203.162.3.148 – – [10/Oct/2004:06:57:19 -0400] “POST /forum/ HTTP/1.1” 200 1619 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; FunWebProducts)”
210.245.31.246 – – [10/Oct/2004:06:57:19 -0400] “POST /forum/ HTTP/1.0” 200 1618 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)”
203.162.3.148 – – [10/Oct/2004:06:57:19 -0400] “POST /forum/ HTTP/1.1” 200 1619 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; FunWebProducts)”
81.66.147.0 – – [10/Oct/2004:06:57:19 -0400] “POST /forum/ HTTP/1.1” 200 1615 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)”
210.245.31.246 – – [10/Oct/2004:06:57:19 -0400] “POST /forum/ HTTP/1.0” 200 1618 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)”
80.170.198.46 – – [10/Oct/2004:06:57:19 -0400] “POST /forum/ HTTP/1.1” 200 1617 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 1.0.3705)”
210.245.31.246 – – [10/Oct/2004:06:57:19 -0400] “POST /forum/ HTTP/1.0” 200 1618 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)”
203.162.3.148 – – [10/Oct/2004:06:57:19 -0400] “POST /forum/ HTTP/1.1” 200 1614 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)”
211.199.192.157 – – [10/Oct/2004:06:57:19 -0400] “POST /forum/ HTTP/1.1” 200 1619 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; iebar)”
211.199.192.157 – – [10/Oct/2004:06:57:19 -0400] “POST /forum/ HTTP/1.1” 200 1619 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; iebar)”
24.17.150.114 – – [10/Oct/2004:06:57:19 -0400] “POST /forum/ HTTP/1.1” 200 1504 “-” “Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040803 Firefox/0.9.3”
81.66.147.0 – – [10/Oct/2004:06:57:19 -0400] “POST /forum/ HTTP/1.1” 200 1615 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)”
203.162.3.148 – – [10/Oct/2004:06:57:19 -0400] “POST /forum/ HTTP/1.1” 200 1614 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)”
210.245.31.246 – – [10/Oct/2004:06:57:19 -0400] “POST /forum/ HTTP/1.0” 200 1618 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)”
80.170.198.46 – – [10/Oct/2004:06:57:19 -0400] “POST /forum/ HTTP/1.1” 200 1617 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 1.0.3705)”
210.245.31.246 – – [10/Oct/2004:06:57:19 -0400] “POST /forum/ HTTP/1.0” 200 1618 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)”
203.162.3.148 – – [10/Oct/2004:06:57:19 -0400] “POST /forum/ HTTP/1.1” 200 1619 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; FunWebProducts)”
211.199.192.157 – – [10/Oct/2004:06:57:19 -0400] “POST /forum/ HTTP/1.1” 200 1619 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; iebar)”
210.245.31.246 – – [10/Oct/2004:06:57:19 -0400] “POST /forum/ HTTP/1.0” 200 1618 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)”
210.245.31.246 – – [10/Oct/2004:06:57:19 -0400] “POST /forum/ HTTP/1.0” 200 1618 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)”
210.245.31.246 – – [10/Oct/2004:06:57:19 -0400] “POST /forum/ HTTP/1.0” 200 1618 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)”
211.199.192.157 – – [10/Oct/2004:06:57:19 -0400] “POST /forum/ HTTP/1.1” 200 1619 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; iebar)”
203.162.3.148 – – [10/Oct/2004:06:57:19 -0400] “POST /forum/ HTTP/1.1” 200 1619 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; FunWebProducts)”
210.245.31.246 – – [10/Oct/2004:06:57:19 -0400] “POST /forum/ HTTP/1.0” 200 1618 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)”
210.245.31.246 – – [10/Oct/2004:06:57:19 -0400] “POST /forum/ HTTP/1.0” 200 1618 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)”
203.162.3.148 – – [10/Oct/2004:06:57:19 -0400] “POST /forum/ HTTP/1.1” 200 1614 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)”
81.66.147.0 – – [10/Oct/2004:06:57:19 -0400] “POST /forum/ HTTP/1.1” 200 1615 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)”
210.245.31.246 – – [10/Oct/2004:06:57:19 -0400] “POST /forum/ HTTP/1.0” 200 1618 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)”
24.17.150.114 – – [10/Oct/2004:06:57:20 -0400] “POST /forum/ HTTP/1.1” 200 1504 “-” “Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040803 Firefox/0.9.3”
Chà, chẳng lẽ thành viên “hối hả” kéo vào diễn đàn và “POST” bài nhiều đến vậy sao? hai mươi lăm cái “POST” trong một giây từ một vài IP? Cứ cho là hợp lệ vì thành viên ở VN đi ra Internet, qua cùng một cửa ngõ -2- là chuyện bình thường. Nhưng, hẵng đã, vừa rồi lại có một chùm đến hơn năm mươi cái “POST” đi đến trong một giây, cũng từ các IP như trên. Bất thường hay bất tường?
Tôi để yên mấy “cái đuôi” chạy trên mấy console và mở trình duyệt của mình lên, thử log vào HVA bằng nickname và password của tôi để xem thử “thái độ” POST từ máy của tôi có tương tự như những cái POST tôi nhận được vài chục giây trước đây (xác thực là bạn của nghề phân tích). Cha chả, cái POST của tôi nhìn hợp lệ hơn nhiều:
xxx.xx.xxx.98 – – [10/Oct/2004:07:11:25 +0900] “POST /forum/act_Login_CODE_01.html HTTP/1.0” 200 7405 “http://www.hvaonline.net/forum/act_Login_CODE_00.html” “Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040510”
Tôi thử mở “cái đuôi” của firewall log trên server xem có gì hấp dẫn không. Chà, log của web server vẫn “POST” vào ầm ầm nhưng firewall log thì vẫn im ắng như đỉnh Himalaya. Thôi rồi, chắc đây là một “kiểu chơi” rất hợp lệ nên firewall cho phép chúng vào thả cửa. Tôi gởi nhanh một PM đến JAL, nhờ lão phóng cái sniffer lên để “hít” -3- một ít gói tin và lưu lại một nơi thích hợp dùm tôi. Đêm đã khuya, tôi phải đi ngủ để mai còn đi làm. Sáng mai sẽ copy mớ gói tin đã được lưu và sẽ phân tích xem sự thể ra sao.
Phân tích
Ngày 11/10
Trên tàu lửa đến sở làm, tôi hăm hở mở laptop ra và bắt tay vào xem xét thông tin “bắt” được tối hôm qua. Chuyện đầu tiên đập vào mắt tôi là kích thước hồ sơ đã sniff, chà, sao nó bé tí tẹo vậy nhỉ? Sáng nay lúc tôi log vào HVA server để copy hồ sơ này, tôi đã không để ý đến kích thước (vì cứ nghĩ nó phải ít nhất là vài megabytes), tôi chỉ chạy lệnh scp và bỏ đó rồi đi thay đồ đi làm. Lúc này mới nhận ra là nó bé tí tẹo, không biết có gì trong này.
Tôi dùng Ethereal mở hồ sơ này ra, và…. đúng như dự phỏng, Ethereal phàn nàn “stream not completed”. Tôi bật cười và tự nhủ: “chà, chắc lão JAL sợ nó sniff lâu quá thành một hồ sơ khổng tượng nên chỉ sniff một, hai giây rồi tắt liền”. Thông tin “bắt” được từ sniffer quá ít, chỉ vỏn vẹn hơn mười dòng, trong đó có được một cái SYN -4-, một cái ACK,PSH từ một segment khác, một cái HTTP (POST) cộng thêm vài cái “continuation” từ các segment trước và sau cái SYN ở trên không thấy gì đi theo.
Xếp laptop lại, tôi trầm ngâm vài phút, có vài chi tiết cần xem lại trong mớ packets ngắn ngủi mà lão JAL đã cung cấp. Tôi lại mở laptop ra và đi xuyên qua mười mấy mảnh packets rời rạc. Không thể “gom” các packets này thành một stream hoàn chỉnh, tôi đành xem xét từng mảnh một lần nữa. Điểm lý thú đập ngay vào mắt tôi khi dò đến http packet chứa mảng đầu của phần “POST”. Cha chả, POST cái gì mà lắm thế?
– payload -5-
Chú thích
-1- “tail”, một lệnh dùng để liên tục chuyển thông tin của log lên console để theo dõi.
-2- “gateway”, cửa ngõ đi ra / đi vào giữa 2 network.
-3- “sniff”, động tác hít nói theo tính sinh hoá, động tác “bắt lấy” các gói tin đi xuyên qua đường dẫn nói theo tinh thần điện toán.
-4- “SYN, ACK, PSH….” là các tcp flags được dùng trong giao thức TCP.
-5- payload là dữ liệu trong gói tin (nói trên bình diện “mạng”).
-6- ampersand (&) là dấu “và” trên keyboard.