Ở phần trước chúng ta đã nói về những khái niệm và kiến thức cơ bản về Windows Registry, nó là gì, cấu trúc ra sao và cách hoạt động của nó như thế nào,… Windows Registry là một công cụ rất hữu ích lưu trữ và bảo quản thông tin trên thiết bị của bạn, nhưng nó cũng có thể là một công cụ để hacker có thể sử dụng để tấn công và đánh cắp thông tin của bạn. Trong bài viết này, chúng ta sẽ điểm qua một vài cách mà hacker có thể tấn công thiết bị của bạn qua Windows Registry và cách để bảo vệ.

Cách 1: Sử dụng khóa Registry cho các cuộc tấn công bằng malware

Như đã đề cập ở phần trước, Registry là một phần cốt lõi của Windows và chứa rất nhiều dữ liệu. Dữ liệu này có thể nhanh chóng được sử dụng chống lại bạn bởi một kẻ xấu hoặc một phần mềm khai thác dữ liệu (data-mining software). Ví dụ như là truy vấn Registry từ xa để xem xem có công cụ truy cập từ xa nào được cài đặt hay không như TeamViewer, VNC, hoặc đơn giản là Terminal Services. Với thông tin đó, kẻ xấu có thể tận dụng các công cụ này lan truyền xa hơn qua một môi trường hoặc tìm đường đến các hệ thống có giá trị hơn.

Một cách thức ngày càng phổ biến là sử dụng các khóa Registry để lưu trữ và ẩn các mã lệnh tiếp theo cho phần malware sau khi nó được thả vào hệ thống. Hơn nữa, malware sử dụng các công cụ Windows để thực hiện các câu lệnh nên nó không thể bị dò ra bởi phần mềm bảo mật dựa trên chữ kí như phần mềm diệt virus (antivirus)

Sau đây là một ví dụ của phương thức tấn công trên

Đầu tiên, người dùng cuối nhận một thông báo pop up giả về việc cập nhật Adobe Flash khi lướt web bằng Firefox từ tên miền sau:

Sau đó, một đoạn mã Javascript giả mạo như một bản patch của Firefox được tải xuống:

Sau đó, nó được thực thi thông qua một phiên bản được sinh ra của Windows Script Shell native wscript.exe:

Sau khi thực thi, đoạn mã Javascript này hiển thị một cửa sổ dòng lệnh cho người dùng cuối, cho thấy rằng một “cập nhật” đang diễn ra và hoàn thành ngay sau đó. Khi điều này đang diễn ra, nó tạo một kết nối mạng bên ngoài với một tên miền độc hại và nhận các chỉ dẫn tiếp theo để viết lệnh vào một khóa Registry trong hệ thống.

Bây giờ khi các bước tiếp theo đã được ghi vào khóa này, một phiên bản của công cụ Windows native mshta.exe được khởi chạy để truyền mã trong khóa Registry vào Windows Script Shell. Điều này sẽ ghi lệnh vào một biến môi trường bị ẩn đi trên các máy chủ bị nhiễm

Một tiến trình con cmd.exe khởi chạy PowerShell, và nó tham chiếu đến Invoke-Expression cmdlet. Tiến trình con của một trong 2 regsvr32.exe hoặc rundll32.exe được khởi tạo sau đó. Điều thường thấy sau đó là hàng trăm đến hàng nghìn kết nối mạng ngoại vi được tạo đến các miền quảng cáo nhằm thu thập doanh thu từ việc nhấp vào quảng cáo (tương tự như quảng cáo pop-up).

Cuối cùng, một cơ chế bền vững được thiết lập:

Điều này sẽ dẫn đến cách thứ 2 sau đây.

Cách 2: Sử dụng các khóa chạy và các thư mục khởi động của Windows để thiết lập tính bền vững

Một khi kẻ tấn công hoặc phần mềm malware đến được điểm cuối, chúng thường sẽ đảm bảo có thể tiếp tục sử dụng tài nguyên qua cơ chế bền vững. Hầu hết chúng ta đều hiểu rõ về khóa chạy và việc sử dụng thư mục khởi động của Windows để tạo ra tính bền vững trên một điểm cuối bị nhiễm. Nhưng cách thức tấn công này vẫn tồn tại và nên được để ý và tập trung vào khi điều tra về quá trình bị nhiễm.

Trong 2 cách trên, cách đơn giản hơn là sử dụng thư mục khởi tạo Windows ở C:\Users\< user name >\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup. Đường dẫn shortcut (đuôi .lnk) đặt ở trong thư mục này sẽ khiến cho Windows chạy ứng dụng mỗi lần người dùng đăng nhập vào Windows. Điều này được sử dụng bởi nhiều dạng malware, nhưng cũng có thể dễ dàng phát hiện và khắc phục bằng cách xóa shortcut.

Khóa chạy Registry thực hiện hành động tương tự, nhưng có thể được đặt ở các đường dẫn khác nhau

  • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
  • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
  • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce
  • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce

Sự khác biệt giữa HKEY_LOCAL_MACHINE và HKEY_CURRENT_USER là liệu file thực thi được tham chiếu có khởi chạy cùng hệ thống cho tất cả người dùng đăng nhập hay chỉ cho một người dùng cụ thể (current_user được sao chép vào “user hive” được lưu trữ và tải mỗi khi người dùng ID đó đăng nhập). Và một khác biệt nữa là Run và RunOnce, RunOnce sẽ tự động xóa entry khi thực thi thành công.

Nếu phương pháp này thành công, phần malware sẽ tiếp tục thực thi mã của nó để đảm bảo việc truy cập vào các trang quảng cáo (trong trường hợp nhấp chuột vào các malware), gửi tín hiệu đến máy chủ điều khiển và điều phối (trong trường hợp botnet nơi các lệnh tiếp theo cần được gửi đến các máy nạn nhân), hoặc liên tục cố gắng khiến người dùng cuối nhấp vào các liên kết trong các cửa sổ bật lên với bất kỳ mục đích nào.

Cách 3: Tận dụng nhược điểm trong quyền của Registry Service để thiết lập tính bền vững

Một phương pháp khác để thiết lập tính bền vững đồng thời cho phép tiến hóa đặc quyền là thông qua việc sửa đổi các tham số của các dịch vụ được khởi động mỗi khi Windows được khởi chạy. Nếu quyền không được cấu hình đúng (hãy nhớ nguyên tắc của quyền ít nhất), và cho phép sửa đổi các khóa Registry của dịch vụ, khóa ImagePath hoặc binPath có thể được sửa đổi để trỏ tới một tệp nhị phân độc hại hoặc một tệp mới được tạo ra. Điều này không chỉ cho phép phần malware khởi chạy khi Windows khởi động, mà còn có thể chạy dưới tài khoản hệ thống cục bộ với đặc quyền cao hơn. Hãy nhớ rằng hành vi này phổ biến đối với nhiều chương trình cài đặt phần mềm và, nếu theo dõi các thay đổi, có thể là nguồn gây ra các lượt truy cập giả mạo. Tuy nhiên, đây vẫn là một vị trí tuyệt vời để phần mềm độc hại xâm nhập vào điểm cuối của bạn. Bất kỳ phần mềm không rõ nguồn gốc nào nên được kiểm tra kỹ nếu nó thay đổi phần này của Registry.

Chúng ta có thể làm gì để bảo vệ bản thân

Bây giờ khi bạn đã biết những loại cuộc tấn công Registry Windows như thế nào, bạn có thể làm gì để phòng ngừa chúng? Hãy xem xét các biện pháp thực tế để xây dựng hệ thống bảo vệ. Một trong những cơ chế phòng thủ tốt nhất chống lại các cuộc tấn công Registry Windows là sử dụng các phần mềm whitelist (phần mềm có thể gửi thông tin được chấp nhận tự động) hoặc duy trì các hạn chế chính sách nhóm cục bộ. Điều này giúp bạn kiểm soát các ứng dụng và mức độ quyền hạn một cách chính xác. Tuy nhiên, hãy nhớ rằng phần mềm whitelist không phải là một giải pháp tuyệt đối và luôn có thể  vượt qua được, như chúng ta đã tìm hiểu trong bài viết về việc vượt qua danh sách phần mềm whitelist. Nếu điều này không khả thi do văn hóa tổ chức của bạn, điều tốt nhất tiếp theo là sử dụng một công cụ giám sát hoạt động để phát hiện các thay đổi trong các khóa Registry này hoặc thư mục khởi động.

 

Trên hết, hãy cố gắng nắm bắt những kiến thức về Windows Registry. Kẻ tấn công đã sử dụng nó để tấn công bạn, vì vậy bạn nên hiểu nó và nhận biết điều gì là bình thường và điều gì không phải là bình thường. Càng hiểu rõ hệ điều hành của bạn, bạn sẽ càng trang bị tốt hơn để hiểu và phòng ngừa kẻ tấn công.

806 lượt xem