Sniffer – Phương thức hoạt động, các kiểu tấn công và phòng chống

Định nghĩa Sniffer

1. Khái niệm Sniffer

Khởi đầu Sniffer là tên một sản phẩm của Network Associates có tên là Sniffer Network Analyzer. Đơn giản bạn chỉ cần gõ vào từ khoá Sniffer trên bất cứ công cụ tìm kiếm nào, bạn sẽ có những thông tin về các Sniffer thông dụng hiện nay.

Sniffer được hiểu đơn giản như là một chương trình cố gắng nghe ngóng các lưu lượng thông tin trên (trong một hệ thống mạng). Tương tự như là thiết bị cho phép nghe lén trên đường dây điện thoại. Chỉ khác nhau ở môi trường là các chương trình Sniffer thực hiện nghe lén trong môi trường mạng máy tính.

Tuy nhiên những giao dịch giữa các hệ thống mạng máy tính thường là những dữ liệu ở dạng nhị phân (Binary). Bởi vậy để nghe lén và hiểu được những dữ liệu ở dạng nhị phân này, các chương trình Sniffer phải có tính năng được biết như là sự phân tích các giao thức (Protocol Analysis), cũng như tính năng giải mã (Decode) các dữ liệu ở dạng nhị phân sang dạng khác để hiểu được chúng. Trong một hệ thống mạng sử dụng những giao thức kết nối chung và đồng bộ. Bạn có thể sử dụng Sniffer ở bất cứ Host nào trong hệ thống mạng của bạn. Chế độ này được gọi là chế độ hỗn tạp(promiscuous mode).

Đối tượng Sniffing là

o Password (từ Email, Web, SMB, FTP, SQL hoặc Telnet)

o Các thông tin về thẻ tín dụng

o Văn bản của Email

o Các tập tin đang di động trên mạng (tập tin Email, FTP hoặc SMB)

2. Mục đích sử dụng

Sniffer thường được sử dụng vào 2 mục đích khác biệt nhau. Nó có thể là một công cụ giúp cho các quản trị mạng theo dõi và bảo trì hệ thống mạng của mình. Cũng như theo hướng tiêu cực nó có thể là một chương trình được cài vài một hệ thống mạng máy tính với mục đích đánh hơi, nghe lén các thông tin trên đoạn mạng này…Dưới đây là một số tính năng của Sniffer được sử dụng theo cả hướng tích cực và tiêu cực :

Tự động chụp các tên người sử dụng (Username) và mật khẩu không được mã hoá (Clear Text Password). Tính năng này thường được các Hacker sử dụng để tấn công hệ thống của bạn.

Chuyển đổi dữ liệu trên đường truyền để những quản trị viên có thể đọc và hiểu được ý nghĩa của những dữ liệu đó.

Bằng cách nhìn vào lưu lượng của hệ thống cho phép các quản trị viên có thể phân tích những lỗi đang mắc phải trên hệ thống lưu lượng của mạng. Ví dụ như : Tại sao gói tin từ máy A không thể gửi được sang máy B… etc

Một số Sniffer tân tiến còn có thêm tính năng tự động phát hiện và cảnh báo các cuộc tấn công đang được thực hiện vào hệ thống mạng mà nó đang hoạt động (Intrusion Detecte Service).

Ghi lại thông tin về các gói dữ liệu, các phiên truyền…Tương tự như hộp đen của máy bay, giúp các quản trị viên có thể xem lại thông tin về các gói dữ liệu, các phiên truyền sau sự cố…Phục vụ cho công việc phân tích, khắc phục các sự cố trên hệ thống mạng.

3. Các giao thức có thể sử dụng Sniffing

− Telnet và Rlogin : ghi lại các thông tin như Password, usernames

− HTTP: Các dữ liệu gởi đi mà không mã hóa

− SMTP : Password và dữ liệu gởi đi không mã hóa

− NNTP : Password và dữ liệu gởi đi không mã hóa

− POP : Password và dữ liệu gởi đi không mã hóa

− FTP : Password và dữ liệu gởi đi không mã hóa

− IMAP : Password và dữ liệu gởi đi không mã hóa

Phương thức hoạt động Sniffer

Công nghệ Ethernet được xây dựng trên một nguyên lý chia sẻ. Theo một khái niệm này thì tất cả các máy tính trên một hệ thống mạng cục bộ đều có thể chia sẻ đường truyền của hệ thống mạng đó. Hiểu một cách khác tất cả các máy tính đó đều có khả năng nhìn thấy lưu lượng dữ liệu được truyền trên đường truyền chung đó. Như vậy phần cứng Ethernet được xây dựng với tính năng lọc và bỏ qua tất cả những dữ liệu không thuộc đường truyền chung với nó.

Nó thực hiện được điều này trên nguyên lý bỏ qua tất cả những Frame có địa chỉ MAC không hợp lệ đối với nó. Khi Sniffer được tắt tính năng lọc này và sử dụng chế độ hỗn tạp (promiscuous mode). Nó có thể nhìn thấy tất cả lưu lượng thông tin từ máy B đến máy C, hay bất cứ lưu lượng thông tin giữa bất kỳ máy nào trên hệ thống mạng. Miễn là chúng cùng nằm trên một hệ thống mạng.

1. Active

Là Sniffing qua Switch, nó rất khó thực hiện và dễ bị phát hiện. Attacker thực hiện loại tấn công này như sau:

o Attacker kết nối đến Switch bằng cách gởi địa chỉ MAC nặc danh

o Switch xem địa chỉ kết hợp với mỗi khung (frame)

o Máy tính trong LAN gởi dữ liệu đến cổng kết nối

2. Passive

Đây là loại Sniffing lấy dữ liệu chủ yếu qua Hub. Nó được gọi là Sniffing thụ động vì rất khó có thể phát hiện ra loại Sniffing này. Attacker sử dụng máy tính của mình kết nối đến Hub và bắt đầu Sniffing

Các kiểu tấn công

1. ARP Poisoning

a. Man in the middle

Một trong những tấn công mạng thường thấy nhất được sử dụng để chống lại những cá nhân và các tổ chức lớn chính là các tấn công MITM (Man in the Middle). Có thể hiểu nôm na về kiểu tấn công này thì nó như một kẻ nghe trộm. MITM hoạt động bằng cách thiết lập các kết nối đến máy tính nạn nhân và relay các message giữa chúng. Trong trường hợp bị tấn công, nạn nhân cứ tin tưởng là họ đang truyền thông một cách trực tiếp với nạn nhân kia, trong khi đó sự thực thì các luồng truyền thông lại bị thông qua host của kẻ tấn công. Và kết quả là các host này không chỉ có thể thông dịch dữ liệu nhạy cảm mà nó còn có thể gửi xen vào cũng như thay đổi luồng dữ liệu để kiểm soát sâu hơn những nạn nhân của nó.

Giả sử hacker muốn theo dõi hostA gởi thông tin gì cho hostB. Đầu tiên hacker sẽ gởi gói Arp reply đến hostA với nội dung là địa chỉ MAC của hacker và địa chỉ IP của hostB. Tiếp theo hacker sẽ gởi gói Arp reply tới hostB với nội dung là MAC của máy hacker và IP của hostA. Như vậy cả hai hostA và hostB đều tiếp nhận gói Arp reply đó và lưu vào trong Arp table của mình. Đến lúc này khi hostA muốn gởi thông tin cho hostB nó liền tra vào Arp table thấy đã có sẵn thông tin về địa chỉ MAC của hostB nên hostA sẽ lấy thông tin đó ra sử dụng, nhưng thực chất địa chỉ MAC đó là của hacker. Đồng thời máy tính của hacker sẽ mở chức năng gọi là IP Forwarding giúp chuyển tải nội dung mà hostA gởi qua hostB. HostA và hostB giao tiếp bình thường và không có cảm giác bị qua máy trung gian là máy của hacker.

Trong trường hợp khác, hacker sẽ nghe lén thông tin từ máy bạn đến Gateway. Như vậy mọi hàng động ra internet của bạn đều bị hacker ghi lại hết, dẫn đến việc mất mát các thông tin nhạy cảm.

b. Denial of Service

Cũng vận dụng kỹ thuật trên, hacker tiến hành tấn công bằng cách gởi gói Arp reply đến toàn bộ các host trong mạng với nội dung mang theo là địa chỉ IP của Gateway và địa chỉ MAC không hề tồn tại. Như vậy các host trong mạng tin tưởng rằng mình đã biết được MAC của Gateway và khi gởi thông tin đến Gateway, kết quả là gởi đến một nơi hoàn toàn không tồn tại. Đó là điều hacker mong muốn, toàn bộ các host trong mạng của chúng ta đều không thể đi ra internet được.

DoS (Denial of Service) có thể mô tả như hành động ngăn cản những người dùng hợp pháp của một dịch vụ nào đó truy cập và sử dụng dịch vụ đó. Nó bao gồm cả việc làm tràn ngập mạng, làm mất kết nối với dịch vụ… mà mục đích cuối cùng là làm cho server không thể đáp ứng được các yêu cầu sử dụng dịch vụ từ các client. DoS có thể làm ngưng hoạt động của một máy tính, một mạng nội bộ, thậm chí cả một hệ thống mạng rất lớn. Thực chất của DoS là kẻ tấn công sẽ chiếm dụng một lượng lớn tài nguyên mạng như băng thông, bộ nhớ… và làm mất khả năng xử lý các yêu cầu dịch vụ đến từ các client khác.

c. MAC Flooding

Kiểu tấn công làm tràn bảng CAM dựa vào điểm yếu của thiết bị chuyển mạch: bảng CAM chỉ chứa được một số hữu hạn các ánh xạ

(ví dụ như switch Catalysh 6000 có thể chứa được tối đa 128000 ánh xạ) và các ánh xạ này không phải tồn tại mãi mãi trong bảng CAM . Sau một khoảng thời gian nào đó, thường là 300 s,nếu địa chỉ này không được dùng trong việc trao đổi thông tin thì nó sẽ bị gỡ bỏ khỏi bảng.

Khi bảng CAM được điền đầy, tất cả thông tin đến sẽ được gửi đến tất cả các cổng của nó trừ cổng nó nhận được. Lúc này chức năng của switch không khác gì chức năng của một hub.

Cách tấn công này cũng dùng kỹ thuật Arp poisoning mà đối tượng nhắm đến là Switch. Hacker sẽ gởi những gói Arp reply giả tạo với số lượng khổng lồ nhằm làm Switch xử lý không kịp và trở nên quá tải. Khi đó Switch sẽ không đủ sức thể hiện bản chất Layer2 của mình nữa mà broadcast gói tin ra toàn bộ các port của mình. Hacker dễ dàng bắt được toàn bộ thông tin trong mạng của bạn.

2. DNS Poisoning

“Đầu độc” DNS (tạm dịch từ DNS poisoning, hay DNS cache poisoning) là tác vụ lừa một (số) DNS server nào đó rằng một địa chỉ IP-giả là IP của một tên miền nào đó. Ví dụ, IP của website ngân hàng vietcombank.com là 216.104.161.209 và 216.104.161.109; nếu ISP của ta có DNS bị “thuốc”, tưởng rằng IP của vietcombank.com là x.y.z.w thì truy cập vào vietcombank.com sẽ bị “chuyển hướng” (redirected) đến x.y.z.w; Ở địa chỉ x.y.z.w này, có thể có sẵn một webserver với interface giống hệt vietcombank.com – người dùng không để ý (rất kỹ mới biết) sẽ có thể giao trứng cho ác. (x.y.z.w chơi trò “man-in-the-middle attack“, và đó không phải là trò duy nhất chơi được sau khi “thuốc” DNS.)

DNS bị nhiễm độc có thể ảnh hưởng mọi trình duyệt và phiên bản trình duyệt, cả trên máy Mac và PC. Nó sẽ giải thích tại sao máy quét không bao giờ có thể phát hiện bất kỳ phần mềm độc hại trên máy tính mà ta lại vào không đúng trang web mình muốn vào trong 1 vài trường hợp

3. SSL Session Hijacking

Khi mà client telnet tới Server thì bị Attacker scan phát hiện và dùng tool để đánh bật client ra khỏi session đó và chiếm quyền đều khiển trên session đó ( client thì cứ tưởng do mạng chập chờn hay …. và re-login trở lại) Còn attacker thì kiểm soát được server do có session của client mà vừa cướp được.

Phòng chống

Để ngăn chăn những kẻ tấn công muốn Sniffer Password. Bạn đồng thời sử dụng các giao thức, phương pháp để mã hoá password cũng như sử dụng một giải pháp chứng thực an toàn (Authentication):

– SMB/CIFS: Trong môi trường Windows/SAMBA bạn cần kích hoạt tính năng LANmanager Authencation.

– Keberos: Một giải pháp chứng thực dữ liệu an toàn được sử dụng trên Unix cũng như Windows: Kerberos Users’ Frequently Asked Questions 1.14

– Stanford SRP (Secure Remote Password): Khắc phục được nhược điểm không mã hoá Password khi truyền thong của 2 giao thức FTP và Telnet trên Unix: The SRP Project

1. Mã hóa đường truyền

a. SSL (Secure Socket Layer)

Một giao thức mã hoá được phát triển cho hầu hết các Webserver, cũng như các Web Browser thông dụng. SSL được sử dụng để mã hoá những thông tin nhạy cảm để gửi qua đường truyền như : Số thẻ tin dụng của khách hàng, các password và thông tin quan trọng.

Tham khảo tại: OpenSSL ProjectModSSL Project.

b. PGP và S/MIME

E-mail cũng có khả năng bị những kẻ tấn công ác ý Sniffer. Khi Sniffer một E-mail không được mã hoá, chúng không chỉ biết được nội dung của mail, mà chúng còn có thể biết được các thông tin như địa chỉ của người gửi, địa chỉ của người nhận…Chính vì vậy để đảm bảo an toàn và tính riêng tư cho E-mail bạn cũng cần phải mã hoá chúng…S/MIME được tích hợp trong hầu hết các chương trình gửi nhận Mail hiện nay như Netscape Messenger, Outlock Express…PGP cũng là một giao thức được sủ dụng để mã hoá E- mail. Nó có khả năng hỗ trợ mã hoá bằng DSA, RSA lên đến 2048 bit dữ liệu.

Tham khảo tại: GnuPG.

c. OpenSSH

Khi bạn sử dụng Telnet, FTP…2 giao thức chuẩn này không cung cấp khả năng mã hoá dữ liệu trên đường truyền. Đặc biệt nguy hiểm là không mã hoá Password, chúng chỉ gửi Password qua đường truyền dưới dạng Clear Text. Điều gì sẽ xảy ra nếu những dữ liệu nhạy cảm này bị Sniffer. OpenSSH là một bộ giao thức được ra đời để khắc phục nhược điểm này: ssh (sử dụng thay thế Telnet), sftp (sử dụng thay thế FTP)…

Tham khảo tại: OpenSSH.

d. VPNs (Virtual Private Network)

Được sử dụng để mã hoá dữ liệu khi truyền thong trên Internet. Tuy nhiên nếu một Hacker có thể tấn công và thoả hiệp được những Node của của kết nối VPN đó, thì chúng vẫn có thể tiến hành Sniffer được.

Một ví dụ đơn giản,là một người dung Internet khi lướt Web đã sơ ý để nhiễm RAT (Remoto Access Trojan), thường thì trong loại Trojan này thường có chứa sẵn Plugin Sniffer. Cho đến khi người dùng bất cẩn này thiết lập một kết nối VPN. Lúc này Plugin Sniffer trong Trojan sẽ hoạt động và nó có khả năng đọc được những dữ liệu chưa được mã hoá trước khi đưa vào VPN. Để phòng chống các cuộc tấn công kiểu này: bạn cần nâng cao ý thức cảnh giác cho những người sử dụng trong hệ thống mạng VPN của bạn, đồng thời sử dụng các chương trình quét Virus để phát hiện và ngăn chặn không để hệ thống bị nhiễm Trojan.

Static ARP Table

Rất nhiều những điều xấu có thể xảy ra nếu có ai đó thành công thuốc độc bảng ARP của một máy tính trên mạng của bạn. nhưng làm thế nào để chúng ta ngăn chặn một ai đó cố gắng để đầu độc bảng ARP. Một cách để ngăn chặn những tác động xấu của hành vi này là để tạo mục bảng ARP tĩnh cho tất cả các thiết bị trên đoạn mạng địa phương của bạn. Khi điều này được thực hiện, hạt nhân sẽ bỏ qua tất cả các câu trả lời ARP cho địa chỉ IP cụ thể được sử dụng trong các mục nhập và sử dụng địa chỉ MAC chỉ định thay thế.

3. Quản lý port console trên Switch

a. Tính dễ bị tổn thương

Một hệ điều hành của Switch Cisco có quản lý port, dây Console(line con 0) mà nó cung cấp sự truy xuất trực tiếp đến Switch cho sự quản trị. Nếu sự quản lý port được cài đặt quá lỏng lẻo thì Switch có thể bị ảnh hưởng bởi các cuộc tấn công.Và chi tiết về tính dễ bị tổn thương của việc quản lý Port bao gồm những phần sau đây:

− Một Switch với 1 management port sử dụng tài khoản user mặc định cho phép kẻ tấn công cố găng tạo kết nối sử dụng 1 hoặc nhiều tài khoản mặc định được biết đến(administrator, root, security)

− Nếu 1 Switch có 1 management port mà không cài password, password mặc định hay password yếu, khi đó 1 kẻ tấn công có thể đoán được pass hay crack chúng và lấy hoặc thay đổi thông tin trên Switch. Cũng vậy việc cài cùng password trên nhiều Switch cung cấp 1 điểm đơn của sự hỏng hóc. Kẻ tấn công, người mà thỏa hiệp được 1 Switch sẽ thỏa hiệp được với các Switch còn lại. Cuối cùng việc cài đặt cùng 1 password cho cả management port và những cài đặt khác trên Switch cho phép sự thỏa hiệp tiềm tàng bởi vì password được cài đặt ở dạng Plaintext có thể bị thu thập trong 1 mạng mà có người phân tích mạng. Kẻ tấn công người mà thu thập được password telnet từ traffic mạng có thể truy cập vào management port của Switch lúc khác.

− Nếu một kết nối đến Switch sử dụng management port mà không cài đặt thời gian Timeout hoặc cài đặt khoảng thời gian Timeout lớn (lớn hơn 9 phút), khi đó kết nối sẽ sẵn sang cho 1 kẻ tấn công hack chúng.Một Banner đưa ra ghi chú cho bất kỳ người nào kết nối đến Switch mà nó thì được chứng thực và sẽ bị theo dõi cho bất kỳ hành động nào.Toà án sẽ bỏ qua trường hợp chống lại người mà tấn công vào một hệ thống không có Banner cảnh báo.

b. Giải pháp

Hầu hết phương pháp bảo đảm cho việc quản trị Switch thì nằm ngoài việc quản lý nhóm.Phương pháp này không trộn lẫn việc quản lý traffic với việc thao tác traffic.Việc quản lý ngoài nhóm sủ dụng dành cho những hệ thống và truyền thông. Sơ đồ 1 chỉ ra 1 dây Serial kết nối đến Server và chia việc quản lý các máy tính ngoài cổng Console kết nối đến các port của Switch.. Giải pháp này thỉ đủ cho nhiều chức năng quản lý. Tuy nhiên Network-based, ngoài việc truy xuẫt thích hợp cho những chức năng chính xác(cập nhật IOS), nó còn bao gồm việc sử dụng Virtual Local Area Network (VLAN) và được miêu tả trong giải pháp cho VLAN 1 trong phần Virtual Local Area Networks Giải pháp sau đây sẽ làm giảm tính dễ bi tổn thương khi sử dụng đây Console trên mỗi Switch:

Cài đặt một tài khoản duy nhất cho mỗi nhà quản trị khi truy xuất bằng dây Console. Lệnh sau chỉ ra 1 ví dụ về việc tạo 1 tài khoản ở cấp privilged và cài đặt cấp privilege thành mặc định(0) cho dây Console . Ỏ câp privileged 0 là cấp thấp nhấtt của Switch Cisco và cho phép cài đặt rất ít lệnh. Người quản trị có thể làm tăng cấp privileged lên 15 bằng câu lệnh enable. Cũng vậy, tài khoản này cũng có thể được truy xuất từ dây virtual terminal.

Switch(config)# username ljones privilege 0

Switch(config)# line con 0

Switch(config-line)# privilege level 0

Sử dụng những dòng hướng dẫn sau để tạo password an toàn: password ít nhất là 8 ký tự; không là những từ cơ bản; và thêm vào ít nhẩt 1 ký tự đặc biệt hay số như:!@#$%^&*()|+_…; thay đổi password ít nhất là 3 tháng 1 lần. Sử dụng

Switch(config)# username ljones secret g00d-P5WD Switch(config)# line con 0

Switch(config-line)# login local

4. Port Security

a. Tính dễ bị tổn thương

Những interface lớp 2 của Cisco được hiểu như là các Port. Một Switch mà không cung cấp khả năng bảo vệ Port, thì cho phép kẻ tấn công tấn công vào hệ thống không dùng đến, enable Port, thu thập thông tin hoặc tấn công. Một Switch có thể cấu hình để hoạt động giống như Hub. Điều đó có nghĩa là mỗi hệ thống kết nối đến Switch mộ cách tiềm tàng có thể thấy tất cả các traffic di chuyển qua Switch để tới các hệ thống kết nối đến Switch. Như vậy 1 kẻ tấn công có thể thu thập traffic chứa đựng các thông tin như: Username, Passord, những thông tin cấu hình và hệ thống trên mạng…

b. Giải Pháp

Port Security giới hạn số lượng của dịa chỉ MAC hợp lệ được cho phép trên Port. Tất cả những port trên Switch hoặc những interface nên được đảm bảo trước khi triển khai.Theo cách này, những đặt tính được cài đặt hoặc gỡ bỏ như là những yêu cầu để thêm vào hoặc làm dài thêm những đặt tính 1 cách ngẫu nhiên hoặc là những kết quả bảo mật vốn dã có sẵn.

Nên nhớ rằng Port Security không sử dụng cho những Port access động hoặc port đích cho người phân tích Switch Port. Và cho đến khi đó Port security để bật tính năng Port trên Switch nhiều nhất có thể.Ví dụ sau cho thấy dòng lệnh shutdonw một interface hoặc một mảng các interface:

Single interface:

Switch(config)# interface fastethernet 0/1

Switch(config-if)# shutdown

Range of interfaces:

Switch(config)# interface range fastethernet 0/2 – 8

Switch(config-if-range)# shutdown

Port Security có khả năng làm thay đổi sự phụ thuộc trên chế độ Switch và phiên bản IOS. Mỗi Port hoạt động có thể bị hạn chế bởi số lượng tối đa địa chỉ MAC với hành dộng lựa chọn cho bất kì sự vi phạm nào. Những vi phạm này có thể làm drop gói tin ( violation protect ) hoặc drop và gửi thông điệp (restrict or action trap) hoặc shutdown port hoàn toàn( violation shutdown or action shutdown). Shutdown là trạng thái mặc định , đảm bảo hầu hết protect và restrict cả hai đều yêu cầu theo dõi địa chỉ MAC mà nó đã được quan sát và phá huỷ tài nguyên xử lí hơn là shutdown. Địa chỉ MAC được thu thập một cách tự động với vài Switch hỗ trợ Entry tĩnh và Sticky Entry.

Entry tĩnh thì được cấu hình bằng tay để thêm vào trên mỗi port (e.g., switchport port-security mac- address mac- address) và được luư lại trong file cấu hình.. Sticky Entry được xem như là Entry tĩnh, ngoại nó được học một cách tự động . Những Entry động tồn tại được chuyển sang Sticky Entry sau khi sử dụng câu lệnh (switchport port-security mac- address Stickey). Những Entry động cũ được lưu lại trong file cấu hình (switchport port-security mac- address Stickey mac- address) nếu file cấu hình được lưu và chạy thì địa chỉ MAC không cần học lại lần nữa cho việc restart lần sau. Và cũng vậy một số lượng tối đa địa chỉ MAC có thể được cài đặt bằng câu lệnh sau(e.g.,switchport port-security maximun value) .

Người quản trị có thể bật tính năng cấu hình địa chỉ MAC tĩnh trên các port bằng cách sử dụng câu lệnh switchport port-security aging static. Lệnh aging time (e.g., switchport port-security aging time time) có thể đặt dưới dạng phút. Đồng thời dòng lệnh aging có thể đặt cho sự không hoạt động (e.g., switchport port-security aging type inactivity), điều này có nghĩa là độ tuổi các địa chỉ đó được cấu hình trên port ở ngoài nếu không có dữ liệu lưu thông từ những địa chỉ này cho khai báo từng phần bằng dòng lệnh aging time. Đặt tính này cho phép tiếp tục truy cập đến sô lượng những dịa chỉ giới hạn đó.

Ví dụ:

+ Những dòng lệnh sau dùng để giới hạn tĩnh một cổng trên Catalyst

Switch 3550.

Switch(config-if)# switchport port-security

Switch(config-if)# switchport port-security violation shutdown

Switch(config-if)# switchport port-security maximum 1

Switch(config-if)# switchport port-security mac-address

0000.0200.0088

Switch(config-if)# switchport port-security aging time 10

Switch(config-if)# switchport port-security aging type inactivity

+ Những dòng lệnh sau để giới hạn động một cổng trên Catalyst Switch 3550. Chú ý những dòng lệnh aging không được sử dụng với những địa chỉ sticky MAC.

Switch(config-if)# switchport port-security

Switch(config-if)# switchport port-security violation shutdown

Switch(config-if)# switchport port-security maximum 1

Switch(config-if)# switchport port-security mac-address sticky

Chú ý khi có sự vi phạm port security xảy ra thì ngay lập tức nó sẽ trở thành trạng thái error-disable và đèn LED sẽ tắt. Switch cũng sẽ gửi một thông điệp SNMP trap, logs (syslog) và làm tăng lên sự phản đối của xâm nhập. Khi một port o trạng thái error-disable, người quản trị có thể đưa nó ra khỏi trạng thái này bằng cách sử dụng dòng lệnh ở chế độ toàn cục errdisable recovery cause psecure-violation hoặc dòng lệnh shutdown và no shutdown trên cổng được cấu hình.

Có một số vấn đề quan trọng phát sinh khi cấu hình port security trên port kết nối đến một IP phone. Mặt dù port security không được sử dụng trên Trunk port, địa chỉ MAC phản đối việc xem xét viec gán VLAN của gói tin đến. Cùng IP phone gửi gói tin ra 2 Vlan sẽ có 2 bảng entries được chia ra trong bảng MAC vì thế nó sẽ đếm 2 lần lên đến maximum MAC.

Khi IP Phone có thể sử dụng 2 gói tin không được gán vào (untagged, e.g., Layer 2 CDP protocol ) và gói tin Voice Vlan có gắn(tagged); địa chỉ MAC của IP Phone sẽ được thấy trên cả 2 native VLAN và Voice VLAN. Vì vậy nó sẽ được đếm 2 lần. Việc đặt tối đa địa chỉ MAC cho 1 port kết nối đến 1 IP Phone cho trường hợp nhiều máy tính tấn công vào IP Phone. Nhửng máy tình truyền hợp lệ sử dụng nhiều địa chỉ MAC phải đựơc cấu hình để tính toán.

Một khả năng mới để bảo đảm cho những port của Switch nhanh hơn và thích hộp hơn đó là macros. Macros cho phép nhóm những port sẵn sàng để mà những lệnh đó được chấp nhận bằng cấu hình tay. Bất kì dòng lệnh nào được thêm vào bẳng việc sử dụng kí tự “#” tại đấu mỗi dòng lệnh và kết thúc bởi kí tự”@”.

Ví dụ sau đây tạo ra sự ngăn cản security macro gọi là unused để bảo đảm trên những port hoặc trên những interface trên Switch 3550.

Switch(config)# macro name unused

macro description unused shutdown

description *** UNUSED Port ***

no ip address switchport

# Set secure defaults for access mode switchport mode access switchport access vlan 999

switchport nonegotiate

# Set secure defaults for trunking mode switchport trunk encapsulation dot1q switchport trunk native vlan 999 switchport trunk allowed vlan none

# Only learn source MAC addresses switchport block multicast switchport block unicast

# Enable MAC control and set secure options switchport port-security

switchport port-security maximum 1

switchport port-security aging time 10

switchport port-security aging type inactivity

# Apply any switch-wide access-lists ip access-group ip-device-list in

mac access-group mac-device-list in

# Set secure defaults for misc. flags and protocols mls qos cos override

dot1x port-control force-unauthenticated

storm-control broadcast level 0.00 storm-control multicast level 0.00

storm

control unicast level 0.00

no cdp enable

# Default Spanning-tree to secure host settings spanning-tree portfast spanning-tree bpdufilter enable spanning-tree bpduguard enable spanning

tree guard root

@

Sau khi tạo sự găn cấm security macro, unused, áp đặt macro trên tất cả các port của Switch như sự bảo đảm ranh giới với các dòng lệnh sau.

Switch(config)# interface range fasteth0/1 – 24 , giga0/1 – 2

Switch(config-if-range)# macro apply unused

Sau khi macros được xây dựng tính bảo đảm dựa trên unused macro được thiết lập để bật tính năng bảo mật đủ dể hỗ trợ tất cả các hệ thống theo mong đợi..

Switch(config)# macro name host

# Apply macro ‘unused’ first!

macro description host

# Set the port for a PC host dot1x port-control auto

no storm-control broadcast level no storm-control multicast level no storm

control unicast level no shutdown

# The following are recommended port specific commands

#description Host <10.1.10.3>

#switchport access vlan <10>

#switchport trunk native vlan <10>

@

Switch(config)# macro name ipphone

# Apply macro ‘unused’ first!

macro description ipphone

#

# Set the port for an ipphone without attached PC host switchport port-security maximum 2

no mls qos cos override

mls qos trust device cisco-phone mls qos trust dscp

no storm-control broadcast level no storm-control multicast level no storm

control unicast level cdp enable no shutdown

#

# The following are recommended port specific commands

#description IP PHONE <x1013>

#switchport voice vlan <101>

@

Switch(config)# macro name ipphone-host

# Apply macro ‘unused’ first!

macro description ipphone & host

#

# Set the port for an ipphone with attached PC host switchport port- security maximum 3

no mls qos cos override

mls qos trust device cisco-phone mls qos trust dscp

dot1x port-control auto

no storm-control broadcast level no storm-control multicast level no storm

control unicast level cdp enable no shutdown

#

# The following are recommended port specific commands

#description IP PHONE <x1014> & HOST <10.1.20.5>

#switchport access vlan <20>

#switchport trunk native vlan <20>

#switchport voice vlan <101>

@

Việc chấp nhận những macros sẽ chỉ làm thay đổi đến tính bảo đảm ở những biên được yêu cấu cho những port hỗ trợ hoàn toàn những hệ thống thích hợp.

Ví dụ sau chỉ ra làm thế nào để dùng các macro lần trước để cấu hình cho những port access của những Switch từ những mô hình ví dụ cho mỗi hệ thống như: Host, Ip Phone và IP Phone với một cuộc tấn công host.

Host:

Switch(config)# interface fa0/1

Switch(config-if)# macro apply host

Switch(config-if)# description Host 10.1.10.3

Switch(config-if)# switchport access vlan 10

Switch(config-if)# switchport trunk native vlan 10

Switch(config-if)# exit

IP phone:

Switch(config)# interface range fa0/2 – 4

Switch(config-if-range)# macro apply ipphone

Switch(config-if-range)# switchport voice vlan 101

Switch(config-if-range)# exit

Switch(config)# interface fa0/2

Switch(config-if)# description IP PHONE x1011

Switch(config)# interface fa0/3

Switch(config)# description IP PHONE x1012

Switch(config)# interface fa0/4

Switch(config-if)# description IP PHONE x1013

Switch(config-if)# exit

IP phone with an attached host: Switch(config)# interface fa0/5

Switch(config-if)# macro apply ipphone-host

Switch(config-if)# description IP PHONE x1014 & Host 10.1.20.5

Switch(config-if)# switchport access vlan 20

Switch(config-if)# switchport trunk native vlan 20

Switch(config-if)# switchport voice vlan 101

Switch(config-if)# exit

Người quản trị có thể sử dụng câu lệnh macro trace để thay thế cho câu lệnh macro apply bởi vì câu lệnh macro trace có thể xác định debugging cùa macros. Thường xuyên sử dụng show parser macro description để biết macro cuối cùng được áp lên mỗi port. Cuối cùng địa chỉ MAC tĩnh và port security áp trên mỗi port của Switch có thể trở thành gánh nặng cho người quản trị. Port Access Control List (PACLs) có thể cung cấp khả năng bảo mật tương tự như địa chỉ MAC tĩnh và port security và PACLs cũng cung cấp nhiều tính năng linh động và điều khiển.việc cho phép địa chỉ MAC và địa chỉ IP có thể được chia và dược xem xét từ phía của một Switch mở rộng. Tham chiếu đến phần ALCs đễ biết thêm chi tiết.

5. IDS, IPS

− IDS: phát hiện xâm nhập

− IPS: phát hiện và ngăn chặn xâm nhập

Được chia làm 2 loại chính:

− HIDS (và cả IPS): triển khai trên máy trạm hoặc server quan trọng, chỉ để bảo vệ riêng từng máy

− NIDS: đặt tại những điểm quan trọng của hệ thống mạng, để

phát hiện xâm nhập cho khu vực đó. Công việc chính của IDS/IPS:

Nếu hoạt động theo kiểu nhận dạng mẫu packet thì nó sẽ so trùng từng packet với những mẫu tấn công mà nó có, nếu trùng ==> là loại packet tấn công ==> cảnh báo hoặc ngăn cản luôn. Hiện nay đa số IDS/IPS hoạt động theo kiểu này. Tuy nhiên nếu kiểu tấn công mới thì IDS không nhận biết được, nên phải cập nhật lỗi thường xuyên giống như cập nhật virus.

Nếu hoạt động theo kiểu heuristic thông minh (không biết dịch thế nào cho phải) thì IDS theo dõi mạng xem có hiện tượng bất thường hay không, và phản ứng lại. Lợi điểm là có thể nhận biết các kiểu tấn công mới, nhưng nhiều trường hợp bị báo động nhầm (không phải trường hợp tấn công mà vẫn gây báo động).

So sánh IDS và IPS

Hiện nay, Công nghệ của IDS đã được thay thế bằng các giải pháp IPS. Nếu như hiểu đơn giản, ta có thể xem như IDS chỉ là một cái chuông để cảnh báo cho người quản trị biết những nguy cơ có thể xảy ra tấn công. Dĩ nhiên ta có thể thấy rằng, nó chỉ là một giải pháp giám sát thụ động, tức là chỉ có thể cảnh báo mà thôi, việc thực hiện ngăn chặn các cuộc tấn công vào hệ thống lại hoàn toàn phụ thuộc vào người quản trị. Vì vậy yêu cầu rất cao đối với nhà quản trị trong việc xác định các lưu lượng cần và các lưu lượng có nghi vấn là dấu hiệu của một cuộc tấn công. Và dĩ nhiên công việc này thì lại hết sức khó khăn. Với IPS, người quản trị không nhũng có thể xác định được các lưu lượng khả nghi khi có dấu hiệu tấn công mà còn giảm thiểu được khả năng xác định sai các lưu lượng. Với IPS, các cuộc tấn công sẽ bị loại bỏ ngay khi mới có dấu hiệu và nó hoạt động tuân theo một quy luật do nhà Quản trị định sẵn. IDS hiện nay chỉ sử dụng từ một đến 2 cơ chế để phát hiện tấn công (như Cosultant đã nói).

Vì mỗi cuộc tấn công lại có các cơ chế khác nhau của nó (Có thể tham khảo thêm các bài viết về DoS của tui ), vì vậy cần có các cơ chế khác nhau để phân biệt. Với IDS, do số lượng cơ chế là ít nên có thể dẫn đến tình trạng không phát hiện ra được các cuộc tấn công với cơ chế không định sẵn, dẫn đến khả năng các cuộc tấn công sẽ thành công, gây ảnh hưởng đến hệ thống. Thêm vào đó, do các cơ chế của IDS là tổng quát, dẫn đến tình trạng báo cáo nhầm, cảnh báo nhầm, làm tốn thời gian và công sức của nhà quản trị. Với IPS thì được xây dựng trên rất nhiều cơ chế tấn công và hoàn toàn có thể tạo mới các cơ chế phù hợp với các dạng thức tấn công mới nên sẽ giảm thiểu được khả năng tấn công của mạng, thêm đó, độ chính xác của IPS là cao hơn so với IDS.

Nên biết rằng với IDS, việc đáp ứng lại các cuộc tấn công chỉ có thể xuất hiện sau khi gói tin của cuộc tấn công đã đi tới đích, lúc đó việc chống lại tấn công là việc nó gửi các yêu cầu đến các máy của hệ thống để xoá các kết nối đến máy tấn công và máy chủ, hoặc là gửi thông tin thông báo đên tường lửa ( Firewall) để tường lửa thực hiện chức năng của nó, tuy nhiên, việc làm này đôi khi lại gây tác động phụ đến hệ thống. Ví dụ như nếu Attacker giả mạo (sniffer) của một đối tác, ISP, hay là khách hàng, để tạo một cuộc tấn công từ chối dịch vụ thì có thể thấy rằng, mặc dù IDS có thể chặn được cuộc tấn công từ chối dịch vụ nhưng nó cũng sẽ Block luôn cả IP của khách hàng, của ISP, của đối tác, như vậy thiệt hại vẫn tồn tại và coi như hiệu ứng phụ của DoS thành công mặc dù cuộc tấn công từ chối dịch vụ thất bại. Nhưng với IPS thì khác nó sẽ phát hiện ngay từ đầu dấu hiệu của cuộc tấn công và sau đó là khoá ngay các lưu lượng mạng này thì mới có khả năng giảm thiểu được các cuộc tấn công.

6. Phương pháp Ping

Hầu hết các chương trình Sniffer được cài đặt trên các máy tính trong mạng sử dụng TCP/IP Stack. Bởi vậy khi bạn gửi yêu cầu đến những máy tính này, chúng sẽ phản hồi lại cho bạn kết quả. Bạn hãy gửi một yêu cầu phản hồi tới địa chỉ IP của máy tính nào đó trong mạng (máy mà bạn cần kiểm tra xem có bị cài đặt Sniffer hay không), nhưng không thông qua Adapter Ethernet của nó.

Lấy ví dụ cụ thể :

a. Bạn nghi ngờ máy tính có địa chỉ IP là 10.0.0.1, có địa chỉ MAC là

00-40-05-A4-79-32. Đã bị cài đặt Sniffer.

b. Bạn đang ở trong cùng một hệ thống mạng Ethernet mà bạn nghi ngờ có kẻ đã tiến hành Sniffer.

c. Bạn thay đổi địa chỉ MAC của bạn thành là 00-40-05-A4-79-33. d. Bạn Ping đến địa chỉ IP và địa chỉ MAC mới.

e. Trên nguyên tắc không một máy tính nào có thể nhìn thấy có thể nhìn thấy được Packet này. Bởi Adapter Ethernet chỉ chấp nhận những địa chỉ MAC hợp lệ của chính nó.

f. Nếu bạn thấy sự trả lời từ địa chỉ mà bạn nghi ngờ không phải trên địa chỉ lọc của MAC (MAC Address Filter) trên Ethernet Card…Máy tính có địa chỉ IP 10.0.0.1 đã bị cài đặt Sniffer Bằng các kỹ thuật của mình các Hacker vẫn có thể né tránh được phương pháp nêu trên. Các Hacker sẽ sử dụng những MAC Address ảo. Rất nhiều hệ thống máy tính trong đó có Windows có tích hợp khả năng MAC Filtering. Windows chỉ kiểm tra những byte đầu tiên. Nếu một địa chỉ MAC có dạng FF-00-00-00-00-00, thì đơn giản Windows sẽ coi nó là FF-FF- FF-FF-FF-FF. Đây là sơ hở cho phép các Hacker có thể khai thác đánh lừa hệ thống máy tính của bạn.

Kỹ thuật phát hiện Sniffer đơn giản này thường được sử dụng trên các hệ thống Ethernet dựa trên Switch và Bridge.

7. Phương pháp ARP

Phương pháp phát hiện Sniffer này tương tự như phương pháp dùng Ping. Khác biệt chỗ chúng ta sẽ sử dụng những Packet ARP. Đơn giản bạn chỉ cần gửi một Packet ARP đến một địa chỉ nào đó trong mạng (không phải Broadcast). Nếu máy tính đó trả lời lại Packet ARP bằng địa chỉ của chính nó. Thì máy tính đó đang cài đặt Sniffer ở chế độ hỗn tạp(Promiscuous Mode).

Mỗi Packet ARP đều chứa đầy đủ thông tin về người gửi và người nhận. Khi Hacker gửi một Packet ARP đến địa chỉ loan truyền tin (Broadcast Address), nó bao gồm thông tin về địa chỉ IP của bạn và địa chỉ MAC được phân giải bởi Ethernet. Ít phút sau mọi máy tính trong hệ thống mạng Ethernet đều nhớ thông tin này. Bởi vậy khi Hacker gửi các Packet ARP không đi qua Broadcast Address. Tiếp đó anh ta sẽ ping đến Broadcast Address. Lúc này bất cứ máy tính nào trả lời lại anh ta mà không bằng ARPing, anh ta có thể chụp được các thông tin về địa chỉ MAC của máy tính này bằng cách sử dụng Sniffer để chụp các khung ARP (ARP Frame).

8. Phương pháp sử dụng DNS

Rất nhiều chương trình Sniffer có tính năng phân giải ngược các địa IP thành DNS mà chúng nhìn thấy (như dsniff). Bởi vậy khi quan sát lưu lượng truyền thông của DNS bạn có thể phát hiện được Sniffer ở chế độ hỗn tạp(Promiscuous Mode).

Để thực hiện phương pháp này, bạn cần theo dõi quá trình phân giải ngược trên DNS Server của bạn. Khi bạn phát hiện được những hành động Ping liên tục với mục đích thăm dò đến những địa chỉ IP không tồn tại trên hệ thống mạng của bạn. Tiếp đó là những hành động cố gắng phân giải ngược những địa chỉ IP được biết từ những Packet ARP. Không gì khác đây là những hành động của một chương trình Sniffer.

9. Phương pháp Source Route

Phương pháp này sử dụng những thông tin như địa chỉ nguồn và địa chỉ đích trong mỗi Header của IP để phát hiện hành động Sniff trên từng đoạn mạng.

Tiến hành ping từ một máy tính này đến một máy tính khác. Nhưng tính năng Routing trên máy tính nguồn phải được vô hiệu hoá. Hiểu đơn giản là làm thế nào để gói tin này không thể đi đến đích. Nếu như bạn thấy sự trả lời, thì đơn giản hệ thống mạng của bạn đã bị cài đặt Sniffer.

Để sử dụng phương pháp này bạn cần sử dụng vào một vài tuỳ chọn trong Header IP. Để Router sẽ bỏ qua những địa chỉ IP đến và tiếp tục chuyển tiếp đến những địa chỉ IP trong tuỳ chọn Source- Route của Router.

Lấy một ví dụ cụ thể : Bob và Anna cùng nằm trên một đoạn mạng. Khi có một người khác trên cùng đoạn mạng gửi cho cô ta vài Packet IP và nói chuyển chúng đến cho Bob. Anna không phải là một Router, cho lên cô ta sẽ Drop tất cả Packet IP mà người kia muốn chuyển tới Bob (bởi cô ta không thể làm việc này). Một Packet IP không được gửi đến Bob, mà anh ta vẫn có thể trả lời lại được. Điều này vô lý, anh ta đã sử dụng các chương trình Sniffer.

10. Phương pháp giăng bẫy (Decoy)

Tương tự như phương pháp sử dụng ARP nhưng nó được sử dụng trong những phạm vi mạng rộng lớn hơn (gần như là khắp nơi). Rất nhiều giao thức sử dụng các Password không được mã hoá trên đường truyền, các Hacker rất coi trọng những Password này, phương pháp giăng bẫy này sẽ thoả mãn điều đó. Đơn giản bạn chỉ cần giả lập những Client sử dụng Service mà Password không được mã hoá như : POP, FTP, Telnet, IMAP…Bạn có thể cấu hình những User không có quyền hạn, hay thậm chí những User không tồn tại.Khi Sniff được những thông tin được coi là quý giá này các Hacker sẽ tìm cách kiểm tra, sử dụng và khai thác chúng…Bạn sẽ làm gì kế tiếp ???

11. Phương pháp kiểm tra sự châm trễ của gói tin (Latency) 

Phương pháp này sẽ làm giảm thiểu sự lưu thông trên hệ thống mạng của bạn. Bằng cách gửi một lượng thông tin lớn đến máy tính mà bạn nghi là đã bị cài đặt Sniffer. Sẽ không có hiệu ứng gí đáng kể nếu máy tính đó hoàn toàn không có gì. Bạn ping đến máy tính mà bạn nghi ngờ đã bị cài đặt Sniffer trước thời gian chịu tải và trong thời gian chị tải. Để quan sát sự khác nhau của 2 thời điểm này.

Tuy nhiên phương pháp này tỏ ra không mấy hiệu quả. Bản thân những Packet IP được gửi đi trên đường truyền cũng gây ra sự trậm trễ và thất lạc. Cũng như những Sniffer chạy ở chế độ “User Mode” được xử lý độc lập bởi CPU cũng cho ra những kết quả không chính xác.

Do đây chỉ mà một tài liệu có tính chất căn bản giới thiệu về Sniffer, nên tôi sẽ không đề cập đến cách thức để sử dụng Sniffer trên các hệ thống mạng. Tuy nhiên tôi vẫn nêu qua những hệ thống mạng có thể bị Sniffer:

– Cable Modem

– DSL

– ADSL

– Switched Network

– WLAN IEEE 802.11(a/b/g/n)

Những giao thức mà thông tin Password không được mã hoá, khá nguy hiểm khi bị Sniffer:

– Telnet, Rlogin

– SNMP

– NNTP

– POP, IMAP, SMTP

– FTP

Bonus một số công cụ giúp phát hiện các gói Sniffer

AntiSniff: công cụ phát hiện các gói Sniffer toàn diện hiệu quả..

CPM (Check Promiscuous Mode): Công cụ được phát triển bởi Carnegie-Mellon nhằm giúp kiểm tra Sniffer trên các hệ thống UNIX.

Một số nguồn khác tham khảo tại đây.

Advertisements

About Argron Nguyen's Blog

Vietnamese. Photographer. Writer. Illustrator. IT-er. All to some extent.

Posted on 07.09.2012, in Network Security and tagged , , . Bookmark the permalink. %(count) bình luận.

  1. Cám ơn cậu về bài viết này rất nhiều, nó rất hữu ích.

Trả lời

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Đăng xuất / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Đăng xuất / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Đăng xuất / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Đăng xuất / Thay đổi )

Connecting to %s

%d bloggers like this: