Man-in-the-middle – ARP Cache Poisoning

0
750

Kỹ thuật tấn công Man-in-the-middle (MITM) đã không còn là điều quá xa lạ đối với người làm công tác bảo mật. ARP Cache Poisoning là một hình thức triển khai tiêu biểu của kiểu tấn công này.

MITM là một kiểu tấn công mạng rất được ưa chuộng bởi nhiều kẻ tấn công nhằm vào các mục tiêu đa dạng, từ cá nhân đơn lẻ cho đến một tập đoàn cỡ lớn. Thực chất của kiểu tấn công này là quá trình nghe lén bằng cách thiết lập một đường truyền trái phép giữa máy nạn nhân và máy của hacker và sau đó, hắn sẽ âm thầm “lắng nghe” toàn bộ thông tin truyền đi cũng như nhận về. Cái thú vị của kỹ thuật này đó là, nạn nhân A hoàn toàn tin tưởng rằng những gì truyền đi từ máy tính của mình sẽ đến thẳng máy của nạn nhân B, chứ không hề biết rằng đã có kẻ thứ ba ngồi giữa đón đọc tất cả gói tin được truyền đi. Và kết quả thu được của kiểu tấn công này, đó là kẻ tấn công không chỉ bắt được những dữ liệu nhạy cảm, mà thậm chí còn có thể ra tay “tiêm” (inject) hoặc sửa đổi dữ liệu để tiến tới tiếm quyền điều khiển cả máy của nạn nhân.

Có 4 kiểu thực hiện MITM mà chúng ta sẽ lần lượt được tìm hiểu. Trước tiên là kiểu đơn giản và cổ điển nhất, nhưng cũng được ưa chuộng nhất vì tính đơn giản của nó, đó là ARP  Cache Poisoning, tiếp theo là DNS Spoofing, Session Hijacking và SSL Hijacking.

ARP Cache Poisoning

Như đã đề cập ở trên, đây là một trong nhiều cách thực hiện kiểu tấn công MITM, và thuộc hàng cổ điển. Đôi khi nó còn được biết đến với cái tên ARP Poison Routing. Hình thức này cho phép kẻ xấu nghe lén được toàn bộ lưu lượng mạng của nạn nhân nằm cùng một subnet với hắn. Nếu như chưa hiểu khái niệm “cùng môt subnet là gì”, bạn có thể tham khảo bài viết sau: http://sinhvientot.net/chuong-6-mo-hinh-tcpip-va-mang-internet/

Giao thức ARP tiêu chuẩn

Giao thức ARP vốn được thiết kế ra nhằm mục đích tạo tính thuận tiện để trao đổi địa chỉ giữa lớp thứ 2 và lớp thứ 3 của mô hình OSI. Lớp thứ hai, hay còn gọi với cái tên khác là tầng data-link, sử dụng địa chỉ MAC để các thiết bị phần cứng có thể giao tiếp với nhau một cách trực tiếp trong một diện nhỏ. Còn với lớp thứ 3, tên khác là tầng network, thì lại sử dụng địa chỉ IP để tạo ra một mạng với diện rộng hơn để có thể giao tiếp trên toàn cầu.

arp poisoning

Lớp data-link xử lý một cách trực tiếp với các thiết bị được kết nối với nhau, trong khi đó lớp mạng lại xử lý các thiết bị được kết nối trực tiếp VÀ không trực tiếp. Mỗi lớp có cơ chế phân định địa chỉ riêng, và chúng bắt buộc làm việc với nhau để tạo nên một mạng truyền thông diễn ra xuyên suốt. Chính vì lý do đó, ARP được tạo với RFC 826, “một giao thức phân định địa chỉ Ethernet” (Ethernet Address Resolution Protocol).

Thực ra cốt yếu ta cần hiểu, đó là tổ chức của giao thức ARP vốn xoay quanh hai gói tin chính, đó là ARP request và ARP reply. Mục đích chính của gói tin request và reply là để định vị được địa chỉ MAC của thiết bị phần cứng tương ứng với địa chỉ IP mà nó được gán cho. Từ đó, các luồng dữ liệu mới có thể được truyền đi tới đích trong một mạng mà không bị thất lạc hay nhầm lẫn máy tính khác không yêu cầu gói tin đó.

Để hiểu được tính chất request và reply, ta hình dung đơn giản như sau. Gói request sẽ được gửi đi cho từng thiết bị trong mạng và phát đi thông điệp “Xin chào, địa chỉ IP của tôi là X.X.X.X, và địa chỉ MAC của tôi là X:X:X:X:X:X. Tôi cần gửi một thứ đến một máy có địa chỉ IP là Y.Y.Y.Y, nhưng tiếc thay tôi không có địa chỉ MAC của anh ấy. Vậy ai có địa chỉ IP như tôi vừa nói thì vui lòng phản hồi kèm theo địa chỉ MAC của anh để tôi trao gói tin này.”

Lúc này, máy cần phản hồi sẽ đưa ra gói ARP reply với thông điệp “Anh bạn giao hàng ơi, tôi là người anh cần tìm đây. Tôi có địa chỉ IP là Y.Y.Y.Y và MAC của tôi là Y:Y:Y:Y:Y:Y nè”. Khi quá trình truyền giao gói tin hoàn tất, thiết bị phát sẽ cập nhật bảng ARP cache của nó và hai thiết bị này có thể truyền thông với nhau.

Đầu độc Cache

Việc đầu độc gói tin ARP này chính là đánh vào yếu tố bất lợi và không bảo mật của giao thức ARP ban đầu. Rõ ràng qua đoạn trên bạn cũng thấy được tính bất cập của gói ARP request và reply. Bất kỳ một máy tính nào đó không phải mang địa chỉ Y.Y.Y.Y nhưng hắn cũng có thể lấn quyền máy thật và hét lên rằng mình mang IP đó, và sau đó đem địa chỉ MAC của mình ra cung cấp. Bên request không có cơ chế kiểm soát chặt chẽ người đứng ra nhận, mà chỉ căn cứ vào mỗi địa chỉ IP rồi chấp nhận giao hàng.

arp poisoning

Đặc biệt, giao thức ARP không giống như DNS chỉ có thể được cấu hình để chỉ chấp nhận các nâng cấp động (dynamic updates), các thiết bị sử dụng giao ARP sẽ chấp nhận cập nhật bất cứ lúc nào. Điều này có nghĩa rằng bất cứ thiết bị nào có thể gửi gói ARP reply đến một máy tính khác và máy tính này sẽ cập nhật vào bảng ARP cache của nó ngay giá trị mới này. Việc gửi một gói ARP reply khi không có request nào được tạo ra được gọi là việc gửi ARP “cho không”. Khi các ARP reply cho không này đến được các máy tính đã gửi request, máy tính request này sẽ nghĩ rằng đó chính là người mình đang tìm kiếm để truyền tin, tuy nhiên thực chất họ lại đang bắt đầu thiết lập kết nối với một kẻ xấu giả danh để thực hiện cho việc tấn công MITM.

Thực hiện đầu độc

Việc thực hiện đầu độc này tỏ ra cực kỳ hiệu quả với công cụ Cain & Abel.

Phòng chống bị đầu độc

Ngày nay với sự phát triển của các phần mềm bảo mật cũng như sự ra đời của giao thức HTTPS, ARP Cache Poisoning đã không còn hiệu quả như lúc trước. Do đó, trừ khi mạng LAN của bạn đã bị dính mã độc hoặc có ai đó cố tình cài cắm thiết bị lạ vào, còn thì kiểu tấn công này đã bộc lộ nhiều hạn chế. Đồng thời, do tính chất phổ biến của kiểu thực hiện này, nên thường các nhà quản trị mạng đã thiết lập trước đó chặn các phần mềm có tính chất hoạt động giống như Cain & Abel, không cho phép chúng được cài đặt hoặc hoạt động trên bất kỳ máy nào trong LAN.

Xem thêm: Man-in-the-middle – DNS Spoofing

MINH THƯƠNG

votinhthuong9@gmail.com

This site uses Akismet to reduce spam. Learn how your comment data is processed.