Tải bản đầy đủ - 0 (trang)
CHƯƠNG 3: PHƯƠNG PHÁP PHÂN TÍCH ĐỘNG TRONG PHÁT HIỆN MÃ ĐỘC SỬ DỤNG SANDBOX

CHƯƠNG 3: PHƯƠNG PHÁP PHÂN TÍCH ĐỘNG TRONG PHÁT HIỆN MÃ ĐỘC SỬ DỤNG SANDBOX

Tải bản đầy đủ - 0trang

Hình 3.2: Quy trình phân tích mã độc khi có hệ thống phân tích tự động

Khi có hệ thống phân tích tự động, thì hai quy trình phân tích sơ lược và phân

tích hoạt động đã được tinh giảm đi. Bên cạnh đó q trình phân tích tự động được tự

động hoàn toàn nên tiết kiệm rất nhiều thời gian để dành cho việc phân tích mã thực

thi.

3.2. Khái niệm về phân tích động

Phân tích động là phương pháp phân tích 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, thay đổi thành phần nào nhằm mục đích ngăn

chặn việc lây nhiễm, tạo ra các dấu hiệu nhận dạng hiệu quả.

Việc phân tích mã độc đòi hỏi q trình theo dõi liên tục và lặp đi lặp lại. Nếu

thực hiện trên hệ thống thiết bị thật sẽ mất rất nhiều công sức và thời gian. Nó cũng có

thể gây thiệt hại lớn cho cả hệ thống. Vì thế, cần phải thiết lập một mơi trường an tồn

cho việc chạy mã độc để có thể thu thập thông tin về mã độc một cách tốt nhất.



28



3.3. Tìm hiểu về Sandbox [4]

3.3.1. Khái niệm về Sandbox

• Theo nghĩa đen :

Sandbox chính là một cái khung, trung bình khoảng 1-2, chứa đầy cát (sand =

cát; box = đóng khung). Theo lịch sử thì người Hy Lạp cổ dùng nó như một bản nháp,

dùng que vạch chữ trên cát, tính tốn xong cứ việc xóa đi làm.

Theo cận đại hơn, người Âu Mỹ làm sandbox ra để cho trẻ con chơi. Khi chơi

trong sandbox, đứa trẻ nít tha hồ nghịch, muốn làm gì thì làm, xây lâu đài, làm bánh,

… chán rồi cứ việc xóa đi làm lại mà khơng lo hư hỏng. An tồn và khơng gây ảnh

hưởng đến xung quanh.

Vì người Việt khơng dùng cơng cụ này nên khơng có từ gì để dịch chính xác, có

thể tạm gọi là “khung cát” hay “hộp cát”.



Hình 3.3: Hình ảnh minh hoạ về Sandbox (Google Sandbox)

• Trong ngành IT (Công nghệ thông tin):

Sandbox được định nghĩa là một kỹ thuật quan trọng trong lĩnh vực bảo mật.

Nó có tác dụng làm cô lập các ứng dụng, ngăn chặn các phần mềm độc hại để chúng

khơng có cơ hội tấn cơng vào các phần mềm máy tính, cài cắm các mã độc nhằm ăn

cắp thông tin cá nhân của người khác hoặc ăn cắp thông tin quan trọng từ các cơ quan

nhà nước tới quốc hội, chính phủ.

29



Hiện nay Sandbox thường được cài vào máy chủ PC hay máy chủ của các tổ

chức, doang nghiệp có nhu cầu sử dụng nhằm âm thầm bảo vệ thông tin khỏi các

nguy cơ bị kẻ xấu tấn cơng.

Bên cạnh đó, các doanh nghiệp hay các cơng ty cũng có thể tự mình tạo ra một

mơi trường Sandbox của riêng mình để thử nghiệm, phân tích một phần mềm, một tệp

tin nào đó khi mà người dùng chưa chắc chắn rằng chúng có làm hại đến máy tính của

mình hay khơng.



Hình 3.4: Sandbox là giải pháp cho cả doanh nghiệp lẫn quản lý

3.3.2. Vai trò của Sandbox

Một Sandbox về cơ bản là một mơi trường dùng để chạy phần mềm và mơi

trường đó có sự kiểm sốt hết sức chặt chẽ.

Khi cấp quyền cho một đoạn mã nào đó người dùng chỉ được thực hiện một số

chức năng nhất định bởi vì Sandbox đã giúp người dùng hạn chế chức năng của một

đoạn mã từ đó nó khơng thể thực hiện những can thiệp khác có thể làm nguy hại cho

máy tính của người dùng.

• Ví dụ cho vai trò của Sandbox:

Trình duyệt web mà người dùng sử dụng hàng ngày. Các trang web mà người

dùng truy cập đều được chạy trong môi trường Sandbox. Website sẽ bị hạn chế và chỉ

được chạy trong trình duyệt cũng như chỉ được can thiệp vào một phần nhỏ trong tài

nguyên hệ thống. Chúng không được phép sử dụng webcam cũng như không thể truy

cập được vào các dữ liệu trên máy nếu như người dùng không cho phép.

30



Nếu như các trang web không bị giới hạn trong mơi trường Sandbox này, thì

khi bạn lỡ truy cập vào các website chứa mã độc, nguy cơ máy tính của bạn bị tấn

cơng là rất cao.

Các trình duyệt phổ biến hiện nay như Google Chrome và Internet Explorer

đều chạy trong mơi trường Sandbox.

Những trình duyệt này chạy trên máy tính nhưng khơng được phép truy cập vào

tồn bộ tài nguyên máy, mà chỉ có thể sử dụng một lượng nhỏ tài ngun hệ thống của

máy tính mà thơi.

Điều này đã giúp một trang web độc hại tìm ra được lỗ hổng bảo mật và chiếm

quyền điều khiển trình duyệt, chúng cũng không thể làm tổn hại tới máy tính của

người dùng, bởi bản thân trình duyệt lúc này đang bị cơ lập với hệ thống nhờ

Sandbox.

• Những ứng dụng đang sử dụng Sandbox:

Hiện nay, rất nhiều ứng dụng ở nhiều nền tảng đã áp dụng Sandbox để bảo vệ

người dùng. Cụ thể như sau:

Các website: Các trình duyệt web bạn sử dụng sẽ cô lập trang web mà nó tải.

Website có thể chạy các mã JavaScript, nhưng đoạn mã này khơng thể làm

bất kì điều gì chúng muốn. Nếu JavaScript cố gắng truy cập vào dữ liệu mà

người dùng lưu trữ trên máy, yêu cầu truy cập này sẽ ngay lập tức bị từ chối.

Plug-in trình duyệt: Các nội dung mà plug-in của trình duyệt load (Flash hay

Silverlight) cũng được chạy ở môi trường Sandbox.

Việc chơi một game Flash trên web sẽ an toàn hơn so với việc tải game về chạy

dưới dạng một ứng dụng thông thường, bởi Flash sẽ cơ lập game khỏi hệ thống máy

tính cũng như giới hạn quyền truy cập vào hệ thống của game đó.

Tuy nhiên, một số plug-in trình duyệt, như Java, thường là mục tiêu của những

kẻ tấn công. Chúng tận dụng các lỗ hổng để vượt qua môi trường Sandbox và thực

hiện các hành vi phá hoại.

PDF, Microsoft Office: Trình đọc file PDF là Adobe Reader cũng chạy các

file PDF trong môi trường Sandbox, ngăn chặn chúng truy cập vào hệ thống

máy tính. Trong khi đó, bộ cơng cụ văn phòng Office của Microsoft cũng có

chế độ Sandbox để ngăn các đoạn macro khơng an tồn làm hại đến máy

tính.

31



-



Trình duyệt web: Như đã nói trên, các trình duyệt web cũng chạy trong môi

trường Sandbox để trong trường hợp kẻ tấn cơng chiếm được quyền điều

khiển trình duyệt, chúng cũng không thể ăn cắp được dữ liệu trong máy.

Ứng dụng di động: Các hệ điều hành di động hiện nay, gồm iOS, Android,

Windows 8, đều chạy ứng dụng trong môi trường Sandbox. Chúng chỉ được

phép truy cập vào tài nguyên hệ thống, như dùng GPS để theo dõi vị trí của

bạn nếu người dùng đồng ý truy cập. Ngồi ra, việc từng ứng dụng đều chạy

trong môi trường Sandbox riêng sẽ ngăn chặn không cho các ứng dụng này

can thiệp vào nhau.

Ứng dụng Windows: Nếu người dùng đang sử dụng các chức năng của User

Account Control trên Windows, điều đó cũng có nghĩa là đang áp dụng

Sandbox cho việc bảo mật, mặc dù việc áp dụng này chỉ ở cấp độ thấp.

Về cơ bản, các chức năng này chỉ là hỏi người dùng có cho phép một ứng dụng

nào đó truy cập vào tập tin hệ thống hay khơng mà thơi, và bất kì ứng dụng Windows

nào cũng có thể lựa chọn để chạy ngầm và theo dõi toàn bộ thao tác bàn phím trong

khi người dùng khơng hề hay biết.

• Cách thiết lập Sandbox cho ứng dụng:

Vì các ứng dụng Windows truyền thống không được thiết lập để mặc định chạy

trong môi trường Sandbox. Vậy nên, nếu người dùng muốn test một ứng dụng nào đó

mà khơng sợ làm ảnh hưởng tới phần còn lại của hệ thống, có thể áp dụng các phương

pháp sau để chạy ứng dụng trong mơi trường Sandbox.

Máy ảo: Các chương trình máy ảo như VirtualBox hay VMware sẽ giúp tạo

ra các thiết bị phần cứng ảo và nó sẽ dùng để chạy một hệ điều hành. Toàn

bộ hệ điều hành mới này được “cơ lập” với hệ thống cũ. Nó khơng được

phép truy cập vào bất kì tài ngun nào bên ngồi máy ảo. Do vậy, người

dùng có thể cài phần mềm lên hệ điều hành được ảo hóa này để tiến hành

thử nghiệm mà không sợ gây hại cho hệ thống thật của mình. Nhờ đó, người

dùng có thể thoải mái cài đặt mã độc để tiến hành phân tích mà khơng làm

ảnh hưởng tới máy tính.

Sandboxie: Sandboxie là một ứng dụng giúp tạo môi trường Sandbox cho

các ứng dụng Windows khác. Nó sẽ tạo ra một mơi trường ảo và được cô lập



32



để người dùng dùng cho việc thử nghiệm các ứng dụng, ngăn chặn các phần

mềm này can thiệp vào hệ thống thật.

3.3.3. Ưu điểm của Sandbox

- Ghi dấu các hàm API của Windows được gọi.

- Sao chép các tập tin được tạo ra và các tập tin bị xóa khỏi hệ thống.

- Lưu được bộ nhớ của tiến trình của mã độc và bộ nhớ của tồn hệ thống để

phân tích (kết hợp với cơng cụ Volatility).

- Chụp ảnh màn hình trong suốt quá trình thực thi mã độc.

- Theo vết và lưu các kết nối mạng để phân tích.

3.3.4. Nhược điểm của Sandbox

- Yêu cầu phải đưa được toàn bộ các thành phần của mã độc vào hệ thống

Sandbox, vì khi phát hiện mã độc trong hệ thống, chúng không chỉ tồn tại dưới một

tập tin thực thi duy nhất mà thường là ở dạng module với rất nhiều thành phần và

được cấu hình phức tạp.

- Mơi trường thực thi mã độc không phải môi trường thực tế đã bị lây nhiễm.

Do đó, đối với những mã độc được cài đặt có chủ đích (hoạt động với những tham số

đặc biệt) thì trên mơi trường Sandbox nhiều tính năng của mã độc sẽ khơng hoạt

động.



33



- Trong thời gian giám sát giới hạn, mã độc có thể “ngủ” (sleep) một thời gian

và không thực thi chức năng của nó, dẫn tới Sandbox khơng phát hiện được. Để giải

quyết vấn đề này, một số Sandbox hook vào hàm “Sleep” và đặt giá trị cho chúng một

khoảng thời gian ngắn, nhưng việc này không phải lúc nào cũng hiệu quả vì có rất

nhiều cách để một phần mềm nằm im không hoạt động một thời gian dài và các phần

mềm Sandbox thì khơng thể bao qt hết được các khả năng này.

- Mã độc cũng có thể dùng cơ chế phát hiện Sandbox để ngưng hoạt động của

mình.

3.4. Kết luận chương 3

Chương 3 của bài báo cáo đã trình bày quy trình phân tích mã độc dựa trên

phân tích động sử dụng Sandbox. Nội dung trình bày tìm hiểu về Sandbox cũng như

vai trò, ưu và nhược điểm của Sandbox.

Tiếp theo chương 4 sẽ trình bày thực nghiệm phân tích động trên hệ thống

Cuckoo Sandbox.



34



CHƯƠNG 4: THỰC NGHIỆM

4.1. Mô tả thực nghiệm

4.1.1. Mơ hình thực nghiệm

Ubuntu 18.04

(Cài đặt Python, Virtualbox)

Hệ thống Cuckoo Sandbox



Các tập tin cấu hình



Máy ảo Virtual Box

Cài đặt hệ điều hành Windows

Chạy agent.py nhận điều khiển quá trình phân tích



Các module phân tích

Giao diện web cho phép đưa mẫu và trả về kết quả phân tích



Hình 4.1. Mơ hình hệ thống phân tích mã độc Cuckoo Sandbox

4.1.1.1. Giới thiệu hệ thống

Cuckoo Sandbox [6] là phần mềm mã nguồn mở cho phép phân tích mã độc

một cách tự động. Cuckoo Sandbox là một tập các mã kịch bản viết bằng ngôn ngữ

Python, cho phép gắn thêm các thành phần để phân tích mã độc bằng cách đưa chúng

vào mơi trường ảo hố và theo dõi hành vi.

Cuckoo Sandbox có thể thu thập được dữ liệu như:

- Dấu vết của các hàm API được gọi bởi tất cả các tiến trình mã độc sinh ra.

- Các tập tin được tạo, xóa, sửa, tải xuống bởi mã độc trong suốt q trình thực

thi của chúng.

- Trích xuất tồn bộ bộ nhớ (memory dump) của một tiến trình.

- Trích xuất tồn bộ bộ nhớ của hệ thống.

- Theo vết việc truyền tải dữ liệu theo định dạng PCAP.

- Phân tích các dữ liệu trích xuất được.

- Phân tích một/nhiều URL.



35



Cuckoo Sandbox hỗ trợ giao diện dòng lệnh và giao diện đồ họa trên nền web.

Trong bài báo cáo đã triển khai Cuckoo Sandbox trên nền hệ điều hành Ubuntu 18.04

và dùng máy ảo VirtualBox làm mơi trường phân tích.

4.1.1.2. Cài đặt hệ thống

Các bước cài đặt Cuckoo Sandbox trên môi trường Ubuntu kết hợp với máy ảo

VirtualBox.

Cuckoo Sandbox được phát triển trên Python và dử dụng các thành phần như

MongoDB, Yara, SSDEEP, Tcpdump,…

a)

Cài đặt Python libraries (Python 2.7)

$ sudo apt-get install python python-pip python-dev libffi-dev libssl-dev

$ sudo apt-get install python-virtualenv python-setuptools

$ sudo apt-get install libjpeg-dev zlib1g-dev swig



b)



Cài đặt MongoDB, PostgreSQL

$ sudo apt-get install mongodb

$ sudo apt-get install postgresql libpq-dev



c)



Cài đặt VirtualBox 5.1

$ echo deb http://download.virtualbox.org/virtualbox/debian xenial contrib |

sudo tee -a /etc/apt/sources.list.d/virtualbox.list

$ wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- |

sudo apt-key add $ sudo apt-get update

$ sudo apt-get install virtualbox-5.1



d)



Cài đặt Tcpdump (Chỉnh sửa quyền cho Tcpdump để Cuckoo có thể thực hiện

với quyền khơng phải quyền quản trị)

$ sudo apt-get install tcpdump apparmor-utils

$ sudo aa-disable /usr/sbin/tcpdump

$ sudo apt-get install tcpdump

$ sudo setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump

$ getcap /usr/sbin/tcpdump

/usr/sbin/tcpdump = cap_net_admin,cap_net_raw+eip

$ sudo apt-get install libcap2-bin



e)



Cài đặt Volatility

$ pip install openpyxl

$ pip install ujson

$ pip install pycrypto

$ pip install distorm3

$ pip install pytz

$ git clone https://github.com/volatilityfoundation/volatility.git



36



$ cd volatility

$ python setup.py build

$ python setup.py install



f) Cài đặt M2Crypto, guacd



$ sudo apt-get install swig

$ sudo pip install m2crypto==0.24.0

$ sudo apt install libguac-client-rdp0 libguac-client-vnc0 libguac-client-ssh0

guacd



g) Cài đặt Cuckoo Sandbox

$ sudo useradd cuckoo

$ sudo usermod -a -G vboxusers cuckoo



;tạo tài khoản

;tài khoản chạy cuckoo và tài



khoản virtualbox phải đồng nhất

$ id cuckoo

$ sudo pip install -U pip setuptools

$ sudo pip install -U cuckoo



;kiểm tra tài khoản

;tải và cài đặt cuckoo



4.1.2. Dữ liệu thực nghiệm

Locky Ransomware là một loại mã độc mã hoá file tống tiền. Locky sử dụng

phương thức mã hoá để khoá các tập tin trên thiết bị của nạn nhân và yêu cầu trả tiền

để giải mã. Mã độc này sử dụng thuật toán AES để mã hoá dữ liệu cũng như tập tin

trên mạng chia sẻ (Network Sharing). Khi bị nhiễm mã độc này, nếu như nạn nhân

không trả tiền, dữ liệu sẽ bị khố vĩnh viễn.



37



Hình 4.2. Trang thanh toán của Locky phiên bản mới nhất

4.2. Triển khai thực nghiệm

4.2.1. Thiết lập địa chỉ ip trên máy ảo cuckoo1

- Thiếp lập địa chỉ ip máy ảo cuckoo1 (Window 7 OS):



Hình 4.3. Địa chỉ ip máy ảo cuckoo1 (Window 7 OS)

38



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

CHƯƠNG 3: PHƯƠNG PHÁP PHÂN TÍCH ĐỘNG TRONG PHÁT HIỆN MÃ ĐỘC SỬ DỤNG SANDBOX

Tải bản đầy đủ ngay(0 tr)

×