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

NGHIÊN CỨU KỸ THUẬT PHÂN TÍCH GÓI TIN CHỨA MÃ ĐỘC Có demo

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 (2.74 MB, 45 trang )

BAN CƠ YẾU CHÍNH PHỦ
ỌC VIỆN KỸ THUẬT MẬT MÃ
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

BÁO CÁO
NGHIÊN CỨU KỸ THUẬT PHÂN TÍCH
GÓI TIN CHỨA MÃ ĐỘC
Ngành: Công nghệ thông tin
Chuyên ngành: An toàn thông tin
Học phần: thu thập và phân tích thông tin an ninh mạng
Sinh viên thực hiện:
Đỗ Đức Thành
Lê Thị Thanh Phương
Nguyễn Văn Nghĩa
Trần Đăng Mạnh
Phạm Đình Thương
Người hướng dẫn:
Cô: Nguyễn Thị Hồng Hà
Khoa ATTT – Học viện Kỹ thuật mật mã

Hà Nội, 2018
1


MỤC LỤC

DANH MỤC HÌNH VẼ

2



NHẬN XÉT
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
LỜI NÓI ĐẦU

3


Trong tất cả các lĩnh vực liên quan đến CNTT thì chắc hẳn khái niệm mã

độc không còn là điều xa lạ với hầu hết mọi người. Các loại mã độc rất phong
phú và hình thức lây lan của chúng cũng ngày càng đa dạng và tinh vi hơn. Việc
phát hiện và loại bỏ mã độc cũng đòi hỏi người sử dụng phải có kiến thức cơ bản
về mã độc.
Thường thì mã độc chọn môi trường lây nhiễm với victim từ các nguồn mà
người sử dụng chủ quan hoặc chưa có sự đề phòng như: email, quảng cáo, file
download ứng dụng,... Sau khi người sử dụng click vào hoặc tiến hành tải file
thực thi về sẽ làm lây nhiễm mã độc vào hệ thống. Từ đó mã độc có thể tiến
hành các hành độc thực thi tùy thuộc vào tác dụng của chúng, có thể là đánh cắp
thông tin người sử dụng, tranh quyền kiểm soát hệ thống, làm gián đoạn hệ
thống mạng, làm tắc nghẽn mạng,...
Việc phân tích hoạt động của mã độc cho phép người dùng quan sát được
các hoạt động mà mã độc thực thi trên hệ thống sau khi nó tiến hành lây nhiễm
để từ đó có thể hiểu rõ về từng loại mã độc và tìm ra các giải pháp khắc phục,
phòng tránh.
Trong báo cáo lần này, nhóm sẽ tiến hành việc tìm hiểu về phân tích một
gói tin chứa mã độc – một loại hình lây lan khá phổ biến khi mã độc được đính
kèm vào các file ứng dụng và file thực thi. Việc phân tích sẽ giúp chúng ta quan
sát được cách hoạt động của mã độc khi mã độc được thực thi, xem xét mã độc
hoạt động ra sao, lây lan như thế nào, nó kết nối đến đâu, cài đặt những gì vào
hệ thống, tạo ra các dấu hiệu nhận dạng hiểu quả hoạt động của mã độc. Bài báo
cáo cũng nêu lên được các bước của việc phân tích một gói tin nói chung và
phân tích gói tin chứa mã độc nói riêng.

CHƯƠNG I: TỔNG QUAN VỀ PHÂN TÍCH GÓI TIN
1.1. Phân tích gói tin
4


Khái niệm: phân tích nội dung gói tin là thực hiện thanh tra, phân tích nội

dung dữ liệu bên trong một hay nhiều gói tin. Quá trình phân tích này thường
được tiến hành để xác định gói tin quan trọng, phát triển phân tích luồng dữ liệu
và xây dựng lại nội dung.
Phân tích nội dung gói tin đề cập đến nghệ thuật phân tích và thanh tra các
giao thức trong một tập các gói tin. Việc phân tích các gói tin để xác định các
gói tin cần quan tâm, hiểu rõ cấu trúc và mối quan hệ để thu thập chứng cứ và
tạo điều kiện cho việc phân tích sâu hơn giai đoạn sau. Để xác định gói tin cần
quan tâm người phân tích có thể sử dụng nhiều nhiều kỹ thuật khác nhau tuy
nhiên kỹ thuật chọn lọc là kỹ thuật phổ biến vầ hiệu quả để phân lập các gói tin
cần quan tâm dựa trên các trường của gói tin hay giao thức bên trong gói tin.
Ngoài ra người phân tích có thể tìm kiếm với các chuỗi hoặc mẫu trong nội
dung gói tin để xác định mục tiêu phân tích, các giao thức được sử dụng cho ý
đồ của kẻ lây nhiễm. Việc hiểu rõ cấu trúc gói tin là rất quan trọng trong việc tái
tạo thông tin, dữ liệu tập tin hoặc bất kỳ dòng dữ liệu trao đổi nào giữa các bên
liên quan. Việc chia nhỏ gói tin hay một nhóm các gói tin thường xuyên sẽ giúp
cho chúng ta xác định được các công cụ thích hợp để khai phá bằng chứng và
khôi phục lại thông tin đã mất.
Nhằm thực hiện phan tích gói tin, người phân tích có thể sử dụng một số
phương pháp phân tích gói tin như :
-

-

Thanh tra thủ công: thực hiện việc tìm kiếm văn bản. tìm kiếm mẫu nhị phân,
thanh tra gói tin và xác minh giao thức.
Phương pháp lọc: dựa trên các thông tin như địa chỉ MAC, địa chỉ ip, ngày/giờ
và mẫu. ngoài ra tổng hợp việc lọc dựa trên các thông tin ở trên như lọc gói tin
trong khoảng thời gian, lọc gói tin xuất phát từ những địa chỉ IP cụ thể. Phương
pháp lọc còn được sử dụng với sự hỗ trợ dựa trên biểu thức lọc phức tạp như
biểu thức chính quy.

Thống kê: thống kê dựa trên việc sử dụng băng thông, IP, ngày/giờ và dựa trên
giao thức (email, FTP, HTTP,...).
1.2. Phân tích giao thức

5


Phân tích giao thức thực hiện kiểm tra một hoặc nhiều trường dữ liệu trong
một giao thức, điều này rất cần thiết cho việc phân tích gói tin bởi vì việc thanh
tra gói tin cần thực hiện trên đúng cấu trúc truyền thông để có thể hiểu được nội
dung gói tin hay luồng dữ liệu.
Phân tích thông tin an ninh mạng luôn phải được chuẩn bị để có thể phân
tích nắm vững các giao thức chưa từng được công bố. hơn nữa tin tặc đôi khi
phát triển các giao thức mới tùy biến hoặc mở rộng các giao thức trước đó nhằm
giao tiếp và đưa thêm một số chức năng mới để thực hiện ý đồ của tin tặc.
Phân tích giao thức bao gồm một số phương pháp cơ bản: xác định giao
thức, giải mã nội dung giao thức, trích xuất nội dung giao thức.
1.2.1. Xác định giao thức
Hiện nay người ta sử dụng một số phương pháp chính để xác định một giao
thức:
Dựa trên thông tin nhận dạng trong đóng gói giao thức, kĩ thuật này được
thực hiện thông qua tìm kiếm các giá trị nhị phân/ thập lục phân/ ASCII phổ
biến thường được đi kèm trong một giao thức cụ thể.
Xác định giao thức thông qua cổng TCP/UDP gắn liền với các giao thức
dịch vụ quy chuẩn.
Dựa trên phân tích thông tin từ địa chỉ đích địa chỉ nguồn.
a) Dựa trên thông tin nhận dạng trong đóng gói giao thức
Hầu hết giao thức có chứa các chuỗi bit thường xuất hiện ở trong các gói
tin gắn liền với nhận dạng giao thức hay nói cách khác giao thức chứa thông tin
chỉ ra kiểu giao thức được đóng gói do vậy người phân tích có thể lợi dụng đặc

điểm này để phân tích nhận dạng giao thức. Thông thường người phân tích sẽ
tiến hành tìm kiếm các giá trị nhị phân /thập lục phân/ASCII phổ biến thường đi
kèm trong một giao thức cụ thể.
Trong ví dụ dưới đây người phân tích sử dụng công nghệ TCPdump để xác
định giao thức được sử dụng trong tập dữ liệu gói tin thu nhận được.

6


hình 1.1:Công nghệ TCPdump để xác định giao thức
Sử dụng công cụ Wireshark để hiển thị rõ nội dung gói tin như trong hình
dưới đây người phân tích có thể xác định giao thức được sử dụng ở tầng ứng
dụng, do byte thứ 9 trong phần đầu của gói tin IP theo định dạng sẽ chỉ ra giao
thức được đóng gói bên trong. Trong trường hợp này giá trị byte thứ 9 là 0x06
tương ứng với giao thức TCP. Dựa trên những thông tin này chúng ta có thể chỉ
ra giao thức TCP được sử dụng trong gói tin IP.

hình 1.2: Giao thức sử dụng trong gói tin TCP
b) Xác định giao thức thông qua các cổng TCP/UDP gắn liền với các giao
thức, dịch vụ quy chuẩn.
Thông thường các dịch vụ hay giao thức ở tầng mạng trong mô hình
TCP/IP thường sử dụng giao thức ở tầng vận chuyển TCP hay UDP với các cổng
theo quy định.
Dựa theo tính chất này một cách đơn giản và phổ biến để xác định giao
thức bằng cách kiểm tra số cổng TCP hoặc UDP sử dụng. Theo cấu trúc định
7


dạng của TCP/UDP có tất cả 65535 cổng cho giao thức TCP và UDP. Tổ chức
cấp phát số hiệu Internet IANA đã công bố các cổng TCP/UDP tương ứng với

các giao thức, dịch vụ mạng. Chúng ta có thể xem danh sách này trên trang chủ
IANA. Ngoài ra, trong các hệ thống UNIX/LINUX cũng lưu trữ danh sách này
trong thư mục /etc/.
Tuy nhiên xác định giao thức dựa trên các cổng giao thức TCP/UDP có
nhược điểm là không phải lúc nào cũng đưa ra kết quả chính xác, bởi vì phía
máy chủ có thể cấu hình để sử dụng các cổng không quy chuẩn cho một dịch vụ
xác định.

hình 1.3: Giao thức sử dụng trong gói tin UDP
c) Phân tích thông tin từ địa chỉ nguồn, địa chỉ đích
Thông thường, tên máy chủ và các dịch vụ nó cung cấp có thể xác định các
giao thức sử dụng, cũng như thông tin hữu ích liên quan. Như ví dụ trong hình
1.3 chúng ta chưa xác định các giao thức nào sử dụng mặc dù Wireshark xác
định nhầm giao thức được sử dụng là SSL. Chúng ta có thể phân tích thông tin
từ địa chỉ IP sẽ giúp chúng ta tìm ra giao thức thật sự ở bên trong. Ở đây địa chỉ
nguồn là “64.12.24.50”, chúng ta sử dụng WHOIS để khai thác thông tin về địa
chỉ IP này như dưới đây

8


hình 1.4: công cụ WHOIS khai thác địa chỉ IP

-

Thông tin WHOIS cung cấp cho thấy địa chỉ này thuộc về tổ chức America
Online Inc và chúng ta có thể giả thiết rằng gói tin này thuộc về luồng dữ liệu sử
dụng giao thức được hỗ trợ bởi các dịch vụ AOL ví dụ như HTTP hoặc AIM.
1.2.2.
Giải mã nội dung giao thức

Giải mã giao thức là kỹ thuật thông dịch các dữ liệu trong gói tin theo một
cấu trúc, cho phép người phân tích hiểu đúng nội dung được truyền đi bởi giao
thức. Để giải mã lưu lượng mạng theo một đặc tả giao thức cụ thể thì chúng ta
cần:
Tận dụng bộ giải mã tự động tích hợp sẵn trong công cụ
Tham khảo các tài liệu được công bố công khai và tự giải mã\
Viết bộ giải mã cho riêng mình.

9


hình 1.5: Wireshark giải mã gói tin
Hình 1.5 minh họa sử dụng Wireshark để giải mã gói tin, kết quả giải mã
gói tin với giao thức AIM (AOL Instant Messenger) được sử dụng để hiển thị
trong hình 1.6 với thông tin chi tiết liên quan bao gồm Channel ID, Sequence
Number, ICBM Cookie. Những thông tin này chỉ ra giao thức sử dụng đúng là
giao thức AIM và việc giải mã giao thức này là chính xác.

hình 1. 6: Giải mã giao thức AIM
1.2.3.

Trích xuất nội dung trong giao thức

Bước tiếp theo sau khi đã xác định được giao thức sử dụng và phương pháp
để giải mã là trích xuất nội dung “ cần quan tâm” trong giao thức. Người phân
10


tích sử dụng công cụ tshark để trích xuất nội dung ra PDML bằng cách sử dụng
tùy chọn “-T” như ví dụ dưới đây

$ tshark -r evidence . pcap -X lua_script : oft-tsk . lua -R “oft” -n -R
frame . number==112 -V
Frame 112 (310 bytes on wrie , 310 bytes captured

Oscar File Transfer Protocol (256)
Version : 0FT2
Length : 256
Type : Prompt (0x0101)
Cookie : 0000000000000000
Encryption : None (0)
Compression : None (0)
Total File(s) : 1
File(s) Left : 1
Total Parts : 1
Parts Left : 1
Total Size : 12008
Size : 12008
Modification Time : 0
Checksum : 0xb1640000
Received Resource Fork Checksumm : 0xffff 0000
Ressource Fork : 0
Creation Time Resource Fork Checksum, base : 0xffff0000
Bytes Received: 0
Received Checksum : 0xffff0000
Identification string : Cool Filex fer
Flags : 0x00
List Name Offset : 0
List Size Offset : 0
Dummy Block 0000000000000000000000000000000000000000…
Mac File Information:

Encoding : ASCII (0x0000)
11


Encoding subcode : 0x0000
Filename: recipe . docx
Để trích xuất một trường hợp cụ thể như tên tệp và dung lượng tệp, người
phân tích có thể sử dụng cờ “-T” và “-e” như sau:
$ tshark -r evidence . pcap -X lua_script : oft-tsk . lua -R “oft” -n -T
fields -e “oft.fillename” -e oft.totsize -R frame.number ==112
recipe.docx 12008
1.3. Phân tích chi tiết nội dung gói tin
Hiện nay người ta sử dụng 3 kỹ thuật cơ bản để phân tích chi tiết nội dung
gói tin: Khớp mẫu ( Pattern Matching), trích xuất các trường của giao thức
(Parsing Protocol Fields) và lọc chọn gói tin (Ơacket Filtering). Dưới đây sẽ
trình bày cụ thể về ba kỹ thuật cơ bản nói trên.
1.3.1. Khớp mẫu
Là phương pháp xác định các gói tin “ đáng quan tâm” bằng cách kết hợp
các giá trị cụ thể trong tập các gói tin cần phân tích. Chúng ta có thể tận dụng
các danh sách gói tin “ cần quan tâm” để phân tích các hoạt động an ninh của hệ
thống. Việc nhanh chóng tìm ra các gói tin “ cần quan tâm” này dựa trên các
chuỗi hoặc mẫu (hay còn gọi là từ khóa tìm kiếm) liên quan đến các hoạt động
an ninh mạng cần phân tích.
Người phân tích có thể sử dụng nhiều công cự khác nhau để tiến hành việc
khớp mẫu cho quá trình thu thập và phân tích gói tin. Một trong số các công cụ
thường được sử dụng đó là ngrep.
1.3.2. Trích xuất các trường trong giao thức
Trích xuất các nội dung của các trường của giao thức bên trong tập các gói
tin chúng ta quan tâm. Chúng ta sử dụng tshark để trích xuất tất cả dữ liệu AIM
từ tệp thu được tập tin sau:

$ tshark -r evidence01.pcap -d tcp.por t == 443 , aim -T fields -n -e
“aim.messeageblock.mesage”
Here’s the secret recipe. . . I just download it from the file server.
Just
coppy to a thump drive and you’re good to go > ; : =)
12


<HTML>
<BODY>
FACE=\”Arial\”
SIZE=2
COLOR=#000000>thanks
dude</FONT>
</BODY>
</HTML>
<HTML>
<BODY>
<FONT FACE=\”Arial\” SIZE=2 COLOR=#000000>can’t wait to sell it
on ebay</FONT>
</BODY>
</HTML>
see you in hawaii!
Thông tin trong đoạn hội thoại sẽ cho biết nội dung tra đổi giữa hai bên và
những thông tin này sẽ có ích cho việc phân tích sau này.
1.3.3. Lọc chọn gói tin
Lọc gói tin thực hiện tách các gói tin dựa trên các giá trị của các trường
trong giao thức. Thông thường lọc chọn các gói tin bằng cách sử dụng bộ lọc
BPF hoặc bộ lọc hiển thị Wireshark.

Ngôn ngữ lọc gói tin Berkely (BPF)
Trong thực tế luồng dữ liệu truyền trên mạng có dung lượng rất lớn điều
này gây rất nhiều khó khăn cho người phân tích trong việc thu thập và phân tích
thông tin an ninh mạng.
Libpcap cung cấp một ngôn ngữ lọc gói tin rất mạnh với tên gọi cú pháp
lọc gói tin Berkely (BPF). Sử dụng lọc gói tin BPF cho phép người phân tích
quyết định luồng dữ liệu nào được chặn bắt và phân tích, còn luồng dữ liệu nào
chúng ta bỏ qua. BPF cho phép chúng ta lọc luồng dữ liệu dựa trên việc so sánh
giá trị trong các trường ở giao thức tầng liên kết, tâng mạng và vận chuyển. BPF
được xây dựng sẵn các hàm “nguyên thủy” cho phần lớn các trường giao thức
phổ biến. BPF được xây dựng rất đơn giản từ các hàm “nguyên thủy” như “host”
và “port”. BPF có thể sử dụng các chuỗi điều kiện, sử dụng các hàm logic như
AND và OR. Đồng thời, cú pháp BPF được sử dụng rộng rãi và hỗ trợ cho các
công cụ thu thập và phân tích.
13


Ví dụ, người phân tích muốn chỉ xem luồng dữ liệu với địa chỉ IP
192.168.0.1 giao tiếp với hệ thống khác ngoại trừ 10.1.1.1 trên cổng 138, 139
hoặc 445, thực hiện câu lệnh BPF với cú pháp như sau:
Lọc gói tin theo từng byte, ví dụ ip[8] < 64
Lọc gói tin theo từng bit, ví dụ ip[0] & 0x0f > 0x05
Để giảm lưu lượng mạng, sử dụng công cụ tcpdum với bộ lọc BPF để tìm
ra các gói tin của địa chỉ IP nguồn và đích như dưới đây:
$ tcpdump -s 0 -r evidence01.pcap -w evidence01-talkers.pcap ‘host
64.12.24.50 and host 192.168.1.158’
Reading from file evidence01.pcap, link-type EN1CMB (Ethernet)
Sử dụng Wireshark để bắt các gói dữ liệu lọc và xem có thể nhận thêm
thông tin về cuộc trao đổi giữa hai bên


14


hình 1.7: Nội dung trong gói tin được lọc chọn

15


CHƯƠNG II: TẤN CÔNG SỬ DỤNG MÃ ĐỘC
2.1. Tổng quan về mã độc
2.1.1. Khái niệm
Mã độc là một khái niệm chung dùng để chỉ các phần mềm độc hại được
viết với mục đích có thể lây lan phát tán (hoặc không lây lan, phát tán) trên hệ
thống máy tính và internet, nhằm thực hiện các hành vi bất hợp pháp nhằm vào
người dùng cá nhân, cơ quan, tổ chức. Thực hiện các hành vi chuộc lợi cá nhân,
kinh tế, chính trị hoặc đơn giản là để thỏa mãn ý tưởng và sở thích của người
viết.
2.1.2. Phân loại và đặc tính của mã độc
Tuỳ thuộc vào cơ chế, hình thức tấn côngvà phương pháp phá hoại mà
người ta phân biệt mã độc thành nhiều loại khác nhau: virus, trojan, backdoor,
adware, spyware… Đặc điểm chung của mã độc là thực hiện các hành vi không
hợp pháp (hoặc có thể hợp pháp, ví dụ như các addon quảng cáo được thực thi
một cách hợp pháp trên máy tính người dùng) nhưng không theo ý muốn của
người sử dụng máy tính. Dưới đây chúng ta sẽ phân loại các mã độc theo các
hành vi nguy hiểm mà nó thường xuyên thực hiện:


Trojan: đặc tính phá hoại máy tính, thực hiện các hành vi phá hoại như: xoá
file, làm đổ vỡ các chương trình thông thường, ngăn chặn người dùng kết nối
internet…




Worm: Giống trojan về hành vi phá hoại, tuy nhiên nó có thể tự nhân bản để
thực hiện tấn côngqua nhiều máy tính



Spyware: là phần mềm cài đặt trên máy tính người dùng nhằm thu thập các
thông tin người dùng một cách bí mật, không được sự cho phép của người dùng.



Adware: phần mềm quảng cáo, hỗ trợ quảng cáo, là các phần mềm tự động tải,
pop up, hiển thị hình ảnh và các thông tin quảng cáo để ép người dùng đọc, xem
các thông tin quảng cáo. Các phần mềm này không có tính phá hoại nhưng nó
làm ảnh hưởng tới hiệu năng của thiết bị và gây khó chịu cho người dùng.
16




Ransomware: đây là phần mềm khi tấn côngvào máy tính nó sẽ kiểm soát hệ
thống hoặc kiểm soát máy tính và yêu cầu nạn nhân phải trả tiền để có thể khôi
phục lại điều khiển với hệ thống.



Virus: là phần mềm có khả năng tấn côngtrong cùng một hệ thống máy tính
hoặc từ máy tính này sang máy tính khác dưới nhiều hình thức khác nhau. Quá

trình lây lan được thực hiện qua hành vi lây file. Ngoài ra, virus cũng có thể thực
hiện các hành vi phá hoại, lấy cắp thông tin…



Rootkit: là một kỹ thuật cho phép phần mềm có khả năng che giấu danh tính
của bản thân nó trong hệ thống, các phần mềm antivirus từ đó nó có thể hỗ trợ
các module khác lây nhiễm, khai thác hệ thống.
2.2. Tấn công sử dụng mã độc
2.2.1. Cấu trúc PE file
Một bước rất quan trọng khi tìm hiểu về mã độc là tìm hiểu về file PE vì
gần như mọi mã thực thi được nạp bởi Windows đều có định dạng PE. Đây là
dạng phổ biến bậc nhất của Malware và cũng là định dạng hay bị tấn côngmã
độc nhất.
Định dạng file PE được dùng cho những file thực thi, mã đối tượng và các
DLL của Windows. Định dạng này là một cấu trúc dữ liệu bao gồm thông tin
cần thiết để Windows OS Loader quản lý được mã thực thi trong nó.
Để có thể thực thi trên máy tính, nội dung file PE được chia thành các
thành phần và có mối liên hệ mật thiết với nhau. Nắm rõ cấu trúc PE sẽ giúp
chúng ta hiểu được cơ chế thực thi của một phần mềm, từ việc tổ chức tới việc
nạp lên bộ nhớ, các tài nguyên sử dụng…
Hơn nữa, khi chúng ta muốn sửa đổi một file, ví dụ như thêm vào một số
đoạn mã, chỉnh sửa một số thành phần nhưng vẫn muốn phần mềm thực thi bình
thường, ví dụ trong trường hợp cần chỉnh sửa các công cụ phân tích để tránh bị
phát hiện bởi Malware thì chúng ta cần phải nắm rõ cấu trúc PE file cũng như
mối liên hệ giữa các thành phần trong file để có thể nhanh chóng thay đổi file và
thoả mãn yêu cầu đề ra mà không ảnh hưởng tới chức năng cũng như hoạt động
của file.
Mặt khác, đối với các Malware sử dụng kỹ thuật tiêm mã vào các tiền trình
17



đang có để che giấu sự tồn tại trên hệ thống, nếu chúng ta không hiểu rõ cấu trúc
của file PE sẽ rất khó tìm ra tiến trình bị tiêm mã độc.

hình 2.1: Cấu trúc cơ bản của PE
Cấu trúc PE có thể gồm nhiều section, trong đó tối thiểu cần 2 section: data
và code. Một số section thông dụng hay được gặp ở các phần mềm:
1. Executable Code Section, có tên là .text (Microsoft).
2. Data Sections, có tên nh .data, .rdata, .bss (Microsoft) hay DATA

(Borland)
3. Resources Section, có tên là .rsrc
4. Export Data Section, có tên là .edata
5. Import Data Section. có tên là .idata
6. Debug Information Section, có tên là .debug

Cấu trúc các section trên bộ nhớ và trên ổ đĩa là như nhau, tuy nhiên khi
được nạp lên bộ nhớ, các Windows loader sẽ quyết định thứ tự và vị trí nạp các
phần, do đó vị trí các phần trên ổ đĩa và trên bộ nhớ sẽ có sự khác biệt.
18


2.2.2. Hình thức tấn công
Qua thiết bị lưu trữ
Cách tấn công phổ biến nhất của Malware trước đây là qua các thiết bị lưu
trữ di động, dù là thời sử dụng đĩa mềm ngày xưa hay thẻ nhớ USB ngày nay.
Hiện tại, thẻ nhớ trong các thiết bị di động thông minh, hay thiết bị ghi âm, ghi
hình kỹ thuật số cũng là một vật trung gian hiệu quả cho việc lan truyền
Malware. Các thiết bị di động thông minh thì hay phải nạp pin và phương thức

nạp pin qua công USB lại rất tiện dụng, điều này tiềm ẩn nguy cơ rất lớn cho
việc lây truyền Malware.
Một số dạng tấn công điển hình qua USB:
-

Lợi dụng chức năng Autorun

Khi thiết bị lưu trữ có sử dụng giao tiếp USB được cắm vào máy tính đã
nhiễm Malware, Malware sẽ phát hiện ra thiết bị có thể tấn côngđược, sau đó tự
sao chép bản thân mình vào một vị trí bí mật trên thiết bị đó. Tiếp theo, nó ghi
một file autorun.inf có nội dung cơ bản như sau:
[Autorun]
OPEN=Đường dẫn virus trong đĩa USB
Từ Windows Vista trở về trước, Windows sẽ mặc nhiên kiểm tra tập tin
autorun.inf trong các thiết bị USB và thực thi các câu lệnh có trong đó.
- Đánh lừa người dùng
Trong nhiều trường hợp, các tấn công sử dụng tập tin Autorun không hiệu
quả, ví dụ như từ hệ điều hành Windows 7 trở về sau, chức năng này không
còn động nữa. Malware chuyển sang sử dụng cách đánh lừa người dùng để thực
thi file mã độc đã tấn côngtrên thẻ nhớ USB. Có thể kể đến như:


Ẩn thư mục trên USB và thay vào đó là các tập tin Malware có
hình thư mục với tên tương tự các thư mục tồn tại ban đầu.
Với cách này, Malware dễ dàng lừa được người dùng khởi
chạy nó nếu trên hệ thống đang tắt.

chức năng hiển thị file ẩn và phần mở rộng file.
19





Chuyển các file .doc, .docx của người dùng vào vị trí bí mật



trên thẻ nhớ USB thay thế vào đó là các file Malware có tên và
hình đại diện (icon) là file doc, docx. Đồng thời sử dụng các
khoảng trắng để kéo dài tên file tối đa, làm người dùng có để
hiện tên file thì cũng có khả năng cao bị đánh lừa.
Ví dụ:

Tập tin .doc gốc: TenVanBan.doc
Tập tin malware: TenVanBan.doc: Vì tên tập tin quá dài nên Windows sẽ
rút ngắn lại khi hiển thị và để dấu hai chấm “..” cuối cùng, thể hiện là tên văn
bản còn tiếp tục. Nhưng người dùng sẽ dễ dàng bỏ qua sự thể hiện này và chỉ
nhìn lướt với tên hiển thị ngay đầu tiên nên dễ dàng bị đánh lừa.
Cả 2 cách trên đối với người dùng thông thường đều rất khó nhận ra khi lỡ
khởi chạy nhầm phải Malware, vì khi đã đạt được mục đích lây nhiễm,
Malware vẫn mở thư mục hoặc tập tin như bình thường cho người dùng. Thậm
chí, trong nhiều trường hợp, Malware còn khôi phục lại thẻ nhớ USB như chưa
hề bị nhiễm để tránh sự phát hiện.
Qua mạng internet
Các phần mềm được viết ra có chứa sẵn mã độc, hoặc các phần mềm chính
thống bị sửa đổi để thêm mã độc vào được phát tán tràn lan trên mạng Internet.
Các phần mềm Crack (bẻ khóa) có tỉ lệ chứa mã độc trong đó rất cao. Nhiều khi
vì chủ quan hay vì muốn dùng phần mềm mà không phải trả tiền, người dùng
sẵn sàng bất chấp mọi nguy cơ bị tấn côngmã độc để dùng những phần mềm
này.

Khi truy cập các trang web, hệ thống có thể bị nhiễm mã độc bất kỳ lúc
nào, nhất là khi truy cập vào các trang không đáng tin cậy. Điều này có thể xảy
ra ngày cả khi chúng ta chỉ mở trang web, vì các trình duyệt, đặc biệt là các
thành phần của trình được phát triển bởi hãng thứ 3 (plugin) ẩn chứa rất nhiều
nguy cơ mất an toàn. Malware có thể lợi dụng những lỗ hổng này để tấn công
vào hệ thống.
Khi mà thư được sử dụng ngày càng rộng rãi thì đây là một nguồn tấn
côngrất hiệu quả. Khi đã tấn côngvào máy nạn nhân, Malware có thể tự tìm ra
danh sách các địa chỉ thư điện tử trong máy tính và nó tự gửi đi hàng loạt những
20


thư đánh lừa được đính kèm bản thân nó hoặc các liên kết chứa mã độc. Khi
người nhận không phát hiện ra thư bị nhiễm Malware thì khả năng cao sẽ bị
nhiễm mã độc vào máy và từ máy này Malware lại tiếp tục lây nhiễm. Chính vì
vậy, số lượng phát tán Malware có thể theo cấp số nhân khiến trong thời gian
ngắn hàng triệu máy tính có thể bị lây nhiễm.
Ngày nay, khi phần mềm quản lý thư điện tử kết hợp với phần mềm diệt
Malware có thể khắc phục được hành động tự nhân bản hàng loạt để phát tán
qua các địa chỉ thư điện tử trong danh bạ máy tính thì chủ nhân Malware có thể
chuyển qua hình thức tự gửi thư phát tán Malware bằng các nguồn địa chỉ sưu
tập được, các địa chỉ này cũng có thể là của chính Malware đó gửi về.
Phương thức tấn công qua thư điện tử bao gồm:
-

Tấn công vào các file đính kèm: Với cách này, người dùng sẽ không bị
nhiễm mã độc đến khi phần mềm đính kèm đó được kích hoạt. Malware
cũng không dại gì chỉ gửi đúng mã độc của mình, mà chúng thường ẩn
dưới bỏ bọc là các phần mềm miễn phí hay những phần mềm có nội
dung nhạy cảm.


-

Tấn công do mở một liên kết trong thư điện tử: Liên kết trong thư điện
tử có thể dẫn tới một trang web được cài sẵn mã độc, các này thường
khai thác lỗ hổng của trình duyệt hoặc các plugin (thành phần cài đặt
thêm) của trình duyệt, ví dụ như trình FlashPlayer.

-

Tấn công ngay khi mở để xem thư điện tử: Trường hợp này vô cùng
nguy hiểm bởi chưa cần kích hoạt các file hay mở liên kết gì hệ thống
đã bị nhiễm mã độc. Cách này thường là do mã độc khai thác lỗ hổng
của hệ điều hành. Mặc dù vây, cách khai thác này cũng khó thực hiện
hơn, do lỗ hổng trên hệ điều hành chưa bị phát hiện (zero day) sẽ ít hơn
rất nhiều lỗ hổng trên trình duyệt và các plugin của nó.

2.2.3. Đối tượng tấn công
Một số định dạng tập tin có thể chứa mã hoặc các lệnh thực thi, do đó
chúng có thể được mã độc sử dụng. Một tập tin dạng exe nguy hiểm bởi vì đây
là định dạng của file thực thi mà có thể làm bất cứ điều gì (trong phạm vi quyền
người dùng chạy nó) trong hệ thống. Một định dạng Media như JPEG, không
phải luôn nguy hiểm vì chúng không chứa mã thực thi. Mặc dù vậy, trong
21


nhiều trường hợp, những kẻ tấn công đã lợi dụng lỗ hổng của các phần mềm
xem ảnh, đọc PDF,… để thực thi những đoạn mã nguy hiểm cho hệ thống bằng
cách chèn mã độc vào trong các file tưởng như vô hại trên. Trong khuôn khổ
nghiên cứu, bài báo cáo chỉ đề cập tới những định dạng file có thể chứa mã thực

thi hoặc chứa đoạn lệnh nguy hiểm mà mã độc hay lợi dụng:

Các phần mềm
EXE – Executable File: Một phần mềm có khả năng thực thi, hầu hết các
phần mềm chạy trên Windows là định dạng này.
PIF – Program Information File: Một tập tin thông tin phần mềm cho các
phần mềm MS-DOS. Bình thường các file .PIF không chứa mã thực thi, nhưng
khi nó chứa mã thực thi thì Windows sẽ xử lý như các tập tin EXE.
APPLICATION: Định dạng cài đặt ứng dụng triển khai với công nghệ
Microsoft’s ClickOnc
GADGET: Một tập tin tiện ích trên màn hình Windows, công nghệ này
được giới thiệu cùng Windows Vista.
MSI – Microsoft Installer File: Tập tin cài đặt ứng dụng trên Windows
MSP – Microsoft Installer Patch file: Được dùng để vá các phần mềm đã
được triển khai bởi .MSI.
COM – Command file: Tệp thực thi.
SCR: Windows screen saver.
HTA – HTML application: Không giống như các ứng dụng chạy trong các
trình duyệt HTML, các file .hta chạy như các ứng dụng đáng tin cậy mà không
bị cô lập.
CPL – Control Panel file: Tất cả các tiện ích trong Windows Control Panel
đều có dạng .CPL.
MSC – Microsoft Management Console file: Các ứng dụng dạng này như
ứng dụng quản lý chính sách cho nhóm hay công cụ quản lý ổ đĩa.
JAR – executable Java code: Nếu chúng ta đã cài đặt Java runtime trên hệ
thống thì, các tập tin dạng .JAR sẽ chạy như một phần mềm (tương tự dạng
exe).
22



Đoạn mã (script)
.BAT – Batch File: Bao gồm một tập hợp các câu lệnh sẽ thực thi khi ta
mở file dạng này. Nguyên thủy tập tin .BAT được dùng trong MS-DOS.
.CMD – Batch File: Cũng tương tự như tập tin .BAT, nhưng định dạng này
được giới thiệu lần đầu tiên trên Windows NT.
.VB, .VBS – VBScript file: Tập hợp các mã lệnh viết bằng ngôn ngữ
Visual Basic Script, chúng sẽ được thực thi nếu chúng ta mở file.
.VBE – Encrypted VBScript file: Tương tự như VBScript file, nhưng các
mã trong file đã được mã hóa để che giấu ý đồ tác động lên hệ thống.
JS – JavaScript file: Các tập tin .JS thường được dùng trong các trang web
và chúng sẽ an toàn nếu chỉ chạy trên trình duyệt web. Tuy nhiên, Windows
cũng có thể chạy các tập tin .JS này bên ngoài trình duyệt và điểu đó gây nguy
hiểm cho hệ thống.
.JSE – Encrypted JavaScript file: Tập tin JavaScript đã được mã hóa
.WS, .WSF: Windows Script file.
.WSC, .WSH – Windows Script Component và Windows Script Host
Control files: Các tập tin này được dùng cùng với Windows Script files.
.PS1, .PS1XML, .PS2, .PS2XML, .PSC1, .PSC2 – Windows PowerShell
script: Các lệnh Windows PowerShell.
.MSH, .MSH1, .MSH2, .MSHXML, .MSH1XML, .MSH2XML –
Monad script file: Monad sau đó được đổi thành PowerShell.
Shortcuts
.SCF – Windows Explorer command file.
.LNK – Link: Liên kết chỉ tới một phần mềm nào đó. Một tập tin liên kết
có khả năng chứa các dòng lệnh nguy hiểm, như copy một file từ chỗ này sang
chỗ khác hay xóa một tập tin mà không cần hỏi.
.INF – Một dạng tập tin văn bản được dùng bởi chức năng AutoRun có khả
năng gọi thực thi một phần mềm.
Một số loại tập tin khác:
.REG – Windows registry file: .REG chứa một danh sách các khóa registry

sẽ được thêm vào hoặc gỡ bỏ nếu chạy chúng. Một tập tin REG độc hại có thể
23


loại bỏ các thông tin quan trọng từ registry, thay thế nó bằng các dữ liệu rác,
hoặc thêm dữ liệu độc hại hay tạo khóa khởi động cho Malware
.DOC, .XLS, .PPT – Microsoft Word, Excel, PowerPoint: Chúng có thể
chứa mã độc dạng Macro, hoặc mã độc lợi dụng lỗ hổng của MS-Offic
.DOCM, .DOTM, .XLSM, .XLTM, .XLAM, .PPTM, .POTM, .PPAM,
.PPSM, .SL
DM: Định dạng tập tin mới được giới thiệu trong Office 2007 M ở cuối
của phần mở rộng tập tin chỉ ra rằng tài liệu chứa Macros. Ví dụ, một tập tin
DOCX không chứa macro, trong khi một tập tin .DOCM có thể chứa các macro.

24



×