Đề xuất mô hình gắn kèm mã thực thi vào dữ liệu thi hành
Bài báo đề xuất mô hình gắn kèm mã thực thi vào dữ liệu thi hành
trên môi trường windows, vượt qua cảnh báo của một số phần mềm anti-virus, dựa
trên việc nghiên cứu kỹ thuật và mô hình lây nhiễm của virus. Mô hình và kỹ thuật
cài đặt đề xuất làm giảm thiểu sự thay đổi đến cơ chế thi hành của dữ liệu gốc. Mô
hình được ứng dụng trong trường hợp khi cần cài đặt một số chức năng cho hệ
thống để kiểm soát, điều tra, thu thập thông tin từ hệ thống máy tính. Với việc cập
nhật mô hình mới, giúp cho việc tăng cường khả năng kiểm soát các dữ liệu thi
hành với những loại biến thể mới của virus.
Bạn đang xem tài liệu "Đề xuất mô hình gắn kèm mã thực thi vào dữ liệu thi hành", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
Tóm tắt nội dung tài liệu: Đề xuất mô hình gắn kèm mã thực thi vào dữ liệu thi hành
Nghiên cứu khoa học công nghệ Tạp chí Nghiên cứu KH&CN quân sự, Số 50, 08 - 2017 171 ĐỀ XUẤT MÔ HÌNH GẮN KÈM MÃ THỰC THI VÀO DỮ LIỆU THI HÀNH Tống Minh Đức* ồTóm tắt: Bài báo đề xuất mô hình gắn kèm mã thực thi vào dữ liệu thi hành trên môi trường windows, vượt qua cảnh báo của một số phần mềm anti-virus, dựa trên việc nghiên cứu kỹ thuật và mô hình lây nhiễm của virus. Mô hình và kỹ thuật cài đặt đề xuất làm giảm thiểu sự thay đổi đến cơ chế thi hành của dữ liệu gốc. Mô hình được ứng dụng trong trường hợp khi cần cài đặt một số chức năng cho hệ thống để kiểm soát, điều tra, thu thập thông tin từ hệ thống máy tính. Với việc cập nhật mô hình mới, giúp cho việc tăng cường khả năng kiểm soát các dữ liệu thi hành với những loại biến thể mới của virus. Từ khóa: Bảo mật máy tính, Mã độc, Virus, Anti-virus, Mô hình lây nhiễm virus. 1. ĐẶT VẤN ĐỀ Hiện nay, 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 mang tính chất quốc tế và đã xuất hiện tại Việt Nam. Bên cạnh các loại mã độc phổ biến, ngày càng xuất hiện nhiều các dạng mã độc mới. Khi xâm nhập vào hệ thống máy tính, các mã độc âm thầm kiể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ển máy tính nạn nhân, và lấy cắp dữ liệu Trong khoa học máy tí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. Thuật ngữ 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, ... ) [3]. Những virus mới được biết trong thời gian gần đây đa phần hướng đến việc lấy cắ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ác nhằ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ều hành họ Windows 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ều hơn là các hệ điều hành khác. Một hình thức tấn công mới đặc biệt nguy hiểm ngày nay là các phần mềm mã độc xâm nhập vào hệ thống thông qua nhiều hình thức khác nhau, nằm ẩn trong hệ thống, chờ cơ hội ra tay thực hiện ý đồ của mình. Để có thể phát hiện được các loại mã độc này phần mềm anti-virus ngoài việc phát hiện, việc cập nhật các mã độc đã biết, phần mềm anti- virus còn phải phân tích, nhận diện các loại mã độc mới để cập nhật vào hệ thống. Với những mã độc mới, tùy vào khả năng phát hiện của các phần mềm anti-virus mà phần mềm cảnh báo cho người sử dụng cho phép cách ly, hoặc cho phép người sử dụng lựa chọn thi hành. Đã có nhiều nghiên cứu liên quan tới bài toán phát hiện và nhận dạng mã độc [2, 4, 5, 6]. Thường bài toán phân tích được chia làm 2 loại: Phân tích tĩnh dựa trên đoạn mã đặc trưng, và phân tích động dựa trên nhận diện hành vi. Trường hợp phân tích tĩnh tỏ ra khá hiệu quả đối với các mã độc đã được biết trước, các phần mềm anti-virus dựa trên các đoạn mã đặc trưng nhận diện mã độc, ngăn chặn và cách ly hiệu quả. Tuy nhiên, vấn đề gặp khó khăn khi phải đối mặt với những mã độc nằm ẩn mình trong máy tính, chờ cơ hội, thời gian hợp lý ra Công nghệ thông tin & Cơ sở toán học cho tin học Tống Minh Đức, “Đề xuất mô hình gắn kèm mã thực thi vào dữ liệu thi hành.” 172 tay phá hoại. Các mã độc này là loại khó diệt nhất và nguy hiểm nhất đối với người sử dụng, nó có thể ẩn mình trong hệ thống lâu dài mà người dùng không hề hay biết. Đối với kỹ thuật phân tích động, dựa trên hành vi của mã độc để phân tích đã tỏ ra khá hiệu quả với những loại mã độc mới hoặc biến thể của nó, dựa vào các hành vi như: mở dữ liệu, ghi kèm vào dữ liệu, tìm dữ liệu, mở cổng để truy cập nối mạng, gửi tài liệu ra ngoài, quyết tìm các dữ liệu trên ổ đĩa. Tuy nhiên, kỹ thuật này phụ thuộc rất lớn vào việc mã độc phải thi hành ngay. Một số mã độc sử dụng kỹ thuật Bypass ASLR (Address space layout randomization) vượt qua cơ chế bảo mật trên các hệ điều hành windows. Để chương trình chiếm quyền hệ thống, toàn quyền sử dụng các API mà hệ thống cung cấp, một phương pháp khá phổ biến được nhiều loại mã độc sử dụng hiện nay đó là khai thác lỗ hổng 0 days, leo thang đặc quyền [7]. Trong thực tế, cũng có những trường hợp khi cần điều tra, giám sát, thu thập thông tin từ hệ thống máy tính quản lý, hoặc cần cài đặt một số chức năng cho hệ thống để kiểm soát hệ thống dữ liệu, phục vụ công tác giám sát, cũng như tăng cường khả năng kiểm soát với những loại mã độc phát triển theo mô hình mới, chẳng hạn trường hợp cài đặt kiểm soát trong: trong các dữ liệu thực thi, cài đặt thêm một đoạn mã để trước khi chạy chương trình, đoạn mã được thi hành trước để phát hiện những thay đổi của dữ liệu chủ. Thường các đoạn mã cài đặt theo các mô hình truyền thống của mã độc dễ bị các hệ thống anti- virus phát hiện, cảnh báo. Trong bài báo, tác giả tập trung nghiên cứu, phân tích các kỹ thuật đặc trưng của virus và mô hình của virus gắn kèm vào dữ liệu thực thi. Sau khi phân tích các yếu tố dễ làm thay đổi cơ chế dữ liệu thi hành, tác giả đề xuất mô hình gắn kèm mã thực thi vào dữ liệu với sự thay đổi cơ chế thi hành dữ liệu chủ ít nhất, sử dụng mã hóa mã lệnh để che giấu đoạn mã thực thi, nhằm trách sự kiểm soát của các hệ thống anti-virus. Qua nghiên cứu giúp chúng ta làm chủ được hệ thống với các mô hình mới của virus, kết quả nghiên cứu còn được ứng dụng phục vụ công tác quản lý, giám sát, thu thập thông tin điều hành. 2. MÔ HÌNH ĐÍNH KÈM MÃ LỆNH VÀO DỮ LIỆU THI HÀNH Trong mô hình đính kèm mã lệnh vào dữ liệu thi hành thì yếu tố bắt buộc là đoạn mã đính kèm phải được thi hành trước dữ liệu chủ, vì trong trường hợp dữ liệu chủ được thi hành trước, mã độc sẽ rất khó kiểm soát khi nào thì chương trình chủ trao quyền điều khiển cho mã độc. Chính vì vậy, mã độc sẽ chiếm quyền kiểm soát trước, sau khi thi hành xong các chức năng của mình, mã độc sẽ trao lại quyền điều khiển cho dữ liệu chủ thi hành. Để thực hiện được kỹ thuật này, virus đã phải điều hướng lệnh thi hành xuống đoạn chương trình virus thông qua một số kỹ thuật như: thay đổi đầu vào OEP (Original Entry Point) của chương trình xuống vị trí chứa đoạn mã virus hoặc sử dụng đoạn lệnh nhảy (jump) ngay từ lệnh đầu tiên của chương trình xuống virus. Trong phần này sẽ đi sâu phân tích các mô hình lây nhiễm của virus và ưu nhược điểm. 2.1. Mô hình lây nhiễm của virus Virus dữ liệu khi tiến hành lây nhiễm phải tuân theo nguyên tắc: quyền điều khiển phải thuộc về virus trước khi virus trả lại quyền điều khiển cho dữ liệu bị lây nhiễm. Tất cả các dữ liệu của dữ liệu phải được bảo toàn sau khi quyền điều khiển thuộc về dữ liệu. Dưới đây trình bày một số mô hình cơ bản lây nhiễm của virus lây vào dữ liệu dựa trên vị trí của virus: mô hình ghi đè, mô hình chèn vào đầu, mô hình đính kèm vào cuối. 2.1.1. Mô hình ghi đè Mô hình này khá đơn giản khi virus lây nhiễm vào dữ liệu chủ thì virus chỉ việc ghi đè mã lệnh lên dữ liệu chủ, đảm bảo đầu vào của chương trình chủ là đầu vào của virus. Do đó, khi chương trình chủ chạy thì virus chiếm quyền điều khiển và thi hành mã lệnh virus. Nghiên cứu khoa học công nghệ Tạp chí Nghiên cứu KH&CN quân sự, Số 50, 08 - 2017 173 Có thể dễ dàng nhận thấy rằng do dữ liệu chủ không còn hoạt động được nên virus dễ bị phát hiện và ngăn chặn. Mặt khác, với virus hoạt động theo phương thức ghi đè, không có khả năng “tháo gỡ” virus để trả lại dữ liệu chủ như ban đầu theo cách hiểu truyền thống. Một trong những virus được thiết kế ghi đè theo mô hình trên đã hoạt động rất hiệu quả là Virus LOVELETTER. Mô hình này có ưu điểm là khá đơn giản do virus không cần định vị lại trên vùng nhớ. Khi virus chạy không lưu giữ lại phần dữ liệu của chương trình chủ nên sau khi virus lây nhiễm, dữ liệu chủ sẽ không còn hoạt động được. Nhược điểm của mô hình ghi đè mang tính chất phá hoại nhiều hơn và khả năng lây lan của virus sử dụng mô hình này là rất hạn chế. Do dữ liệu chủ bị hỏng nên mô hình này khó phát tán được virus. 2.1.2. Mô hình ghi chèn vào đầu. Virus chèn đoạn mã của nó vào đầu dữ liệu bị lây nhiễm và đưa toàn bộ nội dung dữ liệu xuống phía dưới ở ngay sau chương trình virus. Nhược điểm của mô hình này do đầu vào của dữ liệu bị rời một đoạn bằng độ dài của virus gán vào dữ liệu nên nếu giữ nguyên thì dữ liệu không thi hành được vì bị sai lệch địa chỉ tuyệt đối. Do đó, trước khi virus trả quyền điều khiển cho dữ liệu thi hành thì virus cần phải tải lại dữ liệu đúng như hành ảnh ban đầu của dữ liệu khi chưa bị lây nhiễm, việc thi hành dữ liệu sẽ chậm gây ảnh hưởng đến bộ nhớ. Vì vậy, mô hình này trong thực tế ít được sử dụng. 2.1.3. Mô hình chèn vào cuối dữ liệu Mô hình lây nhiễm chèn mã virus vào cuối dữ liệu là mô hình được sử dụng ở hầu hết các loại dữ liệu, do tính chất lây nhiễm không làm ảnh hưởng nhiều tới vị trí tải dữ liệu gốc vào bộ nhớ và thi hành dữ liệu gốc, giảm được nhiều thời gian tải lại dữ liệu vào đúng vị trí như mô hình lây nhiễm vào đầu dữ liệu, giảm được thời gian chuyển quyền điều khiển cho dữ liệu, vì vậy, mô hình được sử dụng nhiều hơn so với các mô hình khác. Mô hình này mã virus sẽ được gắn vào cuối dữ liệu chủ sau khi lây nhiễm. Do mã của virus không nằm đúng đầu vào chương trình OEP (Original Entry Point) nên virus sẽ định vị lại dữ liệu bị lây nhiễm bằng cách thay đổi dữ liệu của dữ liệu sao cho quyền điều khiển trỏ vào đúng mã lệnh của virus, và sử dụng kỹ thuật định vị chương trình để tính toán các địa chỉ trong đoạn mã lệnh virus sử dụng. Hình 1. Mô hình ghi vào cuối dữ liệu. Mô hình lây nhiễm ghi mã virus vào cuối dữ liệu có ưu điểm có thể lây nhiễm trên mọi dữ liệu thi hành. Mặt khác, sự thay đổi dữ liệu trên dữ liệu bị lây nhiễm là không đáng kể và việc chiếm quyền điều khiển của virus là không mấy khó khăn nên mô hình này được áp dụng rất nhiều. Nhược điểm của mô hình ghi mã virus vào cuối dữ liệu là rất dễ dàng cho người diệt virus trong việc khôi phục dữ liệu và việc phát hiện có mã đính kèm. Công nghệ thông tin & Cơ sở toán học cho tin học Tống Minh Đức, “Đề xuất mô hình gắn kèm mã thực thi vào dữ liệu thi hành.” 174 Với kỹ thuật phân tích tĩnh, dựa vào dấu hiệu của virus khi lây nhiễm do chuyển đoạn mã thi hành ngay xuống section cuối, một số phần mềm anti-virus hiện nay lợi dụng vào đặc điểm này để phát hiện, đưa ra cảnh báo có sự xuất hiện của mã mới trên dữ liệu thi hành. Phần sau chúng tôi đề xuất mô hình gắn kèm mã thực thi vào dữ liệu thi hành, mô hình cải tiến tránh được việc chuyển ngay đoạn mã thực thi xuống section cuối dữ liệu như các cách lây nhiễm truyền thống của virus, đề xuất kỹ thuật che giấu mã thi hành bằng kỹ thuật mã hóa dữ liệu, có thể qua mặt được một số phần mềm cảnh báo anti-virus. 3. PHÁT TRIỂN MÔ HÌNH GẮN KÈM MÃ VÀO DỮ LIỆU THI HÀNH 3.1. Mô hình đề xuất Với những phân tích ở trên, chúng tôi đề xuất mô hình gắn kèm mã thi hành vào dữ liệu thi hành được, yêu cầu mô hình đề xuất nhằm đảm bảo 2 yếu tố: - Đoạn mã thi hành trên dữ liệu phải được nằm trên section đầu tiên (Code –payload). - Tạo thêm 01 section cuối dữ liệu, phần đoạn mã sẽ được mã hóa (data) và gắn vào section cuối cùng mới tạo. Ở mô hình này, chương trình virus sẽ sinh đoạn payload “chèn” vào phần trống của section đầu tiên, chuyển con trỏ OEP vào đoạn code mới thêm vào, đồng thời mở thêm 1 section mới chứa dữ liệu data chính là dữ liệu virus đã được mã hóa. Đoạn payload thực hiện giải mã data, nạp lên vùng nhớ thực thi. Việc này chính là thực thi đoạn mã một cách gián tiếp thông qua 1 dữ liệu PE khác, nhưng lại là thực thi trực tiếp qua việc nạp thẳng đoạn chương trình lên vùng nhớ thực thi. Khi dữ liệu thi hành đoạn mã Code-payload có nhiệm vụ: - Giải mã đoạn dữ liệu được ghi trong section cuối; - Tạo dữ liệu mới, copy đoạn dữ liệu trong section cuối vào dữ liệu mới tạo; - Thực thi dữ liệu vừa tạo; - Trả lại điều khiển cho dữ liệu chủ. Dữ liệu vừa tạo có nhiệm vụ: - Lây nhiễm vào các dữ liệu khác theo mô hình mới đề xuất; - Thực hiện hoạt động khác (theo mục đích người viết). Mô hình cải tiến: Hình 2. Mô hình cải tiến ghi vào cuối dữ liệu. 3.2. Sơ đồ thuật toán Thuật toán sau mô tả các thao tác của đoạn mã data sau khi được giải mã đưa lên vùng nhớ: Nghiên cứu khoa học công nghệ Tạp chí Nghiên cứu KH&CN quân sự, Số 50, 08 - 2017 175 Hình 3. Sơ đồ thuật toán thi hành dữ liệu khi tải lên vùng nhớ. 3.3. Kết quả thử nghiệm Chương trình gắn kèm đoạn mã vào dữ liệu thi hành được viết theo mô hình cải tiến, viết trên ngôn ngữ C++, trình biên dịch VC++ 2012, Platform 64bit. Kết quả được thử nghiệm trên hệ điều hành windows 64 bit. Tác giả đã lần lượt thử nghiệm với hệ thống được cài đặt được một số phần mềm anti-virus như: Kapersky Antivirus 2016 và Bitdefender antivirus 2016. Ngoài ra, tác giả cho thử nghiệm upload dữ liệu sau khi đính kèm mã viết theo mô hình đề xuất lên trang kiểm tra mã độc online www.virustotal.com cho kiểm tra. Các phần mềm anti-virus hiện nay và hệ thống virus- total đều không phát hiện ra dấu hiệu nghi nghờ và không có cảnh báo. 4. KẾT LUẬN Trong các hệ thống anti-virus hiện nay, ngoài việc phân tích các loại mã độc và các hành vi của mã độc để phát hiện và loại bỏ các loại mã độc đã biết trước, việc phân tích cơ chế, dự đoán các mã độc đã nằm ẩn trong máy tính từ lâu, chờ cơ hội thuật lợi để ra tay là vấn đề rất cần thiết. Đối phó với những loại mã độc này là thách thức lớn trong lĩnh vực bảo đảm an toàn thông tin. Việc nghiên cứu các kỹ thuật và mô hình lây nhiễm của virus trên dữ liệu thi hành giúp làm chủ được hệ thống trong trường hợp có virus mới tấn công hệ thống. Hơn nữa, việc nghiên cứu mô hình lây nhiễm giúp cho chúng ta có thể cài đặt vào hệ thống phần mềm hữu ích, giúp giám sát sự thay đổi của các dữ liệu, hoặc giám sát Công nghệ thông tin & Cơ sở toán học cho tin học Tống Minh Đức, “Đề xuất mô hình gắn kèm mã thực thi vào dữ liệu thi hành.” 176 hệ thống. Việc phân tích và tìm hiểu mô hình ít thay đổi nhất về cơ chế thi hành trong dữ liệu cũng là hướng đi mới để các nhà phân tích virus quan tâm. Trong bài báo mới chỉ đề cập tới mô hình lây nhiễm và thuật toán cài đặt mã thi hành lên dữ liệu đảm bảo dữ liệu thi hành vẫn hoạt động được và có sự thay đổi ít nhất về cơ chế thi hành dữ liệu. Tác giả hướng tới việc đoạn mã nằm ẩn trong dữ liệu để có thể trách được một số cảnh báo của các phần mềm anti-virus hiện nay trong trường hợp kiểm tra trên dữ liệu tĩnh cũng như thi hành trên bộ nhớ mà hệ thống cho phép thi hành dữ liệu. Tuy nhiên, để có thể thi hành được đoạn mã qua mặt được các hệ thống hạn chế quyền truy cập thì cần đòi hỏi phải sử dụng một số kỹ thuật Bypass ASLR ..., loại bỏ được các tiến trình thì hệ thống phải được cài đặt với quyền NTAUTHORIZE/SYSTEM. Vấn đề để thi hành ở mức hệ thống, trong trường hợp hạn chế quyền truy cập chúng tôi sẽ có những nghiên cứu và phân tích tiếp theo. TÀI LIỆU THAM KHẢO [1]. Aman Hardikar .M, “Malware 101 – viruses”, SANS Institute, 2008. [2]. Dennis Distler, “Perfoming Behavioral Analysis of Malware”, SANS Training, 2011. [3]. Karen Kent, Murugiah Souppaya, “Guide to Malware Incident Prevention and Handling for Desktops and Laptops -Special Publication 800-83”, NIST(National Institute of Standards and Technology) (2013), tr. 2-6. [4]. Konrad Rieck, Philipp Trinius, Carsten Willems and Thorsten Holz, “Automatic Analysis of Malware Behavior using Machine Learning”, Journal of Computer Security, Volume 13, Number 4/2011, tr. 639-668. [5]. Nicolas Falliere, "Windows Anti-Debug Reference", (2012) [6]. Michael Sikorski, Andrew Honig, "Practical Malware Analysis". San Francisco, 2012. [7]. Morton Christiansen, “Bypassing Malware Defenses”, SANS Institute Reading Room (2010), tr. 17-34. [8]. Philipp Trinius, Thorsten Holz, Konrad Rieck and Carsten Willems, “A malware Instruction Set for Behavior-Based Analysis”, Sicherheit Berlin, Germany, 2010, tr. 205. [9]. Peter Szor, "The Art of Computer Virus Research and Defense", 2005. [10]. hacker-da-su-dung-virus, 2016. ABSTRACT AN INSERTED CODE INTO EXECUTED DATA MODEL The paper proposes a model that an executable data is inserted using some codes into the windows environment. This modified data can bypass specific alerts of the anti-virus software. Depending on the virus techniques and models that are empoyed, our work proposes new techniques and model that can minimize the changes to the executed mechanism of the original data. Our model is applied for the purposes of implementing some system functions in order to control, investigate,and collect system information. In addition, the model has the capacity to minimise new viruses in the field of execution. Keywords: Computer Security, Malware, Virus, Anti-virus, Virus infection model. Nhận bài ngày 26 tháng 12 năm 2016 Hoàn thiện ngày 06 tháng 02 năm 2017 Chấp nhận đăng ngày 18 tháng 8 năm 2017 Địa chỉ: 1 Học viện Kỹ thuật quân sự. * Email: ductm75@gmail.com.
File đính kèm:
- de_xuat_mo_hinh_gan_kem_ma_thuc_thi_vao_du_lieu_thi_hanh.pdf