Nhiệm vụ của local attack là tấn công vào các mục tiêu bảo mật kém trên server để giành quyền kiểm soát các website khác trên cùng một hệ thống. Do đó khi sử dụng share host, bạn sẽ dễ bị local attack hơn là dùng máy chủ riêng hoặc máy chủ ảo, nhưng nếu bạn có nhiều website mà không thể kiểm soát nổi thì dù là máy chủ gì thì cũng bị local attack.
Thông thường, các bước thực hiện trong quy trình hack local (hay Local Attack) bao gồm:
- Dò tìm các user có trong server.
- Dò tìm và đọc nội dung file config (trong WordPress nó là wp-config.php).
- Get thông tin login vào database.
- Tấn công tài khoản admin.
- Cuối cùng là up shell.
Bài viết dưới đây sẽ hướng dẫn các bạn một số Tips để bảo mật file wp-config.php trong WordPress để hạn chế local attack.
1. Giấu file wp-config.php
Mặc dù có một vài shell như Coleil có thể dò ra file config của mã nguồn dù bạn có giấu ở đâu nhưng việc cất kỹ file nhạy cảm này cũng sẽ giúp bạn hạn chế phần nào, ít ra là các hacker “thực tập”.
Trong host linux, thông thường các tập tin của website sẽ đều nằm trong thư mục public_html và thường path sẽ là /home/username/public_html/wp-config.php.
Do đó, cách giấu file config tốt nhất là bạn nên đưa file wp-config.php ra khỏi thư mục public_html, bạn có thể đăng nhập vào host thông qua FTP và tạo thêm một thư mục tên bất kỳ nằm ngang hàng với public_html.
Sau đó tải file wp-config.php trong thư mục public_html và upload nó vào thư mục mới tạo. Cuối cùng là sửa file wp-config.php trong thư mục public_html thành như sau, xem liên kết ở dưới:
Bạn thay chữ baomat thành tên thư mục của bạn mà bạn đã tạo nó ngang hàng với public_html.
2. Thay đổi database prefix
Database prefix (tiền tố CSDL) mặc định của WordPress sẽ là wp_, điều này vô tình làm cho các hacker biết rõ tên của từng table của website bạn nếu bạn không đổi tiền tố này đi.
Cách đổi tiền tố có nhiều cách, nhưng tốt hơn hết là sử dụng plugin iThemes Security để đổi, nhớ backup lại toàn bộ dữ liệu trước khi làm nhé mặc dù mình làm rất nhiều lần mà không bị lỗi.
Giới thiệu bạn đọc: 5 Plugin bảo mật WordPress tốt nhất
3. Đổi security key
Bạn thử mở file wp-config.php ra, kéo xuống dưới và có thấy một đoạn nội dung giống thế này?
Bên trên là các chuỗi ký tự ngẫu nhiên lưu lại các session của từng user khi đăng nhập vào bảng điều khiển Admin. Hãy chắc chắn rằng bạn đã nhập ký tự ngẫu nhiên cho các key trên. Bạn có thể truy cập vào đây để tự động tạo ra các chuỗi security key ngẫu nhiên sau mỗi lần F5 rồi copy vào.
4. Cấm sửa theme và plugin trong bảng điều khiển
Có một vài hacker khá tinh vi đó là sau khi đã xâm nhập vào được website bạn thì họ sẽ chèn một vài đoạn mã nào đó nằm rải rác bên trong các theme/plugin mà bạn đang dùng.
Do đó, hãy cân nhắc dùng tính năng Editor trong bảng quản trị, tốt nhất là hãy tắt nó đi nếu bạn không dùng tới, cách tắt là chèn đoạn này vào bất kỳ dòng nào trong file wp-config.php
5. Cấm cài thêm theme/plugin
Cũng không có ngoại lệ trong trường hợp hacker có thể tự ý cài thêm một plugin hay theme nào đó mà bên trong đó toàn chứa mã độc nếu họ có quyền truy cập vào bảng điều khiển. Do đó, nếu bạn không có nhu cầu cài theme theme/plugin thì hãy đặt đoạn sau vào file wp-config.php
6. CHMOD file wp-config.php
Mặc định các file trong WordPress sẽ được CHMOD thành 644 và folder là 755. Tuy nhiên đối với file wp-config.php thì bạn cũng nên CHMOD tối ưu hơn, bạn có thể thay thành 440, 444 hoặc 400. Cứ thử 400 trước, không được thì thử 444.
7. Chặn thực thi file wp-config.php
Đây cũng là một tip hay nếu bạn không thích bất cứ ai sờ mó đến file wp-config.php trên host.
Đối với máy chủ NGINX thì chèn đoạn sau vào file config
01 location ~* wp-config.php {<br />
02 deny all;<br />
03 }
Còn đối với máy chủ Apache thì chèn đoạn sau vào file .htaccess
01 <Files wp-config.php>;<br />
02 order allow,deny<br />
03 deny from all<br />
04 </Files>
8. Khóa đường dẫn wp-admin
Dĩ nhiên thư mục wp-admin và file wp-login.php luôn là điểm tấn công nếu một ai đó muốn truy cập vào website của bạn. Do đó, tốt hơn hết là chặn hết tất cả lượt truy cập vào hai khu vực này, trừ bạn ra.
Để làm được việc này bạn có thể sử dụng tính năng Login Protect trong Incapsula hoặc tạo một file .htaccess trong thư mục wp-admin và chèn đoạn sau vào.
01 <FilesMatch ".*"><br />
02 Order Deny,Allow<br />
03 Deny from all<br />
04 Allow from 123.456.789<br />
05 </FilesMatch>
Thay số 123.456.789 thành IP của máy bạn, muốn biết IP mình là gì thì vào đây.
Đối với NGINX thì chèn đoạn này vào file config.
01 location ~ ^/(wp-admin|wp-login\.php) {<br />
02 allow 123.456.789;<br />
03 deny all;<br />
04 }
9. Sử dụng các plugin quét mã độc
Bước này có thể may mắn cho bạn biết trên host của bạn đang chứa các file nào để mà bạn có thể xóa nó đi hoặc tải về….ngâm cứu. Dưới đây là các plugin tốt nhất để bạn quét mã độc trên host hoàn toàn miễn phí mà bạn có thể dùng:
- Wordfence Scan
- Anti-Malware (Get Off Malicious Scripts)
- 6Scan Security
Nếu bạn có điều kiện bạn nên sử dụng Sucuri Premium (chỉ $90/năm) để tìm và tự quét sạch mọi mã độc.
Plugin WordPress cũ bị khai thác tấn công thực thi mã từ xa
Theo: PC world