LDAP injection là một thuật ngữ khá quen thuộc với những người làm việc trong lĩnh vực công nghệ thông tin. Tuy nhiên với người dùng mạng Internet lại khá xa lạ và thậm chí chưa hề biết tới sự nguy hiểm của loại khai thác này. Bài viết dưới đây chúng tôi sẽ thông tin về LDAP injection để bạn biết cách ngăn chặn.
LDAP injection là gì?
LDAP (Lightweight Directory Access Protocol) injection là một loại khai thác bảo mật từ phía server đe dọa tới việc xác thực, tiết lộ, chỉnh sửa thông tin người dùng. Đối tượng dễ bị tấn công nhất là những website tạo câu lệnh LDAP từ dữ liệu người dùng.
LDAP là một loại thư mục dùng để lưu trữ tài sản của tổ chức hoặc thông tin về người dùng như mật khẩu, địa chỉ email…. Ngoài ra LDAP còn được các tổ chức dùng để tạo điều kiện cho người dùng đăng nhập một lần và xác thực khi truy cập các ứng dụng.
Trong trường hợp LDAP được dùng để xác thực website thì mã độc có thể được hacker nhập vào trường của người dùng. Sau đó chúng sẽ truy cập trái phép vào thư mục để thực hiện các hành vi trái phép như đổi tên, đổi mật khẩu người dùng.
Lý do khiến nhiều cuộc tấn công như LDAP injection xảy ra là bởi quá trình bảo mật của hệ thống thiếu chặt chẽ. Lời khuyên đến từ các chuyên gia đó là thường xuyên làm sạch hệ thống để ngăn cản việc xâm nhập của các mã độc hoặc phần mềm độc hại.
LDAP injection hoạt động như thế nào?
Khi dữ liệu đầu vào của người dùng không được vệ sinh thì sẽ tạo ra lỗ hổng để cuộc tấn công LDAP injection xảy ra. Hiểu một cách đơn giản để có quyền truy cập và thay đổi dữ liệu của thư mục thì LDAP injection sẽ tạo ra một truy vấn không đúng định dạng.
Truy vấn LDAP chứa dấu hoa thị, dấu ngoặc kép, dấu ngoặc vuông. Những ký tự đặc biệt này được dùng để chỉ định số lượng, đối tượng trả về bởi một truy vấn và kiểm soát ý nghĩa của truy vấn LDAP.
Một khi kẻ tấn công sửa đổi các ký tự này thì có thể thay đổi truy vấn và hành vi dự kiến. Khai thác LDAP injection cực kì nguy hiểm bởi hacker có thể thay đổi rất nhiều thứ bên trong thư mục LDAP như câu lệnh, thông tin nhạy cảm của người dùng…
Các loại tấn công LDAP injection
Cuộc tấn công LDAP injection khá đa dạng. Dưới đây là một số loại phổ biến:
- Bỏ qua xác thực: LDAP thường sẽ xác thực người dùng thông qua tên và mật khẩu. Hacker dùng siêu ký tự để bỏ qua phần xác thực này.
- Nâng cao đặc quyền truy cập: Thông tin đầu vào của người dùng chưa được kiểm soát sẽ được hacker sử dụng để truy cập bất hợp pháp để nâng cao đặc quyền truy cập.
- Tiết lộ tài nguyên: Trong LDAP bạn có thể tìm kiếm bất cứ một đối tượng nào. Lợi dụng sơ hở này hacker sẽ bắt đầu tìm kiếm và chèn mã độc. Mục đích là để thao túng truy vấn trả về tất cả các đối tượng trong đó có cả private (riêng tư) và public (công khai).
- Tấn công Blind LDAP injection: Hacker sẽ lấy được thông tin ở trong thư mục khi thực hiện tấn công Blind LDAP injection trên hệ nhị phân. Bởi dựa trên phản hồi đúng sai nên các cuộc tấn công này dù diễn ra chậm nhưng cách thức lại đơn giản.
Làm thế nào để ngăn chặn các cuộc tấn công LDAP injections?
Truy cập vào dữ liệu nhạy cảm, thay đổi dữ liệu và nguy hiểm hơn là giành quyền kiểm soát là những gì mà LDAP injections có thể làm. Vì thế quan trọng nhất là phải tìm mọi cách để bảo vệ hệ thống tránh khỏi mối đe dọa này. Khử trùng đầu vào không tin cậy và yêu cầu xác thực đầu vào là phương pháp hay ho nhất để ngăn chặn LDAP injections. Sau đây là một vài hành động thiết thực để làm được điều nói trên:
- Xác nhận đầu vào: Chỉ chấp nhận những đầu vào được đánh giá là tốt, an toàn.
- Thoát khỏi tất cả các biến: Dựa vào chức năng đặc biệt của siêu kí tự mà hacker có thể thao tác các trường đầu vào LDAP. Do đó tốt nhất là yêu cầu máy tính bỏ qua chức năng của các ký tự đó.
- Lập chỉ mục các trường chứa thông tin nhạy cảm: Số lượng bộ lọc sẽ được tăng lên khi thực hiện cách thức này. Để truy cập vào thông tin nhạy cảm bắt buộc hacker phải bỏ qua một vài bộ lọc hoặc thao tác.
- Sử dụng công cụ phân tích mã nguồn tĩnh: Bằng việc dùng công cụ phân tích mã nguồn tĩnh những lỗi ứng dụng LDAP sẽ được nhà phát triển gỡ trước khi LDAP hoạt động.
- Kiểm tra động: Nhà phát triển khi kiểm tra động sẽ phát hiện và gỡ lỗi của một ứng dụng trong quá trình ứng dụng đó chạy.
Xem thêm: Imunify360 là gì? Giải pháp bảo mật cho website của bạn
Sự khác biệt giữa SQL injection và LDAP injection
LDAP injection và SQL injection lợi dụng việc một ứng dụng không thể làm sạch được đầu vào của người dùng để xâm nhập hệ thống. Đó có thể là do xác thực đầu vào thiếu hoặc yếu, không loại bỏ đầu vào thiếu an toàn…
Đây đều là cuộc tấn công chèn code được thực hiện bởi kẻ tấn công để vượt qua các biện pháp bảo mật. Việc chèn code này diễn ra ở nhiều giao thức khác nhau như SQL, LDAP, ngôn ngữ đánh dấu siêu văn bản, ngôn ngữ đánh dấu có thể mở rộng.
Giao thức và ngôn ngữ mà LDAP và SQL injection khai thác chính là những yếu tố tạo nên sự khác biệt giữa chúng. Nếu SQL là một ngôn ngữ truy vấn cho databases thì LDAP lại là giao thức để truy cập thông tin ở các thư mục. Vì lẽ đó mà các thư mục là mục tiêu của tấn công của LDAP injection còn databases lại là nằm trong tầm ngắm của SQL injection.
Tổng kết về LDAP injection
LDAP injection là mối đe dọa bảo mật hàng đầu mà các chuyên gia cảnh báo tới người dùng. Hy vọng với những gì mà BKHOST cung cấp ở trên sẽ mang lại nhiều điều bổ ích để bạn bảo vệ hệ thống của mình an toàn.
Nếu còn gặp bất cứ vướng mắc gì về LDAP injection, hãy để lại ở bên bình luận bên dưới, BKHOST sẽ trả lời bạn trong thời gian sớm nhất.
P/s: Bạn cũng có thể truy cập vào Blog của BKHOST để đọc thêm các bài viết chia sẻ kiến thức về lập trình, quản trị mạng, website, domain, hosting, vps, server, email,… Chúc bạn thành công.