Tổng lượt truy cập

Thursday, November 25, 2010

Lỗ hổng 196 nguyên nhân tấn công hệ thống wifi sử dụng WPA2

Chắc việc attack vào mã hóa wep đã rất phổ biến với mọi người. Nhưng đã có cách nào để attack vào mã hóa giao thức WPA2. Mình đã đọc được bản tiếng anh rất hay và dịch lại cho anh em nắm được bản chất của các cuộc tấn công này nhé.

Hole 196

  • Nguồn gốc:

Là lỗ hổng được phát hiện tại trang 196 của tài liệu chuẩn IEEE 802.11 năm 2007

Lỗ hổng này nói về việc tấn công từ bên trong. Tức là lỗ hổng này được khai thác từ người sử dụng bên trong mạng.

Khóa mã hóa trong WPA2:

Có 2 loại khóa dùng để mã hóa trong WPA2:

1. Pairwise Transient Key (PTK)

2. Group Temporal Key (GTK)

PTK là khóa bí mật sử dụng để bảo vệ các gói tin unicast. GTK được sử dụng để bảo vệ các gói tin broadcast hoặc multicast.

  • Mô hình mạng Wi-Fi bình thường:


Nếu sử dụng cách tấn công giả gateway thông thường bằng cách đầu độc ARP thì sẽ dễ dàng bị phát hiện bởi IPS/IDS


Như đã nói ở trên PTK là khóa riêng, mỗi 1 client sẽ có 1 PTK riêng:


Còn GTK được chia sẻ giữa các client đã được chứng thực:


GTK được định nghĩa như là khóa 1 chiều. Nó được dùng để mã hóa ở AP và được dùng để giải mã ở client.

Mỗi 1 client luôn giữa 1 bản copy của GTK:

Log trên được ghi lại bởi phần mềm wpa_supplicant đã cho thấy GTK luôn được biết bởi client

  • Cách thức tấn công:

Kẻ tấn công sẽ gửi các gói tin broadcast đã được mã hóa bởi GTK của nó đến các client khác:


  • Các bước cụ thể như sau:


1. Kẻ tấn công sẽ gửi gói tin đầu đọc client để client coi nó là gateway

2. Victim (client bị hại) sẽ gửi tất cả các gói tin của nó được mã hóa bởi PTK của nó đến AP với gateway chính là kẻ tấn công.

3. AP sẽ forwards các gói tin của victim đến kẻ tấn công và các gói tin này được mã hóa bởi PTK của kẻ tấn công. Từ đây kẻ tấn công có thể giải mã giữ liệu

4. Cuối cùng kẻ tấn công sẽ lại forward dữ liệu của client đến gateway thật để client không biết mình đã bị tấn công


Như ta thấy ở trên thì bước 1 kẻ tấn công gửi gói tin trực tiếp đến client mà không qua AP. Vì nếu thông qua AP thì nó sẽ dễ dàng bị phát hiện bởi IPS/IDS


Tuy nhiên để có thể thực hiện bước 1 là giả gateway thì kẻ tấn công vẫn còn 1 nhiệm vụ phải làm là ngăn chặn các gói tin broadcast của AP để victim sẽ không coi AP như là gateway nữa.

Thông thường mỗi 1 gói tin sẽ có 1 thông số đặc trưng cho số hiệu của gói tin được gọi là PN. Khi client nhận được 1 gói tin có PN lớn hơn PN của gói tin cuối cùng nó nhận được thì nó sẽ giãi mã gói tin đó, ngược lại, gói tin có PN nhỏ hơn PN của gói tin cuối cùng nó nhận được thì nó sẽ bỏ qua.

Lợi dụng cách này, kẻ tấn công gửi các gói tin broadcast với PN rất lớn đến victim, do đó victim sẽ không giải mã những gói tin nó nhận được từ AP đó.


  • Cách thức khai thác GTK

Sử dụng 2 phần mềm:

- Wpa_supplicant (0.7.0).

- Madwifi(0.9.4) đã được thay đổi để tạo các gói tin broadcast giả để nó có thể gửi các gói tin này như 1 AP.

Nội dung gói tin broadcast thông thường từ 1 client đến AP và từ AP đến các client khác:


Bằng việc thay đổi 1 chút trong phần mềm madwifi ta sẽ đổi chỗ 3 trường địa chỉ trong gói tin từ client gửi đi để nó sẽ trở thành gói tin được gửi từ AP:


  • Cách khắc phục:

Đây là lỗi của giao thức nên muốn sửa lỗi này thì cần phải chờ đợi một phiên bản giao thức mới hơn.

Người dùng cũng có thể sử dụng các phần mềm phát hiện việc giả MAC trên máy tính cá nhân của mình như:


Tuy nhiên cách này có hạn chế là bị giới hạn về hệ điều hành, phần cứng, không thích hợp với các hệ thống lớn.

Một cách an toàn hơn là sử dụng bảo mật ở lớp cao hơn như dùng Certificate, Ipsec ..