Danh mục

Phân tích các tấn công chiếm quyền điều khiển DLL

Số trang: 8      Loại file: pdf      Dung lượng: 228.79 KB      Lượt xem: 10      Lượt tải: 0    
tailieu_vip

Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Phân tích các tấn công chiếm quyền điều khiển DLLTrong bài này chúng tôi sẽ giới thiệu cho các bạn các lỗi trong kiến trúc phần mềm có thể bị tấn công chiếm quyền điều khiển DLL, cách phát hiện các ứng dụng có lỗ hổng hay không và cuối cùng là các bước thực hiện để bảo đảm tránh được các tấn công kiểu này. Cho đến cuối tháng 8 năm 2010, các nhà nghiên cứu bảo mật đã tiết lộ các thông tin chi tiết về một lớp lỗ hổng bảo mật mà theo họ đã có một...
Nội dung trích xuất từ tài liệu:
Phân tích các tấn công chiếm quyền điều khiển DLL Phân tích các tấn công chiếm quyền điều khiển DLLTrong bài này chúng tôi sẽ giới thiệu cho các bạn các lỗi trong kiến trúc phầnmềm có thể bị tấn công chiếm quyền điều khiển DLL, cách phát hiện các ứngdụng có lỗ hổng hay không và cuối cùng là các bước thực hiện để bảo đảmtránh được các tấn công kiểu này.Cho đến cuối tháng 8 năm 2010, các nhà nghiên cứu bảo mật đã tiết lộ các thôngtin chi tiết về một lớp lỗ hổng bảo mật mà theo họ đã có một số ảnh hưởng khárộng. Họ đã phát hiện ra hàng trăm ứng dụng bị hổng trước các tấn công này và tấncông này được đặt tên là chiếm quyền điều khiển DLL (DLL Hijacking). Trong bàinày chúng tôi sẽ giới thiệu cho cá bạn một số lỗi về kiến trúc phần mềm có thể bịảnh hưởng bởi các tấn công này, thêm vào đó là cách cách phát hiện các ứng dụngcó lỗ hổng hay không và cuối cùng là các bước thực hiện để bảo đảm tránh đượccác tấn công kiểu này.Cách tấn côngDLL hijacking có thể được thực hiện là vì tất cả các ứng dụng Windows đều dựavào các thư viện liên kết động (viết tắt DLL) với tư cách là những phần trong chứcnăng lõi của chúng. Các file DLL được các chuyên gia phát triển phần mềm viết vàtriệu gọi bên trong các ứng dụng của họ nhằm thực hiện các chức năng khác nhau.Bản thân Windows cũng dựa trên kiểu kiến trúc như vậy và có chứa vô số file DLLđể thực hiện rất nhiều chức năng khác nhau. Hack Internet OS và bảo mật - Tập 1 Tác giả: Vũ Đình Cường (Chủ biên), Phương Lan (Hiệu đính) Giá bán: 49.000 VNĐCùng với các file DLL có trong hệ điều hành Windows, các chuyên gia phát triểnứng dụng cũng thường viết riêng các file DLL của họ để thực hiện một số chức bởichương trình. Khi viết xong, các file DLL sẽ được đóng gói và được cài đặt cùngvới ứng dụng. Vấn đề nảy sinh theo cách các ứng dụng load các file DLL này. Mặcđịnh, khi một ứng dụng không có đường dẫn được định nghĩa cố định để chỉ đếnmột file DLL nào đó mà nó yêu cầu thì ứng dụng này sẽ thực hiện hành động tìmkiếm động. Trong quá trình thực hiện tìm kiếm, đầu tiên ứng dụng sẽ tìm kiếmtrong thư mục mà trước đó nó được thực thi, sau đó sẽ tìm kiếm thư mục hệ thống,thư mục hệ thống 16-bit, thư mục Windows, thư mục hiện hành và sau đó là cácthư mục được liệt trong biến môi trường PATH của hệ điều hành. Trong tìm kiếmcác đường dẫn này, ứng dụng sẽ sử dụng DLL mà nó tìm thấy đầu tiên.Với các kiến thức cơ bản trên, hãy hình dung một kịch bản mà ở đó chúng ta đãthực thi một ứng dụng phải thực hiện tìm kiếm động một DLL. Ứng dụng sẽ ngaylập tức tìm kiếm đường dẫn mà nó được thực thi trước đó và tìm ra một dll trùngkhớp. Tuy nhiên với người dùng, DLL thực có liên quan với ứng dụng nằm trongthư mục Windows system. DLL được đặt trong thư mục với ứng dụng là DLL đãđược điều chỉnh bởi một kẻ tấn công nhằm truy cập từ xa vào hệ thống. Rõ ràng,ứng dụng sẽ không thể tìm ra được DLL thực vì nó đã tìm thấy DLL trùng khớpmà nó cần tìm.Nhận dạng các ứng dụng có lỗ hổngVấn đề lớn nhất với các tấn công DLL hijacking là Microsoft không thể phát hànhbản vá để có thể vá được tất cả các ứng dụng có lỗ hổng. Điều này là vì nếu tung ramột bản vá như vậy sẽ làm cho một số ứng dụng bị vô hiệu hóa. Chính vì vậy việckhắc phục vấn đề sẽ liên quan đến cả hai bên. Đầu tiên, các công ty và chuyên giaphát triển phần mềm, người đã tạo các ứng dụng có lỗ hổng phải sửa code của họvà cung cấp các bản cập nhật đến người dùng. Tiếp đến, người dùng (các quản trịviên hệ thống) phải xác định xem liệu mạng của họ có đang sử dụng các ứng dụngcó lỗ hổng hay không, tìm ra và cài đặt các bản vá được các hãng cung cấp.Có một số cách có thể phát hiện liệu bạn có đang sử dụng ứng dụng có lỗ hổng haykhông. Phương pháp đơn giản nhất là kiểm tra các tài nguyên công cộng được postbởi các nhà nghiên cứu bảo mật và xem ứng dụng của bạn có tồn tại ở đó haykhông. Bạn có thể tìm kiếm các tài nguyên như vậy ở đây. Hình 1: Danh sách các ứng dụng có lỗ hổngPhương pháp thứ hai yêu cầu thêm một số công việc vì những gì cần được thựchiện sẽ xảy ra trong các môi trường bảo mật cao. Rất có thể bạn sẽ nghĩ phươngpháp này đòi hỏi phải có hiểu biết kỹ thuật và chỉ dành cho các chuyên gia bảo mậtmức cao. Tuy nhiên không phải như vậy, chuyên gia bảo mật HD Moore đã biếttầm quan trọng của tấn công này và đã phát triển một bộ kit thẩm định (auditingkit), đây là bộ kit có thể được sử dụng để tìm kiếm các ứng dụng có lỗ hổng trongmột hệ thống nào đó.Bộ kit này có tên gọi DllHijackAuditKitv2 và được cung cấp tại đây. Khi downloadxong, bạn cần đăng nhập với tư cách quản trị viên hệ thống, bung các nội dung củafile nén ZIP và thực thi file 01_StartAudit.bat. Kịch bản này sẽ downloadSysinternals Process Monitor và bắt đầu thực hiện việc kiểm tra hệ thống để tìm racác ứng dụng có lỗ hổng. Trong quá trình chạy nếu việc download Process Monitorthất bại thì ...

Tài liệu được xem nhiều: