TÓM TẮT
gần đây nghiên cứu vi kiến trúc đã đề xuất phương án khác nhau
để tăng cường xử lý với các thẻ bổ sung để theo dõi tài sản khác nhau
của một chương trình. Kỹ thuật đó, mà thường được gọi là
theo dõi dòng chảy thông tin, đã được áp dụng rộng rãi để bảo đảm phần mềm
thực hiện (ví dụ, mùi hoi tracking), bảo vệ sự riêng tư phần mềm và
cải thiện hiệu suất (ví dụ, kiểm soát đầu cơ).
Trong bài báo này, chúng tôi đề xuất một cuốn tiểu thuyết sử dụng theo dõi dòng chảy thông tin
xáo trộn những dòng điều khiển toàn bộ chương trình với chỉ
suy giảm hiệu suất khiêm tốn, để đánh bại tiêm mã độc hại,
không khuyến khích vi phạm bản quyền phần mềm và cản trở phân tích phần mềm độc hại. Cụ thể,
chúng ta khai thác hai tính năng phổ biến các thông tin theo dõi dòng chảy:
các hỗ trợ kiến trúc cho công tác tuyên truyền tự động của các thẻ và
xử lý vi phạm lạm dụng thẻ. Không giống như các hệ thống khác sử dụng
thẻ như sấm để bắt cuộc tấn công (ví dụ, theo dõi vết nhơ) hoặc đầu cơ
thất bại, chúng tôi sử dụng các thẻ như các vị từ dòng nhạy cảm để ẩn bình thường
chuyển dòng điều khiển: các thẻ được sử dụng như là các vị từ để kiểm soát
chuyển lưu lượng đến các vi phạm xử lý, nơi kiểm soát dòng chảy thực tế
chuyển nhượng xảy ra.
Chúng tôi đã thực hiện một mẫu thử nghiệm làm việc dựa trên Itanium
bộ vi xử lý, bằng cách tận dụng sự hỗ trợ phần cứng để kiểm soát đầu cơ.
Kết quả thử nghiệm cho thấy Bosh có thể xáo trộn những
dòng điều khiển toàn bộ chỉ với một bình 26,7% (dao động từ 4%
đến 59%) hất trên SPECINT2006. Sự gia tăng kích thước mã và
thời gian biên dịch cũng rất khiêm tốn.
Thể loại và Descriptors Subject
K.6.5 [Quản lý của máy tính và Hệ thống thông tin]:
An ninh và Bảo vệ truy cập trái phép,
điều khoản chung
an
* Nghiên cứu này được tài trợ bởi Chương trình Quốc gia Trung Quốc 973 theo quỹ hỗ trợ
đánh số 2005CB321905, Quỹ Khoa học Quốc gia của Trung Quốc
dưới cấp số 90.818.015 và một khoản tài trợ nghiên cứu từ Intel.
Giấy phép làm bản sao kỹ thuật số hoặc khó khăn của tất cả hoặc một phần của tác phẩm này với
mục đích cá nhân hoặc lớp học được cấp mà không cần lệ phí cung cấp các bản sao đều
không được thực hiện hoặc phân phối để lợi nhuận hoặc lợi thế thương mại và các bản sao
chịu thông báo này và trích dẫn đầy đủ trên trang đầu tiên. Để sao chép nếu không, để
tái xuất, đăng bài trên các máy chủ hoặc phân phối lại các danh sách, yêu cầu cụ thể trước khi
cho phép và / hoặc lệ phí.
MICRO'09, ngày 12-ngày 16 Tháng Mười Hai, 2009, New York, NY, USA.
Copyright 2009 ACM 978- 1-60558-798-1 / 09/12 ... $ 10,00.
Keywords
Flow Control Obfuscation, luồng thông tin theo dõi, Opaque
Predicate, kiểm soát đầu cơ
1. GIỚI THIỆU
kỹ thuật ngược có ứng dụng tốt như phục hồi
các thuật toán có giá trị từ phần mềm kế thừa, phát hiện các giao thức
và các dạng file [8] cho các hệ thống phát hiện xâm nhập. Tuy nhiên, nó
cũng có nhiều nhược điểm. Ví dụ, các hacker phần mềm thường
sử dụng các công cụ kỹ thuật đảo ngược để khám phá các lỗ hổng phần mềm
và tiêm mã độc hại, đặc biệt cho các phần mềm độc quyền.
Ví dụ, sâu CodeRed [30], đã được phát hành sau khi "reverseengineering
mã nhị phân" [17] của Microsoft IIS máy chủ. Trong khi đó,
vi phạm bản quyền phần mềm, kích hoạt bằng kỹ thuật đảo ngược, là một nghiêm trọng
đe dọa đến ngành công nghiệp phần mềm.
Chương trình obfuscation [6, 28, 18, 24] là một công cụ bảo vệ phần mềm
để giảm thiểu các vấn đề an ninh và vi phạm bản quyền phần mềm lớn lên bằng
kỹ thuật đảo ngược. Nó hoạt động bằng cách chuyển đổi một chương trình thành một
đối tác có chức năng tương đương, mà tuy nhiên đặt ra một đáng kể
rào cản để phát hiện ra những ngữ nghĩa cao cấp và cấu trúc
của chương trình.
Mặc dù phân tích năng động hầu như có thể tiết lộ sự thực hiện thực
dấu vết của bất kỳ chương trình làm rắc rối, đó là thường khó khăn để thực
hiện trong thực tế do thời gian và không gian cần thiết. Bộ vi xử lý hiện đại
thực hiện hàng tỷ lệnh mỗi giây, trong đó yêu cầu
số lượng thực tế của nguồn để thu thập dấu vết và áp dụng truyền thống
các kỹ thuật phân tích, trong khi quyết định khi nào và bắt đầu từ đâu
thu thập dấu vết cũng là khó khăn về chương trình làm rắc rối. Cuối cùng,
phân tích năng động có vấn đề bảo hiểm ở chỗ nó có thể
yêu cầu trường hợp thử nghiệm đủ để lộ nhiều lỗi và lỗ hổng,
mà thường ẩn trong đường dẫn chương trình hiếm. Điều này sẽ thêm
vào các quá trình đã tốn nhiều thời gian và tốn kém. Vì vậy, có
những lợi ích nghiên cứu đáng kể trong việc cung cấp chương trình obfuscation
kỹ thuật, để buộc các đối thủ để chuyển sang phân tích năng động
kỹ thuật.
Obfuscating trước cách tiếp cận chủ yếu sử dụng biến đổi chương trình
dựa trên predicates1 đục
[6] để xáo trộn sự kiểm soát
chuyển dòng chảy, và sau đó chèn mã không có thật trong đường dẫn untaken xáo trộn
dòng chảy dữ liệu. Biến đổi chương trình điển hình bao gồm kiểm soát
dòng chảy phẳng [28], chức năng con trỏ [22], chức năng chi nhánh [18],
dựa trên thực tế rằng phân tích bí danh interprocedural và con trỏ
phân tích là NP-hard [6, 28, 22]. Tuy nhiên, các phương pháp này thường
đi kèm với suy giảm hiệu suất đáng chú ý nếu áp dụng trên
mức độ toàn bộ chương trình. Ví dụ, các phương pháp kiểm soát phẳng
[28] có thể phải chịu trên không hiệu quả hơn 5X nếu
1A vị là đục nếu giá trị được biết đến bởi một obfuscator, nhưng
khó có thể suy ra bởi một deobfuscator.
đang được dịch, vui lòng đợi..
