1. Trang chủ
  2. » Luận Văn - Báo Cáo

báo cáo thực tập tốt nghiệp công nghệ thông tin tìm hiểu phân tích mã độc

27 1,5K 10

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 27
Dung lượng 1,89 MB

Nội dung

Cũng vì lẽ đó việc tìm hiểu phân tích nghiên cứu mà độc là một bước vô cùng quan trọng để có thể đẩy lùi giảm bớt hậu quả của malware Trong bài báo cáo này em xin trình bày những tìm hiể

Trang 1

BÁO CÁO THỰC TẬP TỐT NGHIỆP

CHUYÊN NGÀNH: AN TOÀN THÔNG TIN

Trang 2

MỤC LỤ

MỤC LỤC 1

DANH MỤC HÌNH ẢNH 3

DANH MỤC BẢNG, BIỂU 3

LỜI MỞ ĐẦU 4

Chương 1: Kỹ năng quản trị hệ thống 5

1.1 Cài đặt, cấu hình hệ điều hành và các dịch vụ cho các máy chủ 5

1.2 Cài đặt và cấu hình các máy chủ quản trị CSDL 6

1.3 Cài đặt, cấu hình và sử dụng các phần mềm rà quét virus và phát hiện tấn công 6

Chương 2: Tìm hiểu về phần tích mã độc 7

2.1 Phân tích mã độc và những điều cơ bản cần biết 7

2.1.1 Malware Analysis - Phân tích mã độc 7

2.1.2 Malware Analysis Techniques - Kỹ thuật phân tích phần mềm độc hại 8

2.1.3 Type of malware - Phân loại phần mềm độc hại 8

2.2 Basic static analysis - Kỹ thuật phân tích tĩnh cơ bản 8

2.2.1 Antivirus Scanning: A Useful First Step 8

2.2.2 Hashing: A Fingerprint for Malware 9

2.2.3 Packed and Obfuscated Malware 9

2.2.4 Linked Libraries and Functions 9

2.2.5 The PE File Headers and Sections 10

2.3 Basic dynamic analysis 10

2.3.1 Malware analysis in virtual machines: 10

2.3.2 Using sandbox 11

2.3.3 Monitoring with Process Monitor 12

2.3.4 Viewing Processes with Process Explorer 12

2.3.5 Faking a Network - Kiểm tra kết nối mạng 12

Trang 3

2.4.1 Advanced static analysis Techniques - Kỹ thuật phân tích tĩnh nâng cao 13

2.4.2 IDA PRO 17

2.4.3 Recognizing C codeconstructs in assembly 19

2.5 Advanced dynamic analysis 20

2.5.1 Debugging 20

2.5.2 Ollydbg 22

KẾT LUẬN 24

TÀI LIỆU THAM KHẢO 25

Trang 4

DANH MỤC HÌNH Ả

Hình 1.1-1: Giao diện quản lý user và group 5

Hình 1.1-2 Giao diện quản lý DNS 5

Hình 1.1-3: Kiểm tra dịch vụ DNS bằng Nslookup 6

Hình 1.3-1: Cài đặt Avast AV trên máy tính 6

Hình 2.2-1: Xem thông tin về một file qua virustotal.com 8

Hình 2.2-2: Sử dụng PEID phát hiện packed file 8

YHình 2.2.1-1: Xem thông tin về một file qua virustotal.com 8

Hình 2.2.3-1: Sử dụng PEID phát hiện packed file 8

Hình 2.2.4-1: Sử dụng Dependency walker lấy thông tin về functions và libraries từ một file 9

Hình 2.3.3-1: Công cụ Process Monitor 10

Hình 2.3.5-1: Wireshark 11

Hình 2.4.1-1: Ví dụ Code Level 12

Hình 2.4.2-1: Giao diện của IDA free 5.0 15

Hình 2.5.2-1: Giao diện Ollydbg 18

DANH MỤC BẢNG, BIỂU Bảng 2.4.1-1: The x86 registers 13

Bảng 2.4.1-2: Một số chỉ lệnh cơ bản trong x86 13

Trang 5

LỜI MỞ ĐẦU

Với sự phát triển mạnh mẽ của internet và công nghệ thông tin ngày càng xuất hiện nhiều mối nguy hại gây ảnh hưởng xấu đến người dùng cũng như phá hoại, đánh cắp thu thâp thông tin Mã độc - Malware một trong những mối nguy hại tiềm tàng gây hâu quả nghiêm trong đến hệ thống và người sử dụng Mã độc xuất hiện ngày càng nhiều với các hình thái ngày càng phức tạp, chúng có thể xuất hiện bất kỳ ở đâu trên môi trường của các thiết bị điện tử như máy tính smart phone, máy tính bản …,qua Internet, trong các phần mềm miễn phí Ngăn chặn phòng ngừa khắc phục hâu quả của malware là yêu cầu bức thiết hiện nay Cũng vì lẽ đó việc tìm hiểu phân tích nghiên cứu mà độc là một bước vô cùng quan trọng để có thể đẩy lùi giảm bớt hậu quả của malware

Trong bài báo cáo này em xin trình bày những tìm hiểu ban đầu của mình về phân tích phần mềm độc hại – malware analysis Nội dung báo cáo bao gồm 2 chương lớn chú yếu tâp trung ở chương 2

Chương 1: Kỹ năng quan trị hệ thống

Chương 2: Tìm hiểu về phân tích mã độc

Trang 6

Chương 1: Kỹ năng quản trị hệ thống 1.1 Cài đặt, cấu hình hệ điều hành và các dịch vụ cho các máy chủ

a Cài đặt hệ điều hành: cài đặt thành công windows server 2008 và CentOS trênLinux

b Quản trị người dùng và nhóm người dùng

Hình 1.1-1: Giao diện quản lý user và group

c Quản trị quyền truy nhập đến các files và thư mục

d Cài đặt và cấu hình dịch vụ danh mục: cài đặt cấu hình thành công ActiveDirectory trên Windows

e Cài đặt và cấu hình dịch vụ web: IIS với Windows và Apache trên CentOS thànhcông

f Cài đặt và cấu hình dịch vụ DNS trên Windows và Bind/Named trên CentOSthành công

Trang 7

Hình 1.1-2 Giao diện quản lý DNS

Hình 1.1-3: Kiểm tra dịch vụ DNS bằng Nslookup

1.2 Cài đặt và cấu hình các máy chủ quản trị CSDL

Cài đặt và cấu hình các máy chủ CSDL thông dụng: MS SQL Server 2008 vàMySQL

1.3 Cài đặt, cấu hình và sử dụng các phần mềm rà quét virus và

phát hiện tấn công

Cài đặt, cấu hình và sử dụng các phần mềm rà quét virus:

Avast AV, Norton AV, Symantec AV…

Trang 8

Hình 1.3-4: Cài đặt Avast AV trên máy tính

Chương 2: Tìm hiểu về phần tích mã độc

2.1 Phân tích mã độc và những điều cơ bản cần biết

2.1.1. Malware Analysis - Phân tích mã độc

Trước hết để hiêu khái niêm này chúng ta hiểu thế nào là malware

Malware viết tắt của từ malicious software được gọi là phần mềm độc hại hay phần mềm

ác ý Phần mềm độc hại được định nghĩa là một loại phần mềm hay chuong trình có đoạn

mã được thiết kế để thực hiện hành vi tấn công hệ thống, đánh cắp thông tin, xâm nhậpvào hệ thống, gây tổn hại đến tính bí mật, tính toàn vẹn hoặc tính sẵn sang của hệ thống.Cũng như nhưng loại virus nhiễm bệnh trên con người malware cũng gây tác hại lướnđến hệ thống máy tính của bạn vì vậy việc phòng chống ngăn chặn nó là điều cần thiết.Malware Analysis hay còn được gọi là phân tích mã độc hay phân tích phần mềm độc hạichính là một bước quan trọng trong đó

Phân tích mã độc là việc thực hiện các biện pháp nghiệp vụ để thu thập, tìm hiểu nghiêncứu mọi thông tin về mã độc từ đó xác định đặc tính, hành vi của mã độc, cũng như ảnhhưởng và tác hại của nó để rồi sau đó đưa ra các biện pháp phòng chống và ngăn chặn

Trang 9

Mục đích của phân tích mã độc là để cung cấp các thông tin đầy đủ nhất về mã độc từ đóxây dựng biện pháp pháp hiện xử lý chúng Mục tiêu của những người phân tích thường

sẽ là xác định chính xác những gì đã xảy ra, chúng làm việc gì, gây ảnh hưởng thế nàođến hệ thống đến máy tính của bạn …

2.1.2. Malware Analysis Techniques - Kỹ thuật phân tích phần mềm độc hại

Có hai phương pháp cơ bản để phân tíchphần mềm độc hại: phân tích tĩnh và phântích động (static and dynamic analysis).Đúng như cái tên phân tích tĩnh sử dụng cácphương pháp kiểm tra các phần mềm độc hại

mà không cần chạy nó Phân tích năng độngtìm hiểu mã đôc thông qua việc chạy cácphần mềm độc hại Cả hai kỹ thuật trên được tiếp tục phân loại thành cơ bản và nâng cao(basic and advanced analysis)

2.1.3. Type of malware - Phân loại phần mềm độc hại

Để phân tích mã độc một cách hiệu quả chúng ta cần hiểu rõ chúng gồm những loại,những biến thể nào Hiện nay phần mềm độc hại vô cùng đa dạng bao gồm nhiều loạikhác nhau: Virus, Worm, Trojan horse, Exploit kit, Rootkit, Keylogger, Spyware,Adware

2.2 Basic static analysis - Kỹ thuật phân tích tĩnh cơ bản

Phân tích tĩnh cơ bản là bước đầu tiên trong quá trình phân tích phần mềm độc hại Ởbước này đa phần là sử dụng công cụ tool để thu thâp thông tin

Trang 10

2.2.1. Antivirus Scanning: A Useful First Step

Có thể sử dụng công cụ antivirus hoặcvào website http://www.virustotal.com/

để scan kiểm tra thông tin về file nghingờ từ đó nắm bắt thông tin ban đầu

2.2.2. Hashing: A Fingerprint for Malware

Mỗi loại malware virus khác nhau đều có một mã hash xác định thông thường từ mã hashnày mà các phần mềm anti có thể scan virus…

Sử dụng công cụ winMD5 để hash file malware thành mã MD5

2.2.3. Packed and Obfuscated Malware

Malware thường được packing hoặc

obfuscation để che dấu thông tin làm cho

người phân tích khó khăn hơn trong việc

phân tích thu thâp thông tin

Hình 2.2-5: Xem thông tin về một file qua

file

Trang 11

Sử dụng công cụ PEiD để phát hiện packed file Muốn unpack một file có thể sử dụngmôt số công cụ khác như PE Explorer….hoặc tìm kiếm thông qua google nhưng đa phầnchỉ có thể unpack những loại đơn giản thường gặp

2.2.4. Linked Libraries and Functions

Thu thâp thông tin functions mà malware import là một trong những phần quan trongnhất Cũng như các đoạn code thông thường code của malware cũng phải dựa trên cácfunctions lấy từ các Libraries thường là của windows API để thực hiện chức năng Từviệc phát hiện thu thâp thông tin về thư viện libraries và functions những nhà phân tích sẽ

có cái nhìn nhận đầu tiên về chức năng mà malware sẽ thực hiện Ở phần đầu này chủyếu sử dụng tool để lấy thông tin về functions và libraries từ một file

Hình 2.2.4-1: Sử dụng Dependency walker lấy thông tin về functions và libraries từ một file

2.2.5. The PE File Headers and Sections

Kiểm tra file headers và sections cung cấp một số thông tin hữu ích khác Chúng ta có thể

sử dụng công cụ PEView để show thông tin của PE file

2.3 Basic dynamic analysis

Dynamic analysis techniques là bước thứ hai trong quá trình phân tích malware Dynamicanalysis thường được thực hiện sau basic static analysis đã được thực hiện xong vì rõràng việc sử dụng basic static analysis mục đích chính là thu thâp thông tin ban đầu cho

Trang 12

người phân tích Dynamic analysis yêu cầu monitering malware khi nó runs hoặc là kiểmtra hệ thống sau khi malware đã được thực thi Không giống như static analysis, dynamicanalysis giúp bạn quan sát được các chức năng thực sự của malware

2.3.1. Malware analysis in virtual machines:

Trước khi muốn phân tích động malware cần xây dựng một môi trường phù hợp màkhông gây ảnh hưởng tác hại đến máy tính của bạn

Như đã biết sử dụng công nghệ ảo hóa, chạy phân tích malware trên máy ảo sẽ không gâyảnh hưởng đến máy thật Có thể xây dựng máy ảo xp or linux và cài các tool trên đó đểthực hiện phân tích động Bên cạnh đó cần chú ý kiểm tra kết nối mạng ra ngoài trên máy

ảo, có những lựa chọn phù hợp vì có một số loại malware cũng gây ảnh hưởng đến đườngtruyền mạng của bạn Thông thường nên để ở chế độ custom không cho nối mạng rangoài tùy vào yêu cầu của phân tích mà có thể thay đổi sau Ngoài ra cần kết hơp sử dụngsnapshot để đánh dấu cũng như lưu lại trang thái tại một thời điểm của một máy tính để

có thể so sánh phân tích…

2.3.2. Using sandbox

Sandbox là một trong những cộng cụ hữu hiêu hỗ trợ phân tích động được sử dụng đểrunning các chương trình không đáng tin mà không phải lo sợ nó ảnh hưởng đến các hệthống thực Sandboxes bao gồm các môi trường được ảo hóa mà thường mô phỏng cácdịch vụ mạng theo một vài kiểu mẫu nào đó để đảm bảo rằng phần mềm hoặc là malwaređược tested sẽ hoạt động bình thường

Các sandboxes cung cấp output dễ hiểu và là thích hợp cho bước phân loại ban đầu

Hiện nay có nhiều malware sandboxes - như là Norman SandBox, GFI Sandbox, Anubis,Joe Sandbox, ThreatExpert, BitBlaze, và Comodo Instant Malware Analysis - sẽ phântích malware miễn phí Hiện tại, Norman Sandbox và GFI Sandbox (ban đầu có tên làCWSandbox) là 2 sandboxes phổ biến nhất

Sandboxes cũng có khá nhiều nhược điểm:

Trang 13

 Malware thường phát hiện khi nó đang được running trong một máy ảo, và nếumột máy ảo bị phát hiện, malware có thể dùng việc running hoặc trở mặt cư xửkhác đi Không phải tất cả sandboxes đều giải quyết được vấn đề này

 Một vài malware yêu cầu sự hiện diện của registry keys nhất định hoặc files trên

hệ thống mà những thứ này có thể không được tìm thấy trong sandbox Nhiều cáicòn yêu cầu chứa dữ liệu hợp lệ, ví dụ như commands hoặc encrytion keys

 Nếu malware là một DLL, một lượng nhất định exported functions sẽ không đượcinvoked một cách thích hợp, bởi vì một DLL sẽ không run dễ dàng như là mộtexcutable

2.3.3. Monitoring with Process Monitor

Process Monitor hay còn

được gọi ProcMon, là một

công cụ giám sát tiên tiến

cho Windows cung cấp một

cách để theo dõi registry, file

system, network, process and

thread activity Công cụ

tương tự trên windows là:

FileMon và RegMon

Hình 2.3.3-2: Công cụ Process Monitor

Trang 14

2.3.4. Viewing Processes with Process Explorer

Công cụ Process Explorer (một công cụ miễn phí từ Microsoft) là một công cụ cực kỳmạnh mẽ thưc hiện chức năng quản lý cung cấp thông tin thông số process properties, cácthông tin hệ thống, DLL được nạp bởi prosess đang chạy… Cũng tương tư task managerngoài chức năng view process người sử dụng hoàn toàn có thể loại bỏ tắt một process nếumuốn, log out users, và khởi động and xác nhận processes …

2.3.5. Faking a Network - Kiểm tra kết nối mạng

Một số loại malware không chỉ tác động vào hê thống nó còn có thể kết nối thông quamang interner ra ngoài đánh cắp thông tin, kết nối với máy chủ …

 Using ApateDNS

ApateDNS một công cụ miễn phí từ Mandiant (www.mandiant.com/products/research/mandiant_apatedns), là cách nhanh nhất để xem các yêu cầu DNS được thực hiện bởimalware phần mềm độc hại ApateDNS hoạt động dựa trên việc lắng nghe gói tin UDPvới port tương ứng 53 để lấy ip

 Packet Sniffing with Wireshark

Wireshark là một trong nhữngcông cụ mạnh mẽ nhất trong việctheo dõi bắt giám sát packet.Thông qua wireshark chúng tahoàn toàn có thể làm rất nhiềuviệc Người phân tích hoàn toàn

có thể dựa trên các fiter củawireshark để bắt các packet phùhợp thu thâp thông tin Sử dụngFollow TCP Stream để xem nộidung của TCP section …

Hình 2.3.5-3: Wireshark

Trang 15

2.4 Advanced static analysis - Phân tích tĩnh nâng cao

Như ở phân trên đã nêu việc phân tích tĩnh cơ bản chỉ là thu thâp các thông tin cơ bản từ

đó có những nhìn nhận phong đoán ban đầu về malware Muốn phân tích malware tĩnhmột cách cụ thể rõ ràng hơn cần đi sâu vào đọc phân tích code

2.4.1. Advanced static analysis Techniques - Kỹ thuật phân tích tĩnh nâng cao

Các ứng dụng phần mềm cũng như các loại malware đều được viết trên một ngôn ngữ lâptrình nào đó Như những phần mềm ứng dụng được viết trên Java hay các trang web đượcviêt trên asp, php … malware cũng được viết trên môt loại ngôn ngữ cụ thể nào đó có thể

là C, Vitual basic, assembly… Muỗn phân tích code tất nhiên là cần show code củamalware lên nhưng rõ ràng malware không bao giờ cung cấp source code cho bạn (trừcác loại virus đã cũ hoặc chị phục vụ mục đích học tâp thì mới được cung cấp sourcecode) Vây làm thế nào để đoc được code của malware?

Như hình vẽ bên đoạn code banđầu được viết trên ngôn ngữ lâptrình C – một loại ngôn ngữ lâptrình bậc cao (High-LevelLanguage) Khi được Compiler vềngôn ngữ CPU nó chỉ là các mãASCII sau đó được Disassenbler

Hình 2.4.1-4: Ví dụ Code Level

Trang 16

về dạng ngôn ngữ lâp trình bậc thấp Muốn phân tích tĩnh một malware chúng ta cần đọchiểu loại ngôn ngữ lâp trình bâc thấp này

Để tìm hiểu về ngôn ngữ lâp trình bậc thấp chúng ta cần hiểu về kiến trúc x86, mainmemory, Registers, Flags, functions call…

Kiến trúc x86

Thuật ngữ x86 chỉ đến họ kiến trúc tập lệnh dựa trên bộ vi xử lý 8086 Thuật ngữ x86 lấy

từ hai số cuối của họ 8086 Rất nhiều thay đổi và mở rộng được thêm vào kiến trúc x86qua nhiều năm Kiến trúc này được hiện thực trong bộ vi xử lý từ Intel, AMD, VIA vànhiều tổ chức khác

Như thuật ngữ trở thành phổ biến sau sự giới thiệu của 80386, nó thường hàm ý nhị phântương đương với bộ tập lệnh 32 bit của 80386 Điều này đôi khi khẳng định x86-32 táchbiệt với gốc 16 bit x86-16 hoặc từ 64 bit x86-64 Mặc dù bộ vi xử lý x86 sử dụng trongmáy tính cá nhân mới và máy chủ

Registers

Register là thanh ghi thưc hiện nhiệm vụ lưu trữ dữ liệu có sẵn của CPU, mà nôi dụngtrong đó có thể truy câp một cách nhanh trong hơn là lưu trữ ở những nơi khác

Registers gồm 4 loại:

General registers được sử dụng bởi CPU trong quá trình thưc hiện

Segment registers sử dụng để theo dõi các phần của bộ nhớ

Status flags sử dụng để đưa ra quyết định

Instruction pointers sử dụng để theo dõi các lệnh tiếp theo để thưc hiện

Bảng 2.4.1-1: The x86 registers

Ngày đăng: 12/03/2015, 08:25

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w