Windows

DLL Tấn công các lỗ hổng tấn công, ngăn chặn và phát hiện

api-ms-win-crt-runtime-l1-1-0.dll is missing from your computer

api-ms-win-crt-runtime-l1-1-0.dll is missing from your computer

Mục lục:

Anonim

DLL là viết tắt của Thư viện liên kết động và là các phần bên ngoài của ứng dụng chạy trên Windows hoặc bất kỳ hệ điều hành nào khác. Hầu hết các ứng dụng không hoàn thành trong bản thân và lưu trữ mã trong các tệp khác nhau. Nếu cần mã, tệp liên quan sẽ được tải vào bộ nhớ và được sử dụng. Điều này làm giảm kích thước tập tin ứng dụng trong khi tối ưu hóa việc sử dụng RAM. Bài viết này giải thích DLL Hijacking là gì và cách phát hiện và ngăn chặn nó.

Tệp DLL là gì hoặc Thư viện liên kết động

Tệp DLL là Thư viện liên kết động và hiển nhiên theo tên, là phần mở rộng các ứng dụng khác nhau. Bất kỳ ứng dụng nào chúng tôi sử dụng đều có thể hoặc có thể không sử dụng một số mã nhất định. Các mã như vậy được lưu trữ trong các tệp khác nhau và được gọi hoặc được nạp vào RAM chỉ khi mã có liên quan là bắt buộc. Do đó, nó tiết kiệm một tệp ứng dụng trở nên quá lớn và ngăn chặn sự cố tài nguyên của ứng dụng.

Đường dẫn cho các tệp DLL được thiết lập bởi hệ điều hành Windows. Đường dẫn được đặt bằng Biến môi trường toàn cục. Theo mặc định, nếu một ứng dụng yêu cầu một tệp DLL, hệ điều hành sẽ nhìn vào cùng một thư mục trong đó ứng dụng được lưu trữ. Nếu nó không được tìm thấy ở đó, nó đi đến các thư mục khác như được thiết lập bởi các biến toàn cục. Có những ưu tiên gắn liền với đường dẫn và nó giúp Windows trong việc xác định những thư mục để tìm các DLL. Đây là nơi mà các vụ tấn công DLL xâm nhập.

DLL hijacking

Vì DLL là phần mở rộng và cần thiết để sử dụng gần như tất cả các ứng dụng trên máy của bạn, chúng có mặt trên máy tính trong các thư mục khác nhau như đã giải thích. Nếu tệp DLL gốc được thay thế bằng tệp DLL giả chứa mã độc hại, nó được gọi là DLL Hijacking.

Như đã đề cập trước đó, có những ưu tiên về vị trí mà hệ điều hành tìm kiếm các tệp DLL. Đầu tiên, nó nhìn vào cùng thư mục với thư mục ứng dụng và sau đó tìm kiếm, dựa trên các ưu tiên được thiết lập bởi các biến môi trường của hệ điều hành. Vì vậy, nếu một tập tin good.dll là trong thư mục SysWOW64 và ai đó đặt một bad.dll trong một thư mục có ưu tiên cao hơn so với thư mục SysWOW64, hệ điều hành sẽ sử dụng tập tin bad.dll, vì nó có cùng tên với DLL theo yêu cầu của ứng dụng. Khi đã ở trong RAM, nó có thể thực thi mã độc hại chứa trong tập tin và có thể làm hỏng máy tính hoặc mạng của bạn.

Cách phát hiện DLL Hijacking

Phương pháp dễ nhất để phát hiện và ngăn chặn tấn công DLL là sử dụng các công cụ của bên thứ ba. Có một số công cụ miễn phí tốt có sẵn trên thị trường giúp phát hiện một nỗ lực hack DLL và ngăn chặn nó.

Một chương trình như vậy là DLL Hijack Auditor nhưng nó chỉ hỗ trợ các ứng dụng 32-bit. Bạn có thể cài đặt nó trên máy tính của bạn và quét tất cả các ứng dụng Windows của bạn để xem tất cả những ứng dụng nào đều dễ bị tấn công bởi DLL. Giao diện đơn giản và tự giải thích. Hạn chế duy nhất của ứng dụng này là bạn không thể quét các ứng dụng 64-bit.

Một chương trình khác, để phát hiện tấn công DLL, DLL_HIJACK_DETECT, có sẵn thông qua GitHub. Chương trình này kiểm tra các ứng dụng để xem liệu có bất kỳ ứng dụng nào trong số đó dễ bị tấn công do chiếm đoạt DLL hay không. Nếu có, chương trình sẽ thông báo cho người dùng. Ứng dụng này có hai phiên bản - x86 và x64 để bạn có thể sử dụng từng phiên bản để quét cả ứng dụng 32 bit và 64 bit.

Cần lưu ý rằng các chương trình trên chỉ quét các ứng dụng trên nền tảng Windows cho các lỗ hổng và không thực sự ngăn chặn tấn công các file DLL

Cách ngăn chặn tấn công DLL

Vấn đề cần được giải quyết bởi các lập trình viên ngay từ đầu vì không có nhiều việc bạn có thể làm trừ việc tăng cường hệ thống bảo mật của bạn. Nếu, thay vì đường dẫn tương đối, các lập trình viên bắt đầu sử dụng đường dẫn tuyệt đối, lỗ hổng sẽ bị giảm. Đọc đường dẫn tuyệt đối, Windows hoặc bất kỳ hệ điều hành nào khác sẽ không phụ thuộc vào biến hệ thống cho đường dẫn và sẽ đi thẳng cho DLL dự định, do đó loại bỏ khả năng tải cùng một tên DLL trong đường dẫn ưu tiên cao hơn. Phương pháp này quá, không phải là không bằng chứng bởi vì nếu hệ thống bị xâm nhập, và bọn tội phạm mạng biết đường dẫn chính xác của DLL, họ sẽ thay thế DLL gốc bằng DLL giả. Điều đó sẽ được ghi đè lên tập tin để các DLL gốc được thay đổi thành mã độc hại. Nhưng một lần nữa, cybercriminal sẽ cần phải biết đường dẫn tuyệt đối chính xác được đề cập trong ứng dụng gọi các DLL. Quá trình này rất khó khăn cho tội phạm mạng và do đó có thể được tính toán.

Quay trở lại những gì bạn có thể làm, chỉ cần cố gắng mở rộng hệ thống bảo mật của bạn để bảo mật hệ thống Windows của bạn tốt hơn. Sử dụng tường lửa tốt. Nếu có thể, hãy sử dụng tường lửa phần cứng hoặc bật tường lửa bộ định tuyến. Sử dụng hệ thống phát hiện xâm nhập tốt để bạn biết nếu có ai đang cố gắng chơi với máy tính của bạn.

Nếu bạn đang sử dụng máy tính xử lý sự cố, bạn cũng có thể thực hiện các bước sau để bảo mật:

  1. Vô hiệu hóa tải DLL từ mạng chia sẻ từ xa
  2. Vô hiệu hóa tải các tệp DLL từ WebDAV
  3. Tắt dịch vụ WebClient hoàn toàn hoặc đặt thành thủ công
  4. Chặn các cổng TCP 445 và 139 vì chúng được sử dụng nhiều nhất để xâm phạm máy tính
  5. Cài đặt các bản cập nhật mới nhất cho hoạt động phần mềm hệ thống và bảo mật.

Microsoft đã phát hành một công cụ để chặn các cuộc tấn công cướp tải trọng DLL. Công cụ này giảm thiểu nguy cơ tấn công hijacking DLL bằng cách ngăn chặn các ứng dụng từ mã tải không an toàn từ các tệp DLL.

Nếu bạn muốn thêm bất kỳ thứ gì vào bài viết, hãy bình luận bên dưới.