NGHIÊN CỨU PHƯƠNG PHÁP PHÂN TÍCH ĐỘNG MÃ ĐỘC
Trang 1-NGUYỄN NGỌC QUÂN
NGHIÊN CỨU PHƯƠNG PHÁP PHÂN TÍCH ĐỘNG MÃ ĐỘC
CHUYÊN NGÀNH: HỆ THỐNG THÔNG TIN
MÃ SỐ: 60.48.01.04
BÁO CÁO LUẬN VĂN THẠC SĨ
HÀ NỘI – 2015
Trang 2Trước hết tôi xin cảm ơn sâu sắc tới TS Nguyễn Trung Kiên, đã định hướng cho tôitrong việc lựa chọn đề tài, đưa ra những nhận xét quý giá và trực tiếp hướng dẫn tôi trongsuốt quá trình nghiên cứu và hoàn thành luận văn tốt nghiệp.
Tôi xin cảm ơn các cán bộ Viện Công nghệ thông tin và truyền thông CDIT; các thầy
cô trong khoa Công nghệ thông tin, khoa Quốc tế và Đào tạo sau Đại học - Học viện Côngnghệ Bưu chính Viễn thông đã giúp đỡ và truyền đạt kiến thức cho tôi trong suốt thời gianhọc tập nghiên cứu tại trường
Tôi xin cảm ơn các cấp Lãnh đạo và toàn thể đồng nghiệp, gia đình, bạn bè đã chia
sẻ, giúp đỡ, tạo điều kiện cho tôi hoàn thành khóa luận này
Hà Nội, tháng năm 2015
Nguyễn Ngọc Quân
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan Luận văn này là công trình nghiên cứu khoa học nghiêm túc của cánhân, được thực hiện dưới sự hướng dẫn khoa học của TS Nguyễn Trung Kiên
Các số liệu, kết quả nghiên cứu và kết luận được trình bày trong Luận văn là trungthực và chưa được công bố dưới bất kỳ hình thức nào
Tôi xin chịu trách nhiệm về công trình nghiên cứu của mình
TÁC GIẢ LUẬN VĂN
Nguyễn Ngọc Quân
Trang 4MỤC LỤC
Trang 5Từ viết tắt Tiếng Anh Tiếng Việt
AV-TEST Tổ chức kiểm định và đánh giá độc
lập về các phần mềm diệt Virus cho Windows và Android
BKAV Công ty an ninh mạng BKAV
CPU Central Processing Unit Bộ xử lý trung tâm của máy tínhIPS Intrusion prevention system Hệ thống phát hiện xâm nhập
IDS Intrusion detection system Hệ thống ngăn ngừa xâm nhậpIIS Internet Information Services
MD5 Message Digest Algorithm 5 Thuật toán băm mã hóa dữ liệu MD5NIST National Institute of Standards and
Technology
Viện tiêu chuẩn - công nghệ quốc gia Hoa kỳ
P2P Peer to peer Mạng ngang hàng
PC Personal computer Máy tính cá nhân
PE File Portable Executable File
SHA-1 Secure Hash Algorithm 1 Thuật toán băm mã hóa dữ liệu
SHA-1VNCERT Vietnam Computer Emergency
Response Team Trung tâm ứng cứu khẩn cấp máy tính Việt NamVNPT Vietnam Posts and
Telecommunication Group Tập đoàn Bưu chính Viễn thông ViệtNam
Trang 6DANH MỤC HÌNH VẼ
Trang 7MỞ ĐẦU
Phát tán mã độc (Malware) đã thực sự trở thành một ngành “công nghiệp ” trong cáchoạt động gián điệp và phá hoại hệ thống, phần mềm hiện nay Theo thống kê từ các cơquan, tổ chức, doanh nghiệp chuyên về An ninh, an toàn thông tin, hoạt động phát tán mãđộc không chỉ tồn tại ở những nước phát triển mà ngay tại các nước đang phát triển như ViệtNam cũng trở thành mảnh đất màu mỡ cho các Hacker tấn công Mã độc được phát tán tạihầu hết các cơ quan quan trọng từ các cơ quan Chính phủ, Quốc hội tới các cơ quan tài chínhnhư ngân hàng, viện nghiên cứu, trường đại học,… Các phần mềm chứa mã độc được tồntại dưới rất nhiều hình thức và có khả năng lây lan vô cùng lớn
Không dừng lại ở đó, mã độc hiện tại đã lây lan đa nền tảng và hiện tại không chỉ giớihạn ở máy tính cá nhân mà còn lây lan sang các thiết bị thông minh như smartphone Vớitốc độ phát triển của nền kinh tế, hiện nay hầu hết mọi cá nhân đều sở hữu một thiết bị thôngminh hay máy tính cá nhân, vì vậy môi trường hoạt động dành cho mã độc ngày càng rộnglớn và thiệt hại chúng gây ra cho chúng ta là vô cùng lớn Theo thống kê của Trung tâm ứngcứu khẩn cấp máy tính Việt Nam (VNCERT) sự cố tấn công về mã độc đang có chiều hướnggia tăng với thủ đoạn ngày càng tinh vi
Nhằm góp phần hiểu rõ về hoạt động hành vi của mã độc cũng như tác hại của việcphát tán mã độc trên hệ thống, các thiết bị thông minh,… Luận văn đã tìm hiểu và nghiên
cứu về “Phương pháp phân tích động mã độc” Mục tiêu của Luận văn gồm các nội dung
chính:
• Nghiên cứu tổng quan về mã độc, phân loại mã độc, cách thức hoạt động, các hành
vi của mã độc và phương thức lây nhiễm của chúng
• Nghiên cứu sâu về kỹ thuật và các phương pháp phân tích mã độc Các phươngpháp phân tích tĩnh, phương pháp phân tích động… Bên cạnh đó nghiên cứu về các môitrường và công cụ phân tích mã độc
• Đề xuất quy trình và ứng dụng phân tích động mã độc trong thực tế
Phạm vi ứng dụng của nghiên cứu
Nghiên cứu các kỹ thuật phân tích nhận diện mã độc chính cùng với hành vi của nó và ápdụng các kỹ thuật này để thử nghiệm phân tích mã độc
Trang 8tính”, mã độc (Malware) được định nghĩa là một chương trình được chèn một cách bí mật
vào hệ thống với mục đích làm tổn hại đến tính bí mật, tính toàn vẹn hoặc tính sẵn sàng của
hệ thống Theo định nghĩa này mã độc bao hàm rất nhiều thể loại mà ở Việt Nam vẫn quen
gọi chung là Virus máy tính như Worm, Trojan, Spy-ware, … thậm chí là Virus hoặc các bộ công cụ để tấn công hệ thống mà các hacker thường sử dụng như Backdoor, Rootkit, Key-
logger.
1.1.2. Tình hình mã độc tại Việt Nam và trên thế giới
Kể từ khi mã độc đầu tiên xuất hiện vào năm 1984 đến năm 2013, theo viện nghiêncứu độc lập về an toàn thông tin AV-TEST, đã có khoảng hơn 120.000.000 mã độc đượcphát tán Đặc biệt, trong vòng năm năm gần đây, số lượng mã độc phát triển nhanh chóngtrên toàn thế giới đã đặt ra nhiều vấn đề về an ninh thông tin cho toàn bộ những người sửdụng Internet trên toàn cầu
Trang 9Hình 1: Số lượng mã độc từ 2009 đến 6/2013 theo AV-TEST
Chủng loại mã độc cũng đa dạng và phong phú hơn về cả hành vi và mục đích pháttán Các lĩnh vực mà mã độc nhắm đến bao gồm kinh tế, chính trị, tôn giáo và nhiều lĩnh vựcquan trọng khác Trong năm 2012, thế giới bị rúng động bởi sự hoành hành của Flame vàDuqu, những Virus đánh cắp thông tin mật của các hệ thống điện toán khu vực Trung Đông
Tại Việt Nam, xu hướng tấn công, phát tán phần mềm có mã độc vào các cơ quan,doanh nghiệp là hình thái mới của giới tội phạm mạng mang tính chất quốc gia và đã xuấthiện tại Việt Nam Bên cạnh các loại mã độc phổ biến thì cũng xuất hiện các dạng mã độcmới, như mã độc đính kèm trong tập tin văn bản Hầu hết người nhận được email đã mở tậptin văn bản đính kèm và bị nhiễm mã độc khai thác lỗ hổng của phần mềm Microsoft Office(bao gồm cả Word, Excel và PowerPoint) Khi xâm nhập vào máy tính, mã độc này âm thầmkiểm soát toàn bộ máy tính nạn nhân, mở cổng hậu (Backdoor), cho phép tin tặc điều khiểnmáy tính nạn nhân từ xa Chúng cũng nhận lệnh tin tặc tải các mã độc khác về máy tính đểghi lại thao tác bàn phím, chụp màn hình, lấy cắp tài liệu
Trang 10Dưới đây là hình 2 mô tả số liệu thống kê từ hãng bảo mật Kaspersky, năm 2012,
Việt Nam nằm trong danh sách 15 nước có tỉ lệ phát tán mã độc nhiều nhất thế giới,
Hình 2: Danh sách 15 nước phát tán mã độc nhiều nhất thế giới
Trước sự gia tăng mạnh mẽ về số lượng và mục đích tấn công của mã độc cũng cónhiều biện pháp nhằm ngăn chặn và phòng ngừa mã độc như sử dụng các chương trình diệtVirus, sử dụng các hệ thống tường lửa, IDS, IPS để bảo vệ hệ thống, Tuy nhiên các biệnpháp này chỉ phần nào ngăn chặn được các loại Virus đã được biết đến rộng rãi, còn các biếnthể mã độc hoặc các mã độc mới được sinh ra ngày càng nhiều thì hầu như vô hình trước cácbiện pháp bảo vệ trên
Trang 11Tại Trung tâm ứng cứu khẩn cấp máy tính Việt Nam (VNCERT), để có thể truy ranguồn phát tán mã độc và cập nhật nhanh nhất các dấu hiệu về mã độc cho các hệ thống bảo
vệ, thông thường các chuyên viên phải tiến hành phân tích hành vi mã độc bằng phươngpháp thủ công Nhưng với số lượng mã độc ngày càng nhiều thì việc chỉ dùng phương phápphân tích thủ công sẽ không theo kịp tiến độ, do vậy đề tài này nghiên cứu xây dựng một hệthống tự động phân tích hành vi mã độc nhằm hỗ trợ công tác chuyên môn, nhanh chóngnhận diện và phát hiện hành vi của các loại mã độc mới xuất hiện để có biện pháp ứng cứu
sự cố theo đúng chức năng của VNCERT, đồng thời giúp rút ngắn thời gian phân tích mãđộc nhưng lại phân tích được nhiều mã độc hơn trước
Theo thống kê của VNCERT và hiệp hội an toàn thông tin Việt Nam, trong năm 2012
đã có tới 2.203 website của các cơ quan doanh nghiệp tại Việt Nam bị tin tặc tấn công vàchiếm quyền điều khiển Sau khi đã kiểm soát thành công một hệ thống mạng hoặc website,tin tặc thường sử dụng mã độc để duy trì sự điều khiển cũng như để dò tìm và tấn công quacác hệ thống khác có liên quan đến mạng hiện tại Bên cạnh đó mã độc cũng là công cụ đểphá hoại dữ liệu và đánh cắp thông tin cá nhân của người dùng, các công cụ diệt Virus phầnlớn thường không phát hiện hoặc phát hiện chậm các loại Virus mới xuất hiện
1.2. Phân loại mã độc
Trong tài liệu của NIST có một số khác biệt theo định nghĩa và cách hiểu thôngthường về Virus máy tính đang thông dụng Ngay trong tên của tài liệu đã nêu lên sự khácbiệt, các tác giả nói tới “Malware” chứ không sử dụng thuật ngữ “Virus” Tại Việt Nam hiệnnay, thuật ngữ “Virus máy tính” được dùng hết sức rộng rãi và bao hàm tất cả các dạng mãđộc hại trên mạng, trong máy tính cá nhân Khi nói đến “Virus máy tính”, một cách rất tự
nhiên tất cả mọi người đều nghĩ Virus bao gồm cả Worm, Trojan, Keylogger Trong khi theo định nghĩa của NIST (và gần như là của cả cộng đồng IT) Virus, Worm, Trojan horse,
Adware, Spyware, Backdoor, Botnet, Launcher, Rootkit, chỉ là một dạng của mã độc hại.
Sự khác biệt này dẫn tới một số khó khăn, ví dụ như khi trao đổi với các tổ chức quốc
tế về an toàn thông tin, trao đổi với hỗ trợ kỹ thuật từ các Trung tâm phòng chống Virus củanước ngoài do không đồng nhất về định nghĩa Phía Việt nam thông báo “bị Virus tấn công”,đối tác sẽ gửi lại một chỉ dẫn để quét tập tin bị nhiễm trên PC, nhưng thực chất đó là mộtcuộc tấn công của Worm và phải phòng chống trên toàn bộ mạng Do vậy phần này sẽ tậptrung vào việc phân loại và giới thiệu về một số loại mã độc với các chức năng và mục đíchhoạt động khác nhau
1.2.1. Virus máy tính
Trang 12Trong khoa học máy tính, Virus máy tính (thường được người sử dụng gọi tắt làVirus) là những chương trình hay đoạn mã được thiết kế để tự nhân bản và sao chép chính
nó vào các đối tượng lây nhiễm khác (tập tin, ổ đĩa, máy tính, )
Trước đây, Virus thường được viết bởi một số người am hiểu về lập trình muốnchứng tỏ khả năng của mình nên thường Virus có các hành động phá hoại như làm chươngtrình không hoạt động đúng như mong muốn, xóa dữ liệu, làm hỏng ổ cứng,
Những Virus mới được viết trong thời gian gần đây không còn thực hiện các trò đùahay sự phá hoại đối máy tính của nạn nhân bị lây nhiễm nữa, mà đa phần hướng đến việc lấycắp các thông tin cá nhân nhạy cảm (các mã số thẻ tín dụng, tài khoản, tài liệu mật…) mởcửa sau cho tin tặc đột nhập chiếm quyền điều khiển hoặc thực hiện các hành động khácnhằm có lợi cho người phát tán Virus
Chiếm trên 90% số Virus đã được phát hiện là nhắm vào hệ thống sử dụng hệ điềuhành họ Windows chỉ đơn giản bởi hệ điều hành này được sử dụng nhiều nhất trên thế giới
Do tính thông dụng của Windows nên các tin tặc thường tập trung hướng vào chúng nhiềuhơn là các hệ điều hành khác Ngày nay ngoài những mẫu Virus thông thường thì đã xuấthiện những biến thể Virus khác với các kỹ thuật tinh vi hơn cụ thể là Virus đa hình(polymorphic) và siêu đa hình (meta-polymorphic)
Hình 4: Virus đính kèm trong các tập tin thực thi
Virus đa hình khác với các loại Virus thông thường ở chỗ Virus thông thường luôngiữ nguyên mã lệnh của mình, chính vì vậy chúng dễ dàng bị phát hiện bởi các phần mềm
Trang 13diệt Virus Nhưng Virus đa hình có khả năng tự động biến đổi mã lệnh và tạo ra các dạng mãđộc khác nhau (sử dụng thuật toán dựa trên thời gian và đối tượng lây nhiễm) trong mỗi lầnlây nhiễm Khả năng này giúp cho Virus đa hình có thể lẩn tránh khỏi sự truy quét của cácphần mềm diệt Virus Virus siêu đa hình là thế hệ cao hơn của Virus đa hình, chúng cao cấphơn ở chỗ hình thức lai tạo và kết hợp nhiều kiểu đa hình khác nhau Khi lây nhiễm chúng sẽ
tự động biến đổi, lai tạp và hình thành các thế hệ Virus con từ F1…Fn Sau mỗi lần lai tạpthì khả năng phát hiện ra chúng càng khó khăn, chính vì vậy Virus siêu đa hình hầu hết quamắt được các phần mềm diệt Virus không có cơ chế quét sâu và dẫn tới việc quét Virus
không triệt để Một số Virus siêu đa hình như Vetor, Sality…
1.2.2. Sâu máy tính
Sâu máy tính (Worm): cũng là một dạng mã độc nhưng có khả năng tự nhân bản, tựtấn công và tự tìm cách lan truyền qua hệ thống mạng (thường là qua hệ thống thư điện tử vàcác lỗ hổng trong hệ điều hành) Điểm cần lưu ý ở đây, ngoài tác hại thẳng lên máy bịnhiễm, nhiệm vụ chính của Worm là phá các mạng thông tin, làm giảm khả năng hoạt độnghoặc có thể được dùng để đánh cắp thông tin nhạy cảm từ các mạng này
Worm nổi tiếng nhất được tạo bởi Robert Morris vào năm 1988 Nó có thể làm hỏngbất kì hệ điều hành UNIX nào trên Internet Trong năm 2001, sâu mật mã đỏ xuất hiện vàtấn công vào các máy Windows để khai thác lỗ hổng trên máy chủ web IIS, sâu này đã tạo ramột kỷ lục về tốc độ lây lan khi chỉ trong một ngày 19-07-2001 đã có hơn 359.000 máy tính
bị nhiễm
Hình 5: Mô tả mức độ lây lan của sâu mật mã đỏ năm 20011.2.3. Trojan hourse
Trang 14Trojan Horse, đây là loại chương trình cũng có tác hại tương tự như Virus máy tínhchỉ khác là nó không tự nhân bản ra Như thế, cách lan truyền duy nhất là thông qua các thưđiện tử hoặc thông qua các phần mềm miễn phí có đính kèm Trojan Thông thường, tínhnăng chính của Trojan là nhắm đến những nhóm người dùng riêng để thu thập thông tin vềhành vi và thói quen sử dụng internet của họ sau đó gửi các thông tin này về cho tin tặc Đểtrừ loại này người dùng chỉ việc tìm ra tập tin Trojan horse rồi xóa nó đi là xong Tuy nhiên,không có nghĩa là không thể có hai con Trojan horse trên cùng một hệ thống Chính những
kẻ tạo ra các phần mềm này sẽ sử dụng kỹ năng lập trình của mình để sao lưu thật nhiều contrước khi phát tán lên mạng Đây cũng là loại mã độc cực kỳ nguy hiểm, nó có thể hủy ổcứng, hủy dữ liệu
Hình 6: Trojan ẩn mình trong các phần mềm miễn phí
1.2.4. Phần mềm gián điệp (Spyware)
Spyware hay còn gọi phần mềm gián điệp là một dạng mã độc nhằm theo dõi nhữnghoạt động của người dùng và gửi dữ liệu tới người điều khiển chúng để phục vụ cho mụcđích riêng của họ Ví dụ, những người của những công ty Marketing cố gắng thu thập nhữngtin tức về người dùng để hỗ trợ cho việc bán hàng được tốt hơn Ngày nay phần mềm giánđiệp còn được các công ty hay tổ chức chính phủ sử dụng để theo dõi người dùng thông quaviệc nghe lén các cuộc điện đàm hoặc các cuộc hội thảo truyền hình Spyware thường được
Trang 15dụng miễn phí nào đó Nhiều chương trình Spyware có thể làm chậm kết nối Internet bằngcách chiếm băng thông đường truyền mạng Chúng cũng có thể làm cho máy tính của nạnnhân bị chậm đi vì chiếm tài nguyên như RAM và chu kỳ làm việc của CPU.
Hình 7: Hoạt động của người dùng Spyware ghi lại
1.2.5. Phần mềm tống tiền (Scareware)
Phần mềm tống tiền hay còn gọi Scareware là loại phần mềm giả danh một tổ chứcchính phủ và sử dụng một hệ thống mật mã để mã hóa dữ liệu thuộc về một cá nhân, chẳnghạn như khóa máy tính người dùng lại và đòi tiền chuộc thì mới cho sử dụng lại
Trang 16Hình 8: Scareware mạo danh FBI tống tiền người dùng
1.2.6. Phần mềm quảng cáo
Phần mềm quảng cáo hay còn gọi Adware thường đính kèm với những mẩu quảngcáo nhỏ, chúng thường được phân phát dưới hình thức phần mềm miễn phí hay phiên bảndùng thử Và chỉ khi bạn trả tiền cho sản phẩm dùng thử đó, các quảng cáo sẽ biến mất tùytheo chính sách của hãng phần mềm đó Tuy nhiên, phần mềm gián điệp cũng là một trongcác "biến thể" của phần mềm quảng cáo, chúng đuợc bí mật cài vào máy tính người sử dụngkhi họ đang duyệt web nhằm thu thập thông tin về hành vi duyệt web của người dùng để gửiđến họ những mẫu quảng cáo thích hợp Ngày nay bắt đầu xuất hiện nhiều những phần mềmquảng cáo đính kèm Virus máy tính, sâu hoặc Trojan horse,… có thể gây tổn hại nghiêmtrọng cho một hoặc một hệ thống máy tính
1.2.7. Downloader
Downloader là một dạng mã độc dùng để tải các mã độc khác về máy người dùng Đểtải về được các mã độc, Downloader cần kết nối đến một máy chủ chứa mã độc, điều nàykhác với thuật ngữ dropper là loại mã độc có chứa sẵn mã độc bên trong nó
1.2.8. Backdoor
Backdoor là các đoạn mã độc được gài lên máy nạn nhân cho phép tin tặc kết nối đểđiều khiển máy tính nạn nhân Backdoor cho phép kẻ tấn công kết nối đến máy nạn nhân mà
Trang 17không cần chứng thực, từ đó kẻ tấn công có thể thực thi các câu lệnh ngay trên máy nạnnhân.
hệ thống mạng ngang hàng peer-to-peer (P2P) Ngày nay khi đã có trong tay một mạng lướibonet, các tin tặc hoặc tổ chức điều khiển Botnet có thể sử dụng chúng như một công cụchiến tranh mạng, tiêu biểu là tấn công từ chối dịch vụ vào các mục tiêu cụ thể nhằm làm têliệt hệ thống mạng của một tổ chức hoặc thậm chí là hệ thống mạng của một quốc gia
Hình 9: Công dụng của một mạng Botnet
1.2.10. Launcher
Launcher là những chương trình độc hại được dùng để khởi động các chường trìnhđộc hại khác Launcher sử dụng những kỹ thuật phi truyền thống để khởi động nhữngchương trình độc hại khác nhằm mục đích đánh cắp thông tin hoặc điều khiển máy nạnnhân
Trang 181.2.11. Rootkit
Rootkit là những đoạn mã độc được thiết kế nhằm che dấu sự tồn tại của những đoạn
mã độc khác bên trong nó Rootkit thường được dùng để kết hợp với một mã độc khác như
Backdoor, Keylogger để tin tặc có thể truy cập từ xa vào máy nạn nhân và làm hệ thống gặp
khó khăn trong việc phát hiện ra loại mã độc này Ví dụ như trong hệ thống Windows,Rootkit có thể sửa đổi, thay thế file, hoặc thường trú trong bộ nhớ nhằm thay thế, sửa đổicác lời gọi hàm của hệ điều hành
1.2.12. Keylogger
Keylogger là phần mềm được dùng để bí mật ghi lại các phím đã được nhấn bằng bànphím rồi gửi tới Hacker Keylogger có thể ghi lại nội dung của email, văn bản, tài khoản vàmật khẩu người dùng, thậm chí cả chụp ảnh màn hình máy tính nạn nhân Một số
Keylogger phổ biến như KeySnatch, Spyster,…
1.3. Cách thức hoạt động và các hành vi của các loại mã độc
Đôi khi mã độc được sử dụng như một công cụ chính trị chống lại các trang web củachính phủ, các công ty công nghệ cao để thu thập thông tin được bảo vệ hoặc làm gián đoạnhoạt động của họ trên môi trường mạng Một vài cuộc tấn công từ chối dịch vụ sử dụng mãđộc có quy mô lớn như cuộc tấn công vào hệ thống website của Mỹ và Hàn Quốc vào tháng7/2009 khiến hàng chục website của chính phủ Hàn Quốc và Mỹ bị tê liệt hoạt động TạiViệt Nam, năm 2011 trang web của Bộ ngoại giao bị tấn công từ chối dịch phải ngưng hoạtđộng, hay gần đây nhất vào tháng 7-2013 một loạt các tờ báo mạng lớn tại cũng phải vất vảngăn cản tấn công từ chối dịch vụ
1.3.2. Hướng lây nhiễm của mã độc
Mã độc có thể đến từ nhiều nguồn khác nhau để lây nhiễm vào máy tính người dùng
Trong đó tựu trung lại trong ba hình thức sau: Hình thức cổ điển: mã độc lây nhiễm thông
qua các thiết bị lưu trữ di động, trước đây là các ổ đĩa mềm, ổ CD đến bây giờ là các thiết bị
Trang 19lưu trữ USB, thẻ nhớ Lây nhiễm qua thư điện tử: Khi mà thư điện tử được sử dụng rộng rãi
trên thế giới thì mã độc chuyển hướng lây nhiễm sang thư điện tử thay cho các hình thức lâynhiễm cổ điển Hình thức này đặc biệt nguy hiểm vì số lượng máy tính bị lây nhiễm sẽ tăngtheo cấp số nhân, khi một máy bị nhiễm thì mã độc sẽ gửi bản sao của nó đến tất cả các địachỉ email có trong máy bị nhiễm Hình thức lây nhiễm qua thư điện tử bao gồm: Lây nhiễm
từ các tập tin đính kèm trong thư điện tử, lây nhiễm do click vào các liên kết trong thư điện
tử và lây nhiễm ngay khi mở để xem thư điện tử Hình thức lây nhiễm cuối cùng đó là Lây
nhiễm thông qua mạng Internet: bao gồm lây nhiễm do các tập tin tài liệu, phần mềm miễn
phí hay bẻ khóa được chia sẽ trên mạng mà người dùng tải về và chạy trên máy tính, lâynhiễm do truy cập vào các trang web có chứa mã độc (theo cách vô ý hoặc cố ý), cuối cùng
là lây nhiễm mã độc thông qua các lỗi bảo mật trên các hệ điều hành, các ứng dụng có sẵntrên hệ điều hành hoặc phần mềm của hãng thứ ba
1.3.3. Hành vi mã độc
Khi lây nhiễm vào một máy tính, mã độc thường thực hiện một số hành vi nhằm chedấu sự hoạt động của chúng trước người dùng, đồng thời tạo ra các môi trường để có thể tựkhởi động cùng hệ thống cũng như tải về các mã độc khác Sau đây là một số hành vi tiêubiểu nhất mà người phân tích mã độc cần tìm hiểu:
-Sự thay đổi về hệ thống tập tin: Bao gồm việc tạo, thay đổi nội dung hay xóa các tậptin trên hệ thống
-Sự thay đổi trong hệ thống Registry: Bao gồm việc tạo ra hoặc sửa đổi các giá trị trongkhóa registry
-Tiêm nhiễm vào các tiến trình khác đang chạy trên hệ thống
-Tạo ra các Mutex nhằm tránh việc xung đột khi sử dụng tài nguyên trên máy tính
-Tạo ra các hoạt động mạng đáng ngờ: Kết nối đến các trang web lạ để tải về mã độckhác, kết nối đến các máy chủ IRC, thực hiện việc quét các hệ thống bên ngoài,…
-Khởi chạy hoặc cho dừng các dịch vụ trên Windows ví dụ dịch vụ của trình diệt Virus
1.3.4. Biện pháp để phát hiện mã độc trên máy tính và hệ thống mạng
Ngày nay, mã độc được ví như một dịch bệnh, lan truyền rất nhanh và cách thức hoạtđộng cũng như hành vi của mã độc được thay đổi liên tục Những mã độc ban đầu thườngđược thiết kế nhằm làm chậm máy tính hoặc đưa ra các thông báo quảng cáo gây phiền
Trang 20nhiễu, tuy nhiên bây giờ các phần mềm độc hại ngày càng kín đáo hơn khi nhiễm vào máyngười dùng Bất kỳ ai cũng có thể bị nhiễm mã độc ngay lúc này mà không thể phát hiện ra.Thông thường cách để phát hiện mã độc là sử dụng trình quét Virus để quét toàn bộ máytính, nhưng việc này thường tốn thời gian và làm máy tính hoạt động chậm đi Thậm chí saukhi quét xong, chúng ta cũng chưa chắc là máy tính là sạch, bởi vì các phần mềm diệt mãđộc chưa phát hiện được các mẫu mã độc mới.
Để có thể phát hiện được mã độc đang chạy trên máy tính, cần sử dụng kết hợp nhiềucông cụ hỗ trợ miễn phí khác nhau để tìm mã độc Các công cụ này bao gồm: Công cụ giám
sát registry như Regshot, Autoruns, Comodo Autoruns Công cụ theo dõi tiến trình và tập tin đang thực thi trên máy như Process XP, KillSwitch Công cụ theo dõi việc gửi, nhận lưu lượng mạng như Wireshark, Tcpdump Công cụ phát hiện Rootkit trên hệ thống như
Kaspersky TDSSKiller Và cuối cùng để xác định một tập tin có phải là mã độc hay không,
người dùng có thể kiểm tra nó bằng các công cụ quét Virus khác nhau bằng việc sử dụng các
trang quét Virus trực tuyến như http://Virustotal.com.
Với việc kết hợp các công cụ trên lại với nhau sẽ đem lại hiệu quả phát hiện mã độccao hơn là dựa vào các dấu hiệu bất thường trên máy hay sử dụng các trình quét Virus đơnlẻ
Đối với các hệ thống mạng, có thể sử dụng các công cụ phát hiện và ngăn ngừa xâmnhập như IDS hay IPS hoặc tường lửa để phát hiện mã độc Các công cụ bảo vệ này sẽ dựatheo một số dấu hiệu được người dùng định nghĩa trước hoặc các dấu hiệu bất thường đểphát hiện các hành vi của mã độc trên hệ thống
1.3.5 Một số biện pháp ngăn ngừa mã độc lây nhiễm vào máy và hệ thống mạng
1.3.5.1 Tránh chạy các phần mềm từ các nguồn không tin cậy
Trước khi chạy một chương trình nào, người dùng cần hiểu rõ về nó Đối với cácphần mềm chưa rõ nguồn gốc cần quét nó bằng trình diệt Virus trên máy tính, kế đến kiểm
tra bằng các chương trình miễn phí chuyên quét mã độc như HitmanPro hay Malwarebytes
Anti-Malware Cuối cùng có thể sử dụng các trang web quét mã độc trực tuyến như
http://Virustotal.com hay sử dụng các công cụ sandbox để chắc chắn rằng phần mềm đangđịnh chạy là phần mềm sạch
1.3.5.2 Tải phần mềm từ các nguồn an toàn và không sử dụng phần mềm đã bẻ khóa
Khi bắt đầu tìm kiếm và tải về các phần mềm, người dùng có thể phát hiện trang web
Trang 21Trust hay Norton Safe Web Gặp các trang web độc hại các công cụ sẽ đưa ra cảnh báo và
khuyên người dùng rời khỏi trang web
Việc sử dụng các phần mềm có đính kèm Keygen, Cracks và Patches là con đường để
mã độc xâm nhập vào máy tính phổ biến nhất Do vậy để an toàn, người dùng không nên sửdụng các phần mềm này trên các hệ thống quan trọng
1.3.5.3 Cảnh giác khi online trên môi trường mạng
Việc tìm kiếm một thông tin trên môi trường mạng không phải lúc nào thông tin đócũng đúng 100% Ai cũng có thể cung cấp thông tin lên mạng, do vậy cần tỉnh táo để xácnhận thông tin nào là đáng tin cậy Đối với các Email lạ có đính kèm tập tin hay thông báo
về việc trúng thưởng hay nhận được tiền thưởng thường tiềm ẩn nhiều nguy cơ lừa đảo cao
Do vậy sự cảnh giác của người dùng máy tính cũng là một phần quan trọng trong việc ngănngừa mã độc tấn công
1.3.5.4 Luôn để máy tính được cập nhật và bảo mật nhất có thể
Một điều quan trọng để tăng khả năng phòng mã độc đó là để hệ điều hành máy tínhcũng như các trình diệt Virus cần luôn được cài bản cập nhật mới nhất Việc cập nhật cácbản vá lỗi kịp thời sẽ giúp máy tính không bị tấn công vào các lỗ hổng bảo mật đã đượccông bố Bên cạnh đó, đôi khi việc sử dụng một trình diệt Virus là không đủ và người dùngcần có một hệ thống bảo vệ nhiều lớp để hỗ trợ cho nhau Nên kết hợp giữa trình diệt Virusvới hệ thống phát hiện xâm nhập với tường lửa và một hệ thống sandbox như Sandboxie đểmang lại hiệu quả cao nhất
1.4. Phương thức lây nghiễm của mã độc
Phương thức lây nhiễm của mã độc tùy thuộc các biến thể (hay các loại mã độc) phổbiến như: Virus, Worm, Trojan…
1.4.1. Phương thức lây nhiễm của Virus
Dựa trên hành vi, Virus được chia thành 2 loại:
- Nonresident virues: là loại Virus tìm kiếm các máy chủ có thể bị nhiễm và lây nhiễmsang các mục tiêu này và cuối cùng chuyển điều khiển tới chương trình ứng dụng màchúng lây nhiễm
- Resident virues: là loại Virus không tìm kiếm các máy chủ mà thao vào đó chúng tải vào
bộ nhớ để thực thi và kiểm soát chương trình chủ Virus này được hoạt động ở chế độnền và lây nhiễm vào các máy chủ mới khi các tập tin được truy cập bởi các chươngtrình hoặc hệ điều hành ở các máy tính khác
Trang 22Noresident virues bao gồm một đun tìm kiếm và một đun nhân bản Các đun tìm kiếm chịu trách nhiệm cho việc tìm kiếm các tập tin mới để lây nhiễm Với mỗi tậptin thực thi mà mô-đun tìm kiếm phát hiện, nó sẽ gọi tới mô-đun nhân bản để lây nhiễm vàocác tệp tin này.
mô-Resident virues gồm một mô-đun nhân bản hoạt động tương tự như mô-đun nhân bảncủa Nonsident virues Tuy nhiên, mô-đun nhân bản này không được gọi bởi mô-đun tìmkiếm Virus tải mô-đun nhân bản vào trong bộ nhớ khi nó được kichs hoạt và mô-đun nàythực thi tại thời điểm hệ điều hành thực hiện một hoạt động nhất định nào đó
1.4.2. Phương thức lây nhiễm của Worm (Sâu máy tính)
Yếu tố ban đầu của Worm là một đoạn mã độc hại có vai trò như một công cụ xâmnhập các lỗ hổng bảo mật nằm trên máu tính và khai thác chúng Worm sẽ được truyền đithông qua lỗ hổng này
Một khi các đoạn mã độc hãi đã được lây nhiễm vào máy, Worm sẽ sử dụng mộtcông cụ được thiết kế để dò tìm, phát hiện các máy tính khác được kết nối vào mạng Từ đó,
nó quét các máy tính trên mạng để xác định vị trí các lỗ hổng, sau đó Worm sẽ sử dụng công
cụ xâm nhập để truy cập vào các máy tính này
1.4.3. Phương thức lây nhiễm của Trojan
Trojan thường gồm hai thành phần là client và server, khi máy tính của người sửdụng bị lây nhiễm Trojan thì chúng sẽ biến thành server và một cổng sẽ bị mở ra, chúng sẽdùng client để kết nối tới IP của nạn nhân Server sẽ ẩn trong bộ nhớ và nó tạo nên nhữngthau đổi trong hệ thống
Trojan sẽ tạo thêm đường khởi động vào registry hoặc trong các file autoexec.bat,
win.ini hoặc các file hệ thống khác, do vậy mà server sẽ tự khởi động khi Windows làm việc
trong các phiên tiếp theo
1.5. Kết luận Chương 1
Trong chương này luận văn đã nghiên cứu các kiến thức cơ bản về mã độc, tổng quan
về tình hình mã độc hiện nay tại Việt Nam và trên thế giới Nội dung luận văn đã trình bàyđược các loại mã độc hiện nay, cách thức hoạt động của mã độc, các hướng lây nhiễm của
mã độc và đưa ra các biện pháp phát hiện mã độc trên máy tính, các biện pháp ngăn ngừa mãđộc
Trang 23Trong chương tiếp theo, luận văn sẽ nghiên cứu đến các kỹ thuật và phương phápphân tích mã độc chủ yếu hiện nay.
CHƯƠNG 2: NGHIÊN CỨU CÁC KỸ THUẬT VÀ PHƯƠNG
PHÁP PHÂN TÍCH MÃ ĐỘC
Nội dung của chương sẽ trình bày các kỹ thuật phân tích mã độc, đi sâu vào 2 phương pháp phân tích mã độc chính, đưa ra môi trường có thể thực hiện được việc phân tích mã độc và các công cụ hỗ trợ phân tích mã độc hiện nay.
2.1. Nghiên cứu các kỹ thuật phân tích mã độc
Trang 242.1.1. Mục đích kỹ thuật phân tích mã độc
Khi việc sử dụng các biện pháp bảo vệ máy tính như trình diệt Virus hay các hệ thốngtường lửa chưa phát huy hết hiệu quả trong việc nhận dạng và ngăn chặn mã độc mới thì cầnthực hiện việc phân tích mã độc Mục đích phân tích mã độc chủ yếu để cung cấp các thôngtin cần thiết để xây dựng hệ thống bảo vệ và ngăn ngừa các nguy cơ do mã độc gây ra, baogồm xác định chính xác những gì xảy ra khi thực thi mã độc, như các tập tin nào được mãđộc sinh ra, các kết nối ra mạng bên ngoài được mã độc thực hiện, những thay đổi vềregistry liên quan đến mã độc, các thư viện và vùng nhớ liên quan đến hoạt động của mãđộc…Việc phát hiện ra hành vi mã độc sẽ giúp tạo ra các dấu hiệu nhận dạng mã độc để ápdụng vào hệ thống lọc bảo vệ mạng như dấu hiệu về host-base và dấu hiệu nhận dạng vềmạng
Dấu hiệu nhận dạng host-base: được dùng để phát hiện mã độc trên máy tính nạnnhân Những dấu hiệu này bao gồm các tập tin được tạo ra hoặc thay đổi bởi mã độc hoặc lànhững thay đổi trong registry Không giống với cách nhận biết trên các trình diệt Virus, dấuhiệu host-base chủ yếu tập trung vào những gì mã độc làm trên hệ thống bị nhiễm, điều này
sẽ hiệu quả hơn khi mã độc tự động thay đổi hình thái hoặc tự xóa khỏi đĩa cứng
Dấu hiệu nhận dạng về mạng: được dùng để phát hiện mã độc bằng cách giám sát lưulượng mạng trong hệ thống Dấu hiệu nhận dạng về mạng có thể được tạo mà không cần quátrình phân tích mã độc, tuy nhiên dấu hiệu nhận dạng mạng sẽ hiệu quả hơn nếu được tạovới trợ giúp của quá trình phân tích mã độc
Sau khi thu thập dấu hiệu nhận dạng, mục tiêu cuối cùng đó là tìm hiểu chính xác mãđộc hoạt động như thế nào, tức là làm rõ mục đích và khả năng của chương trình mã độc
Để phân tích mã độc thông thường chúng ta có hai hướng: phân tích sử dụng các hệthống tự động và phân tích thủ công gồm phân tích hoạt động và phân tích bằng cách đọc mãthực thi của mã độc
2.1.2. Các kỹ thuật phân tích mã độc
- Các kỹ thuật phân tích mã độc:
• Phân tích tĩnh (Code static analysis),
• Phân tích động (Behavioral dynamic analysis),
• Gỡ rối (Debug),
• Điều tra hành vi của mã độc (Malware forensics)
- Trong đó 2 kỹ thuật chủ yếu là: phân tích tĩnh và phân tích động và mỗi phương phápđều có điểm mạnh và điểm yếu riêng:
Trang 25• Cả 2 phương pháp này cùng có mục đích là giải thích cách hoạt động của mã độc, công
cụ, tuy nhiên thời gian làm việc và kỹ năng cần có thì lại rất khác nhau,
• Phân tích tĩnh thường đòi hỏi người phân tích xem xét kỹ mã của Virus (đã đượcchuyển sang dạng có thể hiểu được, như Assembly, hay C), hiểu được luồng thực thi
và các hành vi của nó thông qua mã đã dịch ngược,
• Phân tích động là phân tích cách hoạt động của Virus khi nó được thực thi, nó kết nốiđến đâu, lây lan như thế nào, cài đặt những gì vào hệ thống, thay đổi thành phần nào,hoạt động ra sao
- Ví dụ:
• Phương pháp tĩnh, với những loại Virus phức tạp, thì để đọc hiểu được hết mã thực thicủa nó là một việc rất khó; tuy nhiên phương pháp này cung cấp cho người phân tíchcái nhìn hết sức chính xác về những gì mà nó làm
• Phương pháp phân tích động, có ưu điểm là quá trình phân tích diễn ra nhanh hơn, dễdàng hơn; tuy nhiên, không phải hành vi nào cũng phân tích được, đơn cử như nhữngloại Virus phát hiện ra công cụ phân tích thì nó sẽ không hoạt động nữa, hoặc Viruschờ đến một lúc nào đó mới hoạt động
- Vì thế, khi phân tích mã độc cần phải kết hợp cả 2 phương pháp trên để đạt được hiệuquả tốt nhất
- So sánh ưu điểm và nhược điểm của các phương pháp phân tích Malware:
Staticanalysis
- Không thực hiện việcchạy mã độc, giảm thiểu nguy
cơ lây lan và phá hủy hệ thống
- Phân tích Malwaredựa trên việc phân tích các cấutrúc tệp tin, phân tích địnhdạng file
- Không thựchiện việc chạy Malware,khó biết được hoạt độngcủa Malware
- Phân tích vàreverse code đưa vềdạng assembly, đòi hỏiphải có kinh nghiệm lậptrình
Dynami
c analysis
- Giám sát được cáchoạt động của Malware quaviệc thực hiện chạy Malware
- Giám sát được các tácđộng của Malware lên hệthống
- Xác định được ảnhhưởng của Malware lên hệ
- Khi thực hiệnchạy Malware khiến hệthống đối mặt với nhữngnguy cơ và rủi ro về antoàn thông tin
- Đôi khi rất khó
có thể thực thi đượcphần mềm độc hại docần tham số để thực thi
Trang 262.2. Nghiên cứu phương pháp phân tích tĩnh
Đặc điểm của phương pháp phân tích tĩnh này là sẽ kiểm tra, phân tíchMalware mà không thực thi mã độc Cơ bản của việc phân tích tĩnh bao gồm các bước kiểmtra các file thức thi mà không cần các hướng dẫn thực tế Qua bước phân tích tĩnh sẽ xácnhận cho chúng ta liệu file đó có phải là mã độc hay không, cung cấp thông tin về chức năngcủa chúng, đôi khi những thông tin này sẽ cung cấp cho người dùng những dấu hiệu nhậndạng các loại Malware
2.2.1. Basic static analysis
Là phương pháp đơn giản và có thể thực hiện một cách nhanh chóng Tuy nhiênphương pháp này lại không có hiệu quả trong việc phân tích những loại Malware phức tạp
và do đó chúng ta có thể bỏ qua những hành vi quan trọng mà Malware gây ra
Trong mức này chúng ta chưa quan tâm tới việc thực thi File Malware, trong phầnnày tôi sẽ tập trung vào việc phân tích mã, cấu trúc, header của chương trình để xác định cácchức năng:
- Sử dụng Hash để xác định Malware
- Xác định các thông tin từ string, header, function của file
Mỗi kỹ thuật sẽ cung cấp các thông tin khác nhau tùy thuộc mục đích nghiên cứu.Tôi sẽ sử dụng một vài kỹ thuật sao cho thu thập được càng nhiều thông tin càng tốt
2.2.1.1. Sử dụng Hash để xác định Malware
Hashing là phương pháp phổ biến để nhận diện và xác định phần mềm độc hại Khi
Malware được chạy qua một phần mềm hash sẽ tạo ra một chuỗi ký tự (chuỗi ký tự này được
coi như là vân tay của Malware) như mô phỏng theo hình 10
Trang 27Hình 10: Hash Netcat
Mỗi chuỗi hash xác định ra các Malware duy nhất, có thể chia sẻ các mẫu hash này đểgiúp cho những người phân tích xác định Malware
2.2.1.2.Sử dụng việc tìm kiếm chuỗi
Một chương trình thường chứa các chuỗi nếu nó in ra một message, kết nối tới mộtđường dẫn URL hoặc copy một file đến một vị trí xác định
Nghiên cứu các chuỗi cũng là một phương pháp đơn giản để chúng ta có thêm nhữngthông tin về chức năng của chương trình Ví dụ, chương trình này thường in xuất ra mànhình để cung cấp cho người dùng một cập nhật trạng thái, hoặc để cho biết rằng một lỗi đãxảy ra Những chuỗi trạng thái và chuỗi lỗi kết thúc có thể nhúng trong tập tin thực thi củachương trình và có thể vô cùng hữu ích trong việc phân tích phần mềm độc hại
Việc bóc tách các chuỗi có trong các phần mềm độc hại được thực hiện bằng cáccông cụ như Hex Editor, PeiD Cho dù sử dụng bất kỳ công cụ gì để bóc tách các String thìcác string có thể được thể hiện dưới dạng mã ASCII hoặc Unicode Nhưng việc phân tíchchuỗi cần phải hết sức cẩn thận vì có thể chuỗi đó được người viết Malware cố tình chènvào để đánh lừa người phân tích
Ví dụ sau tôi sẽ sử dụng tool PeiD để phân tích chuỗi có trong một số Malware đểtìm ra một số thông tin:
Trang 28Hình 11: String khi tách từ mẫu Malware 1
Qua hình 2 có thể thấy Malware này sẽ tác động vào một số file của hệ thống như
Kernel32.dll, KERNEL32.dll và một cảnh báo “nó sẽ phá hủy máy tính của bạn”.
Việc phân tích chuỗi có thể giúp chúng ta tìm ra được Malware có thể tự động kếtnối tới một liên kết URL như trong hình 12:
Hình 12: String khi tách từ mẫu Malware 2
Dựa vào liên kết URL và file mà nó kết nối thì có thể đoán đây là một liên kết màMalware sẽ kết nối tới để thực hiện việc cập nhật thêm những tính năng mới cho chúng
Trang 29Cả ASCII và Unicode đề định dạng việc lưu trữ các ký tự theo một thứ tự và kết thúcvới Null terminator để chỉ ra chuỗi đó đã được hoàn tất Chuỗi ASCII sử dụng 1 byte chomỗi ký tự và Unicode sử dụng 2 bytes cho mỗi ký tự
có dạng là nc.rar
Mỗi loại file có các byte định dạng riêng Kiểm tra các byte định dạng để xác địnhfile đó là loại file gì Chẳng hạn những file thực thi luôn có các byte định dạng là MZ (đượcthể hiện dưới dạng hex: 4D 5A), các file nén có định dạng là PK (được thể hiện dưới dạnghex: 50 4B)
Để kiểm tra xem file này có thật sự là một file nén hay là một file thực thi được lưudưới dạng của một file nén, chúng ta có thể sử dụng các công cụ như Hex Editor hay PEiD
để kiểm tra vấn đề này
Trang 30Trình soạn thảo cho phép bạn tìm kiếm chuỗi byte cụ thể trong bản thân file Nó sẽcho bạn biết liệu Malware download về như trong hình minh hoạ ở trên có thực sự là filewinzip hay không Người dùng không cần lo lắng liệu mình có vô tình khiến Malware nàyphát huy tác dụng hiệu quả của nó ngay bây giờ Đơn giản là vì trong trình soạn thảo Hex,chúng ta chỉ có thể xem được nội dung mà không thể kích hoạt file thực thi.
Hình 15: File Malware nc được giả dưới dạng file nén
Như hình trên có thể thấy file Malware netcat được lưu dưới dạng một file nén đểđánh lừa người dùng Nhưng khi kiểm tra bằng Hex editor thì sẽ thấy những byte định dạngcủa file nc.rar là MZ Đây là định dạng của file thực thi, không phải là định dạng của mộtfile nén
Trang 31Hình 16: Byte định dạng file thực thi
Hình 17: Byte định dạng file zip
2.2.1.3.Packed and Obfuscated Malware
Các Malware được viết thường được đóng gói thành các file để gây khó khăn trongviệc phát hiện và phân tích Chương trình Obfuscated là chương trình mà tác giả củaMalware thực hiện để che giấu Chương trình Packed là một phần của chương trìnhObfuscated trong đó các chương trình mã độc được nén và khó có thể phân tích Cả hai kỹthuật này sẽ gây khó khăn trong việc phân tích Malware
Trang 32Khi chạy một chương trình được đóng gói, phần đóng gói chương trình sẽ được chạy
để giải nén các file trong gói và sau đó sẽ chạy các file được giải nén Ở bước này chúng ta
có thể bóc tách các chương trình đóng gói để từng bước tìm hiểu Malware
Một chương trình đã được đóng gói để có thể thực hiện việc phân tích được thì việcđầu tiên là phải unpack
Một cách để phát hiện ra các tập tin được đóng gói là sử dụng PEiD là có thể sửdụng PEiD để phát hiện ra các loại đóng gói hay các chương trình biên dịch để xây dựng nênứng dụng, nó sẽ giúp chúng ta dễ dàng phân tích được các file trong gói tin
Hình 18: Chương trình Malware được biên dịch bằng Visual C++
2.2.2. Advanced static analysis
Bao gồm các kỹ thuật reverse-engineering được thực hiện bằng cách tải lêncác file thực thi, xem xét các chương trình hướng dẫn để khám phá các chương trình bêntrong Advanced static analysis sẽ đưa ra các thông tin chính xác về các chương trình đượcchạy như thế nào Tuy nhiên phương pháp này khó hơn basic analysis rất nhiều và đòi hỏiphải có kiến thức về mảng disassembly, lập trình, và các khái niệm về hệ điều hành
2.3. Nghiên cứu phương pháp phân tích động
Đặc điểm của phương pháp phân tích động này là sẽ kiểm tra, phân tích Malwarebằng việc thực thi mã độc:
- Basic dynamic analysis: là phương pháp thực thi mã độc và giám sát các hành vi của chúngtrên hệ thống để tìm cách loại bỏ chúng, tìm ra các dấu hiệu để nhận biết Malware Tuynhiên, chúng ta cần phải xây dựng môi trường an toàn để cho phép chạy và nghiên cứu
Trang 33static analysis thì phương pháp basic dynamic analysis thường được sử dụng kể cả vớinhững người không am hiểu về kiến thức lập trình Và phương pháp này cũng không hiệuquả trong việc phân tích các loại Malware phức tạp.
- Advanced dymanic analysis: đây là phương pháp sử dụng chương trình gỡ lỗi để kiểm tracác trạng thái ngầm của mã độc khi thực thi nó Phương pháp này sẽ cung cấp cho chúng tanhững thông tin chi tiết khi thực thi mã độc Phương pháp này sẽ giúp chúng ta thu thậpthông tin khi các thông tin đó khó có thể lấy được từ những phương pháp phân tích khác.Dynamic analysis giám sát quá trình thực hiện của Malware sau khi đã chạy, thực thi
mã độc Kỹ thuật dynamic analysis là bước thứ hai trong tiến trình phân tích Malware,thường thì dynamic analysis sẽ được thực hiện sau bước basic analysis Malware kết thúc
Nếu như static analysis phân tích Malware qua việc phân tích chuỗi, phân tích dựatrên hash, phân tích các byte định dạng, đóng gói Malware và không thực thi Malware thìDynamic analysis sẽ phân tích Malware dựa trên việc thực thi Malware Dynamic analysis làphương pháp hiệu quả trong việc xác định các chức năng của Malware.Ví dụ nếu mã độccủa bạn là một keylogger thì dynamic analysis sẽ cho phép bạn xác định các file log củakeylogger trên hệ thống, giúp bạn khám phá ra những bản ghi mà keylogger nắm giữu, giải
mã ra thông tin mà Keylogger gửi đi Những điều này rất khó có thể thực hiện được nếu sửdụng kỹ thuật basic static analysis
Mặc dù kỹ thuật này là phương pháp mạnh mẽ trong việc nghiên cứu Malware nhưngphương pháp này sẽ đặt hệ thống máy tính và hệ thống mạng của bạn vào trạng thái nguyhiểm
Trong phần này luận văn sử dụng một vài Malware trên môi trường máy ảo để theodõi những hành vi của Malware đó và kiểm tra xem chúng tác động đến những file hệ thốngnào và sinh ra thêm những tiến trình gì …
Trang 34Hình 19: Hệ thống chạy khi chưa thực thi Malware
Luận văn sử dụng Malware thử nghiệm trong môi trường lab có tên là Lab01-02.exe
và thực thi chúng và kiểm tra kết quả:
Hình 20: Hệ thống xuất hiện tiến trình lạ thực thi Malware
Trang 35Từ kết quả trên cho thấy Malware đã tạo một ứng dụng có tên là conhost.exe, ứng
dụng này đã thực hiện các việc tạo ra các file dll, truy vấn nội dung và tải lên các hình ảnhnhư hình 21 bên dưới:
Hình 21: Malware tác động đến các file trên hệ thống
Từ kết quả thu được ở tiến trình process monitor cho thấy Malware có tên là
Lab01-02.exe tác động đến rất nhiều file của hệ thống như kernel32.dll, advapi32.dll …
Mặc dù dynamic analysis là một kỹ thuật mạnh mẽ và hữu ích trong việc phân tíchMalware nhưng chúng ta chỉ nên thực hiện dynamic analysis sau khi thực hiện staticanalysis vì phương pháp này sẽ đặt hệ thống của chúng ta trong tình trạng nguy hiểm Bêncạnh việc trực quan, dễ nhận thấy những tác động trực tiếp của Malware tới hệ thống thìphương pháp này vẫn còn có những hạn chế nhất định bởi không phải tất cả các đường dẫn,các mã lệnh đều được thực hiện khi Malware mới chỉ chạy có một phần Trong trường hợpcommand của Malware yêu cầu các tham số, mỗi tham số có thể thực hiện chức năngchương trình khác nhau, và nếu không biết lựa chọn sẽ không thể tự động kiểm tra tất cả cácchức năng của Malware
2.4. Môi trường thực hiện việc phân tích mã độc
Môi trường ảo ở đây sẽ được xây dựng tùy trường hợp, tùy từng đơn vị phân tích Đối với người phân tích mã độc không chuyên thì môi trường ảo đó đơn giản chỉ làmột VMware hay VirtualBox có cài sẵn Xindows, XP,… cùng một số ứng dụng thông dụngnhư Java, Flash,…
Trang 36Đối với những chuyên gia phân tích chuyên nghiệp trong các phòng thí nghiệm mãđộc họ có thể xây dựng những mô hình phân tích phức tạp hơn như xây dựng nhiều máy ảochạy trên nhiều nền tảng khác nhau, cho các máy đó thông với nhau để thử nghiệm lây lantrong Lan
Đối với một chuyên gia phân tích mã độc chuyên nghiệp họ sẽ xây dựng nhữngsandbox tự động để tiết kiệm thời gian
Đối với một số hãng lớn họ thực hiện phân tích mã độc theo quá trình một cách tựđộng, các chuyên gia của họ thường dành thời gian để phân tích thủ công một số mã độc đặcbiệt hay phân tích lại các biến thể mới,…
Hình 22: Môi trường phân tích mã độc
Để phân tích mã độc người phân tích cần tại ra những môi trường ảo để phân tích,đảm bảo mã độc không thể lây nhiễm ra ngoài hay làm hại đến máy tính của chính mình
2.4.1. Môi trường tải mã độc
- Môi trường tách biệt khỏi mạng làm việc
- Môi trường không dùng trình duyệt truy cập vào link tải mã độc và trình duyệt dễ bị tấncông Sử dụng công cụ riêng biệt để tải mã độc (Wget, Curl)
- Nên sử dụng môi trường khác với môi trường thực thi mã độc (VD môi trường Linux)
- Sau khi tải về thì đổi tên, tránh trường hợp vô tình thực thi mã độc
Trang 372.4.2. Môi trường phân tích mã độc
- Để phân tích được Malware, việc đầu tiên là phải có được các mẫu Malware để thực hiệnphân tích Người dùng có thể tải được Malware từ các website như:
http://practicalMalwareanalysis.com/labs/.
- Hệ điều hành mà chúng ta thử nghiệm Malware: Windows, Linux, hay MacOS
- Môi trường để thử nghiệm Malware, có thể sử dụng máy ảo để thử nghiệm Xây dựng hệthống lab ảo làm môi trường thử nghiệm Malware Ngoài ra, có thể sử dụng phần mềmVMware để tạo các PC ảo để thử nghiệm Hoặc có thể sử dụng sandbox để tạo môitrường thử nghiệm Malware và giám sát các hoạt động của Malware Thực tế, đôi khichúng ta cũng cần sử dụng máy thật để thử nghiệm Malware vì thực tế đã xuất hiện một
số Malware sẽ rơi vào trạng thái bất hoạt nếu nó detect được nó đang chạy trên môitrường ảo
- Chuẩn bị các công cụ để thực hiện việc giám sát sự thay đổi các tiến trình trong hệ thống(thường sử dụng trong dynamic analysis Malware) Sandbox thường được sử dụng đểgiám sát các hành vi của Malware bằng cách thực thi Malware trong môi trường sandbox
- Chuẩn bị các công cụ phục vụ cho việc giải mã để phân tích mã nguồn của Malware(thường sử dụng trong static analysis Malware)
- Sử dụng tool để capture các gói tin: để phân tích xem liệu Malware có thực hiện kết nốiliên lạc ra môi trường Internet hay không
- Lab phục vụ cho kỹ thuật phân tích gì:
• Static analysis
• Dynamic analysis
- Sau khi thực hiện phân tích Malware chúng ta cần phải xây dựng cơ sở dữ liệu vềMalware phục vụ cho việc xác định mẫu Malware sau này Dựa vào dấu hiệu nhận biếtMalware hoặc dấu vân tay của Malware
2.4.3. Mô hình môi trường phân tích mã độc
Mô hình tổng quát việc thực hiện phân tích Malware:
Trang 38Hình 23: Mô hình thực hiện phân tích Malware
Quá trình phân tích phát hiện Malware:
- Malware được đưa qua 1 phần mềm băm ra lấy mã băm (MD5/SHA)
- Chuỗi băm được so sánh với chuỗi ký tự lưu trong cơ sở dữ liệu
- Nếu tồn tại trong cơ sở dữ liệu => là Malware và kết thúc quá trình phân tích
- Nếu không tòn tại trong cơ sử dữ liệu sẽ được đẩy sang hệ thống phân tích( MlalyzerMalware) Hệ thống phân tích sẽ sử dụng 1 trong 2 phương pháp phân tích tĩnh (Static)hoặc phân tích động (Dynamic) để phân tích
Kết quả của quá trình phân tích đưa ra là phát hiện Virus thì mã băm của nó sẽ đượclưu vào trong cơ sở dữ liệu và kết thúc quá trình Nếu không thì kết thúc quá trình phân tíchluôn
Trang 39Hình 24: Thành phần môi trường phân tích mã độc
- Thành phần:
• Guest machine 1: Cài Linux dùng làm server
• Guest machine 2: cài Windows XP dùng để cài mã độc phục vụ thử nghiệm
- Đặc điểm của môi trường phân tích:
• Host machine có khả năng cung cấp đủ tài nguyên cho 2 máy Guest machine hoạtđộng
• Chia sẻ mã độc giữa Host và Guest phải thông qua con đường phi network
• Host machine và Guest machine không được kết nối mạng với nhau
• Các Guest machine nối mạng với nhau với dạng Host-onle và không có khả năngkết nối Internet
2.4.4. Xây dựng hệ thống lab phân tích Malware
Trong phần này tôi sẽ tìm hiểu cách thức xây dựng một hệ thống Malware: cóthể xây dựng lab trên môi trường thật có nghĩa là sử dụng các thiết bị vật lý hoặc xây dựngtrên môi trường ảo sử dụng phần mềm VMware Phần này sẽ đề cập tới cả 2 phương phápnhưng ở đây tôi sẽ tập trung và nhấn mạnh vào việc xây dựng hệ thống phân tích Malwaretrên môi trường ảo:
- Physical environment: xây dựng trên môi trường vật lý tức là chúng cần có những máy
tính thật chạy các hệ điều hành của Windows, Linux, MacOS Sau đó chúng ta sẽ thửnghiệm Malware trên chính những máy tính thật này Để đảm bảo chiếc PC mà chúng tathử nghiệm sẽ không bị lỗi, hỏng hóc về phần mềm hoặc hệ điều hành trong quá trình
Trang 40thử nghiệm Malware nên sử dụng phần mềm đóng băng ổ cứng như Deep Freeze nhưmột cách để backup hệ thống.
- Virtual environment: đây có thể là các máy ảo chạy các hệ điều hành của Windows,
Linux, MacOS hoặc sandbox Chúng ta sẽ thực thi Malware trên những máy ảo này.Trước khi thực thi Malware chúng ta nên tạo ra 1 bản snapshot để lưu lại trạng thái củamáy ảo trước khi thực thi Nếu xảy ra lỗi chúng ta chỉ cần quay lại về trạng thái đã đặtsnapshot
- Trước khi bắt đầu với việc xây dựng một môi trường lab phải luôn nhớ rằng việc xâydựng một môi trường an toàn là rất quan trọng Các lỗ hổng có thể gây lỗi trên máy thậtchúng ta xây dựng môi trường lab Một số lưu ý khi xây dựng môi trường lab an toàn:
• Không chia sẻ tài nguyên giữa máy thật và máy ảo
• Đảm bảo rằng máy thật được cập nhật những phiên bản mới nhất của các phầnmềm anti-Virus
• Chúng ta nên đặt card mạng của máy ảo ở card Nat, sử dụng máy ảo này kết nốiInternet và download các Malware cần thiết, không nên sử dụng máy thật đểdownload Malware
• Ngăn chặn target truy nhập tới bất cứ shared devices hoặc removable media nào, ví
dụ USB drives được cắm vào máy thật
2.5. Quy trình thu thập và phân tích mã độc
2.5.1. Thu thập mã độc
Sự cần thiết của việc thu thập mã độc : Mục đích xây dựng và triển khai hệ thốngđiều tra, phát hiện cách thức tấn công của tin tặc phần nào giúp các đơn vị nhận biết đượcmức độ an toàn thông tin hiện tại của cổng thông tin điện tử, nâng cao nhận thức về an toànthông tin, mặt khác có thể phối hợp với các đơn vị quản lý điều tra nguyên nhân, động cơ, vàcác hành vi mà tin tặc tấn công để chủ động lên kế hoạch giải quyết, đối phó
Khi hệ thống triển khai sẽ thu thập các cách thức tấn công của tin tặc vào các cổngthông tin điện tử cũng như thu thập các phần mềm độc hại (Malware) phục vụ cho việc phântích phạm vi, nguồn gốc tấn công
2.5.2. Quy trình phân tích mã độc
Bước 1: Xác định nguồn gốc mã độc
Bước 2: Liên hệ nơi phát tán mã độc để thu thập mẫu
Bước 3: Tiến hành quy trình phân tích sơ lược các thông tin ban đầu về mã độc Bước 4: Tiến hành quy trình phân tích hoạt động để xác nhận các hành vi của mã độc