Tuesday, June 10, 2008

Firewall có thật sự bảo vệ thông tin tuyệt đối hay không?

Anh conmale ở HVAOnline khơi nguồn một topic khá thú vị (ở chỗ nó giúp người đọc hiểu được những vấn đề cốt lõi của bảo mật hệ thống):
Một người bạn bảo tôi "Công ty tớ vừa trang bị một loạt stateful firewall, tốn mấy trăm nghìn đô la. Phen này tớ ăn ngon ngủ kỹ. Không phải lo bị tấn công nữa".

Thử dùng các yếu tố kỹ thuật và logic để phân tích xem câu nói trên:
- Đúng hoặc sai?
- Vừa đúng, vừa sai?
- Nếu đúng, tại sao đúng?
- Nếu sai, tại sao sai?
Tôi có trả lời thế này:

Tôi sẽ hỏi lại, thế còn những tấn công nhằm vào cái firewall thì sao?
Sau đó bồ thangdiablo có hỏi:
Khi đọc tới bài của mrro, mình thấy rất thú vị vì suy nghĩ đánh trực tiếp vào firewall của mrro.

Thế nhưng, để đạt được mục tiêu ( giả thiết là triệt hạ một con webserver nào đó nằm sau firewall ) thì việc đánh trực tiếp vào firewall trước hay lách qua firewall để đánh vào webserver cái nào dễ hơn?

Vì theo mình nghĩ, với kỹ năng cấu hình firewall một cách căn bản nhất, chịu khó update các sig và firmware thì việc đánh trực tiếp để hạ gục 1 stateful firewall loại xịn là cực kỳ khó khăn.

Mrro có thể trình bày ý tưởng của mình không?
Và đây là trả lời của tôi:
Hi thangdiablo,

Vấn đề cối lõi mà tôi muốn đưa ra, không phải là việc tấn công một firewall khó hay dễ, mà là việc đưa thêm một thiết bị vào hệ thống, dẫu thiết bị đó là firewall, ids, hay bất kỳ thiết bị bảo mật nào, đều sẽ làm phát sinh thêm những mối nguy mới trên hệ thống.

Firewall, về bản chất, cũng chỉ là một software chạy trên một hardware, mà đã là software, do con người tạo ra, thì thể nào cũng sẽ có lỗi. Kinh nghiệm của tôi cho thấy, nơi nào mà có software chạy, từ máy ATM cho đến các vệ tinh, nơi đó sẽ có bug, và có thể trong số các bug này, sẽ có những bug gây nguy hại đến sự an toàn của hệ thống.

Đương nhiên, các software, cụ thể là các hệ điều hành, chạy trên firewall thường rất nhỏ gọn, thường đã được kiện toàn trước khi xuất xưởng, và không phổ biến như Windows, Linux hay Mac, thành ra kiến thức về cách thức chúng hoạt động cũng như các kỹ thuật tìm kiếm và khai thác lỗ hổng bảo mật cũng không phổ biến đại trà.

Nhưng tất cả chỉ là vấn đề thời gian (và tiền bạc) mà thôi. Chẳng hạn như đối với Cisco IOS, từ năm 2005, Michale Lynn đã công bố các phương thức khai thác lỗi của nó (trước đó có FX từ năm 2003 đã có những research hoàn chỉnh về Cisco IOS). Kể từ đó đến nay, đã có rất nhiều research của các hãng và cá nhân tên tuổi trên thế giới về các lỗ hổng bảo mật trên hệ điều hành này của Cisco. Thậm chí gần đây, người ta còn phát triển được cả rootkit trên IOS.

Tôi không có sử dụng các bộ công cụ như Core Impact hay CANVAS nhưng tôi nghĩ là trong đó chắc chắn đã có những module khai thác những lỗ hổng đã biết và chưa biết trên Cisco IOS.

Bản thân tôi, trong một lần đi hỗ trợ cho một khách hàng, cũng rơi vào tình huống là con firewall chạy Checkpoint trên Windows chính là nguyên nhân gây ra sự cố DDoS (xem thêm ở đây http://vnhacker.blogspot.com/2007/07/tn-cng-ddos-bng-pdf-spam.html)
Hôm nay tôi có một case khá thú vị. Một khách hàng gọi điện, báo server của họ đặt ở FPT Telecom (chỗ 64-66 Võ Văn Tần Q.3) bị phía FPT Telecom...tắt mất vì có quá nhiều traffic đi vào server này, có thời điểm lên đến 100Mbs. Họ nhờ tôi đến FPT Telecom trực tiếp kiểm tra xem nguyên nhân tại sao có quá nhiều traffic đến server.

Trên đường đi, tôi được biết server của khách hàng tôi không hề bị treo hay gặp vấn đề gì cả, chỉ có...firewall của FPT Telecom (nếu tôi đoán không lầm là Checkpoint trên Windows) lại bị treo khi phải tiếp nhận và xử lí lượng traffic lớn như thế; thành ra toàn bộ các server nằm phía sau con firewall này coi như bị cách ly với thế giới bên ngoài.
Tôi nghĩ vấn đề ở đây chủ yếu là tâm lý. Mọi người đều chỉ nhớ đến các mối nguy của con web-server chạy các web-application bởi vì đó là môi trường họ làm việc hàng ngày, chúng quen thuộc và gần gũi, còn firewall thường là dạng thiết bị "setup once, run forever", người ta thường chẳng nhớ đến sự tồn tại của nó.

Ngoài ra các mối nguy trên web-application cũng được thảo luận thường xuyên và sôi nổi (ngay trên diễn đàn này), còn các mối nguy trên firewall thì ít được nhắc đến, nên người ta không nghĩ là chúng nguy hại.

Cuối cùng, khi nghĩ đến các kết nối từ A đến B, người ta chỉ thường nghĩ đến việc bảo vệ B khỏi bị A tấn công, mà quên rằng, A vẫn có thể tấn công vào các điểm C, D hay E nằm trên đường đi từ A vào B. Các thiết bị trung gian như firewall, proxy, ids, content caching...đều làm cho hệ thống phức tạp hơn, mà phức tạp thì bao giờ cũng kém an toàn (
ví dụ như có rất nhiều hướng tấn công các web-application lợi dụng sự tồn tại của các proxy, chẳng hạn như HTTP Response Splitting hay HTTP Response Smuggling).

2 comments:

Yuna said...

No comment on your post.

But the question from Thangdiablo is silly. Probably someone who doesn't understand a shit about protocol.

FX trader said...

Điều Thái đề cập đến là một trong những mis-understand phổ biến trong giới IT hiện tại. Firewall đồng nghĩa với security.

Công ty tôi đang làm việc cũng vậy, công việc đầu tiên của các xếp là vác về 2 con checkpoint to đùng về rồi vắt chân lên cổ ăn no ngủ yên.

Sau khi nghe tôi trình bài thì các xếp mới ồ lên té ra security là vậy, nhưng vẫn chưa tin vì chả lẽ mình ôm 2 cục sắt vụn?

Tới khi tôi biểu diễn vài chiêu he he , mấy xếp mới hiểu ra vấn đề.

Firewall đơn thuần chỉ là một công cụ Access Control thôi. Giống như xây nhà tôi cần gạch, vữa xi măng sắt thép, thì để xây dựng một hệ thống bảo mật thì tôi cần các công cụ Access Control (firewall), Authentication(thiết bị đọc dấu vân tay hay đơn giản là user/pass...), IDS , Audit (syslog ...). Hiểu theo physical thế này: Tôi có 1 xấp hồ sơ chứa thông tin mật cần được bảo vệ. Trước hết tôi phải xây tường chung quanh nó để ngăn chặn các hướng tiếp cận không mong muốn - cái này là firewall. Nhưng nếu bịt hết thì bản thân tôi cũng không truy cập được thông tin của mình, buộc lòng ta phải chừa một cái cửa - tới đây thì firewall bó tay vì ai đi vào cửa đó cũng hợp pháp, tôi phải thuê thêm ông bảo vệ đứng gác cửa xét thẻ nhân viên (hệ thống authentication/authorization). Heh một ngày tôi phát hiện thông tin mật bị lộ, té ra ông bảo vệ để cho 1 thằng in hình của tôi che mặt của nó để vào (kiểu BKIS crack hệ thống nhận diện khuôn mặt hehehe). Tất nhiên tôi đuổi cổ ông bảo vệ thay bằng hệ thống tinh vi hơn nhưng an tâm hơn tôi lắp camera quay tủ hồ sơ để ghi log (audit system). Nếu có ai đọc trộm hồ sơ của tôi thì tôi phải là người biết đầu tiên á. :)

That's it. Có một thực tế là tất cả các hệ thống bị xâm nhập mà tôi biết hehehe không hệ thống nào thiếu firewall cả!!!

À con Checkpoint công ty tôi cũng bị một con worm bình thường từ một máy bên trong DoS chết ngắt.