Tải bản đầy đủ (.pdf) (7 trang)

Bảo mật mạng không dây ở mức gói dữ liệu potx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (270.68 KB, 7 trang )

Bảo mật mạng không dây ở mức gói dữ liệu

Trong bài này chúng tôi sẽ giới thiệu cho các bạn một số kỹ thuật
hữu dụng cho việc khắc phục sự cố các vấn đề bảo mật mạng không
dây ở mức gói dữ liệu.
Vấn đề rắc rối về mạng không dây là bạn không thể thấy những gì mình
đang xử lý. Trong một mạng không dây, việc thiết lập kết nối không đơn
giản như trong mạng chạy dây (chỉ cần cắm cáp), việc bảo mật vật lý
không đơn giản chỉ là việc làm cản trở hay ngăn chặn hoàn toàn việc truy
cập mạng của các cá nhân không được cấp phép, và việc khắc phục sự cố
thậm chí là những vấn đề đơn giản đôi khi cũng có những khó khăn riêng
đi kèm với các điểm truy cập. Điều đó nói nên rằng, việc bảo mật các
mạng không dây sẽ tiếp tục là một thách thức cho tương lai thấy trước.
Trong bài này, chúng tôi sẽ giới thiệu cho các bạn một số kỹ thuật hữu
dụng trong việc khắc phục sự cố các vấn đề không dây ở mức gói dữ liệu.
Bài viết sẽ được bắt đầu bằng cách giới thiệu các phương pháp thu thập
đúng các gói dữ liệu trong mạng không dây. Sau khi thu thập, chúng ta sẽ
cùng thảo luận về các kỹ thuật phân tích, gồm có phân tích quá trình nhận
thực WEP/WPA, lọc lưu lượng mã hóa và việc tìm kiếm các điểm truy
cập giả mạo.
Việc capture các gói dữ liệu không dây
Mức gói dữ liệu trong các mạng không dây và mạng chạy dây có một số
điểm tương đồng. Các mạng không dây vẫn sử dụng TCP/IP cho việc
truyền thông dữ liệu và tuân thủ tất cả các luật lệ kết nối của các host
chạy dây. Sự khác nhau giữa hai nền tảng kết nối này được tìm thấy ở các
mức thấp hơn trong mô hình tham chiếu OSI. Các mạng không dây thực
hiện truyền thông bằng cách gửi dữ liệu qua không trung, khác hoàn toàn
với việc gửi dữ liệu theo dây dẫn tín hiệu. Không gian mà dữ liệu không
dây được truyền thông trên đó là một môi trường chia sẻ, chính vì lý do
đó cần phải có sự xem xét đặc biệt ở các lớp liên kết dữ liệu và lớp vật lý
để bảo đảm rằng không có dữ liệu nào bị xung đột và dữ liệu được phân


phối một cách tin cậy.
Điều này tương đương với việc khắc phục sự cố cho một mạng không dây
vì chúng ta vẫn cần phải có một số cố gắng nhất định để có thể capture
lớp hai trong các gói dữ liệu 802.11 cần thiết cho việc khắc phục sự cố
một cách thỏa đáng. Để thực hiện điều này, bạn phải có khả năng đặt card
giao diện mạng không dây (WNIC) của mình vào chế độ đặc biệt có tên
gọi Monitor Mode. Monitor mode là một thiết lập driver đặc biệt, thiết
lập hạn chế khả năng của các WNIC trong việc gửi dữ liệu và chỉ cho
phép lắng nghe một cách thụ động trên kênh được chọn.
Trong các hệ điều hành dựa Linux, bạn có thể khá dễ dàng thay đổi
WNIC sang chế độ monitor mode, tuy nhiên hầu hết các driver Windows
lại không cho phép chức năng này. Kết quả là chúng ta phải cần dùng đến
một mẩu phần cứng đặc biệt để giúp nó làm việc. Mẩu phần cứng này
mang tên AirPcap và được sản xuất bởi CACE Technologies. Thiết bị
AirPcap về cơ bản là một WNIC được thiết kế để sử dụng trong chế độ
kiểm tra với Windows và tiện ích capture gói dữ liệu Wireshark. Sử dụng
thiết bị này, bạn có thể capture lớp hai trong gói dữ liệu 802.11 từ kênh
không dây đang lắng nghe.

Hình 1: Màn hình cấu hình AirPcap cho phép bạn cấu hình kênh đang
lắng nghe
Cấu trúc gói dữ liệu 802.11
Sự khác biệt chính giữa các gói dữ liệu trong mạng không dây và chạy
dây là phần header. Đây là một header hai lớp có chứa các thông tin mở
rộng về gói và môi trường nó được truyền tải. Có ba kiểu gói ở đây: gói
dữ liệu, gói quản lý, gói điều khiển.
 Gói quản lý – Các gói này được sử dụng để thiết lập kết nối giữa
các host tại lớp hai. Một số kiểu quan trọng trong các gói dữ liệu
quản lý này là: nhận thực, liên kết và báo hiệu.
 Gói điều khiển – Các gói điều khiển cho phép phân phối các gói

quản lý và dữ liệu và có liên quan đến việc quản lý tắc nghẽn. Các
kiểu của gói điều khiển gồm có: Request-to-Send và Clear-to-Send.
 Gói dữ liệu – Các gói này gồm có dữ liệu thực và là kiểu gói được
chuyển tiếp từ mạng không dây sang mạng chạy dây.
Trong bài này chúng tôi sẽ không giới thiệu về các kiểu con trong các gói
dữ liệu 802.11 này mà chỉ tập trung vào một số lĩnh vực có liên quan đến
vấn đề bảo mật.
Tìm các điểm truy cập giả mạo
Bảo mật vật lý cho các tài sản CNTT là miền bảo mật được xem xét
thường xuyên nhất. Một trong những sơ xuất nói chung trong lĩnh vực
này là sự bổ sung thêm các thiết bị không được cấp quyền trong mạng.
Trong thế giới các mạng chạy dây, một router không được cấp quyền có
thể gây ra từ chối dịch vụ. Mặc dù vậy một điểm truy cập không dây
WAP giả mạo bao giờ cũng là mối quan tâm lớn hơn vì nó có thể cho
phép ai đó từ bên ngoài có thể tăng truy cập vào mạng cứ như thể họ đã
đột nhật vào và cắp laptop của họ với giắc mạng trên tường.
May mắn cho chúng ta ở đây là việc phát hiện một WAP có thể được
thực hiện khá dễ dàng. Để thực hiện được điều này, bạn phải bắt đầu bằng
cách capture lưu lượng không dây từ một số vùng bên trong phạm vi
quảng bá của các mạng. Khi thực hiện xong điều này, sẽ có một vài bộ
lọc khác nhau được sử dụng để phát hiện liệu có tồn tại các điểm truy cập
giả mạo hay không và liệu các máy khách có dính líu đến chúng hay
không.
Một trong những giải pháp đơn giản nhất để thực hiện điều đó là biết địa
chỉ MAC của WAP hợp pháp. Bằng cách sử dụng thông tin này, bạn có
thể thực hiện lọc !wlan.bssid == 00:11:88:6b:68:30, thay thế WAP
MAC của bạn ở vị trí địa chỉ MAC mà chúng tôi cung cấp. Thao tác này
sẽ hiển thị cho bạn tất cả lưu lượng không dây đang luân chuyển vào ra
khỏi WAP. Nếu có nhiều WAP trong vùng, bạn có thể kết hợp các bộ lọc
này bằng toán tử OR (||). Trong thường hợp đó, bạn có thể sử dụng

!wlan.bssid == 00:11:88:6b:68:30 || !wlan.bssid == 00:11:ff:a1:a4:22
để lọc ra hai điểm truy cập hợp lệ đã biết.
Phương pháp đó có thể giúp bạn phát hiện các điểm truy cập nói chung,
tuy nhiên điều gì sẽ xảy ra nếu bạn muốn đi xa hơn nữa và muốn tìm ra
liệu các máy trạm di động của bạn có đang kết nối với WAP giả mạo hay
không? Có một cách để thực hiện điều này là lọc các yêu cầu liên kết. Để
thực hiện điều này, bạn có thể kết hợp một trong các bộ lọc trên với các
bộ lọc wlac.fc.type_subtype eq 0 và wlac.fc.type_subtype eq 2. Bộ lọc
đầu tiên sẽ hiển thị tất cả các yêu cầu kết nối còn bộ lọc thứ hai sẽ hiển thị
các yêu cầu kết nối lại. Khi cần thiết, bạn có thể kết hợp một trong các bộ
lọc này với các bộ lọc trên bằng cách sử dụng toán tử AND (&&).
Cuối cùng, bạn có thể tiến hành một bước xa hơn nữa bằng cách xác định
xem liệu có dữ liệu thực nào đang được truyền tải giữa các máy khách di
động và WAP giả mạo hay không. Có thể thực hiện bằng cách lọc tất cả
gói dữ liệu đang được truyền thông với điểm truy cập không hợp pháp
bằng cách sử dụng bộ lọc wlan.fc.type eq 2 kết hợp với các bộ lọc trước,
ngoại trừ các WAP hợp lệ đã biết.
Lọc lưu lượng không mã hóa
Chỉ có một hy vọng trong việc chống không cho các gói dữ liệu bị nghe
trộm khi chúng được phát trong không trung là sử dụng mã hóa. Việc mã
hóa này được thực hiện qua thực thi WPA hoặc WPA2 trong các hệ thống
hiện đại. Điều đó nói lên rằng, chúng ta cần phải thẩm định sao cho các
mạng không dây của mình một cách thường xuyên hơn để bảo đảm rằng
không có máy khách không dây nào truyền tải dữ liệu không được mã
hóa.
Việc tìm dữ liệu không được mã hóa trong mạng không dây cần phải sử
dụng một bộ lọc khác. Trong trường hợp này, chúng ta có thể tìm tất cả
các dói dữ liệu chưa mã hóa bằng cách sử dụng bộ lọc wlan.fc.protected
== 0. Lúc này nếu sử dụng ngay, bạn sẽ thấy trả về một số kết quả
không như mong đợi. Các khung quản lý và điều khiển 802.11 không

được mã hóa mà chỉ thực hiện các chức năng quản trị cho WAP và máy
khách không dây. Với vấn đề này, chúng ta phải mở rộng bộ lọc bằng
cách gắn thêm vào wlan.fc.type eq 2. Điều này sẽ bảo đảm rằng bộ lọc
chỉ hiển thị các gói dữ liệu không được mã hóa. Bộ lọc cuối cùng sẽ là
wlan.fc.protected == 0 && wlan.fc.type eq 2.
Phân tích kỹ thuật nhận thực WEP và WPA
Phương pháp trước kia được sử dụng cho việc bảo mật dữ liệu khi phát
trong các mạng không dây là Wired Equivalent Privacy (WEP). WEP đã
khá thành công trong những năm trước dây cho tới khi người ta phát hiện
ra một số điểm yếu trong vấn đề quản lý khóa mã hóa của nó. Kết quả là,
các chuẩn mới đã được đưa ra, gồm có Wi-Fi Protected Access (WPA) và
WPA2. Mặc dù WPA và WPA2 vẫn chưa thực sự an toàn tuyệt đối
nhưng nó được cho là an toàn hơn WEP.
Khá hữu dụng cho việc có thể phân biệt nhận thực WEP và WPA trên
mạng chạy dây. Nếu có thể thực hiện điều này, bạn có thể bỏ kiểu nhận
thực WEP trên mạng của mình và chuyển sang WPA. Cùng với đó, bạn
cần có khả năng phân tích các cố gắng nhận thực thất bại khi chúng xảy
ra.
Nhận thực WEP
Nhận thực WEP làm việc bằng cách sử dụng cơ chế yêu cầu và đáp trả.
Khi máy khách cố gắng kết nối với WAP, WAP sẽ phát văn bản yêu cầu.
Yêu cầu này được phúc đáp và sau đó máy khách sẽ sử dụng văn bản này,
giải mã nó bằng khóa WEP được cung cấp bởi máy khách và phát chuỗi
tổng hợp quay trở lại WAP.
Khi WAP thẩm định được rằng văn bản đáp trả là những gì cần thiết, nó
sẽ phát một thông báo trở lại máy khách để thông báo rằng quá trình nhận
thực đã thành công. Bộ lọc để tìm các đáp trả nhận thực thành công là
wlan_mgt.fixed.status_code == 0x0000.

Hình 2: WAP cảnh báo cho máy khách rằng quá trình nhận thực đã thành

công
Trong trường hợp nhận thực không thành công, WAP sẽ phát đi một
thông báo tuyên bố rằng nói rằng nó đã thất bại trong việc nhận thực.

Hình 3: WAP cảnh báo cho máy khách rằng quá trình nhận thực đã thất
bại
Bộ lọc để tìm ra gói thông báo thất bại là wlan_mgt.fixed.status_code
== 0x000e.
Nhận thực WPA
Nhận thực WPA cũng sử dụng cơ chế yêu cầu và đáp trả, tuy nhiên nó
làm việc theo một cách khác. Ở mức gói dữ liệu, nhận thực WPA sử dụng
EAPOL để thực hiện việc yêu cầu và đáp trả của nó. Bạn có thể tìm thấy
các gói dữ liệu này bằng cách sử dụng bộ lọc đơn giản EAPOL. Trong
quá trình nhận thực thành công, bạn sẽ thấy bốn gói EAPOL tương
ứng với hai yêu cầu và hai đáp trả. Mỗi một yêu cầu và đáp trả có thể
được ghép cặp với nhau bằng cách sử dụng giá trị Replay Counter bên
trong gói.

Hình 4: Trường Replay Counter được sử dụng để sửa một số vấn đề và
các đáp trả
Trong tình huống mà ở đó quá trình nhận thực WPA thất bại, bạn sẽ sử
dụng thêm một số bộ lọc EAPOL ở nơi yêu cầu và đáp trả được cố gắng
nhiều lần. Khi quá trình này thực sự gặp thất bại, bạn sẽ thấy một gói giải
nhận thực.

Hình 5: Sau khi bắt tay WPA thất bại, máy khách sẽ thực hiện nhận thực
lại
Có hai cách để lọc nhận thực WPA thất bại. Cách đầu tiên là sử dụng bộ
lọc EAPOL và đếm số gói được truyền tải giữa WAP và máy khách
không dây. Cách khác là lọc các gói giải nhận thực bằng bộ lọc

wlan.fc.type_subtype == 0x0c. Bộ lọc này sẽ trả về một số kết quả bổ
sung không liên quan đến quá trình nhận thực thất bại vì vậy để có thể
thẩm định rằng các gói liên quan với vấn đề này, bạn cần phải tìm hiểu
sâu hơn nữa và tạo một bộ lọc khác chứa tất cả các gói dữ liệu giữa WAP
và máy khách không dây được nói đến.
Kết luận
Trong bài này, chúng tôi đã giới thiệu được cho các bạn một số chi tiết cơ
bản về việc capture gói dữ liệu mạng và một số ứng dụng quan trọng cho
việc phân tích gói trên quan điểm bảo mật không dây. Kết nối không dây,
bảo mật không dây, phân tích gói dữ liệu, tất cả đều là các chủ đề rộng.
Bài viết này không thể trình bày cho các bạn một cách chi tiết mà chỉ góp
phần khơi dậy các nghiên cứu sâu hơn về các lĩnh vực này. Nếu đặc biệt
quan tâm về việc phân tích gói dữ liệu, bạn hãy download Wireshark hay
một tiện ích capture dữ liệu khác và bắt đầu việc phân tích gói của mình.

×