Nền tảng Bảo mật mạng máy tính (2)

nen tang bao mat mang may tinh bai 2

CHƯƠNG I (tt): TỔNG QUAN VỀ BẢO MẬT MẠNG MÁY TÍNH VÀ CÁC KỸ THUẬT TẤN CÔNG MẠNG

Các kỹ thuật tấn công mạng TCP/IP

Alice truyền thông điệp sang cho Bob. Darth là kẻ tấn công.

Tấn công thụ động (passive attack): Loại tấn công này cố gắng nhận thông tin khi thông tin đang được truyền từ người gửi sang người nhận. Nó không làm ảnh hưởng đến tài nguyên của hệ thống.

-Read of message contents (đọc nội dung của thông điệp): Darth đọc nội dung thông điệp mà Alice gửi cho Bob.

-Traffic analysis (phân tích lưu lượng): Darth quan sát các mẫu thông điệp từ Alice gửi sang cho Bob.

Loại tấn công thụ động này khó phát hiện vì người gửi và người nhận không hề biết rằng có một thành phần thứ 3 đang quan sát traffic của họ, và nó không làm thay đổi nội dung của message. Vì thế nên tìm cách ngăn chặn (mã hoá trước khi truyền) hơn là phát hiện chúng.

Tấn công chủ động (active attack): Loại này cố gắng tạo ra một vài thay đổi của dòng dữ liệu hoặc làm ảnh hướng đến hoạt động của tài nguyên hệ thống (các server dịch vụ).

-Masquerade (giả mạo): Thông điệp được gửi từ Darth gửi tới Bob. Bob nhận thông điệp như cách mà Alice gửi đến anh ta.

-Replay (“lặp lại”/”phát lại”): Darth bắt giữ (capture) thông điệp Alice gửi đến Bob, sau đó Darth phát lại thông điệp – có thể đã bị sửa đổi – đến Bob.

-Modification of message (thay đổi thông điệp): Darth thay đổi thông điệp gửi từ Alice sang Bob.

-Denail of service (DoS: Từ chối dịch vụ): Darth “phá vỡ” dịch vụ mà Server cung cấp cho người sử dụng trên mạng.

Loại tấn công chủ động này có các đặc tính hầu như đối ngược với loại passive attack. Phát hiện để ngăn chặn nó không phải là quá khó để thực hiện.

Trong thực tế có nhiều kỹ thuật tấn công cổ điển như: Chia sẻ mở; Mật khẩu yếu; Thiếu sót trong lập trình; Kỹ năng xã hội; Tràn Bộ đệm; Từ chối dịch vụ;… Trong phần này chúng tôi chỉ trình bày một kỹ thuật mà đến nay hacker vẫn sử dụng để tấn công vào các mạng TCP/IP.

Loại tấn công từ chối dịch vụ đơn giản chỉ là những hành động nhằm ngăn chặn khả năng truy cập vào một hệ thống hoặc một ứng dụng của một người sử dụng hợp pháp (bị chính hệ thống hoặc ứng dụng từ chối). Tấn công DoS có nhiều dạng khác nhau và có thể được phát động từ một hoặc nhiều hệ thống. Khó có thể ngăn chặn hoặc khống chế hoàn toàn các tấn công DoS nếu như không xác định được nguồn của nó.

Phần lớn các cuộc tấn công DoS thường có đặc điểm là, kẻ tấn công không cố gắng truy cập đến hệ thống đích từ các địa chỉ giả mạo, nó thường điều chỉnh địa chỉ nguồn của gói tin để che dấu vị trí thực của nó (giao thức IP có một sai sót trong lược đồ đánh địa chỉ của nó là không kiểm tra địa chỉ nguồn khi một gói tin được tạo ra).

Loại tấn công DoS đầu tiên mà chúng ta đề cập là loại tấn công chỉ thực hiện từ một hệ thống, tấn công vào một hệ thống khác và gây hỏng một thứ gì đó trên hệ thống đó.

SYN flood DoS attack
Hình: SYN flood DoS attack

Kiểu tấn công DoS được áp dụng phổ biến nhất hiện nay là SYN flood (được gọi là tràn SYN). Trong kiểu tấn công DoS này, hệ thống nguồn (hệ thống khởi tạo tấn công) sẽ gửi một số lượng lớn các gói tin TCP “SYN” đến hệ thống đích (hệ thống bị tấn công) – các gói tin SYN được sử dụng để khởi tạo một kết nối TCP. Khi phía đích nhận được gói “SYN”, nó sẽ trả lời bằng một gói tin TCP “SYN ACK”, gói tin này cho biết đã chấp nhận tín hiệu SYN và gửi lại thông tin thiết lập kết nối trở lại cho hệ thống gửi tín hiệu SYN. Hệ thống đích cũng lưu thông tin kết nối vào “bộ đệm kết nối” để chờ giải quyết.

Đối với một kết nối TCP thông thường, hệ thống nguồn sẽ gửi trả gói tin TCP “ACK” sau khi nhận được gói tin “SYN ACK”. Nhưng đối với tấn công DoS loại này, hệ thống nguồn sẽ bỏ qua gói tin “SYN ACK” mà nó nhận được và tiếp tục gửi các gói tin “SYN” khác đến hệ thống đích. Do đó “bộ đệm kết nối” của đích sẽ bị lấp đầy (bị tràn) và hệ thống đích không thể nào giải quyết cho các yêu cầu từ các kết nối khác, buộc nó phải từ chối các kết nối này. Đây chính là lý do mà ta gọi nó là tấn công từ chối dịch vụ.

Rõ ràng nếu có hàng loạt gói tin “SYN” được gửi đến từ một địa chỉ IP xác định được, thì có thể dễ dàng xác định được hệ thống nguồn và dừng được cuộc tấn công. Nhưng nếu địa chỉ nguồn là một địa chỉ không thể định tuyến đuợc, thì sẽ khó khăn hơn rất nhiều – địa chỉ nguồn là địa chỉ bị che dấu.

Đã có một số giải pháp được đề xuất để bảo vệ các hệ thống trước các cuộc tấn công “SYN”. Cách đơn giản nhất là đặt một “bộ định thời (timer)” cho tất cả các kết nối chờ giải quyết, bộ định thời sẽ đi đến quyết định kết thúc các kết nối và giải phóng “bộ đệm kết nối” sau một khoảng thời gian nhất định nào đó. Một số thiết bị mạng có khả năng nhận diện được các “cơn lũ” tín hiệu SYN và vô hiệu hóa chúng. Nếu như cuộc tấn công được tổ chức từ nhiều địa chỉ nguồn khác nhau thì khó có thể phán đoán được cuộc tấn công.

Các cuộc tấn công Dos phân tán (DDoS) là các cuộc tấn công DoS được thực hiện từ nhiều hệ thống khác nhau. Các cuộc tấn công DDoS thường được điều khiển từ một hệ thống chính duy nhất bởi một hacker duy nhất. Các cuộc tấn công này được thực hiện một cách khá đơn giản: hacker gửi một gói tin “Ping” đến một địa chỉ quảng bá của một mạng lớn đồng thời đổi địa chỉ nguồn để hướng tất cả các gói tin trả lời vào mục tiêu cần đánh phá. Cách tấn công như vậy còn được gọi là Smurf. Nếu như mạng trung gian đó có nhiều host thì số lượng các gói tin trả lời hướng đến hệ thống đích sẽ rất lớn và có thể làm cho hệ thống đích bị vô hiệu hóa do quá tải.

Tấn công DDoS càng ngày càng tinh vi hơn. Các công cụ dùng để tấn công như là Trinoo, Tribal Flood Network, Mstream và Stachedraht cho phép hacker có thể phối hợp nhiều cuộc tấn công DoS từ các hệ thống khác nhau đến một hệ thống đích.

sumrt attack
Hình: Minh họa tấn công smurf

Các bộ nghe lén (sniffer) được sử dụng bởi hacker để thu thập mật khẩu và thông tin hệ thống liên quan của một host hoặc một network nào đó. Thường việc này chỉ thành công khi có một host của mạng bên trong “hợp tác” với hacker.

Sniffer sẽ thu thập mật khẩu và các thông tin khác bằng cách đặt một card giao tiếp mạng (network interface card – NIC) vào chế độ ngẫu nhiên (promiseuous mode). Nghĩa là NIC sẽ thu thập tất cả các gói tin trên mạng chứ không chỉ là các gói tin có địa chỉ gửi đến NIC (địa chỉ của hệ thống cài đặt sniffer). Các sniffer thường làm việc tốt với các mạng chuyển mạch phục vụ chia sẻ thông tin.

Để nghe lén lưu lượng trong một môi trường chuyển mạch, hacker cần phải thực hiện một trong 2 việc sau đây: Điều khiển switch sao cho thông tin qua switch bị hướng đến các sniffer. Và buộc switch phải gửi tất cả các gói tin đi đến tất cả các cổng. Nếu như một trong hai điều này được đáp ứng, sniffer sẽ “nghe” được lưu lượng mà nó quan tâm, và cung cấp cho hacker những thông tin mà hacker muốn.

Thiết bị chuyển mạch (Switch) quy định đường đi cho thông tin đến các cổng dựa trên địa chỉ MAC (Media Access Control) của khung tin (frame) Ethernet. Mỗi NIC có một địa chỉ MAC duy nhất, và Switch hiểu được địa chỉ đó đại diện cho cổng nào. Do đó, khi một frame được truyền đi với một địa chỉ đích MAC, Switch sẽ gửi frame đó đến cổng mà địa chỉ MAC đó đại diện. Sau đây là một số phương pháp có thể được sử dụng để yêu cầu các thiết bị chuyển mạch gửi lưu lượng đến Sniffer:

Đánh lừa ARP (ARP spoofing): ARP (Adress Resolution Protocol) là giao thức phân giải địa chỉ, giao thức này được dùng để lấy địa chỉ MAC tương ứng với một địa chỉ IP nào đó. Khi một hệ thống (nguồn) muốn giao dịch để trao đổi thông tin với hệ thống khác (đích), trước hết nó phải gửi một thông điệp yêu cầu đến ARP để tìm MAC tương ứng với địa chỉ IP đích. Hệ thống đích sẽ đáp trả địa chỉ MAC, tương ứng với địa chỉ IP, cho yêu cầu ARP đó.Sau đó hệ thống nguồn (bên gửi tin) sẽ sử dụng địa chỉ MAC này để gửi thông tin đến đích.

Nếu như thông điệp yêu cầu tìm MAC bị bắt giữ bởi sniffer, sniffer sẽ đáp trả cho yêu cầu ARP trước hệ thống đích (mà nguồn mong muốn) với địa chỉ MAC của nó (của sniffer). Tất nhiên sau đó hệ thống gửi tin sau đó sẽ gửi trao đổi thông tin vớisniffer (chứ không phải đích mà nó mong muốn).

Để đánh lừa ARP thành công, sniffer phải có khả năng chuyển tiếp thông tin đến địa chỉ mà hệ thống gửi cần gửi đến (đích mà nguồn mong muốn). Nếu không làm được điều này thì sniffer phải thực hiện một cuộc tấn công DoS.

Tạo bản sao địa chỉ MAC: Một cách nữa để thuyết phục Switch gửi thông tin qua nó đến sniffer là: hacker phải thay đổi địa chỉ MAC của sniffer cho giống với địa chỉ MAC của hệ thống khác trong hệ thống mạng con cục bộ (local subnet).

Đánh lừa DNS (DNS spoofing): Một cách tương tự với hai cách trên, để buộc switch phải chuyển tất cả các gói tin đến sniffer là: đánh lừa hệ thống gửi tin để hệ thống đó gửi tin đến sniffer bằng cách sử dụng địa chỉ MAC thật của sniffer. Để thực hiện được điều này, sniffer phải “thuyết phục” hệ thống gửi tin sao cho nó phải gửi ARP đến địa chỉ IP của sniffer. Cách làm này có thể thành công dựa vào việc đánh lừa DNS.

Trong kiểu tấn công đánh lừa DNS, sniffer gửi các tin trả lời cho các yêu cầu DNS của hệ thống gửi tin. Các tin đáp trả này cung cấp địa chỉ IP của sniffer thay vì địa chỉ IP của hệ thống mà hệ thống gửi tin yêu cầu. Và sau đó, hệ thống gửi tin sẽ gửi tất cả tin đến sniffer. Sau đó sniffer sẽ phải chuyển tiếp các gói tin này đến hệ thống đích thực sự. Kiểu tấn công này còn được gọi là theo kiểu “đánh chặn”.

Để tấn công kiểu này thành công, sniffer phải có khả năng nhận biết tất cả các yêu cầu DNS và trả lời cho chúng trước khi máy chủ DNS trả lời. Như vậy sniffer phải nằm trên tuyến mạng giữa hệ thống gửi tin và máy chủ DNS nếu như sniffer không nằm trên mạng con cục bộ của hệ thống gửi tin.

Thay vì đánh lừa ARP, đánh lừa DNS hay là nhân bản địa chỉ MAC, hacker có thể làm cho switch hoạt động như một hub. Biết rằng, mỗi Switch sử dụng một lượng bộ nhớ cho việc lưu giữ các ánh xạ giữa địa chỉ MAC và các cổng vật lý. Bộ nhớ này có dung lượng giới hạn, nên nếu nó bị đầy thì Switch sẽ không “mở” được. Tức là, Switch sẽ dừng lại việc gửi thông tin đến các địa chỉ MAC nào đó tương ứng với các cổng cụ thể nào đó, thay vào đó nó sẽ gửi đến tất cả các cổng.

Lúc này switch hoạt động như một thiết bị chia sẻ đường truyền, tức là nó như một Hub. Nhờ đó mà sniffer có thể thực hiện chức năng của nó. Để khởi phát cuộc tấn công dạng này, hacker phải trực tiếp tác động tới Switch.

Chú ý: Với các cuộc tấn công đánh lừa ARP; Nhân bản địa chỉ MAC; Đánh lừa DNS: Hacker phải kết nối trực tiếp với Switch mà nó tấn công. Điều này có nghĩa là, kiểu tấn công đánh cắp thông tin cầu hacker phải ở trên Switch cục bộ. Đầu tiên hacker thâm nhập vào hệ thống bằng cách phá vỡ một điểm dễ bị tấn công và sau đó cài đặt phần mềm sniffing để thực hiện việc “ngửi” thông tin. Trong trường hợp này nếu hacker là người trong tổ chức cần hack, một nhân viện của tổ chức chẳng hạn, hacker sẽ sử dụng quyền truy cập thực của nó để có thể truy cập đến Switch.

Như đã biết, địa chỉ IP trong các gói tin IP là không được xác thực. Do đó hacker có thể thay đổi địa chỉ nguồn của gói tin và làm cho gói tin có vẻ như được gửi đến từ một địa chỉ nào đó khác. Vấn đề ở đây chính là những gói tin phản hồi (chẳng hạn như gói tin SYN ACK trong một kết nối TCP) sẽ không được gửi về cho hệ thống gửi tin. Do đó việc cố gắng đánh lừa địa chỉ IP để thiếp lập một kết nối TCP sẽ rất khó khăn. Thêm nữa, header của TCP còn chứa một chỉ số được dùng để nhận biết các gói tin. Chuỗi số tuần tự khởi tạo (Initial sequence number – ISN) dành cho mỗi kết nối được chọn (giải mã) một cách ngẫu nhiên.

Chi tiết về tấn công đánh lừa địa chỉ IP (xem hình 1.6): Đầu tiên hacker xác định mục tiêu tấn công. Khi đã xác định được mục tiêu, nó sẽ xác định số INS tiếp theo sẽ được dùng, bằng cách thực hiện một chuỗi các kết nối thực đến mục tiêu và ghi nhận các số ISN được trả về. Tuy nhiên, sẽ có một số bất lợi cho hacker vì các kết nối thực này sẽ làm lộ địa chỉ IP thực của nó.

Một khi ISN tiếp theo đã được xác lập, hacker sẽ gửi gói tin TCP “SYN” đến hệ thống đích với một địa chỉ nguồn IP giả mạo. Hệ thống đích sẽ trả lời bằng gói tin TCP “SYN ACK” đến địa chỉ IP nguồn giả mạo đó. Như vậy hacker sẽ không thấy được gói tin đáp trả. Gói tin TCP “SYN ACK” có chứa số ISN từ hệ thống đích. Để hoàn thành việc thiết lập một kết nối thì hacker phải xác định được số ISN ở gói tin TCP SYN cuối cùng. Nó đoán số ISN dựa trên tính tăng dần của chuỗi số ISN và gửi đi một gói tin TCP ACK giả từ địa chỉ IP giả mạo trong đó có cả số ISN mà nó biết.

gia mao ip
Hình: Mô tả tấn công đánh lừa IP

Sau khi tất cả những việc đó được thực hiện, hacker sẽ ngừng kết nối thực đến hệ thống đích. Lúc này nó có khả năng gửi lệnh và thông tin đến hệ thống đích nhưng hắn ta không thể biết được hệ thống đích đáp trả các lệnh và thông tin đó như thế nào.

0 0 Bình chọn
Đánh giá bài viết
Đăng ký
Nhận thông báo cho
guest
0 Góp ý
Phản hồi nội tuyến
Xem tất cả bình luận