Friday, 16 March 2012

Tấn công Man In The Middle - Phần 2

Phần 1: http://www.familug.com/2012/03/gioi-thieu-ve-cach-thuc-tan-cong-man-in.html

Phần trước tớ đã giới thiệu sơ qua về kiểu tấn công Man In The Middle (MITM).
Phần này, tớ sẽ mô tả cụ thể hơn (loại tấn công giả mạo ARP) để thấy hiệu-suất-cao của kiểu tấn công này mà tớ đã nói.

Thông thường kiến trúc trong mạng LAN được mô tả như thế này:


Máy của victim và attacker cùng cắm vào 1 switch, vậy làm thế nào để attacker có thể nằm vùng tại cầu nối giữa victim - server để capture được luồng dữ liệu trao đổi? Trong ví dụ mô phỏng ở phần trước của tớ (http://www.familug.com/2012/03/gioi-thieu-ve-cach-thuc-tan-cong-man-in.html) mới chỉ thực hiện trên local nên độ khái quát không cao, vì Wireshark chỉ capture các gói tin đi qua cổng mạng của máy mình. Việc giả mạo ARP sẽ giúp attacker sau khi kết nối được vào mạng LAN của victim có thể trở thành a-man-in-the-middle và sniff các gói tin.



ARP (Ethernet Address Resolution) - là giao thức phân giải địa chỉ. Cụ thể hơn, ARP làm việc ở tầng 2 (Data Link Layer) và tầng 3 (Network Link Layer) trong mô hình OSI. Tầng 2 giao tiếp với nhau bằng địa chỉ MAC và Tầng 3 thì tìm đến nhau bằng địa chỉ IP. Do bất đồng "ngôn ngữ" ở 2 tầng như vậy, ARP làm nhiệm vụ phiên dịch giúp kết nối chúng với nhau. Và qua một người thứ 3, câu chuyện sẽ rất có thể bị tam sao thất bản.

Do ARP làm việc bằng cách sử dụng 2 gói request và reply để kết nối địa chỉ MAC ở Tầng 2 với IP ở Tầng 3. Điểm yếu của ARP là ở chỗ, chỉ cần nó nhận được gói reply mà không cần là gói reply mà gói request cần hồi đáp nó cũng cho phép thực hiện kết nối. Dựa vào đây, Attacker có thể lợi dụng để can thiệp vào hệ thống mạng.

Sau khi kết nối được vào hệ thống nhờ giả ARP, Attacker sẽ tiến hành sniff các gói tin
để phân tích (analysis) và triển khai tấn công.



Ví dụ dưới đây tớ mô tả việc can thiệp vào mạng LAN và đánh cắp thông tin đăng nhập của user, lần này làm thật luôn :D.

Các tools tớ dùng: Ettercap, Wireshark.
Trong demo máy tớ có IP: 192.168.0.105
Victim: 192.168.0.100
Cùng kết nối vào switch wifi, gateway 192.168.0.1



Như trong demo video, password và username đều là clear text. Attacker rất dễ bắt được. Đấy là trang kia do tớ code thôi :D, đừng vào phá nhé, còn nếu truy cập Facebook, Google hay vào các ngân hàng thì câu chuyện lại khác. Họ có những cơ chế bảo mật cao cấp hơn. Nhưng vỏ quýt dày có móng tay nhọn. Hãy xem sức mạnh của MITM nhé.
Lần này, tớ sẽ cướp Cookies và hack vào tài khoản Facebook của người cùng mạng LAN.



Như trong video, những gì tớ thu được đều được mã hóa, không còn password và username để đăng nhập nữa, nhưng tớ lợi dụng cookies để làm việc đó.
Những thao tác của user trên web server được lưu lại bằng cookies, các lần sau user không cần thao tác nữa trình duyệt tự mang cookies trình ra khi kết nối và bảo với web server rằng "Em đây mà, mình gặp nhau rồi mà anh", server bảo "À" vậy là truy cập được cấp phép. Cookies là con dao 2 lưỡi, tiện lợi đi kèm bảo mật kém hơn.

Qua các demo video tớ làm, có thể thấy mức độ nguy hiểm của tấn công MITM, đơn giản mà hiệu quả, attacker khó bị phát hiện. Nguy hiểm hơn khi user sử dụng các dịch vụ internet để thực hiện các giao dịch trực tuyến như Internet Banking, trao đổi các thông tin nhạy cảm. Vậy làm thế nào để phòng chống cách tấn công này?

Theo tớ biết thì tấn công MITM khó nhận biết, khả năng phòng thủ ở mức thấp và bị động. Trước hết, môi trường thực thi cách tấn công này là mạng LAN, do vậy trên hết là bảo mật mạng LAN của mình. Kiểm soát các User trong mạng LAN, đặt password cho Wifi để không cho máy lạ kết nối. Đấy là những cách đơn giản, ngoài ra còn có mã hóa ARP và kiểm soát lưu lượng ARP nhưng những cách đó vẫn không hoàn toàn bảo vệ hệ thống của mình triệt để.