Xem mẫu

  1. Kỷ yếu Hội nghị KHCN Quốc gia lần thứ XI về Nghiên cứu cơ bản và ứng dụng Công nghệ thông tin (FAIR); Hà Nội, ngày 09-10/8/2018 DOI: 10.15625/vap.2018.00046 MỘT SỐ KỸ THUẬT GÂY RỐI, CHE DẤU MÃ ĐỘC MACRO Võ Văn Hoàng1, Nguyễn Nam Hải1, Nguyễn Ngọc Hoá2 1 Ban Cơ yếu Chính phủ 2 Trường Đại học Công nghệ, Đại học Quốc gia Hà Nội vohoangmocvy@gmail.com, nnhai@bcy.gov.vn, hoa.nguyen@vnu.edu.vn TÓM TẮT: Tấn công mạng ngày càng diễn biến phức tạp, đa dạng về hình thức và chủng loại. Đặc biệt đối với các đối tượng người dùng khi sử dụng hệ thống thư điện tử để trao đổi, là một trong những mục tiêu mà tin tặc (Hacker) hướng đến. Các văn bản được giao dịch ngày càng nhiều thông qua hệ thống thư điện tử, nó dường như không thể thiểu trong thời buổi công nghệ Chính phủ điện tử hiện nay, đó cũng là một trong những điểm yếu dẫn đến các cuộc tấn công mạng vào người dùng, khi tin tặc sử dụng các kỹ thuật che dấu mã độc vào tệp (file) văn bản để tấn công máy tính người dùng thông qua hệ thống thư điện tử. Đây cũng là một trong những hình thức tấn công phổ biến hiện nay được tin tặc sử dụng, kẻ tấn công không cần phải tạo ra những chủng loại mã độc mới, phức tạp, mà chỉ cần thay đổi làm rối các dấu hiệu nhận dạng, để tránh sự phát hiện của các chương trình, thiết bị an ninh. Bài báo này đề xuất phương pháp mới gây rối mã độc và kết hợp các kỹ thuật gây rối nhằm mục đích che dấu mã độc để lẩn tránh sự trước sự phát hiện của các chương trình bảo vệ như IDS/IPS, AV,… được sử dụng thông qua tính năng macro có trong chương trình Office của Microsoft. Đây là một trong những trình soạn thảo văn bản phổ biến nhất và được sử dụng rộng rãi trong việc giao dịch qua hệ thống thư điện tử. Đó là sự kết hợp các kỹ thuật làm rối mã độc macro, khi kết hợp các kỹ thuật này, cho phép kẻ tấn công che dấu mã độc trước phần lớn sự phát hiện của các chương trình, thiết bị bảo vệ, đặc biệt là các thiết bị phát hiện và ngăn chặn mã độc như Anti-virus. Các kỹ thuật này được chúng tôi sử dụng trong việc đánh giá an toàn thông tin (Penetration testing) cho các hệ thống thư điện tử của các cơ quan, đơn vị nhà nước, từ đó giúp người dùng và người quản trị mạng có cái nhìn rõ hơn, đồng thời có những giải pháp phòng tránh trước các dạng tấn công này. Từ khóa: Che dấu mã độc macro, macro obfuscation, kỹ thuật làm rối mã độc macro. I. GIỚI THIỆU Trong các phần mềm văn phòng, chẳng hạn như Microsoft Office, macro là công cụ cho phép tự động hóa các tác vụ và thêm chức năng vào biểu mẫu, báo cáo, bảng tính,… Điều này được thực hiện thông qua việc khai thác các hàm được cung cấp trong bộ VBA (Visual Basic for Applications) để khai thác, điều khiển toàn bộ các thành phần trong tài liệu cũng như ứng dụng OLE (Object Linking & Embedding) và thư viện động DLL (Dynamic Link Library). Với những khả năng đó, vô tình macro lại trở thành một phương thức để các đối tượng xấu (chẳng hạn như hacker) tiến hành nhúng các mã độc (malware) vào và sử dụng với mục đích không tốt như là cơ sở để tấn công vào máy tính người dùng. Thông thường, với phương thức này, các hacker sẽ sử dụng macro để chạy các mã độc hại hoặc tải về các mã độc hại và thực thi trên máy người dùng. Và con đường lây lan, phát tán của nó thông thường và phổ biến nhất là thông qua hệ thống thư điện tử. Đối với hình thức sử dụng thư điện tử để phát tán mã độc, khi người dùng nhận được thư có văn bản đính kèm bị chèn mã độc hại, đã được che dấu, khi văn bản đính kèm này được người dùng mở ra thì mã macro bên trong sẽ được thực thi trên máy người dùng. Các mã thực thi này, tùy thuộc vào mục đích của từng cuộc tấn công, nó có thể mã hóa máy tính người dùng, có thể chiếm quyền điều khiển và biến máy tính người dùng thành một máy tính ma tham gia các cuộc tấn công DDoS,... Mặc dù hiện nay trên các phiên bản mới của phần mềm Microsoft Office đã được bỏ đi tính năng tự động chạy mã macro, nhưng đây vẫn là một trong những dạng tấn công phổ biến những năm gần đây vào đối tượng người dùng thư điện tử thông qua việc sử dụng phương thức đánh lừa người dùng để kích hoạt mã macro. Hiện nay, trong công tác phòng chống mã độc, đảm bảo an toàn cho các hệ thống nói chung, đã có rất nhiều các phần mềm phòng chống virus (antivirus) có khả năng phát hiện và loại bỏ được các mã độc macro trong các tệp văn bản, chẳng hạn như những tệp Word. Tuy nhiên, cũng có rất nhiều phương pháp, kỹ thuật khác nhau đã được các tin tặc sử dụng để che dấu mã độc macro. Các kỹ thuật gây rối được sử dụng để làm thay đổi các đoạn mã macro. Từ đó đánh lừa được các phần mềm antivirus khi tiến hành so khớp dấu hiệu nhận dạng mã độc (malware signature), và coi như qua mặt (bypass) được các phần mềm đó, gây tổn hại cho hệ thống của người dùng. Trong bài báo này, chúng tôi sẽ giới thiệu và đưa ra một số kỹ thuật mới che dấu mã độc macro, từ đó đi sâu vào phân tích phương pháp kết hợp nhiều kỹ thuật che dấu mã độc dựa trên việc khai thác dịch vụ của Virus Total đã tập hợp hầu hết các engine phòng chống mã độc hiện nay trên thế giới. Những kết quả thu được có thể làm cơ sở để đánh giá các phần mềm antivirus, các hệ thống thư điện tử của đối tượng người dùng, giúp họ có những cái nhìn nhận tốt hơn về việc truyền tải văn bản và cách phòng chống, nhận diện để ngăn chặn các nguy cơ từ mã độc macro. Phần còn lại của bài báo được tổ chức như sau: Phần II sẽ trình bày về các kỹ thuật che dấu, phát hiện mã độc macro được biết đến; phần III sẽ đặc tả kỹ thuật che dấu mã độc macro, trong đó đề xuất 2 kỹ thuật mới để gây rối mã độc macro; trước khi kết luận, phần IV sẽ trình bày về che dấu macro dựa trên kỹ thuật kết hợp.
  2. Võ Văn Hoàng, Nguyễn Nam Hải, Nguyễn Ngọc Hoá 345 II. LÝ THUYẾT LIÊN QUAN 2.1. Mã độc và kỹ thuật phát hiện mã độc Mã độc (malicious software - malware) là phần mềm được thiết kế cố ý để gây tổn hại, mất an toàn thông tin cho hệ thống máy tính, máy chủ hoặc hạ tầng mạng (gọi chung là hệ thống CNTT) [1]. Mã độc gây tổn thương hệ thống CNTT sau khi được cấy hoặc xâm nhập theo cách nào đó vào máy tính của mục tiêu. Mã độc thường được chia làm nhiều loại như virus máy tính, worm, Trojan horse, ransomware, spyware, adware và scareware, … Để đối phó với các dạng mã độc, các phương pháp phân tích tĩnh, phân tích động được sử dụng phổ biến với các kỹ thuật và công nghệ có mức độ khác nhau trên các sản phẩm antivirus [1], một số công nghệ phát hiện mã độc đươc biết đến phổ biến như sau: - Phát hiện dựa trên dấu hiệu mẫu: được sử dụng bởi nhiều hãng phát triển các chương trình antivirus hiện tại, thực hiện thông qua việc dò quét tệp để phát hiện các dấu hiệu của mã độc. Các sản phẩm antivirus có các cơ sở dữ liệu về các dấu hiệu nhận dạng mã độc, khi dò quét kiểm tra các tệp, các dấu hiệu thu được sẽ được so sánh với cơ sở dữ liệu mẫu để đưa ra cảnh báo, ngăn chặn nếu phát hiện có dấu hiệu mã độc. Tuy nhiên, khi sử dụng cơ chế này thì cơ sở dữ liệu mẫu cần được cập nhật thường xuyên để kịp thời phát hiện các dạng mã độc mới và phương pháp này giúp phát hiện, nhận dạng nhanh chóng các dạng mã độc đã được biết đến nếu dấu hiệu nhận dạng có trong cơ sở dữ liệu mẫu [1]. - Phát hiện dựa trên heuristic: không giống như việc phát hiện dựa trên mẫu, phương pháp này phân tích hành vi về cấu trúc và các thuộc tính được nghi ngờ giống với mã độc để đưa ra cảnh báo, ngăn chặn. Kỹ thuật này, có khả năng phát hiện các lỗ hỗng chưa được biết đến (zero-day) được các mã độc sử dụng để khai thác. Khả năng phát hiện của nó được đánh giá có độ tin cậy khoảng 70 đến 80 %. Bên cạnh phương pháp này cho nhiều cảnh báo phỏng đoán sai thì ưu điểm của nó cho phép phát hiện mã độc sớm trước khi nó phát tán môi trường phạm vi rộng [2]. - Phát hiện dựa trên phân tích hành vi khi thi hành: không giống với phương pháp phát hiện dựa trên mẫu, việc phát hiện mã độc chỉ có được khi tiến hành thi hành tệp cần kiểm tra trên hệ thống. Phương pháp này sử dụng kỹ thuật phân tích các hành vi bất thường khi thực thi, từ đó đưa ra các cảnh báo mã độc [3], [4]. - Phát hiện dựa trên phân tích trên môi trường ảo: khác với phương pháp phát hiện dựa trên hành vi khi thực thi, tệp kiểm tra sẽ được đưa vào môi trường ảo để phân tích. Thu thập các hành vi đối với hệ thống, môi trường khi thực thi tệp để đưa ra cảnh báo hành vi nghi ngờ mã độc [4]. 2.2. Một số kỹ thuật gây rối mã độc Dựa trên những kỹ thuật phát hiện mã độc nêu trên, các phần mềm antivirus có thể phát hiện được những mã độc trong hệ thống máy tính. Tuy nhiên, bên cạnh những ưu điểm của các phương pháp trên, thì với mỗi kỹ thuật phát hiện đều có những điểm yếu cho phép tin tặc lợi dụng để qua mặt được các chương trình antivirus. Chẳng hạn như mã độc có khả năng nhận dạng môi trường máy ảo, để khi các chương trình antivirus đưa vào môi trường ảo để phân tích thì mã độc sẽ không thực thi, hay các kỹ thuật làm rối được sử dụng rộng rãi để sinh ra các dòng họ mã độc bởi tính đơn giản và hiệu quả của nó. Kỹ thuật gây rối (obfuscation) nói chung là phương pháp che dấu thông tin, làm quá trình tìm ý nghĩa thực sự của thông tin trở nên khó khăn, và thậm chí là không thể tìm được. Các nhà sản xuất phần mềm, tìm mọi cách để gây rối che dấu thông tin chống lại quá trình dịch ngược (reverse engineer) để đảm bảo mã nguồn sản phẩm an toàn. Tương tự như vậy, tin tặc sử dụng kỹ thuật gây rối để chống lại sự phát hiện của các chương trình antivirus nhằm mục đích che dấu mã độc được tạo ra [2]. Một số kỹ thuật gây rối đươc biết đến chẳng hạn như: thêm các dòng vào mã lệnh mà không ảnh hưởng đến chương trình (Dead-Code insertion); sắp xếp lại cấu trúc của code mà không thay đổi chúng (Code Transposition); thay đổi thứ tự các chương trình con trong mã độc (Subroutime reordering) [2], [10], … Hình 1. Thống kê mã độc macro của Symantec năm 2017
  3. 346 MỘT SỐ KỸ THUẬT GÂY RỐI, CHE DẤU MÃ ĐỘC MACRO Theo thống kê của Symantec, trong năm 2017 số lượng các cuộc tấn công mạng sử dụng các đoạn mã độc hại và tải mã độc macro được hãng này phát hiện thông qua các thiết bị lọc Email, IDS/IPS, các công nghệ học máy,… tăng khoảng 92 % so với năm 2016. Mục đích chính của các cuộc tấn công này của tin tặc là cài đặt mã độc Ransomware và các mã độc đánh cắp tài khoản ngân hàng lên máy người dùng, làm tổn hại máy người dùng [5]. Các cuộc tấn công bằng mã độc macro tương đối nhiều, như hình 1 và các hình thức và phương pháp cũng tinh vi, phức tạp hơn. Một số phương pháp gây rối mã độc macro được biết đến như sau: Gây rối mã độc macro sử dụng hàm chrW(). Hàm này cho phép tin tặc thay các giá trị ký tự bằng các giá trị ký tự trong bảng ASCII, từ đó cho phép bypass một số chương trình antivirus [6]. Một phương pháp gây rối khác khá phổ biến đó là gây rối tên biến, với kỹ thuật này tin tặc sẽ thay đổi toàn bộ các tên biến, hàm bằng các giá trị bất kỳ cho phép lẩn tránh sự phát hiện của các chương trình antivirus có cơ chế phát hiện đơn giản với các từ khóa “nhạy cảm” được cho là có dấu hiệu của mã độc [8]. Công cụ Vbad, cho phép làm rối và mã hóa các phần trong mã độc macro, thậm chí là mã hóa toàn bộ các ký tự trong mã độc macro. Một số tính năng khác cho phép của nó như: làm rối tên hàm, mã hóa, sử dụng python để ẩn các đoạn mã, tự động mở, loại bỏ VBA định dạng, hay xóa hết metadata từ tệp để giúp lẩn tránh sự phát hiện các chương trình antivirus [7]. Các kỹ thuật được sử dụng nhiều để làm rối chẳng hạn như: xóa bỏ các nhận xét, bỏ khoảng cách lề so với mặc định trong code; chia nhỏ các đoạn code macro thành nhiều dòng khác nhau; xóa các thủ tục, hàm, module bằng cách sử dụng các tùy chỉnh trong macro; thêm các phần giả mạo nhận xét trên code macro để làm rối nội dung macro [10]. Có thể thấy, kẻ tấn công luôn tìm cách tạo ra những phương pháp mới, tinh vi hơn để che dấu mã độc, những biến thể của nó, việc nghiên cứu các kỹ thuật này là cần thiết để từ đó có những giải pháp phòng chống thích hợp nhằm giảm thiểu, ngăn chặn và phòng chống lại các nguy cơ do nó gây ra. III. MỘT SỐ KỸ THUẬT CHE DẤU MÃ ĐỘC MACRO Trong phần này, chúng tôi sẽ trình bày ba phương pháp kỹ thuật che dấu mã độc macro, trong đó có hai phương pháp mới được đề xuất đó là kỹ thuật truyền biến vào shellcode và làm rối tên các hàm API của Windows. Mã độc macro được tạo ra ban đầu, bao gồm code và shellcode được viết trên macro của Office Microsoft và có khả năng qua mặt 32/59 các chương trình phát hiện và phòng chống mã độc khi kiểm tra trên dịch vụ Virus Total. Hình 2. Kết quả kiểm tra trên Virus Total của mã độc macro khi chưa sử dụng các kỹ thuật bypass Dựa trên cơ chế phát hiện mã độc dựa trên mẫu của các chương antivirus, các chương trình này sẽ tiến hành kiểm tra và xác định các từ khóa “nhạy cảm” như tên hàm, tên biến, các giá trị đường đẫn được các hàm gọi tới, được xác định là nguy cơ cao có dấu hiệu mã độc như Process, PROCESS_INFORMATION… Để qua được công cụ phát hiện của các chương trình antivirus, việc thay đổi toàn bộ các tên biến, các hàm được gọi bằng những giá trị bất kỳ không theo một quy luật nào là một trong nhưng phương pháp có hiệu quả và đã được sử dụng. Bảng 1. Một số giá trị hàm, tên biến được làm rối Tên ban đầu Tên đã được làm rối Private Type PROCESS_INFORMATION Private Type Ajajhsdh2uhgshdhgashgdasytudygqwlksad hProcess As Long Basjhagdyqwoieqowjhoashjdasjdhalkhdasda As Long hThread As Long Calkjjhqwhqwjehlkjhnasdjhlkasdadasdqw As Long dwProcessId As Long Dasjhkashdkjhwqhklqhkwleqweqweqweqw As Long dwThreadId As Long Easkjdasjdlkasjdlkahjsdhasldhkwqjhgaksdad As Long Bảng 1, thể hiện các giá trị của tên hàm và biến được sử dụng để thay thế bằng giá trị bất kỳ để tránh sự kiểm tra của các chương antivirus, chẳng hạn như tên hàm “PROCESS_INFORMATION” được thay thế bằng chuỗi có giá
  4. Võ Văn Hoàng, Nguyễn Nam Hải, Nguyễn Ngọc Hoá 347 trị là “Ajajhsdh2uhgshdhgashgdasytudygqwlksad” hay tên biến “hProcess” được thay thế bằng chuỗi có giá trị là “Basjhagdyqwoieqowjhoashjdasjdhalkhdasda” mà không làm thay đổi đi tính năng của nó. Sau khi tiến hành thay đổi toàn bộ các tên hàm, tên biến, đường dẫn được cho là có khả năng là đặc điểm nhận dạng của các chương trình anrivirus, bằng các giá trị bất kỳ, sau đó kiểm tra trên dịch vụ Virus Total cho kết quả là 17/59, so với kết quả kiểm tra ban đầu thì phương pháp này có khả năng qua mặt 15 chương trình antivirus (https://www.virustotal.com/#/file/008a09fee37055254c530a1e785111424aacfeb7e94683bb0f89aea84ca9fe0f/detectio n). Điều này cho thấy, nhiều chương trình phát hiện mã độc hiện tại vẫn còn sử dụng các kỹ thuật phát hiện cổ điển dựa trên các tên nhạy cảm, để đưa ra các dấu hiệu nghi ngờ mã độc, dựa trên cơ chế này sẽ cho phép tin tặc có khả năng sử dụng kỹ thuật thay thế các tên tương ứng nhằm mục đích làm rối để che dấu mã độc. Hình 3. Kết quả kiểm tra trên Virus Total với phương pháp gây rối tên hàm và biến. Kỹ thuật thứ nhất được đề xuất là truyền biến vào các shellcode của mã độc macro. Một mã độc hại được xây dựng trên macro có nhiều dạng khác nhau, với các cơ chế thực thi khác nhau, code của nó có thể được chia làm nhiều phần khác nhau, tùy thuộc độ phức tạp của từng mã độc, mỗi phần làm một nhiệm vụ cụ thể để phục vụ cho việc thực thi mã độc trên máy người dùng. Các mã độc macro có chứa thành phần shellcode thực thi thì rất dễ dàng có thể bị phát hiện bởi các chương trình antivirus thông qua cơ chế dò quét shellcode. Do vậy, để giảm thiểu khả năng bị phát hiện dựa trên việc dò quét các shellcode có chứa trên macro nói riêng và các dạng mã độc khác nói chung thì cần làm thay đổi đi việc hiển thị shellcode thông thường, để khi các chương trình anrivirus kiểm tra sẽ không nhận dạng được shellcode, nhưng không được làm thay đổi tính chất của nó. Hình 4. Shellcode trên macro khi chưa được làm rối Hình 4 thể hiện shellcode khi chưa được áp dụng kỹ thuật làm rối trên macro, đối với các chương trình diệt mã độc, có thể dễ dàng nhận biết được được mẫu shellcode bởi đặc tính phổ thông của nó. Phương pháp thay đổi cách hiển thị shellcode này, cho phép lẩn tránh sự phát hiện của các chương trình phát hiện mã độc có cơ chế phát hiện cổ điển dựa trên việc dò quét các shellcode, nhưng vẫn đảm bảo không làm thay đổi chức năng của shellcode. Thông thường, các giá trị shellcode này là các giá trị số và có giá trị nhỏ hơn 255, phương pháp gây rối được thực hiện ở đây bằng cách thay các giá trị số này bằng các chuỗi thông qua hình thức gắn các biến cho giá trị của mảng shellcode, chẳng hạn như giá trị 255 sẽ được thay bằng chuỗi “Aasdkwnqljhla” thông qua việc gọi thêm biến số và truyền biến số này vào trong mảng của shellcode. Truyền biến để thay một số giá trị số trên mảng của shellcode cho kết quả thể hiện như hình 5 và không làm mất đi tính năng vốn có của nó. Hình 5. Shellcode trên macro được làm rối bằng cách gắn và truyền biến vào shellcode
  5. 348 MỘT SỐ KỸ THUẬT GÂY RỐI, CHE DẤU MÃ ĐỘC MACRO Khi tiến hành gọi biến và truyền vào cho một số các giá trị khác trên mảng của shellcode, cho một mảng mới với các nội dung mới mà khi thể hiện nó sẽ khác với cách thể hiện các shellcode gốc thông thường. Áp dụng phương pháp này sau đó tiến hành kiểm tra trên dịch vụ của Virus Total cho kết quả là 22/58, như vậy phương pháp này có khả năng qua mặt được hơn 10 loại chương trình antivirus so với kết quả ban đầu trước khi áp dụng kỹ thuật gây rối. Hình 6. Các giá trị biến đã được gắn và truyền vào trên shellcode Hình 7. Kết quả kiểm tra trên Virus Total sau khi truyền biến vào thay thế một số giá trị shellcode Kỹ thuật thứ hai được đề xuất là làm rối tên các hàm API được gọi trong mã độc macro, việc thực hiện phương pháp này dựa trên tính năng gọi hàm và cơ chế phát hiện của các chương trình antivirus. Các chương trình này khi kiểm tra các tệp, nếu phát hiện dấu hiệu các hàm hệ thống được gọi trong mã độc thì sẽ nhận định là một trong các dấu hiệu mã độc. Từ đó, để tránh sự phát hiện có thể thay đổi cách gọi các tên hàm này. Đối với cơ chế gọi hàm trên macro, thông thường khi gọi các hàm có thể gọi thông qua tên của hàm hoặc tên thư viện trong Windows, chẳng hạn như có thể gọi thông qua tên của thư viện là kernel32 hoặc kernel32.dll. Một số chương trình antivirus chỉ dựa trên tên của thư viện và phân biệt giữa chữ hoa, chữ thường để làm dấu hiệu nhận dạng mã độc. Như vậy, nếu thay tên các hàm này bằng các tên thư viện của nó và đồng thời thay đổi các kiểu chữ của các hàm này chẳng hạn như “kernel32” thay bằng “kERNel32.dll” thì vừa làm thay đổi nội dung thể hiện và làm mất đi kiểu gọi thông thường của nó nhưng không thay đổi chức năng của nó. Hình 8. Thay đổi tên thư viện gọi và kiểu chữ hoa, thường Khi áp dụng kỹ thuật này cho các tên hàm và thư viện được gọi trong code của mã độc macro và kiểm tra trên dịch vụ Virus Total, chúng tôi thu được kết quả là 15/59 đã qua mặt được 17 chương trình antivius so với kết quả ban đầu. Như vậy có thể thấy, cơ chế phát hiện dựa trên những thành phần gọi tên hàm “nhạy cảm” của Windows của các chương trình diệt mã độc vẫn chiếm phần nhiều và nó chính là những điểm yếu cho phép tin tặc tạo ra những mã độc có khả năng lẩn tránh sự phát hiện. Hình 9. Kết quả kiểm tra trên Virus Total khi thay đổi kiểu chữ và kiểu gọi thư viện API
  6. Võ Văn Hoàng, Nguyễn Nam Hải, Nguyễn Ngọc Hoá 349 Tóm lại, ba phương pháp gây rối được đề cập để nhằm che dấu mã độc trong macro ở đây, bao gồm kỹ thuật gây rối bằng phương pháp thay tên biến đã được sử dụng; hai phương pháp mới là: kỹ thuật gắn và truyền các tên biến bằng các chuỗi vào shellcode mã độc; làm rối các hàm API bằng các kiểu chữ hoa, thường khác nhau và kiểu gọi các hàm này. Các phương pháp này có kết quả tốt nhất là qua mặt được 17 loại antivirus so với mã độc ban đầu và 44 trên tổng 59 chương trình antivirus bị qua mặt khi kiểm tra trên dịch vụ Virus Total. IV. KẾT HỢP CÁC KỸ THUẬT GÂY RỐI Ở phần III, chúng tôi đã trình bày các phương pháp gây rối với các kết quả kiểm tra thông qua dịch vụ Virus Total. Trong phần này, chúng tôi sẽ trình bày về việc kết hợp các kỹ thuật gây rối để cho kết quả tốt hơn trong việc che dấu mã độc, nhằm phục vụ công tác đánh giá an toàn thông tin cho các hệ thống thư điện tử cơ quan nhà trước sự bùng nổ phát tán mã độc và thư rác (spam) qua hệ thống thư điện tử, cũng như để có các giải pháp phòng tránh. Khi áp dụng kết hợp giữa kỹ thuật gắn và truyền tên biến bằng các chuỗi vào các giá trị shellcode và phương pháp gây rối bằng tên biến cho code mã độc macro, khi kiểm tra trên dịch vụ Virus Total cho kết quả là 16/591. Hình 10. Kết quả kiểm tra khi kết hợp phương pháp truyền biến vào shellcode và gây rối tên hàm, biến Tiếp đến, kết quả kiểm tra khi kết hợp giữa phương pháp gây rối tên biến và thay tên chữ hoa, chưa thường và kiểu gọi các hàm API trong mã độc macro, tiến hành kiểm tra trên dịch vụ Virus Total cho kết quả là 16/592. Hình 11. Kết quả khi kết hợp giữa gây rối tên biến và thay đổi kiểu gọi hàm API Thực nghiệm tương tự, khi kết hợp chéo các phương pháp này lại với nhau cho ta kết quả như bảng 2, trong đó: K1: Phương pháp truyền biến vào shellcode; K2: Phương pháp gây rối tên biến; K3: Phương pháp gây rối thay đổi cách gọi hàm và định dạng kiểu chữ. Bảng 2. Kết quả kiểm tra khi kết hợp 2 phương pháp với nhau qua dịch vụ Virus Total K1 K2 K3 K1 22/58 16/59 17/59 K2 16/59 17/59 16/59 K3 17/59 16/59 15/59 1 Chi tiết xem tại trang https://www.virustotal.com/#/file/5390e79a3a6a0fc4104132076d40cf88c1e40b79fb3c15b3c7791864ca304cec/detection 2 Chi tiết có tại trang https://www.virustotal.com/#/file/3d8ea8b6b8f55f5a19bd9dcdcbab1da22ae488b253399a2eb4b1be7e7762204d/detection
  7. 350 MỘT SỐ KỸ THUẬT GÂY RỐI, CHE DẤU MÃ ĐỘC MACRO Kết quả cho thấy, sau khi tiến hành kết hợp ba phương pháp gây gối trên macro lại với nhau, cho kết quả cuối cùng khi kiểm tra trên dịch vụ Virus Total là 12/59, so với kết quả kiểm tra ban đầu trước khi áp dụng các kỹ thuật gây rối là 32/59, thì việc kết hợp các giải pháp này cho phép lẩn tránh, che dấu được trước sự phát hiện của 20 chương trình diệt antivirus phổ biến, ngoài ra các hệ thống IDS/IPS, các hệ thống Mail Gateway cũng không phát hiện ra3. Sơ đồ kết quả và quá trình kết hợp các giải pháp gây rối mã độc macro như hình dưới, trong đó: K0: Kết quả ban đầu khi chưa sử dụng các kỹ thuật làm rối; K1, K2, K3: Tương ứng là các kỹ thuật làm rối trình bày trong bảng 2. K1=22/58 16/59 K0=32/59 K2=17/59 17/59 12/59 16/59 K3=15/59 Hình 12. Sơ đồ kết quả khi kết hợp các phương pháp làm rối mã độc macro Hình 13. Kết quả sau khi kết hợp các kỹ thuật làm rối trên macro Khi áp dụng các phương pháp này nó có khả năng lẩn tránh được sự phát hiện của Gmail. Một trong những hệ thống thư điện tử lớn nhất với các hệ thống phòng chống mã độc được cho là tốt. Hình 14. Khả năng lẫn tránh sự phát hiện của Gmail Bên cạnh đó, phương pháp này đã được sử dụng để đánh giá an toàn thông tin cho một số hệ thống thư điện tử tại một số cơ quan, đơn vị nhà nước, kết quả cho thấy nó có khả năng qua mặt được các lớp bảo vệ an ninh chẳng hạn như IDS/IPS, Mail Gateway và các chương trình antivirus trên các máy người dùng. Đối với dạng mã độc này, đặc điểm của nó là không ghi tệp mã độc lên ổ đĩa, toàn bộ mã macro được chèn vào dịch vụ Office của Microsoft trên bộ 3 Chi tiết xem tại trang https://www.virustotal.com/#/file/6860721a2d24f65bf005ccb526a50c2c4af2388c8ed85a62e43b9bf9aa81792e/detection
  8. Võ Văn Hoàng, Nguyễn Nam Hải, Nguyễn Ngọc Hoá 351 nhớ RAM, nên khả năng phát hiện rất khó, dẫn đến nó có khả năng chạy trên máy người dùng nhưng các chương trình antivirus, mà nó có khả năng qua mặt, không thể phát hiện ra. Hình 15. Khả năng lẩn tránh sự phát hiện khi pentest cho hệ thống mail các đơn vị nhà nước V. KẾT LUẬN Trong bài báo này, chúng tôi đã giới thiệu và đề xuất mới một số những kỹ thuật làm mờ, che dấu mã độc macro trong các tài liệu văn bản dạng sử dụng Office của Microsoft. Với việc kết hợp nhiều các kỹ thuật che dấu, chẳng hạn với 3 kỹ thuật (i) gây rối tên biến, (ii) truyền biến vào shellcode và (iii) gây rối cách gọi hàm-kiểu chữ, nhiều phần mềm phòng chống virus (iv) đã bị “qua mặt” không phát hiện được mã độc macro trong tệp văn bản có chứa mã độc được che dấu thông qua kỹ thuật kết hợp gây rối. Điều đáng nói hơn là đa phần các phần mềm dò quét virus, mã độc được sử dụng trong các hệ thống thư điện tử tại Việt Nam lại đa phần bị qua mặt với những mã độc sử dụng kỹ thuật che dấu này. Qua thực nghiệm đánh giá an toàn thông tin thực tế cho một số cơ quan đơn vị nhà nước đã được sử dụng kỹ thuật này cho thấy, khi tin tặc sử dụng kết hợp các kỹ thuật che dấu này để thực hiện các chiến dịch tấn công mạng vào các đối tượng cơ quan, doanh nghiệp thì hậu quả của nó rất nghiêm trọng. Trong phần đa tình huống, nó được xem như là một trong những dạng tấn công APT (Advanced Persistent Threat) tinh vi và phức tạp. Đối với những mã độc phức tạp macro được che dấu, một khi máy người dùng bị chiếm quyền điều khiển, nó sẽ âm thầm đánh cắp thông tin, dữ liệu người dùng và nguy hiểm hơn nữa là nó sẽ sử dụng máy người dùng như là một “bàn đạp” để có thể tấn công các máy tính nội bộ, các đối tượng liên quan. Do vậy, việc phòng chống các dạng tấn công này là hết sức cần thiết đối với các cơ quan, doanh nghiệp. Để làm được điều đó, cần có sự kết hợp các giải pháp kỹ thuật công nghệ, con người và quy trình chính sách tổng thể. Trong đó, việc nâng cao nhận thức người dùng, thông qua các lớp đào tạo, để giúp họ có thể phòng tránh và nhận dạng được các dạng tấn công này là quan trọng và cần thiết. Bên cạnh đó, cần có các hệ thống chống giả mạo và chống thư rác cho hệ thống thư điện tử, để giảm thiểu tối đa hình thức phát tán mã độc đến các đối tượng người dùng. Thêm vào đó, cần có hệ thống giám sát an ninh mạng để phát hiện sớm nguy cơ tấn công mạng cho các hệ thống mạng công nghệ thông tin của cơ quan nhà nước nói riêng và doanh nhiệp nói chung nhằm giảm thiểu và có phương án xử lý, phòng chống kịp thời trước các nguy cơ mã độc nói riêng và trước các cuộc tấn công mạng nói chung. TÀI LIỆU THAM KHẢO [1] Sergio De los Santos, José Torres. “Macro Malware Detection using Machine Learning Techniques A New Approach”. 2016. [2] Kamlesh Joshi, Himanshu Sangrola, Rahul Palaria. “The Threat of Obfuscated Malware”. International Journal on Emerging Tecnilogies, 2017. [3] Gandotra, E., et al. (2014). Malware Analysis and Classification: A Survey. Journal of Information Security. 5, 56- 64. http://dx.doi.org/10.4236/jis.2014.52006. [4] Ilsun You, Kangbin Yim. “Malware Obfuscation Tecniques: A Brif Survey”. 2010 International Conference on Broadband, Wireless Computing, Communication and Applications. [5] Symantect. https://www.symantec.com/content/dam/symantec/docs/reports/istr-23-2018-en.pdf. [6] Pastebin. https://pastebin.com/bD6xEP9a. [7] VBad. https://github.com/Pepitoh/VBad. [8] Excel-Pratique. https://www.excel-pratique.com/en/vba_tricks/vba-obfuscator.php. [9] Spreadsheet1. https://www.spreadsheet1.com/excel-vba-code-obfuscation.html. [10] M. Schiffman. “A Brief History of Malware Obfuscation: Part 2 of 2”. http://blogs.cisco.com/security, Feb. 2010.
  9. 352 MỘT SỐ KỸ THUẬT GÂY RỐI, CHE DẤU MÃ ĐỘC MACRO MALWARE OBFUSCATION TECHNIQUES FOR HIDING MALICIOUS MACROS Vo Van Hoang, Nguyen Nam Hai, Nguyen Ngoc Hoa ABSTRACT: Nowadays, network attacks are significantly complex, varied in form and type. Especially, one of the targets that hackers exploit is the process of data exchange by using email systems. In e-government, documents are being transfer through the e-mail system, which is one of the vulnerabilities that hackers can embed malicious macros. led to cyberattacks. Normally, in order to bypass the antivirus software, a lot of obfuscation techniques are recently used. Its main ideas are based on the change of malicious codes to avoid being detected by the antivirus program. In this paper, we propose two new techniques in order to obfuscate the malicious macros embedded in MS Office documents. First one is based on the technique to marshal the variables to shell-code and the second is to obfuscate names of the Windows API functions. We also propose a combination approach to obfuscate the malicious macros by combining different techniques. Our experiment performed on VirusTotal allows to validate the proposed techniques, and therefrom to help the users and network administrators to both provide and improve the network security solutions in order to prevent these types of attacks. Keywords: malicious macro hiding, macro obfuscation, obfuscation technique combination.
nguon tai.lieu . vn