Hình thức tấn công mới trong năm 2010 – DLL Hijacking

Vào cuối tháng 8 năm 2010 các nhà nghiên cứu bảo mật đã bắt đầu phát hành chi tiết của một lớp các lỗ hổng mà đã có một số ảnh hưởng lan ra khá rộng. Vấn đề này đã được đưa ra thảo luân bởi các công ty bảo mật và các nhà nghiên cứu và đã đem đến một vấn đề nghiêm trọng hàng trăm ứng dụng hiện nay đang có nguy cơ bị tấn công. Một loại hình tấn công mới khai thác những lỗ hổng này được gán cái tên là “DLL Hijacking”.

image

Thế thì nó hoạt động như thế nào mà có ảnh hưởng lớn đến vậy? thật sự ảnh hưởng hiện nay của nó chỉ tập trung ở các ứng dụng chạy trên Windows dựa vào việc sử dụng Dynamic Link Libraries (DLL) như một thành phần nhân hoạt động. Các file này là một thư viện cho phép các ứng dụng có thể liên kết đến và sử dụng nó. Nó được xem là một tổ hợp các hàm và dữ liệu mà có thể được sử dụng bởi nhiều ứng dụng khác nhau ở cùng một thời điểm để thực hiện các chức năng cần thiết cho ứng dụng gọi chúng. Và bản thân Windows vẫn dựa trên kiến trúc này để hoạt động và thực hiện các chức năng khác nhau.

Ngoài việc dựa trên các file DLL được xây dựng sẵn trong Windows, các nhà phát triển ứng dụng cũng thường xuyên tạo ra các thư viện DLL cung cấp các chức năng riêng cho ứng dụng của họ. Và vấn đề đặt ra ở đây là làm như thế nào mà ứng dụng có thể tải các thư viện DLL này lên và sử dụng?. Theo mặc định thì khi một ứng dụng không có một đường dẫn tĩnh được định nghĩa sẵn cho một DLL thì nó sẽ yêu cầu một tiến trình tìm kiếm tự động. Trong quá trình này ứng dụng đầu tiên sẽ tìm kiếm ở thư mục mà đang chưa file kích hoạt và sau đó tìm kiếm tiếp trong các thư mục hệ điều hành, thư mục Windows… và sau đó các thư mục này sẽ được liệt kê trong một biến môi trường. Tuy nhiên ứng dụng sẽ chọn sử dụng là đường dẫn DLL đầu tiên nó tìm ra.

Ở đây phần nào chúng ta đã hiểu sơ bộ về DLL hoạt động cơ bản ra sao (thiệt ra nói nâng cao là tự làm khó bản thân tôi lun rồi ^^). Vậy sao không thử tưởng tượng xem khi mà chúng ta kích hoạt một ứng dụng mà nó phải thực hiện hành động tìm kiếm tự động để yêu cầu một DLL được tải lên để xử dụng. Ngay lập tức quá trình tìm kiến thực hiện tự động và đầu tiên ngay thư mục mà nó kich hoạt và tìm thấy một DLL hợp lệ. Nhưng hợp lệ thì hợp lệ vấn đề nãy sinh là hợp lệ nhưng không đúng DLL vì DLL thực sự đang nằm trong thư mục Windows. DLL được tìm thấy thật sự là một thư viện giả mạo do kẻ tấn công đem bỏ vào thư mục của ứng dụng mà chúng ta vừa kích hoạt thay vi trong đó chứa các hàm thực thi chứng năng cần thiết cho ứng dụng thì giờ đây chúng là các hàm cho phép kẻ tấn công remote và tấn công vào hệ thống. Và ứng dụng sẽ chẳng bao giờ có được DLL thật sự vì nó luôn kiếm ra DLL hợp lệ đầu tiên là DLL của hacker bỏ vào.

Và thực sự vấn đề lớn nhất được đưa ra với hình thức tấn công này là Microsoft không thể giải ra một giải pháp thích đáng cho tất cả các ứng dụng hiện nay thậm chí còn có thể gây ra các vần đề khác cho tất cả các ứng dụng. Vì thế hiện nay hình thức tốt nhất là sữa chữa thù công dụa vào 2 bên. Bên thứ nhất là các công ty và nhà phát triển những người đã tạo ra các sản phẩm và hiện đang mắc lỗi này phải tạo ra các bản vá lỗi sữa chữa cho người dùng. Thứ hai là người dùng ( ở mức quản trị) phải xac định xem nếu hệ thống của họ đang chạy các ứng dụng mắc phải lỗi này phải tìm kiếm bằng vá lỗi của ứng dụng đó ngay lập tức hoặc khả dĩ phải ngừng cung cấp người dùng ứng dụng đó.

Sau đây thì tôi đưa ra 2 phương án xem làm sao xác minh bạn có chạy một ứng dụng mắc lỗi này hay không. Phương thức được cho là dễ nhất là kiểm tra trên các nguồn được cung cấp bởi các nhà ngiên cứu bảo mật. Bạn có thể tìm thấy một trong những nguồn khà lớn ở đây, trong đó có một danh sách khá đáng kể.

image

Hình 1: danh sách các ứng dụng có thể bị khai thác

Cách thứ hai này thì có vẻ sẽ đòi hỏi một số thao tác và chủ yếu thao tác này dành cho các nhà quản tri cac chuyên gia đang làm việc cho một môi trường an ninh cao. Các thao tác được thực hiện dựa trên bộ công cụ được cung cấp bởi công ty HD More.

Bộ công cụ này gọi là DllHijackAuditKitv2 và có thể tải về tại đây. Sau khi tải về xong, bạn sẽ đảm bào rằng mình đang thao tác trên quyền system admin giả nén và kích hoạt file execute 01_StartAudit.bat. Kịch bản này sẽ tải về Sysinternals Process Monitor và bắt đầu kiểm tra hệ thống cho các ứng dụng dễ bị tổn thương. Bạn có thể rút ngắn thời gian và đảm bảo không bi lỗi thì có thể tải trực tiếp tại đây . Nhưng phải chắc rằng khi tải về no phải cùng thư mục với các file đã tải từ trước. Việc ra soát có thể tốn vài phút hoặc hơn tùy số lượng ứng dụng có trên hệ thống.

image

Sau khi hoàn tât qua trình rà soát lúc này sẽ chuyển qua giao diện Process Monitor và chọn File –> Save từ menu bar. Save lại kết quả ghi nhận trong một file CSV có tên là Logfile.CSV trong cúng thư mục với bộ công cụ.

Bước tiếp theo là chạy file 02_Analyze.bat. Kịch bản trong đó sẽ phân tích file CSV và xác nhận các rủi. Với mỗi lỗi của những ứng dụng được tìm thấy sẽ đi kèm là các DLL có thể bị khai thác.

image

Vậy làm cách nào để hạn chế vấn đề phát sinh trước khi chúng ta nhận được các bản cập nhật chính thức. Câu trả lời này được Microsoft đưa ra để giải quyết vấn đề này là cung cấp một số các thay đổi trong registry (CWDIllegalInDllSearch Fix) để thay đổi vấn đề tim kiêm tự động của các ứng dụng đối với thư viện DLL. Tuy nhiên viec thay đổi này không đảm bảo hoạt động cho các ứng dụng khi mà chúng thực sự cần quá trình tim kiếm này cho hoạt động của chúng…Có thể tham khao cac fix này tại đây. Tuy nhiên cách tốt nhất vẫn là gỡ bỏ ứng dụng trước khi có bản vá.

Posted on 23/10/2010, in Tổng quan công nghệ and tagged , . Bookmark the permalink. Để lại bình luận.

Gửi phản hồi

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s

%d bloggers like this: