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.4 Địa chỉ Ethernet MAC là gì ?
Khi nhiều máy tính trên mạng có thể cùng chia sẻ một đường truyền ? Thì bản thân mỗi máy đó phải có một thông tin nhận dạng khác nhau. Khi bạn gửi dữ liệu từ bên ngoài hệ thống mạng Ethernet bạn phải biết rõ địa chỉ nào ? máy nào ? mà bạn cần gửi dữ liệu đến.
MAC là một dãy 12 số Hex cho mỗi phần cứng Ethernet để thực hiện nhiệm vụ này. Sự truyền thông trên hệ thống mạng Ethernet được xử lý bởi các thiết bị phần cứng Ethernet (Card mạng).
_________
/.........\
/..Internet.\
+-----+ +------+.........+---+
|Alice|-----|ROUTER|.........|Bob|
+-----+ ^ +------+.........+---+
| \.........../
| \---------/
-------+
|wiretap|
+-------+
Alice có địa chỉ IP là 10.0.0.23
Bob có địa chỉ IP là 192.168.100.54
Để nói chuyện với Bob, Alice cần phải tạo ra một Packet IP từ 10.0.0.23 đến 192.168.100.54. Trong khi gói dữ liệu được đi ngang qua Internet nó sẽ được đi từ Router này đến Router kia. Các Router nó sẽ kiểm tra địa chỉ đến và
quyết định có cho Packet đó đi ra hay không ?
Trong sơ đồ đơn giản trên, chúng ta coi môi trường Internet như một đám mây. Tất cả những Packet IP của Alice muốn chuyển đến Bob sẽ được đi qua Router đầu tiên. Alice không biết được cấu trúc của Internet, cũng như truyền đường mà Packet IP của cô phải đi qua. Cô ấy phải nói chuyện với Router để chúng thực hiện việc này. Trong hệ thống mạng cục bộ, để nói chuyện với Router cô ấy sử dụng Ethernet.
+--+--+--+--+--+--+
| destination MAC |
+--+--+--+--+--+--+
| source MAC |
+--+--+--+--+--+--+
|08 00|
+--+--+-----------+
. IP packet .
| |
+--+--+--+--+-----+
| CRC |
+--+--+--+--+
Những phương pháp nào trên Stack TCP/IP trong máy của Alice có thể tạo ra một gói dữ liệu dài 100 bytes (hãy nói cho nó tạo 20 bytes cho thông tin về IP, 20 bytes cho thông tin về TCP và 60 bytes cho thông tin về dữ liệu). Stack TCP/IP sẽ gửi nó cho Modules Ethernet, đặt 14 bytes cho địa chỉ MAC của nơi nhận, của nơi gửi. Cuối cùng nó sẽ gán 4 bytes kết thúc cho quá trình kiểm tra CRC/Checksum.
Bộ tiếp hợp (Adapter) sẽ gửi những thông tin này ra ngoài. Tất cả các adapter dựa trên phần cứng trên hệ thống mạng đều nhìn thấy Frame dữ liệu này. Bao gồm adapter của Router, của chương trình Sniffer cũng như tất cả các adapter trên hệ thống mạng.
Tuy nhiên có một bộ phận trong các thiết bị phần cứng Ethernet được dùng để so sánh các địa chỉ MAC gửi đi với chính khung địa chỉ MAC (Frame MAC) của chính mình. Nếu chúng không phù hợp thì bỏ qua Frame MAC đó. Quá
trình này được xưr lý bởi các thiết bị phần cứng.
1.5 Định dạng của các địa chỉ MAC
Địa chỉ MAC là một dãy số 48 bits. 48 bits này tiếp tục được chia đôi. 24 bit đầu tiên xác định tên hãng sản xuất Ethernet Card của bạn. 24 bit còn lại là
số hiệu Serial được gán bởi nhà sản xuất. Đảm bảo trên nguyên tắc không có 2 Ethernet Card có trùng một địa chỉ MAC. 24 bit thứ 2 còn được gọi là OUI (Organizationally Unique Identifier).
Tuy nhiên OUI có độ dài thực sự chỉ là 22 bit, 2 bit còn dư lại sẽ được sử dụng cho những mục đích khác. 1 bit được chỉ định nếu nó là địa chỉ Broadcast/Multicast (địa chỉ loan báo tin chung trên một hệ thống mạng). 1 bit còn lại được sử dụng nếu cần thiết lập lại địa chỉ cục bộ cho một Adapter.
1.6 Làm thế nào để biết được địa chỉ MAC ?
Với Windows bạn sử dụng câu lệnh « ipconfig /all » :
Windows NT IP Configuration
Host Name . . . . . . . . . : sample.robertgraham.com
DNS Servers . . . . . . . . : 192.0.2.254
Node Type . . . . . . . . . : Hybrid
NetBIOS Scope ID. . . . . . :
IP Routing Enabled. . . . . : No
WINS Proxy Enabled. . . . . : No
NetBIOS Resolution Uses DNS : No
Ethernet adapter SC12001:
Description . . . . . . . . : DEC DC21140 PCI Fast Ethernet Adapter
Physical Address. . . . . . : 00-40-05-A5-4F-9D
DHCP Enabled. . . . . . . . : No
IP Address. . . . . . . . . : 192.0.2.160
Subnet Mask . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . : 192.0.2.1
Primary WINS Server . . . . : 192.0.2.253
Địa chỉ MAC trong ví dụ này là 00-40-05-A5-4F-9D
Trong Linux/Unix bạn sử dụng câu lệnh « ifconfig »
eth0 Link encap:Ethernet HWaddr 08:00:17:0A:36:3E
inet addr:192.0.2.161 Bcast:192.0.2.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1137249 errors:0 dropped:0 overruns:0
TX packets:994976 errors:0 dropped:0 overruns:0
Interrupt:5 Base address:0x300
Địa chỉ MAC trong ví dụ này là 08 :00 :17 :0A :36 :3E
Nếu muốn biết những địa chỉ Ethernet nào mà bạn đang truyền thông, đơn giản chỉ cần sử dụng lệnh « arp –a » cho cả Windows cũng như *Nix.
1.7 Tôi có thể Sniffer kết nối giữa 2 người mà tôi không có quyền truy cập
vào đường truyền của họ không ?
Hãy tưởng tượng :
Alice và Bob một người ở Berlin, một người ở London...Họ đang truyền thông với nhau.
Còn bạn, bạn đang ở Paris.
Bạn muốn nghe trộm phiên truyền thông của họ ?
Bạn không có quyền nhảy vào đường truyền của họ. Rất tiếc! Câu trả lời là không. Bạn phải có quyền truy cập trên đường truyền mà bạn muốn Sniffer. Tuy nhiên nếu bạn là một Hacker thực thụ thì vẫn có cách để bạn thực hiện mục đích này bằng cách dành được quyền truy cập từ xa như :
Tấn công và đột nhập vào máy tính của Bob hay Alice cài đặt phầm mềm Sniffer, rồi từ xa bạn chỉ việc khai thác thông tin.
Tấn công đột nhập vào hệ thống mạng của ISP và cài đặt Sniffer.
Hối lộ, lừa đảo nhân viên trong ISP để bạn tiến hành móc nối cài đặt các thiết bị, chương trình Sniffer trên các thiết bị vật lý của ISP này. Như đường dây Cable chẳng hạn.
--------------------
2.1 Làm thế nào để ngăn chặn những kẻ muốn Sniffer dữ liệu của tôi ?
Có lẽ cách đơn giản nhất để ngăn chặn những kẻ muốn Sniffer dữ liệu của bạn là sử dụng các giao thức mã hoá chuẩn cho dữ liệu trên đường truyền. Khi bạn mã hoá dữ liệu, những kẻ tấn công ác ý có thể Sniffer được dữ liệu của bạn, nhưng chúng lại không thể đọc được nó...
- 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.
http://www.openssl.org/
http://www.modssl.org/
- 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.
http://www.gnupg.org/
- 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)…
http://www.openssh.org/ /
- VPNs (Virtual Private Networks): Đượ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.
2.2 Làm thế nào để ngăn chặn những kẻ muốn Sniffer Password của tôi ?
Để 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:
ftp://aeneas.mit.edu/pub/kerberos/doc/KERBEROS.FAQ
- 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:
http://srp.stanford.edu/srp/
2.3 Làm thế nào để có thể ngăn chặn hành động Sniffer trên những thiết bị phần cứng của tôi ?
Việc thay thế Hub của bạn bằng những Switch, nó có thể cung cấp một sự phòng chống hiệu quả hơn. Switch sẽ tạo ra một “Broadcast Domain” nó có tác dụng gửi đến những kẻ tấn công những gói ARP không hợ lệ (Spoof ARP
Packet).
Tuy nhiên các Hacker vẫn có những cách thức khéo léo để vượt qua sự phòng thủ này. Các yêu cầu truy vấn ARP chứa đựng những thông tin chính xác từ IP cho đến MAC của người gửi. Thông thường để giảm bớt lưu lượng ARP trên đường truyền, đa số các máy tính sẽ đọc và sử dụng các thông tin từ bộ đệm (Cache) mà chúng truy vấn được từ Broadcast.
Bởi vậy một Hacker có thể Redirect những máy tính gần mình để vượt qua sự phòng thủ này bằng cách gửi những gói ARP chứa đựng những thông tin về địa chỉ IP của Router đến chính địa chỉ MAC của anh ta. Tất cả những máy
tính trong hệ thống mạng cục bộ này sẽ nhầm tưởng anh ta là Router và sẽ thiết lập phiên truyền thông đi qua máy tính của anh ta.
Một cuộc tấn công DOS tương tự trên một hệ thống mạng cục bộ, khi thành công sẽ đá văng mục tiêu mà họ muốn tấn công ra khỏi mạng. rồi bắt đầu sử dụng chính địa chỉ IP của máy tính vừa bị tấn công này. Những kẻ tấn công sẽ khéo léo thừa kể và sử dụng những kết nối này. Bản than Windows khi phát hiện được hành động này, nó không hành động gì cả mà lại tử tế đóng Stack TCP/IP của chính mình và cho phép kết nối này tiếp tục.
Để phòng chống lại các cuộc tấn công dạng bạn chỉ cần sử dụng các công cụ IDS (Intrusion Detecte Service). Các IDS như BlackICE IDS, Snort sẽ tự động phát hiện và cảnh báo về các cuộc tấn công dạng này.
http://www.blackice.com/
http://www.snort.org/
Hầu hết các Adapter Ethernet đều cho phép cấu hình địa chỉ MAC bằng tay. Hacker có thể tạo ra các địa chỉ Spoof MAC bằng cách hướng vào các địa chỉ trên Adapter. Để khắc phục điều này, hầu hết các Switch đều không cho phép tự ý cấu hình lại các địa chỉ MAC.
Không có nhận xét nào:
Đăng nhận xét