/ / Các cuộc tấn công xâm nhập tệp cục bộ (LFI) là gì và bạn có nên lo lắng không?

Các cuộc tấn công xâm nhập tệp cục bộ (LFI) là gì và bạn có nên lo lắng không?

Máy chủ web lưu trữ các tệp (trang web, ảnh, video, biểu mẫu, v.v.) tạo nên ứng dụng web của bạn và phục vụ các tệp này khi ai đó truy cập trang web của bạn. Một số máy chủ cao cấp hơn và cũng kiểm soát lượng truy cập của khách truy cập web. Họ có thể hạn chế khách truy cập thường xuyên truy cập vào tài khoản hoặc bảng điều khiển quản trị của người dùng khác. Mặc dù các máy chủ web làm việc hiệu quả—và chúng làm việc đó khá an toàn—những kẻ tấn công có thể khai thác các lỗi phát sinh do lỗi của con người hoặc lỗi logic trong cách máy chủ phục vụ các tệp mà nó lưu trữ.


Tấn công LFI là gì?

Một cuộc tấn công xâm nhập tệp cục bộ (LFI) xảy ra khi những kẻ tấn công khai thác các lỗ hổng trong cách máy chủ web lưu trữ, phục vụ, xác thực hoặc kiểm soát quyền truy cập vào các tệp của nó. Lỗ hổng này phổ biến đối với các trang web dựa trên PHP.

Không giống như nhiều hình thức tấn công mạng mà kẻ tấn công dựa vào phần mềm độc hại để làm hỏng ứng dụng, kẻ tấn công trong LFI chủ yếu dựa vào các thủ thuật thông minh và các dòng mã ngắn. Điều này hiếm khi yêu cầu các công cụ phức tạp hoặc các tập lệnh phức tạp; các cuộc tấn công thường xảy ra trên trình duyệt web. Thủ đoạn phổ biến nhất mà những kẻ tấn công sử dụng là sửa đổi chuỗi URL bằng mã, đường dẫn tệp hoặc tên tệp.

Các cuộc tấn công LFI xảy ra như thế nào?

Ảnh chụp màn hình lập trình trên màn hình PC

Các cuộc tấn công LFI thường xảy ra trong bốn giai đoạn.

Đầu tiên, kẻ tấn công xác định một trang web PHP đang chạy một ứng dụng web có lỗ hổng, thường bằng cách chạy một mã cơ bản trong URL của trình duyệt để xem liệu ứng dụng web (tức là trang web) có xử lý lệnh hay không. Hãy coi đó là cách nhấn các tổ hợp phím trên bộ điều khiển trò chơi của bạn để mở khóa một quả trứng Phục sinh—chẳng hạn như nhấn phím xuống để vào các đường hầm trong Super Mario. Nhưng các lệnh mà kẻ tấn công chạy trong các cuộc tấn công LFI nhất quán hơn là kiểm tra mọi đường hầm trong Super Mario.

Một ứng dụng web hoặc máy chủ đã được định cấu hình không đúng cách hoặc không xác thực được đầu vào sẽ thực thi mã độc. Từ đây, tin tặc có thể có quyền truy cập và đặc quyền mà chúng cần để đọc các tệp dễ bị tổn thương hoặc tải các tệp độc hại lên máy chủ.

Hầu hết các cuộc tấn công LFI dẫn đến kẻ tấn công truy cập thông tin nhạy cảm. Khả năng tải lên phần mềm độc hại hiếm khi thành công vì không có gì đảm bảo rằng ứng dụng web sẽ lưu tệp trên cùng một máy chủ nơi tồn tại lỗ hổng LFI. Trường hợp này thường xảy ra nếu ứng dụng web ở trong môi trường nhiều máy chủ.

Vì vậy, nếu lỗ hổng LFI tồn tại trên máy chủ lưu trữ hình ảnh chứ không phải máy chủ lưu trữ thông tin đăng nhập của nhân viên hoặc mật khẩu người dùng, thì kẻ tấn công sẽ chỉ có quyền truy cập vào các tệp hình ảnh trên máy chủ dễ bị tấn công đó. Bất chấp điều đó, các sự kiện mạng như cuộc tấn công vào LastPass cho thấy tin tặc có thể tàn phá với mức độ truy cập dường như không đáng kể nhất.

Cách ngăn chặn các cuộc tấn công LFI

Theo Open Web Application Security Project (OWASP), các cuộc tấn công LFI khá phổ biến. Có thể hiểu được, tin tặc sẽ ủng hộ cuộc tấn công này vì theo báo cáo của W3Techs, gần 8 trong số 10 trang web chạy PHP làm ngôn ngữ lập trình phía máy chủ—có thể nói là vô số nạn nhân. Có thể ngăn chặn một cuộc tấn công LFI bằng cách áp dụng các phương pháp hay nhất về bảo mật web.

Danh sách trắng các tệp máy chủ công cộng

Các ứng dụng web thường sử dụng đường dẫn tệp làm đầu vào URL. Tin tặc có thể khai thác hệ thống tệp này bằng cách thay đổi một phần của URL có vai trò gấp đôi đường dẫn tệp. Ví dụ: kẻ tấn công có thể thay đổi https://dummywebsite.com/?module=contact.php thành https://dummywebsite.com/?module=/etc/passwd. Một máy chủ dễ bị tổn thương với khả năng lọc kém và logic thiếu sót sẽ hiển thị nội dung của tệp được lưu trữ trong đường dẫn /etc/passwd.

Tất nhiên, tin tặc sử dụng các biến thể của tên tệp phổ biến và tổ hợp các ký tự truy vấn để tăng tỷ lệ tấn công thành công. Mục tiêu là lừa ứng dụng web chạy tập lệnh hoặc hiển thị tệp trên máy chủ web.

Bạn có thể chặn lỗ hổng này bằng cách tạo danh sách trắng các tài liệu công khai trên máy chủ của mình và hướng dẫn ứng dụng web bỏ qua các truy vấn cho mọi đường dẫn tệp hoặc tài liệu khác. Vì vậy, nếu kẻ tấn công cố gắng thao túng URL để yêu cầu hoặc chạy mã yêu cầu riêng tư, thay vào đó, chúng sẽ nhận được một trang lỗi.

Kiểm tra lỗ hổng thường xuyên

Cậu bé mặc áo phông trắng ngồi trên ghế trước máy tính

Bạn có thể sử dụng các công cụ quét web để tìm và sửa các lỗ hổng có thể khiến bạn bị tấn công LFI. Trình quét ứng dụng web là công cụ tự động thu thập dữ liệu ứng dụng của bạn giống như kẻ tấn công và cảnh báo bạn về các lỗ hổng tiềm ẩn. Có một số trình quét web nguồn mở như OpenVAS và Wireshark, nhưng hầu hết các trình quét lỗ hổng đều là phần mềm độc quyền và yêu cầu các gói trả phí để sử dụng.

Nhưng, tất nhiên, bạn không nhận được một trình quét web chỉ cho các cuộc tấn công LFI. Các công cụ này cũng tìm kiếm các lỗ hổng bảo mật rộng hơn như bao gồm tệp từ xa, tập lệnh chéo trang, SQL injection và cấu hình máy chủ kém. Vì vậy, họ có giá trị nó.

Hạn chế đặc quyền của khách truy cập trang web

Tin tặc thường thực hiện thành công các cuộc tấn công LFI vì các ứng dụng web không phân chia được các đặc quyền của người dùng và khi làm như vậy cho phép khách truy cập truy cập các tệp chỉ hiển thị với quản trị viên. Biện pháp này hoạt động giống như danh sách cho phép: định cấu hình ứng dụng web và máy chủ của bạn để chúng phân phối các tệp công khai và bỏ qua các yêu cầu trái phép khi khách truy cập tương tác với ứng dụng web. Điều này đặc biệt quan trọng đối với các truy vấn tới đường dẫn tệp có chứa tệp nhạy cảm.

Để làm được điều này, bạn có thể cần ngăn không cho đường dẫn tệp bị sửa đổi trực tiếp. Ứng dụng web chỉ nên phân phát tài liệu từ danh sách đường dẫn được mã hóa cứng. Ngoài ra, hãy định cấu hình ứng dụng web để xử lý các yêu cầu bằng cách nối đường dẫn động (các URL phải chứa các ký tự chữ và số) thay vì các hàm base64 hoặc bin2hex.

Nếu bạn đang nghĩ về việc đưa tên tệp vào danh sách đen, thì đừng. Tin tặc thường có một danh sách ngày càng dài các tên tệp mà chúng có thể sử dụng để thực hiện một cuộc tấn công LFI. Bên cạnh đó, thực tế là không thể (và rất lãng phí thời gian) để đưa vào danh sách đen một danh sách các nguồn tấn công không ngừng gia tăng.

Sử dụng môi trường nhiều máy chủ

Kỹ sư điện tử Sửa cáp trên máy chủ

Môi trường nhiều máy chủ cho phép bạn cách ly các tài liệu quan trọng, nhạy cảm khỏi các tệp công khai, do đó giảm thiểu rủi ro trong trường hợp vi phạm. Các máy chủ chuyên dụng ít bị tấn công bởi LFI hơn vì mặc dù chúng hoạt động cùng nhau nhưng cấu hình của chúng lại khác nhau.

Bên cạnh tính năng bảo mật này, nhiều máy chủ cũng đáng tin cậy (với rủi ro ngừng hoạt động thấp hơn), nhanh chóng và hiệu quả. Phải thừa nhận rằng việc sử dụng môi trường nhiều máy chủ không hiệu quả về chi phí nếu trang web của bạn nhỏ. Trong trường hợp đó, hãy xem xét tách quyền truy cập dữ liệu của ứng dụng web của bạn giữa cơ sở dữ liệu dành cho dữ liệu riêng tư và máy chủ dành cho tệp công khai.

Bạn có nên lo lắng về các cuộc tấn công LFI?

Có khả năng xảy ra một cuộc tấn công LFI, đặc biệt nếu trang web của bạn chạy trên PHP, nhưng bạn có thể giảm khả năng bị lộ bằng cách định cấu hình các ứng dụng web và máy chủ theo các phương pháp hay nhất về bảo mật web.

Hơn nữa, bạn nên xem xét thực hiện kiểm tra bảo mật định kỳ để tìm lỗ hổng. Mọi thứ luôn bị hỏng, đặc biệt là khi kiến ​​trúc trang web trở nên phức tạp. Các công cụ bạn cần để tự bảo vệ mình đều được tự động hóa và nhiều công cụ không yêu cầu thiết lập phức tạp hoặc bí quyết kỹ thuật nâng cao.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *