Tóm Tắt
Thời gian vừa qua có rất nhiều vụ việc liên quan đến bảo mật làm ảnh hưởng không nhỏ đến các công ty và các tập đoàn lớn trong và ngoài nước. Bên cạnh đó 80% là do chúng ta không biết cách bảo mật hệ thống của mình một cách an toàn nhất.
Local attack là gì ?
Local Attack là một phương pháp rất phổ biến dùng để tấn công 1 website nào đó trên cùng 1 server. Công cụ của việc tấn công này là dùng các đoạn mã khai thác được viết bằng 1 số ngôn ngữ lập trình như: PHP, ASP.Net, Python…
Các đoạn mã đó được gọi là Shell. Khi một hosting trên server bị upload lên đoạn file shell này, người tấn công có thể dùng các câu lệnh khai thác để thâm nhập qua các tài khoản hosting cùng server để đọc các thông tin nhạy cảm như: Email, thông tin Database (username,password..) một cách dễ dàng. Từ đó người tấn công có thể làm mọi điều họ muốn.
Ví dụ cho dễ hiểu: Bạn thuê hosting của 1 công ty A. Trên server chứa hosting và website của bạn cũng đang chứa thêm 10 website khác cùng chạy 1 lúc. Bỗng 1 ngày, 1 trong các website trên bị lỗi gì đó, họ bị tấn công và người tấn công upload lên file shell. Khi đã có file shell thì 9 website còn lại có thể bị người tấn công kia qua xem hết tất cả các cấu trúc tập tin cũng như thông tin Database. Rất nguy hiểm cho website của bạn, hoặc nếu website của bạn là mục tiêu thì tất nhiên website của bạn sẽ bị hack và phá hủy mọi dữ liệu
Các hình thức tấn công thường gặp
Công việc đầu tiên của người hack local attack là tìm hiểu thông tin mục tiêu. Họ sẽ quét sơ qua trước thông tin về domain, ip hosting của bạn đang sử dụng. Họ sẽ vào và xem website của bạn đang chạy mã nguồn gì, có sử dụng plugin hay code gì có lỗi dễ khai thác hay không…Nếu website của bạn tồn tại các lỗi như SQL Injection hoặc XSS hoặc 1 số lỗi phổ biến khác thì họ sẽ tấn công trực tiếp vào
Còn ngược lại, khi họ đã kiểm tra qua website của bạn, có vẻ như không có lỗi để khai thác, họ sẽ bắt đầu Reverse IP hosting của bạn. Thuật ngữ này dùng để quét ra tất cả website đang chạy cùng IP server với bạn – hàng xóm của bạn. Tùy theo Server mà họ setup cho server đó chạy bao nhiêu website cùng lúc. Sau khi đã có danh sách website đó, họ lại tiếp tục rà soát xem có bao nhiêu web hàng xóm của bạn dính lỗi để upload shell
Nếu 1 trong các website đó dính lỗi SQL Injection hoặc các lỗi khác có thể khai thác để lấy và chiếm quyền Admin vào để upload shell thì từ đó sẽ là bàn đạp cho việc hacker tấn công qua website của bạn.
1 phương pháp tuy không hay lắm nhưng cũng được xem là lợi hại là Brute Force – Đoán password
Nghe có vẻ hơi vô lý, nhưng thật chất hiện vẫn còn rất nhiều webmaster để mật khẩu và username mặc định sau khi cài đặt hoặc đặt các password quá dễ đoán như: 123456, admin, 123456789, 123abc….
Từ đó họ có quyền upload file shell lên hosting kia và thực thi các lệnh để lấy thông tin từ website của bạn và phá hoại
Cách phòng chống Local Attack
Local attack hoàn toàn có thể phòng chống được, bảo mật kỹ sẽ khiến Shell không thể hoạt động local
Theo kinh nghiệm của mình, những biện pháp dưới đây sẽ hạn chế được phần nào khả năng khai thác khi hack qua local attack:
- Không sử dụng các mã nguồn không rõ nguồn gốc. Vì có thể có nhiều lỗi hoặc bị chèn mã độc vào sẵn
- Thường xuyên update các phiên bản mới của các loại mã nguồn mở để vá lỗi
- Không đặt password quá dễ đoán, hãy tập thói quen cho mình dùng password kết hợp ký tự in hoa, số và ký tự đặc biệt
- Không đặt trùng 1 password cho nhiều loại tài khoản. Vì bị mất cái này có thể mất luôn cái khác
- CHMOD 400 cho các file có thông tin nhạy cảm, 101 cho folder
- Sử dụng VPS thay vì dùng hosting để loại bỏ khả năng hack qua local attack
- Thường xuyên backup dữ liệu và quét dữ liệu xem có chứa mã độc hay không
Chống Local Attack trên centos
Vào File /etc/php.ini làm như hướng dẫn bên dưới
- Disable các func sau
PASSTHRU, SYSTEM, SHELL_EXEC, EXEC, VIRTUAL, SOCKET_ACCEPT, SOCKET_BIND, SOCKET_CLEAR_ERR, SOCKET_CLOSE, SOCKET_CONNECT, SOCKET_CREATE_LISTE, PROC_TERMINATE, PCNTL_EXEC, PUTENV, PROC_CLOSE, PROC_GET_STATUS, PROC_NICE, PROC_OPEN, POPEN, PCLOSE, SET_TIME_LIMIT, ESCAPESHELLCMD, ESCAPESHELLARG, DL, SHOW_SOURCE,INI_ALTER, OPENLOG, POSIX_GETPWUID, SYMLINK, INI_RESTORE, CHROOT, CHOWN, CHGRP, POSIX_SETEGID, POSIX_SETEUID, POSIX_SETGID, POSIX_SETPGID, POSIX_SETSID, POSIX_SETUID, POSIX_KILL, SYSLOG, APACHE_CHILD_TERMINATE, APACHE_SETENV, DEFINE_SYSLOG_VARIABLES, OPENLOG, PHP_UNAME, PHP_MKDIR, FOPEN, FCLOSE, BASE64_DECODE, GZINFLATE
- Bật chế độ Safe Mode