Làm sạch và bảo trì trang web của bạn

Để giữ cho trang web của bạn sạch sẽ và ngăn chặn các vụ tấn công trong tương lai, bạn sẽ cần những điều sau:

  • Quyền truy cập của quản trị viên shell hoặc dòng lệnh vào máy chủ của trang web: web, cơ sở dữ liệu, tệp
  • Có kiến thức về các lệnh shell hoặc dòng lệnh
  • Hiểu biết về mã (chẳng hạn như PHP hoặc JavaScript)
  • Bộ nhớ để tạo bản sao lưu trang web của bạn, bao gồm cả tệp, cơ sở dữ liệu và hình ảnh

Hành động tiếp theo

Chúng tôi sẽ đề cập đến một số hành động trong bước này:

  • Nơi tìm tài nguyên bổ sung nếu bạn cho rằng tin tặc có ý định lấy thông tin cá nhân của người dùng (chẳng hạn như với các trang giả mạo).
  • Lựa chọn sử dụng tính năng Xoá URL trong Search Console để nhanh chóng xoá những URL hoàn toàn mới, không mong muốn và hiển thị với người dùng do tin tặc tạo ra mà bạn không muốn xuất hiện trong kết quả của Google Tìm kiếm.
  • Lựa chọn Yêu cầu Google thu thập lại dữ liệu cho URL của bạn trong Search Console để đẩy nhanh quá trình Google xử lý các trang sạch (tức là các trang mới hoặc mới cập nhật) mà bạn muốn xuất hiện trong kết quả của Google Tìm kiếm.
  • Cài đặt phiên bản phần mềm mới nhất và an toàn nhất.
  • Xoá các ứng dụng hoặc trình bổ trợ không cần thiết hoặc không dùng đến có thể khiến trang web của bạn dễ bị tấn công hơn trong tương lai.
  • Khôi phục nội dung hợp lệ và loại bỏ nội dung của kẻ tấn công.
  • Khắc phục lỗ hổng là nguyên nhân gốc rễ mà tin tặc đã khai thác.
  • Thay đổi tất cả mật khẩu.
  • Lập kế hoạch bảo mật cho trang web.

1. Tìm tài nguyên hỗ trợ

Nếu thông tin mật của người dùng được lấy từ trang web của bạn (ví dụ: vì đó là một phần của một cuộc tấn công lừa đảo), bạn có thể muốn xem xét mọi trách nhiệm pháp lý, trách nhiệm pháp lý hoặc kinh doanh trước khi bắt đầu làm sạch trang web hoặc xóa bất kỳ tệp nào. Trong trường hợp lừa đảo, antiphishing.org có các tài nguyên hữu ích như tài liệu Việc cần làm nếu trang web của bạn đã bị kẻ lừa đảo tấn công.

2. Cân nhắc đẩy nhanh việc xóa các URL mới do tin tặc tạo

Nếu tin tặc đã tạo các URL hoàn toàn mới mà người dùng có thể nhìn thấy, thì bạn có thể xoá nhanh các trang này khỏi kết quả trên Google Tìm kiếm bằng cách sử dụng tính năng Xoá URL trong Search Console. Bước này là bước không bắt buộc. Nếu bạn chỉ xoá các trang rồi định cấu hình máy chủ để trả về mã trạng thái 404, thì theo thời gian, các trang đó sẽ tự nhiên biến mất khỏi chỉ mục của Google.

  • Quyết định sử dụng tính năng Xoá URL có thể phụ thuộc vào số lượng trang mới không mong muốn được tạo (quá nhiều trang có thể gây phiền toái khi đưa vào tính năng Xoá URL), cũng như mức độ thiệt hại tiềm ẩn mà các trang này có thể gây ra cho người dùng. Để đảm bảo các trang mà bạn gửi thông qua quy trình Xoá URL không bao giờ xuất hiện trong kết quả tìm kiếm, hãy đảm bảo rằng các trang đó cũng được định cấu hình để trả về phản hồi 404 Không tìm thấy tệp cho các URL không mong muốn và đã bị xoá.
  • Đừng sử dụng công cụ này để yêu cầu xoá bất kỳ trang nào trước đây đã tốt nhưng chỉ bị tin tặc làm hỏng. Bạn sẽ muốn các trang này xuất hiện trong kết quả tìm kiếm sau khi được dọn dẹp. Yêu cầu xoá URL chỉ dành cho những trang mà bạn không bao giờ muốn xuất hiện trong kết quả.

3. Cân nhắc việc đẩy nhanh tiến trình xử lý các trang sạch của Google

Nếu có các trang mới hoặc đã cập nhật và sạch, bạn có thể Yêu cầu Google thu thập dữ liệu lại URL của bạn trong Search Console để gửi các trang này vào chỉ mục của Google. Đây là bước không bắt buộc; nếu bạn bỏ qua bước này, các trang mới hoặc đã sửa đổi có thể sẽ được thu thập dữ liệu và xử lý theo thời gian.

4. Bắt đầu làm sạch (các) máy chủ của bạn

Bây giờ là lúc bạn bắt đầu dọn dẹp trang web dựa trên ghi chú bạn đã ghi lại trong quá trình Đánh giá thiệt hạiXác định lỗ hổng. Đường dẫn bạn sẽ thực hiện trong bước này phụ thuộc vào loại bản sao lưu bạn có:

  • Bản sao lưu sạch và cập nhật
  • Bản sao lưu sạch nhưng đã lỗi thời
  • Không có bản sao lưu

Trước tiên, hãy kiểm tra để đảm bảo rằng bạn đã tạo bản sao lưu trước khi trang web của bạn bị tấn công.

Bản sao lưu sạch và cập nhật

  1. Khôi phục bản sao lưu của bạn.
  2. Cài đặt bất kỳ bản nâng cấp, cập nhật hay vá lỗi nào. Điều này bao gồm cả phần mềm cho hệ điều hành nếu bạn kiểm soát máy chủ và tất cả ứng dụng, chẳng hạn như hệ thống quản lý nội dung, nền tảng thương mại điện tử, trình bổ trợ hoặc mẫu.
  3. Cân nhắc xoá phần mềm mà trang web không còn sử dụng khỏi máy chủ của bạn (chẳng hạn như tiện ích, trình bổ trợ hoặc ứng dụng) .
  4. Sửa lỗ hổng.
  5. Đảm bảo rằng bạn đã giải quyết tất cả các vấn đề phát hiện được trong bước Đánh giá thiệt hại.
  6. Thay đổi mật khẩu một lần nữa cho tất cả tài khoản liên quan đến trang web (ví dụ: thông tin đăng nhập để truy cập FTP, truy cập cơ sở dữ liệu, quản trị viên hệ thống và tài khoản CMS). Trên các hệ thống có nền tảng Unix:
passwd admin1

Bản sao lưu sạch nhưng đã lỗi thời

  1. Tạo hình ảnh đĩa của trang web hiện tại ngay cả khi trang web đó vẫn bị nhiễm. Bản sao này chỉ để đảm bảo an toàn. Đánh dấu bản sao là bị nhiễm để phân biệt với những bản khác. Trên hệ thống có nền tảng Unix, có thể làm như sau để tạo ảnh ổ đĩa:
dd if=/dev/sda bs=1024 conv=noerror,sync | gzip -c -9 \
> /mirror/full-backup-20120125-infected.gz
  1. Tạo bản sao hệ thống tệp sao lưu của máy chủ, bao gồm cả hình ảnh và tệp nội dung nghe nhìn. Nếu có cơ sở dữ liệu, bạn cũng nên sao lưu cơ sở dữ liệu.
tar -pczf full-backup-20120125-infected.tar.gz www/
mysqldump
-u root -p --all-databases | gzip -9 \
> fulldb_backup-20120125-infected.sql
  1. Khôi phục bản sao lưu sạch nhưng đã lỗi thời trên máy chủ của bạn.
  2. Hãy cân nhắc xem bạn có thể loại bỏ phần mềm trên máy chủ (ví dụ: tiện ích, trình bổ trợ hoặc ứng dụng) mà trang web không còn sử dụng hay không.
  3. Nâng cấp tất cả phần mềm, bao gồm cả hệ điều hành nếu bạn nắm quyền kiểm soát máy chủ và tất cả các ứng dụng phần mềm, chẳng hạn như hệ thống quản lý nội dung, nền tảng thương mại điện tử, trình bổ trợ và mẫu. Hãy nhớ kiểm tra và cài đặt các bản cập nhật và bản vá bảo mật hiện có.
  4. Sửa lỗ hổng.
  5. Thực hiện trang web diff theo cách thủ công hoặc theo cách tự động -- giữa bản sao lưu sạch và bản sao hiện tại bị nhiễm.
diff -qr www/ backups/full-backup-20120124/
  1. Tải mọi nội dung mới, sạch mà bạn muốn giữ lại từ bản sao bị nhiễm lên máy chủ đã nâng cấp.
rsync -avz /backups/full-backup-20120124/www/clean-file.jpg /www/
  1. Kiểm tra để đảm bảo rằng bạn đã sửa từng URL được liệt kê trong phần Đánh giá thiệt hại.
  2. Thay đổi mật khẩu một lần nữa cho tất cả tài khoản liên quan đến trang web (ví dụ: thông tin đăng nhập để truy cập FTP, truy cập cơ sở dữ liệu, quản trị viên hệ thống và tài khoản CMS). Trên các hệ thống có nền tảng Unix:
$passwd admin1

Không có bản sao lưu

Tạo hai bản sao lưu trang web ngay cả khi trang web vẫn bị nhiễm mã độc. Việc có thêm một bản sao lưu sẽ giúp khôi phục nội dung bị xoá do nhầm lẫn hoặc cho phép bạn huỷ bỏ và thử lại nếu có sự cố. Hãy gắn nhãn mỗi bản sao lưu là "bị nhiễm" để tham khảo trong tương lai.

Một trong những bản sao lưu của bạn sẽ là ảnh ổ đĩa hoặc "bản sao" của trang web của bạn. Định dạng này giúp việc khôi phục nội dung trở nên đơn giản hơn. Bạn có thể để hình ảnh ổ đĩa sang một bên cho trường hợp khẩn cấp. Trên hệ thống dựa trên Unix, hãy sử dụng mã sau để tạo ảnh đĩa:

dd if=/dev/sda bs=1024 conv=noerror,sync | gzip -c -9 \
> /mirror/full-backup-20120125-infected.gz

Bản sao lưu còn lại sẽ là bản sao hệ thống tệp từ máy chủ của bạn, bao gồm cả hình ảnh và tệp phương tiện. Nếu bạn có cơ sở dữ liệu, hãy sao lưu cơ sở dữ liệu đó.

tar -pczf full-backup-20120125-infected.tar.gz www/
mysqldump
-u root -p --all-databases | gzip -9 \
> fulldb_backup-20120125-infected.sql

Nếu bạn không có ảnh đĩa, hãy tạo hai bản sao lưu cơ sở dữ liệu và hai bản sao lưu hệ thống tệp.

Để xoá nội dung của trang web trên bản sao hệ thống tệp sao lưu mới (không phải chính máy chủ), hãy làm như sau:

  1. Nếu cuộc điều tra trước đó của bạn cho thấy quyền truy cập tệp quá rộng, hãy khắc phục vấn đề này. Hãy nhớ thực hiện việc này trên bản sao lưu, chứ không phải trên chính máy chủ.
  2. Ngoài ra, trên bản sao lưu, hãy xoá tất cả tệp tương ứng với các URL bị phát hiện là bị xâm nhập trong phần Đánh giá thiệt hại. Đây có thể là tệp cấu hình máy chủ, JavaScript, HTML hoặc PHP.
  3. Hãy nhớ xoá (phân phát phản hồi 404) các tệp mới do tin tặc tạo ra mà bạn có thể đã gửi hoặc chưa gửi bằng Công cụ xoá URL trong Search Console.
  4. Sửa lỗ hổng nếu có trong mã hoặc các mật khẩu bị bẻ khóa của bạn. Bạn có thể sử dụng các thư viện xác thực dữ liệu đầu vào hoặc kiểm tra bảo mật.
  5. Nếu trang web của bạn có cơ sở dữ liệu, hãy bắt đầu dọn dẹp các bản ghi do tin tặc sửa đổi trong bản sao lưu. Ngay trước khi bạn nghĩ rằng mình đã hoàn tất, hãy kiểm tra thêm các bản ghi khác để đảm bảo cơ sở dữ liệu đã sạch.
  6. Thay đổi mật khẩu một lần nữa cho tất cả tài khoản liên quan đến trang web (ví dụ: thông tin đăng nhập để truy cập FTP, truy cập cơ sở dữ liệu, quản trị viên hệ thống và tài khoản CMS). Trên các hệ thống dựa trên Unix, hãy sử dụng mã sau:
$passwd admin1

Tại thời điểm này, bản sao lưu từng bị nhiễm của trang web của bạn sẽ chỉ chứa dữ liệu sạch. Lưu trữ bản sao sạch này và chuyển sang hành động #5.

5. Xoá phần mềm không cần thiết

Cân nhắc xem bạn có thể xoá phần mềm trên máy chủ của mình (chẳng hạn như tiện ích, trình bổ trợ hoặc ứng dụng) mà trang web không còn sử dụng hay không. Điều này có thể tăng cường bảo mật và đơn giản hoá việc bảo trì trong tương lai.

6. Làm sạch tất cả máy chủ

  1. Hãy thực hiện cài đặt mới chứ không chỉ nâng cấp. Quá trình nâng cấp có thể để lại các tệp từ phiên bản trước. Nếu một tệp bị nhiễm vẫn còn trên máy chủ, thì trang web của bạn có nhiều khả năng bị xâm nhập lại.
    • Quá trình cài đặt mới phải bao gồm cả hệ điều hành nếu bạn kiểm soát máy chủ và tất cả các ứng dụng phần mềm, chẳng hạn như hệ thống quản lý nội dung, nền tảng thương mại điện tử, trình bổ trợ và mẫu. Hãy nhớ kiểm tra các bản cập nhật và bản vá bảo mật hiện có.
  2. Chuyển nội dung tốt từ bản sao hệ thống tệp sao lưu sạch sang(các) máy chủ mới cài đặt. Chỉ tải lên và khôi phục các tệp hoặc cơ sở dữ liệu sạch đã biết. Hãy nhớ duy trì các quyền tệp thích hợp và không ghi đè các tệp hệ thống mới cài đặt.
  3. Thay đổi mật khẩu lần cuối cho tất cả tài khoản liên quan đến trang web (ví dụ: thông tin đăng nhập để truy cập FTP, truy cập cơ sở dữ liệu, quản trị viên hệ thống và tài khoản CMS). Trên các hệ thống dựa trên Unix, hãy sử dụng mã sau:
passwd admin1

7. Tạo kế hoạch bảo trì dài hạn

Bạn nên làm như sau:

  • Thường xuyên thực hiện sao lưu tự động trang web của bạn.
  • Hãy thận trọng về việc cập nhật phần mềm.
  • Tìm hiểu các phương pháp bảo mật của tất cả ứng dụng, trình bổ trợ và phần mềm bên thứ ba khác trước khi cài đặt các ứng dụng, trình bổ trợ và phần mềm đó trên máy chủ. Một lỗ hổng bảo mật trong một ứng dụng phần mềm có thể ảnh hưởng đến sự an toàn của toàn bộ trang web.
  • Tạo mật khẩu mạnh.
  • Đảm bảo an toàn cho tất cả thiết bị dùng để đăng nhập vào máy (hệ điều hành và trình duyệt đã cập nhật).

8. Kiểm tra lại để đảm bảo việc dọn dẹp đã hoàn tất

Đảm bảo bạn có thể trả lời "có" cho các câu hỏi sau:

  • Tôi đã thực hiện các bước thích hợp nếu tin tặc lấy được thông tin cá nhân của người dùng không?
  • Trang web của tôi có đang chạy phiên bản phần mềm mới nhất, an toàn nhất?
  • Tôi đã xoá tất cả các ứng dụng hoặc trình bổ trợ không cần thiết hoặc không sử dụng có thể làm trang web của tôi dễ bị tấn công hơn trong tương lai chưa?
  • Tôi đã khôi phục nội dung của mình và gỡ bỏ nội dung của tin tặc chưa?
  • Tôi đã sửa lỗ hổng là nguyên nhân gốc rễ khiến trang web của tôi bị tấn công chưa?
  • Tôi có kế hoạch giữ an toàn cho trang web của mình không?

Giờ đây, bạn có thể đưa trang web của mình trở lại mạng.