Sunday, January 7, 2007

Giải pháp nào cho ADSL DoS?

Có khá nhiều bạn đề nghị tôi đưa ra giải pháp cho vấn đề tấn công DoS trên dịch vụ ADSL. Thiệt ra tôi cũng đã nghĩ đến chuyện đề xuất giải pháp nhưng do tôi chưa từng xây dựng một hệ thống tương tự nên tôi không dám phát biểu lung tung. Đa số các PPPoE server hiện tại đều là router mà tôi lại không biết các router thường được sử dụng để làm PPPoE Server là gì và chúng có những chức năng nào nên tôi không thể đưa ra một giải pháp trọn vẹn.

Theo tôi được biết, hiện tại dịch vụ ADSL của FPT có triển khai biện pháp xác thực người sử dụng bằng địa chỉ MAC (ngoài username và password ra). Tôi không rõ là họ sẽ xác thực khi đã ở giai đoạn PPP session hay xác thực ngay từ lúc ở giai đoạn Discovery. Tìm thử trên Internet, tôi thấy một bài ở VnInformatics bàn về vấn đề xác thực bằng địa chỉ MAC của FPT:
Tôi bị mắc ở chỗ kết nối PPPoE, luôn nhận được thông báo là access denied. Hỏi bên FPT thì mới biết, họ đặt chế độ bảo mật chỉ cho phép 1 MAC cố định kết nối. Khi setup cho bạn, cái MAC ấy chính là của con modem ADSL và đc thiết lập trước. Bây giờ bạn chuyển sang PC, sẽ có card mạng khác và MAC cũng khác, cho nên phải gọi cho họ để họ cho phép kết nối bằng MAC mới. Đây là điểm cần lưu ý, bạn đã kết nối PPPoE bằng PC (hoặc card mạng nào) thì luôn phải kết nối bằng PC đó, nếu đổi card mạng hoặc thậm chí đổi ADSL Modem (trong trường hợp dùng nó như 1 router), thì phải báo cho FPT để họ set lại cho ta. Bên VDC dễ tính hơn và bạn có thể kết nối bằng bất cứ card mạng nào, thậm chí có thể tạo 2 kết nối PPPoE cùng 1 lúc (và bạn có 2 IP thật).
Theo như mô tả của anh MyQuartz, tôi có thể suy ra rằng FPT cũng chỉ xác thực địa chỉ MAC khi phiên kết nối đã ở vào giai đoạn PPP session. Nếu quả thật là như vậy thì người sử dụng dịch vụ ADSL của FPT cũng không an toàn trước cách tấn công DoS mà tôi đưa ra, đơn giản vì frame PADT mà tôi gửi đi nằm ở giai đoạn Discovery. Thậm chí không cần đăng nhập vào mạng ADSL, tôi vẫn có thể gửi frame này đến router của ISP. Thế nên nếu muốn tấn công một ai đó, tôi chỉ cần ra một dịch vụ Internet sử dụng cùng một ISP với họ là có thể tấn công họ được rồi. Nay mai tôi sẽ kiểm tra thực tế dịch vụ của FPT, MegaVNN và Vietel xem sao.


-Thái.

13 comments:

conmale said...

Hello Thái,

Làm sao mình có thể detect được MAC nếu packet này đã đi qua (ít nhất) 1 hop (1 router)?

Trường hợp Thái đưa ra chỉ ứng dụng cho "controlled environment" như FPT chẳng hạn. Nếu DDos đi từ bên ngoài Internet vào thì... anh nghĩ... là bó tay.

thaidn said...

Chào anh conmale,


Làm sao mình có thể detect được MAC nếu packet này đã đi qua (ít nhất) 1 hop (1 router)?


Hehe, nếu không thấy được MAC thì mình chơi theo kiểu social engineering :-p.


Trường hợp Thái đưa ra chỉ ứng dụng cho "controlled environment" như FPT chẳng hạn. Nếu DDos đi từ bên ngoài Internet vào thì... anh nghĩ... là bó tay.


Đối với kiểu tấn công mà em đưa ra, kẻ tấn công phải sử dụng cùng ISP với nạn nhân. Đối với các ISP lớn, họ chia ra nhiều vùng khác nhau, ví dụ như Nam, Trung, Bắc, thì bắt buộc kẻ tấn công phải nằm chung vùng với nạn nhân.

-Thái

Anonymous said...

Anh Thái cho em hỏi tại sao tấn công kiểu này thì attacker buộc phải nằm chung ISP với victim vậy ? nếu nằm riêng thì sao anh ?

Anonymous said...

Theo tớ thì có thể giải thích như sau:
Giả sử bạn là A thuê bao của ISP B cần tấn công ISP C, như vậy bắt buộc bạn phải đi qua ISP B nếu muốn kết nối với ISP C để tấn công, nhưng cái kiểu kết nối đến ISP C là một connection chưa được hình thành đầy đủ, thậm chí bạn chưa được cấp phát IP, cho nên điều này ko thể làm được, trừ khi ISP B cung cấp cho bạn một cơ chế kết nối như vậy tới ISP C.
Khi nằm chung ISP, mọi chuyện khác hẳn, do A kết nối trực tiếp đến ISP nên nó có thể tạo được những "kết nối" kiểu như vậy và gửi tới ISP các packet gây lỗi.

rd said...

Vấn đề thái mô tả là disadvantage của PPPoE. Bản thân RFC 2516 cũng đã nhắc tới vấn đề của PPPoE đối với một số dạng denial of service.

Dạng DoS attack thái đề cập đến chỉ có thể áp dụng được ở trường hợp bạn biết MAC address của thiết bị PPPoE đầu cuối của nạn nhân (có thể là MAC address của ADSL router, PC's NIC, ..), đồng thời người tấn công có thể gửi được fake discovery terminate (PADT) (i.e fake ethernet packet) trực tiếp tới Access Concentrator device (có lẽ đa số ISP VN dùng Cisco UAC).

Thế nên nếu muốn tấn công một ai đó, tôi chỉ cần ra một dịch vụ Internet sử dụng cùng một ISP với họ là có thể tấn công họ được rồi.

Việc ra tiệm dịch vụ internet mà gửi được fake ethernet packet tới Access Concentrator như thái nói chắc là không khả thi đâu ;)

--rd

Anonymous said...

Thế nên nếu muốn tấn công một ai đó, tôi chỉ cần ra một dịch vụ Internet sử dụng cùng một ISP với họ là có thể tấn công họ được rồi.


Theo tôi việc này còn phụ thuộc vào số Access Concentrator Device của mỗi ISP. Bạn Thái có thể tham khảo chương trình ppoesk (tôi không nhớ rõ link) để hoàn thiện phần mềm test của mình.

thaidn said...


Việc ra tiệm dịch vụ internet mà gửi được fake ethernet packet tới Access Concentrator như thái nói chắc là không khả thi đâu ;)


Chào anh rd,

Thật tế em chưa làm thử, nhưng em nghĩ là có thể được với điều kiện tiệm dịch vụ Internet cũng sử dụng modem ADSL ở chế độ brigde mode. Lúc đó em nghĩ từ bất kì máy nào trong LAN cũng có thể gửi fake packet đến AC. Nay mai rảnh em sẽ kiểm tra thử xem sao.


Theo tôi việc này còn phụ thuộc vào số Access Concentrator Device của mỗi ISP.


Chính xác. Do SESSION_ID chỉ có 16 bit thành ra số lượng khách hàng per AC chỉ là 2^16-1. Nếu ISP nào có nhiều hơn số khách hàng này thì bắt buộc phải có thêm AC.


Bạn Thái có thể tham khảo chương trình ppoesk (tôi không nhớ rõ link) để hoàn thiện phần mềm test của mình.


Chương trình test của mình cũng là được chỉnh sửa lại từ pppoesk đó ;). Ban đầu mình sử dụng scapy, nhưng thấy nó hơi chậm (trong việc gửi hàng loạt packet) nên mình mới tìm cách viết bằng C, vô tình thấy thằng pppoesk nên lấy nó sửa lại luôn cho tiện.

-Thái

Anonymous said...

Tôi nghĩ việc xác thực bằng MAC mà FPT (có thể) dùng (xin lỗi vì mình không ở VN nên không biết) chắc chắn là không hiệu quả vì MAC dễ dàng bị fake. Cho nên nếu như đã biết được MAC của victim thì cho dù dịch vụ ADSL của FPT xác thực người dùng ở giai đoạn nào cũng không quan trọng nữa.
-tunghack

Anonymous said...

This blog is cool! Keep going, thaidn!

Gop y nho: Blog nay mang tieng la co 5 contributors, ma thuc ra co den 99% noi dung chi co 1 nguoi post (thaidn). 4 ong con lai co lam gi ma cung la "contributor"? Chi de ten vao day cho vui, hay chi la de show off voi ga'i?

Anonymous said...

Dong y voi y kien tren. May nguoi con (conmale, cherry, $$$, mikado) lai co thay dong gop duoc gi dau. Day la blog ca nhan cua thaidn thi chinh xac hon.

conmale said...

Tôi có tham gia blog này là vì Thái mời tôi. Quả thật, tôi chỉ dịch và đăng được 2 bài trên blog này. Ngoài ra, chủ yếu tôi tham gia thảo luận là chính. Tất cả cũng vì yếu tố thời gian mà thôi. Bởi thế, các nhận xét (tôi và một số người ít tham gia) thì đúng nhưng nhận xét cho rằng Thái đưa tên vài người khác vào để cho vui hay show off (với gái) là nhận xét khá nông nổi và con nít.

Bạn có thể không tham gia, không đọc blog này nếu bạn không ưa thích nó. Tuy nhiên, nếu muốn "châm" thì châm cho chính xác và có giáo dục một tí thì ích lợi hơn.

Vài ý kiến.

Anonymous said...

"Thậm chí không cần đăng nhập vào mạng ADSL, tôi vẫn có thể gửi frame này đến router của ISP. Thế nên nếu muốn tấn công một ai đó, tôi chỉ cần ra một dịch vụ Internet sử dụng cùng một ISP với họ là có thể tấn công họ được rồi."

Câu này bạn nói hơi quá. Bạn thử ra tiệm Internet thử xem gởi được gói PADT nếu modem ADSL của họ để chế độ Route. Bạn tìm thử có cái tiệm Internet nào để modem dạng bridge theo mong muốn của bạn không. Nếu để bridge thì mọi máy đăng nhập đều phải kết nối pppoe trực tiếp đến ISP. Thử hỏi có ai làm như vậy.

Anonymous said...

Tấn công kiểu này cũng có vẻ hay hay, nhưng sợ là phạm vi địa lý của nó nhỏ, dễ xác định điểm tấn công, tấn công nếu không khéo có thể bị bắt rất nhanh.
Tôi có một ý góp vui (hi vọng không phải là vẽ đường cho hươu chạy, gây hậu quả nghiêm trọng):

FPT ADSL lọc packet không tốt, nên nếu chuyển ADSL modem thành brigde, căm wireshark vào, bạn sẽ thấy các packet PPPoE của các thuê bao khác broadcast lung tung. Nhất là khi nào đường ADSL của bạn vẫn có link nhưng PPPoE không kết nối được do BRAS chết, thì bạn sẽ nhận được không biết bao nhiều gói PPPoE Discovery mà kể, biết MAC rõ ràng, khỏi cần social engineering.
Nếu fake khéo (giả mạo mình là BRAS), bạn có thể tóm được user/pass của các thuê bao "hàng xóm" (tôi chưa thử, ai thử rồi ... cho biết).
Lỗi này của FPT Telecom nếu khai thác được sẽ khá nguy hiểm, hacker redirect được PPPoE session sang máy của mình, capture đủ thứ. Vì mất an toàn đến thế nên dù là đường truyền wired, bạn cũng nên sử dụng SSL/TLS ở mọi kết nối quan trọng.
Việc đột nhập các router ở tiệm Internet không quá khó, chỉ cần login vào nó với pass mặc định (nếu may mắn), thì có thể chuyển nó thành route/brigde hỗn hợp (nếu có thể) để tấn công.
MyQuartz.