Nghe trộm trên mạng (sniffer) và cách phòng tránh
Source: http://forum.itlab.com.vn/threads/nghe-trom-tren-mang-sniffer-va-cach-phong-tranh.2847/
1. Mở đầu:
Nếu vào một ngày đẹp trời, một người bạn của bạn bảo là anh ta biết tất cả nội dung email bạn gửi, biết bạn đang “tán” với ai và nói những gì với họ!? Bạn giật mình, nhưng bạn chưa tin lắm! Bạn đòi kiểm tra! Nhưng kết quả thì đúng như anh ta nói :yh31:! Lúc đó, bạn nghĩ ngay là máy mình bị nhiễm các trình gián điệp (trojan) hay bị cài chương trình ghi thông tin từ bàn phím (keylogger)!? Vì có như vậy, mọi thao tác trên máy đều bị người khác biết. Bạn vội vội vàng vàng chạy đi “tìm và diệt” trojan. Chưa hết… “run”, bạn lại tiếp tục “format” cả ổ cứng và sau đó thậm chí còn “fdisk” đĩa. Ok, vậy là yên tâm :83:! Nhưng, anh bạn kia lại tiếp tục trưng ra các “bằng chứng” khác! Bạn giật mình tiếp… tập hai! Chẳng lẽ anh ta kiểm soát được cả server của Yahoo hay sao mà biết hết nội dung mình… “chát” :JFBQ00153070129A:!? Chưa hết, bạn đang online ở quán café WiFi thì bỗng dưng liên tục nhận được thông điệp gửi từ một ai đó có ghi toàn bộ những nội dung, thậm chí cả mật khẩu bạn đang dùng để duyệt web, v.v… Nếu có “lỡ” gặp phải trường hợp như vậy, hay tương tự thì xin bạn khoan hãy “trảm” tiếp máy tính của bạn vì nó không… có tội! Máy của bạn không bị gì, và dĩ nhiên server của Yahoo lại càng không! Vấn đề ở đây là dữ liệu đi từ máy bạn ra ngoài đã bị nghe lén, thông tin bị ghi lại bởi các chương trình chuyên nghe trộm thông tin truyền trên mạng – Sniffing :yociexp21:.
2. Nghe trộm mạng là gì?
Nghe trộm hay nghe lén trên mạng là một phần của kỹ thuật tấn công truyền thông dữ liệu của ngành bảo mật máy tính. Theo đúng như tên gọi, kỹ thuật này không tấn công trực diện vào các máy người dùng (client) hay máy chủ (server), mà nó nhằm vào không gian truyền dữ liệu giữa các máy. Sniffing là kỹ thuật được các quản trị viên dùng theo dõi, chuẩn đoán, phát hiện các sự cố nhằm giúp cải thiện hoạt động hệ thống mạng. Tuy nhiên, kỹ thuật này về sau bị biến tướng, trở thành công cụ đắc lực phục vụ mục đích thu thập trái phép các thông tin nhạy cảm, tên tài khoản, mật khẩu, credit card,… của người dùng khi luân chuyển trên mạng .
3. Sniffing xảy
ra ở đâu??
Sniffing chủ yếu xảy ra ở mặt vật lý. Nghĩa là kẻ tấn công phải tiếp cận và có thể điều khiển một thành phần của hệ thống mạng, chẳng hạn như một máy tính nào đó. Ví dụ kẻ tấn công có thể dùng laptop hoặc PC trong các dịch vụ Internet, các quán café WiFi, trong hệ thống mạng nội bộ doanh nghiệp, v.v… Trường hợp hệ thống máy tính nghe trộm và kẻ tấn công ở cách xa nhau, kẻ tấn công tìm cách điều khiển một máy tính nào đó trong hệ thống rồi cài đặt trình nghe lén vào máy đó để thực hiện nghe trộm từ xa :JFBQ00125061225b:.
4. Mức độ nguy hiểm của Sniffing
Hiện nay, nghe trộm mạng thực hiện rất dễ dàng, bởi có quá nhiều công cụ giúp thực hiện như Cain&Abel, Ettercap, Ethereal, Dsniff, TCPdump, Sniffit,… Các công cụ này ngày càng được “tối ưu hóa” để dễ sử dụng và tránh bị phát hiện sử được thực thi. So với các kiểu tấn công khác, tấn công dạng Sniffing cực kỳ nguy hiểm, bởi nó có thể ghi lại toàn bộ thông tin được truyền dẫn trên mạng, và người sử dụng không biết là đang bị nghe trộm lúc nào do máy tính của họ vẫn hoạt động bình thường, không có dấu hiệu bị xâm hại. Điều này dẫn đến việc phát hiện và phòng chống nghe trộm rất khó, và hầu như chỉ có thể phòng chống trong thế bị động (passive) – nghĩa là chỉ phát hiện được bị nghe trộm khi đang ở tình trạng bị nghe trộm.:16:
5. Quá trình Sniffing diễn ra như thế nào ?:64:
Để hiểu quá trình thì cần hiểu được nguyên tắc chuyển tải các khung (frame) của lớp Datalink từ các gói tin (packet) ở lớp Network trong mô hình OSI. Cụ thể là qua hai loại thiết bị tập trung các node mạng sử dụng phổ biến hiện nay là Hub và Switch. Một khung gói tin khi chuyển từ máy A sang máy B thì đồng thời nó được gửi đến tất cả các máy khác đang kết nối cùng Hub theo cơ chế loan tin (broadcast). Các máy khác nhận được gói tin này và tiến hành so sánh yêu cầu về địa chỉ MAC của frame gói tin với địa chỉ đích. Nếu trùng lập thì sẽ nhận, còn không thì cho qua. Do gói tin từ A được gửi đến B nên khi so sánh thì chỉ có B mới giống địa chỉ đích đến nên chỉ có B mới thực hiện tiếp nhận. Dựa vào nguyên tắc đó, máy được cài đặt chương trình nghe trộm sẽ tự “nhận” bất cứ gói tin được lưu chuyển trong mạng qua Hub, kể cả khi đích đến gói tin có đích đến không phải là nó, nhờ card mạng được đặt ở chế độ hỗn tạp (promiscuous mode). Promiscuous mode là chế độ đặc biệt. Khi card mạng được đặt dưới chế độ này, nó có thể nhận tất cả các gói tin mà không bị ràng buộc kiểm tra địa chỉ đích đến. Trong môi trường Switch Khác với Hub, Switch chỉ chuyển tải các gói tin đến những địa chỉ cổng xác định trong bảng chuyển mạch nên nghe trộm kiểu “tự nhận” như ở Hub không thực hiện được. Tuy nhiên, kẻ tấn công có thể dùng các cơ chế khác để tấn công trong môi trường Switch như ARP spoofing, MAC spoofing, MAC duplicating, DNS spoofing, v.v…
6. Một số kỹ thuật tấn công
- Kỹ thuật ARP Spoofing
- Kỹ thuật MAC Flooding
- Kỹ thuật MAC duplication
7. Phát hiện và phòng chống nghe trộm mạng :JFBQ00217070524A:
Phát hiện và phòng chống Sniffing rất khó khăn, do kiểu tấn công này không để lại dấu vết. Dưới đây là một số biện pháp tổng hợp:
7.1. Phát hiện: :JFBQ00230070730A:
Cơ chế để phát hiện chủ yếu dựa vào kiểm tra xem có máy tính nào trong hệ thống đang hoạt động ở chế độ promicous mode và kiểm tra sự thay đổi địa chỉ MAC của thiết bị trong hệ thống (ví dụ router). – Cách thức chủ yếu là dùng các phần mềm phát hiện sự hoạt động của các chương trình nghe lén trên mạng như AntiSniff, PromiScan, Promqry and PromqryUI, ARPwatch, Ettercap, v.v… Riêng với Ettercap (ettercap), chương trình này vừa dùng để nghe trộm, nhưng cũng vừa có khả năng phát hiện nghe trộm nhờ được hỗ trợ các plugin như arp_cop (phát hiện trạng thái ARP posioning);find_ettercap (phát hiện các trình ettercap khác đang chạy);scan_poisoner (phát hiện máy đang thực hiện posioning); seach_promisc (phát hiện máy đang nghe trộm ở chế độ “hỗn tạp”),… – Dùng các chương trình giám sát hoạt động của mạng. Thiết lập hệ thống phát hiện xâm nhập IDS (Intrution Detection System) như trình miễn phí Snort (Snort :: Home Page) nhằm phát hiện những hiện tượng lạ trong mạng, trong đó có ARP spoofing, để có biện pháp đối phó thích hợp. Nhìn chung, sử dụng phần mềm phát hiện nghe trộm là giải pháp nhanh và thuận tiện nhất đối với người dùng cuối. Tuy nhiên hạn chế lớn của các chương trình này là chỉ phát hiện được sau khi đã bị nghe lén – phát hiện trong thế bị động khi sự nghe trộm đã xảy ra. Vì đa phần các chương trình chống đều dựa vào việc phát hiện tình trạng Promiscuous (hỗn độn) và ARP spoofing để cảnh báo tình trạng bị nghe trộm.
7.2. Phòng chống: :JFBQ00164070214A:
Nhiều người nghĩ Switch có thể chống lại sniffing, nhưng thực tế sniffing không hoàn toàn làm được. Thay thế thiết bị tập trung Hub bằng Switch chỉ là giải pháp làm tăng độ khó của sniffing và tăng khả năng phát hiện sniffing. Phòng chống sniffing, nếu thực hiện tốt, cũng đồng nghĩa với khả năng giảm thiểu rủi ro bị sniffing ở mức thấp nhất. Vì nếu để xảy ra sniffing rồi mới tìm cách phát hiện và chống thì rất khó thực hiện và xác xuất thành công rất thấp. Dưới đây là một số giải pháp phòng chống – nên sử dụng kết hợp. – Giới hạn mức độ và phạm vi broadcast bằng cách phân chia VLAN (Virtual Local Area Network); – Giới hạn khả năng bị cài đặt chương trình nghe lén bằng cách áp dụng chính sách quản lý cài đặt phần mềm cho hệ thống. Áp tính năng port security để hạn chế các thiết bị mạng kết nối trái phép. – Đối với mạng nhỏ, nên sử dụng địa chỉ IP tĩnh và bảng ARP tĩnh để hạn chế khả năng bị tấn công kiểu ARP spoofing thông qua giám sát chặt chẽ sự thay đổi địa chỉ MAC (Media Access Control) trên thiết bị switch. – Áp dụng cơ chế one-time password – thay đổi password liên tục. – Mã hóa dữ liệu truyền dẫn bằng các cơ chế truyền thông dữ liệu an toàn SSL (Secure Sockets Layer), mạng riêng ảo VNP (Virtual Private Network). Nói cách khác là thay thế hoặc hạn chế sử dụng các giao thức truyền thông không mã hóa dữ liệu bằng giao thức mã hóa. Ví dụ: Dùng SSH (Secure Shell Host) thay cho Telnet/Rlogin; dùng SFTP (secure FTP) thay vì FTP; dùng Trillian (Trillian – IM, Astra, Windows Live, Facebook, Twitter, Yahoo, MySpace, AIM, Email, and more!) hay Jabber (http://jabber.org) làm chương trình chat; dùng HTTPS thay cho HTTP v.v… Đối với hệ thống mạng công ty, cách bảo vệ tốt nhất là ngăn chặn, phòng ngừa ngay từ đầu bằng cách xây dựng Chính sách bảo mật mạng (Network Security Policy). Trong đó có những chính sách quản lý truy xuất, quản lý bảo vệ vật lý hệ thống mạng với những quy định như: ai được phép tiếp xúc với các máy; được phép sử dụng máy; được phép gắn thêm thiết bị vào máy; được phép cài đặt những loại chương trình nào (không cho phép người dùng tự ý cài đặt chương trình), v.v… nhằm hạn chế đến mức tối đa khả năng xâm nhập về mặt vật lý đế cài đặt các chương trình nghe lén trong mạng. Không có giải pháp hoàn hảo để chống nghe trộm, đề phòng trước khi đã rồi xem ra là giải pháp khả thi nhất.
8. Tài liệu tham khảo
[1]. Stuart McClure, Joel Scambray, George Kurtz. Hacking Exposed 3rd. McGraw-Hill (2003)
[2]. EC-Council. Certified Ethical Hacker official
courseware. EC-Council (2005)
[3]. Syngress SinderBook. Security +. Syngress (2002)
[4]. Một số White Paper trên các chuyên
khu bảo mật SANS, CERT, GIAC.