Tải bản đầy đủ (.docx) (86 trang)

Báo cáo đồ án tấn công MITM đánh giá an toàn mạng

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 (1.35 MB, 86 trang )

LỜI MỞ ĐẦU
Hiện nay, trong thời đại công nghiệp 4.0 đang phát triển mạnh mẽ, các công
ty công nghệ đang tìm kiếm và phát triển các thiết bị IoT, cơng nghệ, giao thức mới
nhằm nâng cao đời sống xã hội lên một tầm cao mới. Tuy nhiên, do sự phát triển
nhanh vượt trội của công nghệ thông tin, các cơ chế an tồn bảo mật khơng thể bắt
kịp được tốc độ đó, khiến cho chúng ta dễ bị nhắm đến bởi các cuộc tấn công mạng
khi sử dụng các thiết bị đó. Ảnh hưởng của các cuộc tấn cơng mạng có thể rất lớn,
tùy theo mức độ quan trọng và giá trị tài sản của mục tiêu.
Các cuộc tấn công mạng có thể xảy ra ở bất kỳ đâu, kể cả trong chính mạng
nội bộ ta đang sử dụng. Trong mạng nội bộ LAN, kẻ tấn cơng có thể sử dụng nhiều
phương pháp khác nhau nhằm đánh cắp thông tin cá nhân, thông tin đăng nhập, tài
liệu quan trọng, … của người dùng bị nhắm đến. Một trong những phương pháp tấn
cơng hay được sử dụng, đó là tấn cơng người xen giữa hay cịn gọi là tấn cơng
Man–in–The–Middle.
Để bảo vệ trước các cuộc tấn công Man-in-the-middle, nhiều công cụ kiểm
thử đã được xây dựng để mô phỏng các cuộc tấn công và phát hiện các lỗ hổng
trong mạng máy tính, phục vụ cho việc thiết kế các cơ chế phát hiện và bảo mật
mạng cần thiết trước kiểu tấn công này. Tuy nhiên, nhiều công cụ tấn công chưa
thực hiện được nhiều phương thức tấn công hay các kỹ thuật tấn cơng vẫn chưa
hồn thiện. Ví dụ, cơng cụ tấn công Ettercap là một công cụ tấn công Man-in-TheMiddle lâu đời nhưng thông tin đọc được chỉ giới hạn ở tên đăng nhập và mật khẩu.
Vậy, việc phát triển cơng cụ tấn cơng Man-in-The-Middle vẫn cịn nhiều tiềm năng
để thêm vào các phương thức mới hay cải thiện các kỹ thuật đã có.
Chính vì lý do này, đề tài được chọn khi xây dựng đồ án này là “Xây dựng
công cụ tấn công Man-In-The-Middle phục vụ đánh giá an tồn mạng” với mục
tiêu là:


Giới thiệu về tấn cơng Man-in-the-middle và tìm hiểu về các phương thức và
kỹ thuật tấn công Man-in-the-middle được sử dụng hiện nay.
1







Phân tích, thiết kế và lập trình cơng cụ tấn cơng MiTM
Thử nghiệm cơng cụ tấn cơng MiTM
Tìm hiểu về cách phịng chống và phát hiện tấn cơng MiTM
Sau thời gian nghiên cứu đồ án, các mục tiêu đề ra cơ bản đã đạt được. Tuy

nhiên, do kiến thức và kỹ năng lập trình cịn hạn chế nên khơng thể tránh khỏi thiếu
sót, vậy nên rất mong thầy cơ cùng các bạn học viên cùng đóng góp ý kiến để tác
giả đồ án có thể hồn thiện đề tài này.

2


MỤC LỤC

3


DANH MỤC KÝ HIỆU VÀ TỪ VIẾT TẮT
ARP
DHCP
DNS
HSTS
HTTP
ICMP
IDS

IP
LAN
MAC
MiTM
NAT
NIC
NSA
OSI
PC
SSL
TCP
TTL
UDP
URL
VLAN
VoIP
VPN
WEP
WiTM

Address Resolution Protocol
Dynamic Host Configuration Protocol
Domain Name System
HTTP Strict Transport Security
Hypertext Transfer Protocol
Internet Control Message Protocol
Intrusion Detection System
Internet Protocol
Local Area Network
Media Access Control

Man-in-The-Middle
Network Address Translation
Network Interface Card
National Security Agency
Open Systems Interconnection
Personal Computer
Secure Socket Layer
Transmission Control Protocol
Time To Live
User Datagram Protocol
Uniform Resource Locator
Virtual LAN
Voice over IP
Virtual Private Network
Wired Equivalent Privacy
Who in The Middle

4


DANH MỤC HÌNH ẢNH

5


CHƯƠNG I: TÌM HIỂU VỀ TẤN CƠNG MITM
I.1. Khái niệm tấn công
Man – in – the – middle là một dạng tấn cơng mà ở đó kẻ tấn cơng xâm nhập
vào cuộc hội thoại giữa hai nhóm người, giả danh cả hai nhóm người và truy cập
vào các thơng tin mà hai bên đang truyền cho nhau. Tấn công man – in – the –

middle cho phép kẻ tấn công chặn, gửi và nhận dữ liệu dành cho người khác hoặc
không bao giờ gửi đi, mà hai bên không hề hay biết.
Tấn công MiTM là một trong những kiểu tấn công mạng lâu đời nhất trong
lịch sử an ninh mạng. Đầu những năm 1980 cho đến giờ, các nhà khoa học máy
tính đã phải nghiên cứu những cách có thể ngăn chặn được các nhân tố đe dọa được
sử dụng để nghe lén hoặc phá hoại đường truyền. Để có thể thực hiện kiểu tấn cơng
này, kẻ tấn cơng có thể can thiệp vào đường truyền hợp pháp hoặc tạo ra điểm kết
nối giả mà kẻ tấn cơng kiểm sốt. Đường truyền sau khi bị can thiệp sẽ bị loại bỏ
mã hóa nhằm đánh cắp, thay đổi hoặc chuyển hướng đường truyền đến địa điểm mà
kẻ tấn công muốn chuyển đến.

Hình 1.1. Ví dụ minh họa tấn cơng MiTM
Hình 1.1 trên là một ví dụ của tấn cơng MiTM có thể làm gì nếu xâm nhập
thành cơng. Lúc này, kẻ tấn cơng Peter sẽ xâm nhập vào cuộc trị chuyện giữa Jack
và Jill bằng cách đóng giả Jack và Jill. Tại đây, đối với Jack, Peter là Jill và đối với
Jill, Peter là Jack. Khi đó, Jack và Jill nghĩ rằng họ đang nói chuyện trực tiếp với
6


nhau nhưng thực ra, họ đều đang nói chuyện với Peter. Vì lý do này, Peter có thể
lắng nghe mọi dữ liệu mà Jack và Jill gửi đến cho Peter và thay đổi thơng tin được
truyền đi. Trong ví dụ, Jack và Jill đang thực hiện một giao dịch chuyển tiền. Peter
thực hiện tấn cơng MiTM và thay khóa của Jill bằng khóa của chính mình, gửi cho
Jack. Sau đó, Peter sẽ chỉnh sửa số tài khoản của Jack bằng tài khoản của mình để
Jill chuyển số tiền vốn định gửi cho Jack vào tài khoản của mình.
Các cuộc tấn cơng MiTM đang ngày càng gia tăng, khó phát hiện hơn và
đang có xu hướng phát triển để có thể phá được các biện pháp bảo mật hiện nay.
Một số cuộc tấn công MiTM gây ảnh hưởng lớn được ghi nhận:



Năm 2011, một lỗ hổng an ninh của cơ quan cấp chứng thư Hà Lan được
khai thác để cung cấp chứng thư giả mạo. Các chứng thư giả mạo đó sau



được sử dụng để thực hiện tấn cơng MiTM
Việc cơ quan an ninh quốc gia (NSA) của Mỹ giả mạo thành Google được
làm sáng tỏ vào năm 2013 khi Edward Snowden làm rị rỉ các tài liệu của
NSA cơng khai. Sử dụng khả năng chặn bắt các thông tin và giả mạo các



chứng chỉ SSL, NSA có thể theo dõi các tìm kiếm tiềm tang của người dùng.
Năm 2014, Lenovo cài đặt một phần mềm adware MiTM gọi là Superfish
trên các máy tính PC Windows. Superfish được sử dụng để quét các đường
truyền SSL và cài đặt các chứng chỉ cho phép chúng chặn bắt và chuyển



hướng các đường truyền an tồn
Năm 2015, một cặp đơi người Anh mất 340.000 Euro trong một cuộc tấn



cơng MiTM nghe lén email và cướp email.
Cuối tháng 4, năm 2019, nhiều nhà nghiên cứu tin rằng nhiều kẻ tấn công
đang cố gắng sử dụng kiểu tấn công Man – in – the – Middle để phân phối và
cài đặt Plead Backdoor bằng cách sử dụng phần mềm AsusWSPanel.exe

7



I.2. Các phương pháp thực hiện tấn công Man – in – The – Middle (MiTM)
I.2.1. ARP Spoofing
I.2.1.1. Giới thiệu về giao thức ARP
Trong một hệ thống mạng máy tính, có 2 địa chỉ được gán cho máy tính là:


Địa chỉ logic: là địa chỉ của các giao thức mạng như IP, IPX, ... Loại địa chỉ
này chỉ mang tính chất tương đối, có thể thay đổi theo sự cần thiết của người
dùng. Các địa chỉ này thường được phân thành 2 phần riêng biệt là phần địa
chỉ mạng và phần địa chỉ máy. Cách đánh địa chỉ như vậy nhắm giúp cho
việc tìm ra các đường kết nối từ hệ thống mạng này sang hệ thống mạng



khác dễ dàng hơn.
Địa chỉ vật lý: hay còn gọi là địa chỉ MAC là địa chỉ 48 bit, dùng để định
danh duy nhất do nhà cung cấp gán cho mỗi thiết bị. Đây là loại địa chỉ
phẳng, không phân lớp, nên rất khó dùng để định tuyến.
Trên thực tế, các card mạng (NIC) chỉ có thể kết nối với nhau theo địa chỉ

MAC, địa chỉ cố định và duy nhất của phần cứng. Do vậy phải có một cơ chế để
ánh xạ địa chỉ logic - lớp 3 sang địa chỉ vật lý - lớp 2 để các thiết bị có thể giao tiếp
với nhau. Từ đó, giao thức phân giải địa chỉ ARP - Address Resolution Protocol
được tạo ra nhằm giải quyết vấn đề trên
Giao thức ARP (Address Resolution Protocol), là giao thức được sử dụng để
phân giải địa chỉ MAC cố định từ một địa chỉ IP, có thể thay đổi tùy theo từng
mạng. ARP là giao thức lớp 2 - Data link layer trong mơ hình OSI và là giao thức
lớp Link layer trong mơ hình TCP/IP. Ban đầu ARP chỉ được sử dụng trong mạng

Ethernet để phân giải địa chỉ IP và địa chỉ MAC. Nhưng ngày nay ARP đã được
ứng dụng rộng rãi và dùng trong các cơng nghệ khác dựa trên lớp hai.
Q trình hoạt động của giao thức ARP như sau:


Bước 1: Khi một thiết bị nguồn muốn liên lạc với một thiết bị khác, thiết bị
đó sẽ kiểm tra xem trong bộ đệm ARP của máy đã có địa chỉ MAC được
8


phân giải của thiết bị đích chưa. Nếu đã có, máy sẽ sử dụng địa chỉ MAC đó


để bắt đầu kết nối.
Bước 2: Nếu địa chỉ MAC của thiết bị đích chưa có trong bộ đệm ARP, thiết
bị nguồn sẽ tạo ra một gói tin ARP request và gửi broadcast cho tồn bộ thiết
bị có trong mạng với trường Target IP address chứa địa chỉ IP của thiết bị



đích. Trường Target Hardware Address sẽ để trống.
Bước 3: Mọi thiết bị trong mạng nhận được gói tin ARP Request do thơng
điệp được truyền broadcast. Khi đó, chúng sẽ so sánh địa chỉ IP trong trường
Target IP address với địa chỉ IP của chúng. Nếu địa chỉ IP của chúng khơng



giống, gói tin sẽ bị loại bỏ.
Bước 4: Nếu thiết bị đích nhận được gói tin, nó sẽ so sánh và tạo ra thông
điệp ARP reply, sử dụng thông tin từ thông điệp ARP request đã nhận từ

trước để trả lời. Đồng thời, thiết bị đích cũng sẽ cập nhật bộ đệm ARP. Ở



đây, gói tin ARP reply sẽ được gửi theo hướng Unicast.
Bước 5: Thiết bị nguồn sẽ nhận gói tin ARP reply từ thiết bị đích và cập nhật
địa chỉ MAC trong trường Sender Hardware Address cùng với địa chỉ IP cần



phân giải vào bộ đệm ARP.
Bước 6: Thiết bị nguồn và thiết bị đích có thể liên lạc với nhau do bộ đệm
ARP đã có bản ghi cần thiết.
Giao thức ARP là giao thức được sử dụng rất nhiều trong các thiết bị kết nối

mạng ngày nay do sự linh hoạt và tiện lợi của nó. Tuy nhiên, một cơ chế nguy hiểm
của giao thức này có thể khiến mọi thiết bị gặp nguy hiểm. Để đảm bảo rằng các
thiết bị mạng ln tìm được địa chỉ MAC của thiết bị muốn kết nối, kể cả khi thiết
bị đó có thay đổi địa chỉ IP, các gói tin ARP sẽ ln được tiếp nhận mặc dù thiết bị
đó khơng gửi gói tin ARP request. Cơ chế này đã bị lợi dụng nhằm tiến hành nhiều
các dạng tấn công khác nhau, trong đó có tấn cơng Man – in – the – Middle.
I.2.1.2. Tấn công ARP Spoofing
ARP spoofing là kiểu tấn cơng mà ở đó kẻ tấn cơng gửi các gói tin ARP sai
lệch trong tồn bộ khu vực mạng cục bộ. Điều này sẽ dẫn đến địa chỉ MAC của kẻ
9


tấn cơng với địa chỉ IP của máy tính hợp pháp hoặc máy chủ trên mạng đó. Một khi
địa chỉ MAC của kẻ tấn công kết nối với địa chỉ IP hợp lệ, kẻ đó sẽ bắt đầu nhận
bất kỳ dữ liệu được dành cho địa chỉ IP đó. ARP spoofing có thể cho phép các nhân

tố độc hại chặn bắt, chỉnh sửa hoặc có thể ngăn chặn gói tin đang truyền. Các cuộc
tấn cơng ARP spoofing chỉ có thể xảy ra trên các mạng cục bộ, nơi sử dụng giao
thức ARP.
Để có thể phân tích rõ hơn về kiểu tấn cơng này, đồ án sẽ phân tích ví dụ sau:

Hình 1.2. Hoạt động mạng thơng thường
Hình ảnh 1.2 chỉ rõ hoạt động bình thường của mạng máy tính trước khi kẻ
tấn cơng bắt đầu tấn cơng ARP spoofing. Có thể thấy rằng, máy nạn nhân vẫn gửi
các yêu cầu và nhận các phản hồi từ Internet thông qua Access point bình thường,
và cả máy kẻ tấn cơng cũng như vậy. Lúc này, bảng ARP của Access point và của
nạn nhân không bị thay đổi.

10


Hình 1.3. Cách thực hiện tấn cơng ARP Spoofing của kẻ tấn cơng
Ở hình ảnh 1.3, máy kẻ tấn cơng đã bắt đầu thực hiện cuộc tấn công ARP
Spoofing trên mạng LAN. Có thể thấy rằng, kẻ tấn cơng đang gửi các gói tin ARP
reply cho cả máy nạn nhân và Access Point. Đối với nạn nhân, kẻ tấn công gửi một
gói tin ARP reply có địa chỉ IP gửi là địa chỉ của Access Point, nhưng địa chỉ MAC
gửi được sử dụng trong gói ARP reply là địa chỉ của mình. Khi máy nạn nhân nhận
gói tin này, máy sẽ tưởng rằng Access Point đang gửi địa chỉ MAC cho mình và cập
nhật bảng ARP trên máy của mình. Điều tương tự cũng xảy ra như vậy với Access
Point.

11


Hình 1.4. Hoạt động mạng sau khi bị tấn cơng ARP Spoofing
Sau khi đã thay đổi bảng ARP của cả máy nạn nhân và Access point, kẻ tấn

công đã thành cơng trong việc xen giữa bản thân mình trong kết nối của máy nạn
nhân đối với Access Point. Tại đây, mọi gói tin từ máy nạn nhân, sẽ phải đi qua
máy kẻ tấn cơng để có thể đến Access Point và kết nối với Internet.
Tấn công ARP Spoofing là cách thực hiện tấn công MiTM đơn giản và dễ
thực hiện nhất trong các phương pháp thực hiện tấn công.
I.2.2. DHCP Spoofing
I.2.2.1. Giới thiệu về giao thức DHCP
Khả năng kết nối các thiết bị nhanh và dễ dàng là điều rất quan trọng trong
q trình phát triển cơng nghệ hiện nay, và mặc dù nhiều thập kỉ đã qua, giao thức
DHCP vẫn là một trong phương pháp cần thiết để đảm bảo rằng các thiết bị có thể
kết nối mạng và được cấu hình chính xác. DHCP giảm đi rất nhiều những lỗi khi
cài đặt địa chỉ IP thủ công và có thể mở rộng số lượng địa chỉ IP bằng cách giới hạn
thời gian các thiết bị có thể giữ địa chỉ IP được cấp.
Giao thức DHCP (Dynamic Host Configuration Protocol) là một giao thức
mạng, hoạt động theo mơ hình server – client, được sử dụng trong các mạng IP mà
ở đó, một máy chủ DHCP tự động phân phát một địa chỉ IP và các thông tin mạng
12


khác cho mỗi thiết bị trên mạng để chúng có thể kết nối với nhau một cách hiệu quả
với các thiết bị khác. Một máy chủ DHCP cho phép các máy tính yêu cầu các địa
chỉ IP và các tham số mạng tự động, giảm thiểu trách nhiệm cho các nhân viên
quản trị mạng hoặc người dùng phải tự cài đặt các địa chỉ IP thủ công cho tất cả
thiết bị mạng.

Hình 1.5. Quá trình hoạt động của giao thức DHCP
Việc cấp phát và tiếp nhận giữa máy chủ DHCP và máy khách DHCP trên
hình 1.5 có thể được diễn giải như sau:



Bước 1: Máy khách DHCP gửi broadcast một thơng điệp DHCPDISCOVER



trên mạng hiện tại.
Bước 2: Khi máy chủ DHCP tiếp nhận thông điệp DHCPDISCOVER từ một
client, máy chủ DHCP sẽ dành riêng một địa chỉ IP cho client và tạo một đề
nghị cho thuê bằng cách gửi một thông điệp DHCPOFFER cho client. Thông
điệp này chứa địa chỉ MAC của client, địa chỉ cho thuê, subnet mask, thời



hạn cho thuê và địa chỉ của máy chủ DHCP tạo đề nghị.
Bước 3: Để trả lời cho thông điệp DHCPOFFER, client trả lời với thông điệp
DHCPREQUEST, gửi broadcast cho máy chủ, yêu cầu địa chỉ được thuê.
Một client có thể nhận nhiều thông điệp DHCPOFFER từ nhiều máy chủ,
13


nhưng chúng chỉ có thể nhận một thơng điệp DHCPOFFER. Khi các máy
chủ DHCP khác nhận thông điệp DHCP Request này, chúng sẽ thu về bất kì
đề nghị nào dành cho client đó và trả địa chỉ IP đề nghị về với tập các địa chỉ


sẵn sàng sử dụng.
Bước 4: Khi một máy chủ DHCP tiếp nhận thông điệp DHCPREQUEST từ
phía client, server sẽ trả về thơng điệp DHCPACK nhằm công nhận việc tiếp
nhận đề nghị của máy chủ DHCP. Thông điệp DHCPACK chứa thời hạn sử
dụng địa chỉ và bất kì các thơng tin cấu hình khác mà client có thể yêu cầu.
Giao thức DHCP đã và đang là giao thức được sử dụng rất nhiều trong các


mạng máy tính, chính vì vậy, đấy cũng chính là lý do nhiều kẻ tấn công muốn khai
thác điểm yếu của giao thức này để có thể thực hiện một số cuộc tấn công như
DHCP Spoofing, DHCP Stavation, …

14


I.2.2.2. Tấn cơng DHCP Spoofing
Tấn cơng DHCP Spoofing, hay cịn gọi là giả mạo DHCP, là một kiểu tấn
công mà ở đó máy tính của kẻ tấn cơng đóng vai hay giả dạng thành một máy chủ
DHCP trong mạng nội bộ LAN. Kiểu tấn công này thường được kết hợp với kiểu
tấn cơng DHCP Starvation để tăng tính hiệu quả và chính xác.

Hình 1.6. Tấn cơng DHCP Starvation
DHCP Starvation là kiểu tấn cơng nhằm đến máy chủ DHCP, ở đó kẻ tấn
công sẽ gửi một lượng lớn thông điệp DHCP Request với các địa chỉ MAC giả
mạo. Nếu máy chủ DHCP tiếp nhận các thông điệp DHCP Request này và xử lý nó,
các địa chỉ IP trong máy chủ của DHCP sẽ bị cạn kiệt trong một khoảng thời gian
rất ngắn. Hình 1.6 ở trên là một ví dụ về cách thực hiện tấn công DHCP Starvation.
Một khi các địa chỉ IP khả dụng của máy chủ DHCP bị cạn kiệt, kẻ tấn công
sẽ dựng lên một máy chủ DHCP giả mạo và trả lời các DHCP request từ các client
trong mạng. Bằng việc dựng lên một máy chủ DHCP giả mạo, kẻ tấn cơng giờ đã
có thể bắt đầu cuộc tấn công DHCP Spoofing.

15


Hình 1.7. Tấn cơng DHCP Spoofing
Sau khi tấn cơng DHCP Starvation và xây dựng lên máy chủ DHCP giả mạo,

kẻ tấn cơng có thể bắt đầu phân phối các địa chỉ IP và các điều chỉnh cấu hình
TCP/IP khác đến các client DHCP trong mạng nội bộ bằng cách gửi các thơng điệp
DCHPOFFER cho tồn mạng. Các điều chỉnh cấu hình TCP/IP bao gồm Default
Gateway và địa chỉ IP của máy chủ DNS. Kẻ tấn cơng giờ có thể thay thế các địa
chỉ này bằng chính địa chỉ IP của kẻ tấn công. Một khi địa chỉ IP của Default
Gateway của các thiết bị mạng bị thay đổi, các client trong mạng bắt đầu gửi các
đường truyền ra ngoài mạng đến máy tính của kẻ tấn cơng. Kẻ tấn cơng giờ đã
đứng giữa đường truyền giữa các client kết nối với DHCP giả mạo và Internet,
đóng vai trị giống như là một gateway trước khi các thông điệp từ các client kết
nối gửi ra ngồi mạng.
Tấn cơng DHCP Spoofing có thể gây ảnh hưởng lớn đến toàn bộ các thiết bị
sử dụng giao thức DHCP trong mạng LAN, khiến cho đường truyền của toàn bộ
các thiết bị trong mạng bị nghe lén và thay đổi nếu hệ thống khơng có các biện
pháp bảo vệ kịp thời.

16


I.2.3. DNS Cache Poisoning
I.2.3.1. Giới thiệu về giao thức DNS
DNS (Domain Name System) là một dịch vụ phân giải tên miền có khả năng
ánh xạ tên miền (Domain) sang địa chỉ IP và ngược lại. DNS có cơ sở dữ liệu phân
cấp, phân tán và sử dụng Port giao tiếp là 53 (UDP/TCP).
DNS bao gồm hai thành phần quan trọng: Máy chủ DNS và DNS Client:


Máy chủ DNS sẽ thực hiện phân giải tên miền ra IP và ngược lại từ IP sang
tên miền bằng cách tìm kiếm trong cơ sở dữ liệu của nó, nếu khơng tìm thấy




nó sẽ đi hỏi máy chủ DNS khác.
o Forward Lookup Zone sẽ phân giải tên miền sang địa chỉ IP.
o Reverse Lookup Zone sẽ phân giải IP sang tên miền.
DNS Client dùng để phân giải cho máy người dùng, khi người dùng truy cập
tên miền DNS Client sẽ đi hỏi máy chủ DNS để lấy thông tin phân giải tên
miền.
Máy chủ DNS sử dụng 2 giao thức để hoạt động là TCP và UDP. Giao thức

TCP dùng để đóng gói khi 2 Server DNS thực hiện trao đổi dữ liệu với nhau, TCP
đảm bảo q trình cập nhật thơng tin diễn ra an tồn và chính xác. Giao thức UDP
được dùng để đóng gói và trả lời các Query một cách nhanh chóng cho các Client
gửi yêu cầu phân giải tên miền.
Quá trình hoạt động của giao thức DNS:


Bước 1: Đầu tiên Client sẽ gửi yêu cầu phân giải tên miền DNS Request tới
máy chủ DNS trong mạng cục bộ. Nếu máy chủ DNS trong mạng cục bộ sẽ
kiểm tra trong cơ sở dữ liệu của nó có chứa bản ghi khơng. Nếu có, nó sẽ gửi



trả lại địa chỉ IP của máy có tên miền nói trên.
Bước 2: Trong trường họp máy chủ DNS cục bộ khơng có cơ sở dữ liệu về



tên miền này, nó sẽ hỏi lên các máy chủ DNS Root.
Bước 3: Máy chủ DNS Root sẽ tìm kiếm thông tin phân giải trong cơ sở dữ
liệu để trả về địa chỉ IP tương ứng cho Client.


17




Bước 4: Trường hợp máy chủ DNS Root khơng tìm thấy thông tin phân giải
trong cơ sở dữ liệu của nó thì sẽ gửi truy vấn hỏi các máy chủ DNS thứ cấp



khác.
Bước 5: Các máy chủ DNS khác nếu tìm được thơng tin phân giải tên miền
được u cầu sẽ gửi phản hồi DNS Reply về cho máy chủ DNS Root.
Giao thức DNS máy tính có thể dễ dàng truy cập vào các trang web mà

không cần phải nhớ những địa chỉ IP để truy cập. Nhưng chính tiện ích này cũng
chính là điểm yếu của giao thức DNS. Vì người dùng khơng thể nhớ được tên miền
này được gán với địa chỉ IP nào, kẻ tấn cơng có thể lợi dụng việc này để thay thế
địa chỉ IP của tên miền đó bằng địa chỉ IP của một máy chủ độc hại do kẻ tấn cơng
kiểm sốt. Đây cịn được gọi là tấn cơng DNS poisoning.
I.2.3.2. Tấn cơng DNS Cache Poisoning

Hình 1.8. Tấn cơng DNS Cache Poisoning
Hình 1.8 mô tả cách thực hiện tấn công DNS Cache Poisoning, một dạng tấn
công nguy hiểm, khai thác các lỗ hổng trong giao thức DNS để đổi hướng đường
truyền Internet khỏi các máy chủ hợp pháp và hướng đến các máy chủ giả mạo.

18



Một trong những lí do khiến kiểu tấn cơng DNS poisoning trở nên nguy hiểm như
vậy vì nó có thể lan ra từ máy chủ DNS này sang máy chủ DNS khác.
Internet khơng chỉ có một máy chủ DNS, như vậy sẽ kém hiệu quả. Nhà
cung cấp mạng sử dụng chính các máy chủ DNS của họ làm nơi lưu trữ bộ đệm các
thông tin từ các máy chủ DNS khác. Router tại nhà hiện nay hoạt động như một
máy chủ DNS, lưu trữ bộ đệm các thông tin từ các máy chủ DNS của nhà cung cấp
mạng đăng ký. Máy tính của người dùng cũng có một bộ nhớ bộ đệm DNS cục bộ,
để máy có thể tra cứu các bản ghi DNS đã yêu cầu từ trước hơn là gửi yêu cầu đến
máy chủ DNS lần này đến lần khác.
Nếu kẻ tấn cơng có thể điều khiển một máy chủ DNS và thay đổi một số
thông tin trên nó, ví dụ, kẻ tấn cơng có thể trỏ google.com đến một địa chỉ IP mà kẻ
tấn công điều khiển, máy chủ đó sẽ nói với những người dùng của nó tìm
google.com ở địa chỉ giả. Ở địa chỉ giả đó, kẻ tấn cơng có thể tiếp nhận và chuyển
tiếp yêu cầu của người truy cập đến tên miền muốn truy cập, thậm chí là thay đổi
yêu cầu đến website thật, đứng giữa đường truyền của nạn nhân và website.
Tấn cơng DNS poisoning có thể lan rộng ra nhiều mạng khác. Ví dụ, nếu
nhiều nhà cung cấp mạng lấy các thông tin DNS của họ từ một máy chủ bị xâm
nhập, bản ghi DNS bị chỉnh sửa sẽ lan ra các nhà cung cấp mạng và lưu vào bộ nhớ
bộ đệm ở đó. Từ đó, chúng sẽ lan ra các bộ định tuyến tại nhà và các bộ nhớ bộ
đệm DNS trên các máy tính khi chúng phân giải tên miền, nhận phản hồi sai lệch
và lưu trữ nó. Người dùng chịu ảnh hưởng của kiểu tấn công DNS poisoning sẽ bị
điều hướng đến máy chủ kiểm soát bởi kẻ tấn cơng, từ đó kẻ tấn cơng có thể thực
hiện các kiểu tấn công lừa đảo, nhằm lừa người dùng cung cấp các thông tin nhạy
cảm như thông tin tài khoản mạng xã hội, ngân hàng, CMND, …
I.2.4. ICMP Redirect
I.2.4.1. Giới thiệu về ICMP
ICMP (Internet Control Message Protocol), là một giao thức hỗ trợ trên tầng
mạng, được sử dụng bởi các thiết bị mạng nhằm gửi các thông điệp báo lỗi hoặc
19



hoặc các thông điệp vận hành thành công, thất bại khi giao tiếp đến các địa chỉ IP
khác trong mạng. Các thông điệp ICMP thường được sử dụng trong hoạt động
chuẩn đốn, mục đích điều khiển, hoặc được tạo ra nhằm thơng báo lỗi trong q
trình hoạt động của tầng mạng. Ví dụ, mọi thiết bị (như là các bộ định tuyến trung
gian) trước khi chuyển tiếp một gói tin IP, phải hạ trường TTL (Time to Live) trong
IP headers xuống 1. Nếu trường TTL hạ xuống 0 trước khi đến đích, gói tin sẽ bị
loại bỏ và một gói tin ICMP Time Exceed sẽ được gửi lại đến địa chỉ nguồn, thông
báo gửi thất bại.
Một số dạng thông điệp ICMP phổ biến, thường thấy trong q trình hoạt
động mạng:


ICMP Request (Type 8), ICMP Reply (Type 0): Là 2 dạng thông điệp được
sử dụng trong ping để kiểm tra kết nối của thiết bị từ xa, hoặc kiểm tra hoạt



động của thiết bị mạng.
ICMP Destination Unreachable (Type 3): Thông điệp được sử dụng nhằm



báo về địa chỉ IP nguồn rằng đích đến khơng thể kết nối được.
ICMP Parameter Problem (Type 12): Thơng điệp báo lỗi trong header của



datagram

ICMP Redirect/Change Request (Type 5): Thơng điệp điều khiển, được gửi



bởi gateway, nhằm báo cho các host biết rằng có một đường đi tốt hơn
ICMP Timestamp Request (Type 13), ICMP Timestamp Reply (Type 14):
Thông điệp được sử dụng nhằm đồng bộ thời gian ứng dụng giữa nơi chuyền
và nơi nhận
Trong an ninh mạng, nhiều kẻ tấn công đã xuất hiện nhiều phương thức tấn

công mạng bằng cách sử dụng giao thức ICMP, gây thiệt hại lớn cho mục tiêu. Ví
dụ, bằng cách sử dụng gửi một số lượng lớn gói tin ICMP Request với kích thước
lớn đến mục tiêu, kẻ tấn cơng đã có thể tạo ra một cuộc tấn cơng DoS, gây rối hoặc
cản trở dịch vụ, hoạt động của mục tiêu nhắm đến. Trong tấn cơng MiTM, giao
thức ICMP cũng có thể bị lợi dụng bằng cách sử dụng một dạng thông điệp đặc
20


biệt, nhằm đổi hướng đường đi của mục tiêu. Kiểu tấn cơng MiTM này cịn được
gọi là kiểu tấn cơng ICMP Redirect.
I.2.4.2. ICMP Redirect
Tấn công ICMP Redirect là một dạng tấn công MiTM, xen giữa đường
truyền của nạn nhân bằng cách sử dụng thông điệp ICMP Redirect (Type 5) nhằm
chuyển hướng đường truyền của nạn nhân. Các gói tin của máy nạn nhân thay vì đi
qua gateway, chúng sẽ đi qua máy của kẻ tấn công do sự điều chỉnh trong bảng
định tuyến của máy nạn nhân.
Như đã giới thiệu ở trên, thông điệp ICMP Redirect đảm bảo các host trong
mạng sử dụng gateway tốt nhất có thể, hoặc đổi sang gateway khác phịng trường
hợp bị lỗi. Những thơng điệp này thường được gửi bởi các cầu nối để thông báo với
các host rằng có một đường đi tốt hơn để liên lạc với đích đến định trước. Thơng

điệp ICMP Redirect là dạng thông điệp chỉ được gửi bởi các bộ định tuyến, khơng
host nào có thể gửi được. Khi một gói tin ICMP Redirect được nhận bởi host, một
tuyến đường mới được thêm vào nhằm giúp host sử dụng được thơng tin đó. Thơng
điệp ICMP Redirect là tổng họp của địa chỉ IP của Gateway, theo đó là gói tin IP để
định danh đường đi mới sẽ áp dụng. Có 4 mã, được sử dụng để định danh các đối
tượng chuyển hướng:





Code 0: Chuyển hướng cho mạng
Code 1: Chuyển hướng cho host
Code 2: Chuyển hướng cho một dạng dịch vụ và mạng
Code 3: Chuyển hướng cho một dạng dịch vụ và host
Để thực hiện được tấn công ICMP Redirect, kẻ tấn cơng sẽ phải tạo ra một

gói tin ICMP Redirect giả mạo, với địa chỉ IP nguồn từ gateway. Từ đó máy nạn
nhân sẽ nhận gói tin và cập nhật đường đi mới, với gateway mới chính là địa chỉ
của IP của kẻ tấn cơng. Hình 1.9 dưới đây minh họa cách thực hiện tấn công ICMP
Redirect của kẻ tấn công

21


Hình 1.9. Tấn cơng ICMP Redirect
Tấn cơng ICMP Redirect thường rất khó để phát hiện do khơng thể phát hiện
được sự bất thường trong lưu lượng mạng, nhưng để thực hiện được kiểu tấn công
này, người thực hiện tấn công cũng gặp rất nhiều khó khăn. Để có thể tạo ra một
gói tin giả mạo, người tấn cơng cần phải biết được địa chỉ IP đích mà nạn nhân

muốn kết nối đến, thơng thường là các địa chỉ IP ngồi Internet.
Việc phát hiện địa chỉ IP đích của nạn nhân có thể dễ dàng đối với những
mạng sử dụng các thiết bị hub, chuyển gói tin theo dạng broadcast, nhưng với mạng
máy tính hiện đại, sử dụng switch để chuyển tiếp, việc lắng nghe các gói tin trong
mạng sẽ trở nên khó khăn hơn rất nhiều, vì vậy rất khó để tạo ra một gói tin phù
hợp được. Tuy vậy, tấn công MiTM sử dụng ICMP Redirect vẫn là một trong
những phương pháp tấn cơng hiệu quả.
I.3. Các hình thức tấn công Man – in – the – middle
I.3.1. Packet Injection and Modification (Thêm và thay đổi gói tin)
Tấn cơng Packet Injection and Modification (Thêm và thay đổi gói tin) là
hình thức tấn cơng mà ở đó, khi người tấn công đã đứng giữa đường truyền của
mục tiêu và nghe lén được các gói tin đang truyền, lúc đó kẻ tấn cơng có thể thay
đổi tham số của gói tin hoặc thay đổi số thứ tự của gói tin để thêm vào gói tin độc
22


hại, rồi truyền lại cho mục tiêu nhằm chuyển hướng, ngụy trang hoặc thay đổi cách
làm việc của máy tính nạn nhân.

Hình 1.10. Tấn cơng DNS Spoofing sử dụng kỹ thuật sửa đổi gói tin
Hình ảnh 1.10 một ví dụ về việc sử dụng Packet Modification để thực hiện
tấn công DNS Spoofing. Ở đây, kẻ tấn công nghe lén các gói tin đi từ nạn nhân ra
Internet nhằm tìm kiếm các gói tin DNS Query yêu cầu phân giải tên miền
Yahoo.com. Khi nhận được gói tin DNS Query đến tên miền Yahoo.com, kẻ tấn
cơng sẽ chuyển tiếp u cầu đó đến tên miền và chờ đợi gói tin DNS Reply từ tên
miền. Sau khi nhận được gói tin trả về cho yêu cầu, kẻ tấn công sẽ chặn và thay đổi
địa chỉ phân giải từ tên miền thành địa chỉ của máy chủ độc hại mà kẻ tấn công
muốn mục tiêu chuyển hướng đến và chuyển về cho mục tiêu. Lúc này, nạn nhân
nhận được gói tin DNS Reply bị chỉnh sửa của kẻ tấn công và chuyển hướng đến
máy chủ của kẻ tấn cơng. Từ đó mọi gói tin được gửi đến Yahoo.com sẽ bị chuyển

đến máy chủ của kẻ độc hại mà nạn nhân khơng hề hay biết.
Hình thức tấn công này rất phổ biến trong tấn công MiTM, giúp cho kẻ tấn
công can thiệp và điều hướng đường truyền của nạn nhân, thêm vào những tệp tin
độc hai vào đường truyền nạn nhân, v.v. Tuy nhiên, cũng có nhiều nhược điểm cần
cân nhắc khi thực hiện. Vì đây là một hình thức tấn cơng can thiệp đến đường
truyền đang xảy ra và yêu cầu độ trễ thấp, hình thức này phải thực hiện tự động và
23


can thiệp ít để đảm bảo đường truyền khơng bị trễ. Để thực hiện được kiểu tấn công
này hiệu quả, kẻ tấn công cần phải sử dụng công cụ can thiệp gói tin có thể chỉnh
sửa nhanh chóng, chính xác và hoàn toàn tự động.
I.3.2. Session Hijacking (Chiếm đoạt phiên)
Session Hijacking là một hình thức tấn cơng mà phiên làm việc của người
dùng bị chiếm đoạt bởi kẻ tấn công. Thông thường, một phiên làm việc bắt đầu khi
người dùng đăng nhập hay sử dụng một dịch vụ, ví dụ như ứng dụng ngân hàng, và
kết thúc khi người dùng thốt ra. Kiểu tấn cơng này phụ thuộc vào việc kẻ tấn cơng
phải biết được session cookie, vì vậy kiểu tấn cơng này cịn được gọi là kiểu tấn
cơng cookie hijacking hay cookie side-jacking. Mặc dù bất kỳ phiên máy tính nào
cũng có thể bị chiếm đoạt, tấn cơng Session hijacking thường chỉ được áp dụng đối
với các phiên của trình duyệt hoặc của các ứng dụng web.
Trong hầu hết các trường hợp khi người dùng truy cập vào một ứng dụng
web, máy chủ sẽ tạo ra một session cookie tạm thời ở trình duyệt của người dùng
để nhớ rằng họ đang truy cập và đã được xác thực. Giao thức HTTP là một giao
thức stateless và session cookie gán vào mọi HTTP header là cách phổ biến nhất để
máy chủ có thể định danh trình duyệt của người dùng hoặc phiên hoạt động hiện tại
của họ.

24



Hình 1.11. Tấn cơng Session Hijacking
Hình 1.11 là một ví dụ về tấn cơng Session Hijacking.
Để có thể thực hiện được tấn công session hijacking, kẻ tấn công cần phải
biết session ID, hay cịn gọi là khóa phiên (session key) của nạn nhân, điều này có
thể làm được bằng cách nghe lén tìm session cookie của nạn nhân. Sau khi nạn
nhân đã đăng nhập thành công vào máy chủ, kẻ tấn cơng có thể cướp được phiên
làm việc đó bằng cách sử dụng chính session ID đó cho chính phiên trình duyệt của
kẻ tấn cơng. Máy chủ khi đó sẽ đối xử với phiên làm việc của kẻ tấn công như
phiên làm việc của nạn nhân.
Nếu tấn công thực hiện thành cơng, kẻ tấn cơng có thể thực hiện bất kì hành
động nào mà nạn nhân được phép làm trong phiên hoạt động. Tùy thuộc vào mục
tiêu nhắm đến, điều này có thể là chuyển tiền từ tài khoản ngân hàng của nạn nhân,
mua sắm trên các trang bán hàng online với tư cách là nạn nhân, truy cập vào các
25


×