Комментарии 121
Русское слово «Вирусдай» сразу ассоциируется с «вирус дай», что звучит очень смешно.
+13
Для этого предлагается скачать и разместить уникальный для каждого пользователя *.PHP файл в корневом каталоге сайта.
Пока похоже на добровольное размещение эксплоита.
+6
Обратиться напрямую к этому файлу и выполнить вредоносные действия на сайте не получится, так как сервис имеет несколько степеней защиты, включая проверку цифровых подписей при каждом запросе к файлу. В следующих постах мы подробнее расскажем об архитектуре сервиса.
-2
Какие гарантии, что атака не будет производится через вас?
+9
Более того, сам «вирусдай» в меру его подключения к куче сайтов, становится крайне привлекательным для разного рода хакеров (конкурентов, инсайдеров, 3-рд парти, черных сеошников и т.д.), просто уже в меру того, что «хакнул одного — хакнул всех».
Эдакий «ключ от всех дверей».
Ненене.
Эдакий «ключ от всех дверей».
Ненене.
+4
Поверьте, мы тоже всё это понимаем. И поэтому постарались сделать удобный и безопасный инструмент для наших пользователей, который имеет несколько степеней защиты на каждом этапе взаимодействия между сервером-клиентом и Вирусдай.
-4
Специальный файл синхронизации называется вебшел и только одному богу известно что потом через него они смогут сделать с сайтом, не говоря уже о том, что запросто смогут скачать себе все его исходники или залить туда что-то свое.
Внешнее сканирование — самый отличный вариант, с этим хорошо справляется сервис Nazamok.com
Внешнее сканирование — самый отличный вариант, с этим хорошо справляется сервис Nazamok.com
+1
Да, у Вирусдай есть возможность редактировать и удалять файлы, в этом и смысл обнаружения и лечения заражённых файлов, которые невозможно обнаружить, а тем более вылечить снаружи (восновном это файлы *.php).
Вы себе на комп антивирус ставили?
Вы себе на комп антивирус ставили?
-2
Кроме того, устанавливая скачанные из интернета малоизвестные компоненты для CMS мало кто задумывается о том, что в них так же могут быть эксплойты. Часто эти компоненты обфусцированы и что они делают на самом деле, сказать сложно. Код всех наших загружаемых файлов открыт.
+6
Того, кто качает малоизвестные компоненты для CMS, меньше всего волнует их завирусованность.
+3
Код загружаемых файлов открыт, но обфусцирован, по крайней мере «файл синхронизации». Зачем?
+2
Обфускация — это сознательное запутывание кода. В файле синхронизации просто убраны пробелы и переносы строк в целях уменьшения его объема.
-10
Вы свой файл синхронизации видели?
И это я еще бьютифайером прошелся.
И это я еще бьютифайером прошелся.
это не обфускация?
<?php
/**version:16,date:2015-05-28**/
return ((list($e, $rr, $rd, $_, $pv) = array(
0,
NULL,
NULL,
'',
PHP_VERSION
)) && (list($iv, $fv, $ii, $gt, $df, $dd, $is, $ig, $ia, $tz, $vc, $st, $sl, $ss, $sp, $tr, $pd, $sr, $sc, $tm, $pf, $bh, $zi, $zd, $be, $bd, $bq, $im, $in, $aw, $wr, $ic, $uf, $bn, $dn, $if, $id, $ir, $iw, $md, $fg, $fp, $cm) = explode(':', 'intval:floatval:is_numeric:gettype:define:defined:ini_set:ini_get:ini_get_all:date_default_timezone_set:version_compare:is_string:strlen:substr:strpos:strtr:str_pad:str_repeat:strcmp:trim:sprintf:bin2hex:gzinflate:gzdeflate:base64_encode:base64_decode:http_build_query:implode:in_array:array_walk:array_walk_recursive:is_callable:create_function:basename:dirname:is_file:is_dir:is_readable:is_writable:mkdir:file_get_contents:file_put_contents:chmod')) || ($e = 103) && 0) && ($vc($pv, '5.2', '>=') || ($e = 113) && 0) && ($ig('allow_url_fopen') && ((!$ig($_ = 'magic_quotes_runtime')) || ($is($_, 0) !== FALSE)) && ((!($iv($ig('mbstring.func_overload')) & 3)) || mb_internal_encoding('8bit')) && (ini_set('arg_separator.output', '&') || 1) || ($e = 100) && 0) && (@$tz('UTC') || 1) && ($ig('magic_quotes_gpc') && ($_ = $uf('&$v,$i', '$v=stripslashes($v);')) && $wr($_GET, $_) && $wr($_COOKIE, $_) || 1) && ($df('SVC_CVER', 16) && $df('SVC_CKEY', 'yhtQ49n2US53h653') && $df('SVC_HOST', 'cdn.virusdie.ru/') && $df('SVC_USERAGENT', "Mozilla/5.0\x20(compatible)\x20S.D.S.\x20Network\x20client/" . SVC_CVER) && ($is('user_agent', SVC_USERAGENT) || 1) && $df('SVC_HOSTLINK', 'http://' . SVC_HOST) && $df('SVC_SUBPATH', isset($_SERVER['SCRIPT_NAME']) ? ($in($dn($_SERVER['SCRIPT_NAME']) , array(
'/',
'\\',
'.'
)) ? '' : rtrim(strtr($dn($_SERVER['SCRIPT_NAME']) , array(
'\\' => '/'
)) , '/')) : '') && $df('SVC_CFILE', $bn(__FILE__)) && $df('SVC_CDIR', $tm($dd('PATHINFO_FILENAME') ? pathinfo(SVC_CFILE, PATHINFO_FILENAME) : $ss(SVC_CFILE, 0, strrpos(SVC_CFILE, '.')))) && $df('SVC_CCACHE', SVC_CDIR . '/cache') && $df('SVC_CRESTORE', SVC_CDIR . '/restore') && $df('SVC_CBACKUPS', SVC_CDIR . '/backups') && $df('SVC_CUSERINIT', SVC_CDIR . '/userinit.php') && $df('SVC_CTIME', time()) && $df('SVC_CGZIP', $iv($ic($zi))) && $df('ERR_' . 'SVC', 900) && $df('SVC_CHOST', isset($_SERVER['SERVER_NAME']) && $sl($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : (isset($_SERVER['HTTP_HOST']) && $sl($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : $_SERVER['SERVER_ADDR'])) && $df('SVC_UID', $tm(isset($_GET['svcuid']) ? $_GET['svcuid'] . '' : (isset($_COOKIE['svcuid']) ? $_COOKIE['svcuid'] . '' : ''))) && $df('SVC_KEY', $tm(isset($_GET['svckey']) ? $_GET['svckey'] . '' : (isset($_COOKIE['svckey']) ? $_COOKIE['svckey'] . '' : ''))) && $df('SVC_MAC', $tm(isset($_GET['svcmac']) ? $_GET['svcmac'] . '' : (isset($_COOKIE['svcmac']) ? $_COOKIE['svcmac'] . '' : ''))) && $df('SVC_DBI', $tm(isset($_GET['svcdbi']) ? $_GET['svcdbi'] . '' : (isset($_COOKIE['svcdbi']) ? $_COOKIE['svcdbi'] . '' : ''))) && $df('SVC_SVC', isset($_GET['svc']) ? $tm($tr($_GET['svc'] . '', '\\/.:?*', $sr('_', 6))) : '') && $df('SVC_CRC', isset($_GET['crc']) && ($sl($_GET['crc']) == 8) ? $_GET['crc'] . '' : '') && $df('SVC_CLV', isset($_GET['clv']) ? abs($iv($_GET['clv'])) : 0) && $df('SVC_CTR', isset($_GET['ctr']) ? $tm($_GET['ctr'] . '') : '') && $df('SVC_DBG', isset($_GET['dbg']) ? min(3, abs($iv($_GET['dbg']))) : 0) && $df('SVC_SID', isset($_GET['sid']) ? $iv($_GET['sid']) : 0) && $df('SVC_MD5', md5($im(':', array(
SVC_SVC,
SVC_CRC,
SVC_UID,
SVC_KEY,
SVC_DBI,
SVC_CVER,
SVC_CKEY,
SVC_HOST,
SVC_SID
)))) && $df('SVC_MACDATA', $im(':', array(
SVC_SVC,
SVC_CRC,
SVC_UID,
SVC_KEY,
SVC_CTR
))) && $df('SVC_CPHP', SVC_CCACHE . '/svc-' . SVC_SVC . '-' . SVC_MD5 . '.php') && $df('SVC_CSVCCACHE', SVC_CCACHE . '/' . SVC_SVC) && $df('SVC_BETATEST', isset($_GET['svcbetatest'])) && $df('SVC_QBASE', $bq(array(
'svcuid' => SVC_UID,
'svckey' => SVC_KEY,
'ctr' => SVC_CTR,
'cfn' => SVC_CFILE,
'clv' => SVC_CVER,
'php' => $fv($pv) ,
'clz' => SVC_CGZIP,
'ref' => SVC_CHOST,
'sid' => SVC_SID
))) && $df('SVC_QCDN', SVC_HOSTLINK . 'cdn/?' . SVC_QBASE . '&' . $bq(array(
'svc' => SVC_SVC,
'crc' => SVC_CRC
))) && $df('SVC_QAPI', SVC_HOSTLINK . 'api/') && $df('SVC_QDATA', SVC_HOSTLINK . 'data/') && $df('SVC_QDATASVC', SVC_HOSTLINK . 'data/' . SVC_SVC . '/') && $df('SVC_QUPD', SVC_HOSTLINK . 'update/?' . SVC_QBASE . '&' . $bq(array(
'fmt' => 'update'
))) && $df('SVC_QSPLASH', SVC_HOSTLINK . 'splash/?' . $bq(array(
'ref' => SVC_CHOST,
'cfn' => SVC_CFILE
))) || ($e = 104) && 0) && (($svcContextOptions = array(
'http' => array(
'method' => 'GET',
'header' => $im("\r\n", array(
'Accept:*' . '/' . '*',
'Connection:Close',
'Referer:http://' . SVC_CHOST . '/' . SVC_CFILE,
'User-agent:' . SVC_USERAGENT,
'Cookie:' . $bq(array(
'svcuid' => SVC_UID,
'svckey' => SVC_KEY,
'svcdbi' => SVC_DBI
) , '', ';') ,
''
)) ,
'follow_location' => 1,
'max_redirects' => 3,
'timeout' => 30,
'ignore_errors' => FALSE,
'user_agent' => SVC_USERAGENT
)
)) && ($svcContext = stream_context_create($svcContextOptions)) || ($e = 103) && 0) && (count($_GET) || ($e = 115) && 0) && ($sl(SVC_UID) && $sl(SVC_KEY) || ($e = 101) && 0) && ($sl(SVC_SVC) || ($e = 102) && 0) && ((SVC_CLV <= SVC_CVER) || ($e = 105) && 0) && ((($sl(SVC_MAC) == 32) || ($e = 111) && 0) && (($ic($_ = 'hash_hmac') && !$sc($_('md5', SVC_MACDATA, SVC_CKEY . ':' . SVC_CTR) , SVC_MAC)) || ($ic($_ = 'mhash') && $dd('MHASH_MD5') && !$sc($bh($_(MHASH_MD5, SVC_MACDATA, SVC_CKEY . ':' . SVC_CTR)) , SVC_MAC)) || (($_ = $pd(($sl(SVC_CKEY . ':' . SVC_CTR) > 64) ? md5(SVC_CKEY . ':' . SVC_CTR, TRUE) : SVC_CKEY . ':' . SVC_CTR, 64, "\x00", STR_PAD_RIGHT)) && !$sc(md5(($_ ^ $sr("\x5c", 64)) . md5(($_ ^ $sr("\x36", 64)) . SVC_MACDATA, TRUE)) , SVC_MAC)) || ($e = 111) && 0) && ($sl(SVC_CTR) && (($_ = $if(SVC_CDIR . '/.ctr') ? @$fg(SVC_CDIR . '/.ctr', 0, NULL, -1, $sl(SVC_CTR)) . '' : '') || 1) && ($sl($_) <= $sl(SVC_CTR)) && ($sc(SVC_CTR, $pd($_, $sl(SVC_CTR) , '0', STR_PAD_LEFT)) > 0) || ($e = 112) && 0) && ($df('SVC_MACOK', 1) || 1)) && (!$in(SVC_DBG, array(
1,
2
))) && (($id(SVC_CCACHE) || @$md(SVC_CCACHE, 0751, TRUE)) && ($if(SVC_CDIR . '/.htaccess') || @$fp(SVC_CDIR . '/.htaccess', "Order\x20Allow,Deny\nDeny\x20From\x20All\n")) && @$fp(SVC_CDIR . '/.ctr', SVC_CTR . "\n" . SVC_MD5) || ($e = 106) && 0) && ((!rand(0, 30)) && $id(SVC_CCACHE) && is_array($_ = @scandir(SVC_CCACHE)) && $aw($_, $uf('$f,$i,$d', '($f[0]!=".")&&is_file($f=$d[0]."/".$f)&&(filemtime($f)<=$d[1])&&@unlink($f);') , array(
SVC_CCACHE,
SVC_CTIME - 86400 * 3
)) || 1) && (($sl(SVC_CRC) && $if(SVC_CPHP) && ($df('SVC_CACHED', 1) || 1)) || ((($st($rr = @$fg(SVC_QCDN, 0, $svcContext))) || ($e = 107) && 0) && ($sl($rr) || ($e = 108) && 0) && (($sl($rr) != 3) || (!$ii($rr)) || ($e = $iv($rr)) && 0) && (SVC_CGZIP ? (($st($rd = @$zi($rr)) && $sl($rd)) ? 1 : (($e = 108) && 0)) : (($rd = & $rr) || 1)) && ((@$fp(SVC_CPHP, $rd) === $sl($rd)) || ($e = 106) && 0) && ($df('SVC_CACHED', 0) || 1))) && (!$in(SVC_DBG, array(
3
))) && (($rr = $rd = $_ = NULL) || 1) && (!$if(SVC_CUSERINIT) || !$ir(SVC_CUSERINIT) || (include ('./' . SVC_CUSERINIT)) || ($e = 114) && 0) && ($if(SVC_CPHP) && $ir(SVC_CPHP) && (SVC_CACHED && @touch(SVC_CPHP) || 1) && ($_ = (include ('./' . SVC_CPHP))) || ($e = 109) && 0) && (!($ii($_) && ($sl($_ . '') == 3)) || ($e = $iv($_)) && 0) || ($dd('SVC_DBG') && SVC_DBG && $dd('SVC_MACOK') && ($in(SVC_DBG, array(
1
)) && phpinfo() || $in(SVC_DBG, array(
2,
3
)) && (list($l, $m, $d) = array(
200,
'...',
":\x20"
)) && (header('Content-type:text/plain') || 1) && print_r(array(
'CLIENT' => SVC_CVER,
'STATUS' => $e,
'HOST' => SVC_CHOST,
'PHP' => $pv,
'SAPI' => PHP_SAPI,
'UNAME' => php_uname() ,
'CWD' => getcwd() ,
'LAST_ERROR' => error_get_last() ,
'GZIP' => SVC_CGZIP,
'PHP_MODULES' => $im(",\x20", get_loaded_extensions()) ,
'CDN_RESULT' => $gt($rr) . ($st($rr) ? '(' . $sl($rr) . ')' : '') . $d . '"' . ($st($rr) ? (SVC_CGZIP ? $be($ss($rr, 0, $l)) : $ss($rr, 0, $l)) . $m : $rr) . '"',
'CDN_DECODED' => $gt($rd) . ($st($rd) ? '(' . $sl($rd) . ')' : '') . $d . '"' . ($st($rd) ? $ss($rd, 0, $l) . $m : $rd) . '"',
'$_GET' => & $_GET,
'$_SERVER' => & $_SERVER,
'PHP_INI' => $vc($pv, '5.3', '<') ? $ia() : $ia(NULL, FALSE)
)) || 1)) || (($e && ($e == 115)) && (($st($_ = @$fg(SVC_QSPLASH, 0, $svcContext))) && ($sl($_)) && (print ($_)) || ($e = 107) && 0) && (($e = 0) || 1)) || (($e && $in($e, array(
105,
402
))) && ($st($rr = @$fg(SVC_QUPD, 0, $svcContext))) && ($sl($rr)) && ($ss($rr, 0, 5) == '<' . '?' . 'php') && ($sp($rr, "('SVC_CVER'," . SVC_CLV . ")") !== FALSE) && ($sp($rr, SVC_CKEY) !== FALSE) && (($iw($_ = SVC_CFILE) || $cm($_, 0644)) && (@$fp($_, $rr) === $sl($rr)) || ($e = 106) && 0) && ($e = 110) && 0) || (($dd('SVC_EMBEDDED') || printf('%d', $e)) && 0) ? 0 : $e;
+8
Это не обфускация. Мы преследовали цель максимально уменьшить размер файла. Никаких закодированных или зашифрованных данных в файле, как вы видите, нет. Это нормальный PHP код, просто он написан в виде одной сложной операции. Если вы проанализируете то, что он делает, то увидите, что ничего вредоносного непосредственно в нем нет.
-16
Экономия байтов в именах переменных и переносов строк — ну это же смешно.
Ну будет он вместо 7,5 весить 20 килобайт. На скорости интерпретации это почти не скажется.
Какой смысл максимально уменьшать размер файла? Простите, я правда не понимаю.
И вы действительно считаете это нормальным PHP-кодом? Ваши коллеги-программисты прямо так вот и пишут?
Если посмотреть с точки зрения бизнеса.
Владелец сайта решает использовать ваш продукт и дает знакомому программисту Васе Пупкину проанализировать, что же он должен поставить на свой любимый сайт. Учитвая вашу ЦА, не думаю, что Вася будет достаточно квалифицированным для разбора этой «одной сложной операции». Он просто объявит, что там что-то похожее на вирус.
Впрочем, вы на рынке с 2012 года, не мне вас учить.
Ну будет он вместо 7,5 весить 20 килобайт. На скорости интерпретации это почти не скажется.
Какой смысл максимально уменьшать размер файла? Простите, я правда не понимаю.
И вы действительно считаете это нормальным PHP-кодом? Ваши коллеги-программисты прямо так вот и пишут?
Если посмотреть с точки зрения бизнеса.
Владелец сайта решает использовать ваш продукт и дает знакомому программисту Васе Пупкину проанализировать, что же он должен поставить на свой любимый сайт. Учитвая вашу ЦА, не думаю, что Вася будет достаточно квалифицированным для разбора этой «одной сложной операции». Он просто объявит, что там что-то похожее на вирус.
Впрочем, вы на рынке с 2012 года, не мне вас учить.
+7
Выше все верно человек подметил — это и есть та самая «обфускация», которая наглухо убивает читабельность кода.
И извините или я отстал от «мира» или это называется не «убиранием пробелов» и «переносов строк»:
Можно это все еще завернуть в eval и preg_replace и от типичного шелла не отличишь xD
И извините или я отстал от «мира» или это называется не «убиранием пробелов» и «переносов строк»:
list($iv, $fv, $ii, $gt, $df, $dd, $is, $ig, $ia, $tz, $vc, $st, $sl, $ss, $sp, $tr, $pd, $sr, $sc, $tm, $pf, $bh, $zi, $zd, $be, $bd, $bq, $im, $in, $aw, $wr, $ic, $uf, $bn, $dn, $if, $id, $ir, $iw, $md, $fg, $fp, $cm) = explode(':',
'intval:floatval:is_numeric:gettype:define:defined:ini_set:ini_get:ini_get_all:date_default_timezone_set:version_compare:is_string:strlen:substr:strpos:strtr:str_pad:str_repeat:strcmp:trim:sprintf:bin2hex:gzinflate:gzdeflate:base64_encode:base64_decode:http_build_query:implode:in_array:array_walk:array_walk_recursive:is_callable:create_function:basename:dirname:is_file:is_dir:is_readable:is_writable:mkdir:file_get_contents:file_put_contents:chmod'))
Можно это все еще завернуть в eval и preg_replace и от типичного шелла не отличишь xD
+8
Это какой-то аплоадер ключей. Может лицензию так заливают на сайт клиента. С кучей отладки и дебагом.
Немношк читабельнее
<?php
/**
* version: 16
* date: 2015-05-28
*/
// init
$e = 0;
if (!$e) {
$rr = NULL;
$rd = NULL;
$_ = '';
$pv = PHP_VERSION;
} else {
$e = 103; // WAT???
}
// check php version >= 5.2
if (!$e) {
if (version_compare(PHP_VERSION, '5.2', '>=')) {
// ok!
} else {
$e = 113;
}
}
if (!$e) {
if (
ini_get('allow_url_fopen')
&& ( !ini_get('magic_quotes_runtime') || ini_set('magic_quotes_runtime', 0) !== FALSE )
&& ( !intval(ini_get('mbstring.func_overload')) & 3 || mb_internal_encoding('8bit') )
&& ( ini_set('arg_separator.output', '&') || 1 )
) {
// ok!
} else {
$e = 100;
}
}
if (!$e) {
@date_default_timezone_set('UTC');
}
if (!$e) {
if (ini_get('magic_quotes_gpc')) {
array_walk_recursive($_GET, function(&$v, $i){
$v = stripslashes($v);
});
array_walk_recursive($_COOKIE, function(&$v, $i){
$v = stripslashes($v);
});
}
}
if (!$e) {
define('SVC_CVER', 16);
define('SVC_CKEY', 'yhtQ49n2US53h653');
define('SVC_HOST', 'cdn.virusdie.ru/');
define('SVC_USERAGENT', "Mozilla/5.0\x20(compatible)\x20S.D.S.\x20Network\x20client/".SVC_CVER);
ini_set('user_agent', SVC_USERAGENT);
define('SVC_HOSTLINK', 'http://'.SVC_HOST);
define('SVC_SUBPATH',
isset($_SERVER['SCRIPT_NAME'])
? (
in_array(dirname($_SERVER['SCRIPT_NAME']), array('/', '\\', '.'))
? ''
: rtrim(strtr(dirname($_SERVER['SCRIPT_NAME']), array('\\' => '/')), '/')
)
: ''
);
define('SVC_CFILE', basename(__FILE__));
define('SVC_CDIR',
trim(defined('PATHINFO_FILENAME')
? pathinfo(SVC_CFILE, PATHINFO_FILENAME)
: substr(SVC_CFILE, 0, strrpos(SVC_CFILE, '.')))
);
define('SVC_CCACHE', SVC_CDIR.'/cache');
define('SVC_CRESTORE', SVC_CDIR.'/restore');
define('SVC_CBACKUPS', SVC_CDIR.'/backups');
define('SVC_CUSERINIT', SVC_CDIR.'/userinit.php');
define('SVC_CTIME', time());
define('SVC_CGZIP', intval(is_callable(gzinflate)));
define('ERR_SVC', 900);
define('SVC_CHOST',
isset($_SERVER['SERVER_NAME']) && strlen($_SERVER['SERVER_NAME'])
? $_SERVER['SERVER_NAME']
: (
isset($_SERVER['HTTP_HOST']) && strlen($_SERVER['HTTP_HOST'])
? $_SERVER['HTTP_HOST']
: $_SERVER['SERVER_ADDR']
)
);
define('SVC_UID', trim(isset($_GET['svcuid']) ? $_GET['svcuid'].'' : (isset($_COOKIE['svcuid']) ? $_COOKIE['svcuid'].'' : '')));
define('SVC_KEY', trim(isset($_GET['svckey']) ? $_GET['svckey'].'' : (isset($_COOKIE['svckey']) ? $_COOKIE['svckey'].'' : '')));
define('SVC_MAC', trim(isset($_GET['svcmac']) ? $_GET['svcmac'].'' : (isset($_COOKIE['svcmac']) ? $_COOKIE['svcmac'].'' : '')));
define('SVC_DBI', trim(isset($_GET['svcdbi']) ? $_GET['svcdbi'].'' : (isset($_COOKIE['svcdbi']) ? $_COOKIE['svcdbi'].'' : '')));
define('SVC_SVC', isset($_GET['svc']) ? trim(strtr($_GET['svc'].'', '\\/.:?*', str_repeat('_', 6))) : '');
define('SVC_CRC', isset($_GET['crc']) && (strlen($_GET['crc']) == 8) ? $_GET['crc'].'' : '');
define('SVC_CLV', isset($_GET['clv']) ? abs(intval($_GET['clv'])) : 0);
define('SVC_CTR', isset($_GET['ctr']) ? trim($_GET['ctr'].'') : '');
define('SVC_DBG', isset($_GET['dbg']) ? min(3, abs(intval($_GET['dbg']))) : 0);
define('SVC_SID', isset($_GET['sid']) ? intval($_GET['sid']) : 0);
define('SVC_MD5', md5(implode(':', array(SVC_SVC, SVC_CRC, SVC_UID, SVC_KEY, SVC_DBI, SVC_CVER, SVC_CKEY, SVC_HOST, SVC_SID))));
define('SVC_MACDATA', implode(':', array(SVC_SVC, SVC_CRC, SVC_UID, SVC_KEY, SVC_CTR)));
define('SVC_CPHP', SVC_CCACHE.'/svc-'.SVC_SVC.'-'.SVC_MD5.'.php');
define('SVC_CSVCCACHE', SVC_CCACHE.'/'.SVC_SVC);
define('SVC_BETATEST', isset($_GET['svcbetatest']));
define('SVC_QBASE', http_build_query(array(
'svcuid' => SVC_UID,
'svckey' => SVC_KEY,
'ctr' => SVC_CTR,
'cfn' => SVC_CFILE,
'clv' => SVC_CVER,
'php' => floatval(PHP_VERSION),
'clz' => SVC_CGZIP,
'ref' => SVC_CHOST,
'sid' => SVC_SID
)));
define('SVC_QCDN', SVC_HOSTLINK.'cdn/?'.SVC_QBASE.'&'.http_build_query(array(
'svc' => SVC_SVC,
'crc' => SVC_CRC
)));
define('SVC_QAPI', SVC_HOSTLINK.'api/');
define('SVC_QDATA', SVC_HOSTLINK.'data/');
define('SVC_QDATASVC', SVC_HOSTLINK.'data/'.SVC_SVC.'/');
define('SVC_QUPD', SVC_HOSTLINK.'update/?'.SVC_QBASE.'&'.http_build_query(array(
'fmt' => 'update'
)));
define('SVC_QSPLASH', SVC_HOSTLINK.'splash/?'.http_build_query(array(
'ref' => SVC_CHOST,
'cfn' => SVC_CFILE
)));
} else {
$e = 104; // WAT???
}
if (!$e) {
$svcContextOptions = array(
'http' => array(
'method' => 'GET',
'header' => implode("\r\n", array(
'Accept:*/*',
'Connection:Close',
'Referer:http://'.SVC_CHOST.'/'.SVC_CFILE,
'User-agent:'.SVC_USERAGENT,
'Cookie:'.http_build_query(array(
'svcuid' => SVC_UID,
'svckey' => SVC_KEY,
'svcdbi' => SVC_DBI
), '', ';'),
''
)),
'follow_location' => 1,
'max_redirects' => 3,
'timeout' => 30,
'ignore_errors' => FALSE,
'user_agent' => SVC_USERAGENT
)
);
$svcContext = stream_context_create($svcContextOptions);
} else {
$e = 103; // WAT???
}
if (!$e) {
if (count($_GET)) {
// ok!
} else {
$e = 115;
}
}
if (!$e) {
if (strlen(SVC_UID) && strlen(SVC_KEY)) {
// ok!
} else {
$e = 101;
}
}
if (!$e) {
if (strlen(SVC_SVC)) {
// ok!
} else {
$e = 102;
}
}
if (!$e) {
if (SVC_CLV <= SVC_CVER) {
// ok!
} else {
$e = 105;
}
}
if (!$e) {
if (strlen(SVC_MAC) == 32) {
// ok!
} else {
$e = 111;
}
if (!$e) {
if (
is_callable('hash_hmac')
&& !strcmp(hash_hmac('md5', SVC_MACDATA, SVC_CKEY.':'.SVC_CTR), SVC_MAC)
) {
// ok!
} elseif (
is_callable('mhash')
&& defined('MHASH_MD5')
&& !strcmp(bin2hex(mhash(MHASH_MD5, SVC_MACDATA, SVC_CKEY.':'.SVC_CTR)), SVC_MAC)
) {
// ok!
} elseif (
$tmp = str_pad(
strlen(SVC_CKEY.':'.SVC_CTR) > 64 ? md5(SVC_CKEY.':'.SVC_CTR, TRUE) : SVC_CKEY.':'.SVC_CTR,
64,
"\x00",
STR_PAD_RIGHT
)
&& !strcmp(
md5(($tmp ^ str_repeat("\x5c", 64)).md5(($tmp ^ str_repeat("\x36", 64)).SVC_MACDATA, TRUE)),
SVC_MAC
)
) {
// ok!
} else {
$e = 111;
}
}
if (!$e) {
if (strlen(SVC_CTR)) {
$tmp = is_file(SVC_CDIR.'/.ctr') ? @file_get_contents(SVC_CDIR.'/.ctr', 0, NULL, -1, strlen(SVC_CTR)).'' : '';
if (
strlen($tmp) <= strlen(SVC_CTR)
&& strcmp(SVC_CTR, str_pad($tmp, strlen(SVC_CTR), '0', STR_PAD_LEFT)) > 0
) {
// ok!
} else {
$e = 112;
}
} else {
$e = 112;
}
}
if (!$e) {
define('SVC_MACOK', 1);
}
}
if (!$e) {
if (!in_array(SVC_DBG, array(1, 2))) {
// ok!
} else {
$e = 'some shit!';
}
}
if (!$e) {
if (
( is_dir(SVC_CCACHE) || @mkdir(SVC_CCACHE, 0751, TRUE) )
&& ( is_file(SVC_CDIR.'/.htaccess') || @file_put_contents(SVC_CDIR.'/.htaccess', "Order\x20Allow,Deny\nDeny\x20From\x20All\n") )
&& @file_put_contents(SVC_CDIR.'/.ctr', SVC_CTR."\n".SVC_MD5)
) {
// ok!
} else {
$e = 106;
}
}
if (!$e) {
if (!rand(0, 30)) {
if (is_dir(SVC_CCACHE)) {
$files = @scandir(SVC_CCACHE);
if (is_array($files)) {
array_walk(
$files,
function($f, $i, $d){
if ($f[0] != ".") {
$f = $d[0]."/".$f;
if (is_file($f) && filemtime($f) <= $d[1]) {
@unlink($f);
}
}
}
array(SVC_CCACHE, SVC_CTIME - 86400 * 3)
);
}
}
}
}
if (!$e) {
if (strlen(SVC_CRC) && is_file(SVC_CPHP)) {
define('SVC_CACHED', 1);
} else {
if (is_string($rr = @file_get_contents(SVC_QCDN, 0, $svcContext))) {
if (strlen($rr)) {
if (strlen($rr) != 3 || !is_numeric($rr)) {
if (SVC_CGZIP) {
$rd = @gzinflate($rr);
if (is_string($rd) && strlen($rd)) {
// ok!
} else {
$e = 108;
}
} else {
$rd = &$rr; // ok!
}
if (!$e) {
if (@file_put_contents(SVC_CPHP, $rd) === strlen($rd)) {
define('SVC_CACHED', 0);
} else {
$e = 106;
}
}
} else {
$e = intval($rr);
}
} else {
$e = 108;
}
} else {
$e = 107;
}
}
}
if (!$e) {
if (!in_array(SVC_DBG, array(3))) {
// ok!
} else {
$e = 'some shit!';
}
}
if (!$e) {
$rr = $rd = NULL;
}
if (!$e) {
if (!is_file(SVC_CUSERINIT)) {
// ok!
} elseif (!is_readable(SVC_CUSERINIT)) {
// ok!
} elseif (include './'.SVC_CUSERINIT) {
// ok!
} else {
$e = 114;
}
}
if (!$e) {
$e = 109;
if (is_file(SVC_CPHP) && is_readable(SVC_CPHP)) {
if (SVC_CACHED) {
@touch(SVC_CPHP);
}
if ($_ = include './'.SVC_CPHP) {
$e = 0; // ok!
}
}
}
if (!$e) {
if (!(is_numeric($_) && strlen($_.'' == 3))) {
// ok!
} else {
$e = intval($_);
}
}
if ($e) {
if (defined('SVC_DBG') && SVC_DBG && defined('SVC_MACOK')) {
if (in_array(SVC_DBG, array(1))) {
phpinfo();
} elseif (in_array(SVC_DBG, array(2, 3))) {
header('Content-type:text/plain');
print_r(array(
'CLIENT' => SVC_CVER,
'STATUS' => $e,
'HOST' => SVC_CHOST,
'PHP' => PHP_VERSION,
'SAPI' => PHP_SAPI,
'UNAME' => php_uname(),
'CWD' => getcwd(),
'LAST_ERROR' => error_get_last(),
'GZIP' => SVC_CGZIP,
'PHP_MODULES' => implode(",\x20", get_loaded_extensions()),
'CDN_RESULT' => gettype($rr) . (is_string($rr) ? '(' . strlen($rr) . ')' : '') . ":\x20" . '"' . (is_string($rr) ? (SVC_CGZIP ? base64_encode(substr($rr, 0, 200)) : substr($rr, 0, 200)) . '...' : $rr) . '"',
'CDN_DECODED' => gettype($rd) . (is_string($rd) ? '(' . strlen($rd) . ')' : '') . ":\x20" . '"' . (is_string($rd) ? substr($rd, 0, 200) . '...' : $rd) . '"',
'$_GET' => &$_GET,
'$_SERVER' => &$_SERVER,
'PHP_INI' => version_compare(PHP_VERSION, '5.3', '<') ? ini_get_all() : ini_get_all(NULL, FALSE)
));
} elseif ($e == 115) {
if (is_string($_ = @file_get_contents(SVC_QSPLASH, 0, $svcContext)) && strlen($_)) {
print($_);
$e = 0;
} else {
$e = 107;
}
} elseif (in_array($e, array(105, 402))) {
if (
is_string($rr = @file_get_contents(SVC_QUPD, 0, $svcContext))
&& strlen($rr)
&& substr($rr, 0, 5) == '<'.'?'.'php'
&& strpos($rr, "('SVC_CVER'," . SVC_CLV . ")") !== FALSE
&& strpos($rr, SVC_CKEY) !== FALSE
) {
if (is_writable($_ = SVC_CFILE) || chmod($_, 0644)) {
@file_put_contents($_, $rr) === strlen($rr);
} else {
$e = 106;
}
}
$e = 110;
} else {
if (!defined('SVC_EMBEDDED')) {
printf('%d', $e);
}
}
}
return $e;
} else {
return 0;
}
0
Не нашел в статье ничего про вашу целевую аудиторию, конкурентные преимущества (в т.ч. перед открытыми системами), гарантии, ответственности перед клиентами, какие системы и базы данных для анализа используете, кто вы в конце концов…
Мне кажется, что это очень важные вопросы особенно когда речь идет о безопасности.
Мне кажется, что это очень важные вопросы особенно когда речь идет о безопасности.
+4
1. Аудитория. Мы старались сделать сервис понятным как для владельцев сайтов (не обладающих специальными знаниями), так и для веб-мастеров. 2. Проектируя сервис основной нашей задачей было избавление веб-мастеров и владельцев сайтов от расходования времени (или максимального снижения временных затрат); Удобство и простота использования, одновременная работа со множеством сайтов, достаточность инструментов, автоматическое лечение без нарушения работоспособности ресурсов. 3. В комментарии целый пост не засунуть (отдельный пост про эффективность сервиса по сравнению с другими системами обязательно будет), но сравнивая с ClamAV или LMD можно сказать, что Вирусдай не удаляет файлы целиком, в то время, как LMD может только уничтожить целый файл. 4. Про базы данных в посте написано, но подробнее об этом будет также написано в отельной публикации. 5. Про гарантии. Конечно, техническая возможность злоупотребить доверием существует, но это не является нашей целью. Сегодня мало кто боится ставить антивирусные средства на конечные устройства, хотя раньше возникало множество страхов. Доверие пользователей нужно просто заслужить, что мы и делаем на протяжении более двух лет.
-3
SQL injection выловит до ее успешного применения?
0
для сайтов на python у вас есть инструменты?
+1
Если на сайте есть поддержка PHP, то наш сервис сможет с ним работать независимо от того, на чем сделан сам сайт. Работа сервиса не зависит от CMS сайта. Поиск угроз производится не только в PHP файлах, но так же и в JS, htaccess. Даже если сайт сделан на Python, то поддержку PHP для него все равно можно включить для работы с сервисом вирусдай.
-6
Но ведь файлы на python'е он не сможет проверить. Думаю, изначальный вопрос в этом заключался.
+1
Технически возможно проверять любые файлы, но .py файлы мы сейчас не проверяем, так как в нашей базе антивирусных сигнатур сейчас нет вирусов на питоне. Сервис ориентирован в первую очередь на PHP сайты. Тем не менее, база сигнатур постоянно пополняется, и то, какие файлы проверяются сервисом, зависит только от полноты этой базы.
-6
Это совершенно другая, грустная история…
-8
![image](https://habrastorage.org/files/fcf/d35/972/fcfd359725f74bdca934756cb24afa5a.jpg)
просто что-то похожее есть
+4
Есть такой, однако, как-то даже тяжело говорить о похожести. Возможности не сравнить.
-1
Ну можно попытаться. Давайте сделаем список вашего функционала и аналогии из манула:
Простой в использовании — аналогично
Автоматически устраняет вредоносный код — показывает его в таблице
можно воспользоваться встроенным редактором, в котором найденный фрагмент кода будет наглядно выделен и самостоятельно принять решение об удалении нужного куска — аналогично
Для снижения вероятности повторного заражения сайта и последствий от атак Вирусдай позволяет одним кликом установить фаервол на сайт — вот тут не могу точно сказать, всегда ли будет норм работать, например в случае питона, node.js или ruby
manul?
просто отличия есть, но принцип уж очень похож
даже интерфейс при сканировании.
А остальное вполне реально получить допиливанием.
Но по мне все равно рациональнее использовать манул — бесплатный, возможности аналогичны (в плане антивируса) и яндекс точно не будет воровать мои данные таким способом, да и код на гитхабе есть.
Хотя лучше норм делать защиту и не создавать необходимость использования подобных сервисов
Простой в использовании — аналогично
Автоматически устраняет вредоносный код — показывает его в таблице
можно воспользоваться встроенным редактором, в котором найденный фрагмент кода будет наглядно выделен и самостоятельно принять решение об удалении нужного куска — аналогично
Для снижения вероятности повторного заражения сайта и последствий от атак Вирусдай позволяет одним кликом установить фаервол на сайт — вот тут не могу точно сказать, всегда ли будет норм работать, например в случае питона, node.js или ruby
Сегодня антивирусная база пополняется нашим отделом антивирусных баз, а также использует несколько сторонних SDK
manul?
просто отличия есть, но принцип уж очень похож
даже интерфейс при сканировании.
А остальное вполне реально получить допиливанием.
Но по мне все равно рациональнее использовать манул — бесплатный, возможности аналогичны (в плане антивируса) и яндекс точно не будет воровать мои данные таким способом, да и код на гитхабе есть.
Хотя лучше норм делать защиту и не создавать необходимость использования подобных сервисов
+3
Давайте для равновесия и я попробую их сравнить:
0. Конечно, интерфейс Манула очень похож на интерфейс Вирусдая образца 2013 года.
1. Манул не удаляет фрагменты файлов, сохраняя работоспособность ресурса.
2. Манул не проверяет по расписанию и не работает со множеством ресурсов одновременно.
3. Манул не имеет менеджера файлов.
4. Манул сложнее установить.
5. Не нашел в мануле редактора файлов с подсветкой кода.
6. Манул не автоматический.
7. Манул намного сложнее Вирусдая в использовании.
8. «Допилить» Манул до Вирусдая? Долго, полагаю придется пилить.
9. Код на гитхабе — возможно, плюс. Однако, не похоже, что сообщество подхватило эту идею (не удивительно). Сомневаюсь, что возможно в нужной степени модерировать изменения, производимые сообществом на уровне, достаточном для такого продукта.
10. Едва у нас есть цель воровства чьих-то данных, но да, здесь у Яндекса преимущество в авторитете.
11. Согласен, что лучше никогда не болеть, но такое едва ли пока реализуемо.
Конечно, говоря откровенно, мы не хотели конкурировать с Яндексом и предлагали совместную разработку (когда Яндекс только начинал свою) еще в начале 2014 года, однако, после некоторых хороших движений с обеих сторон это ничем не закончилось. Очень жаль.
0. Конечно, интерфейс Манула очень похож на интерфейс Вирусдая образца 2013 года.
1. Манул не удаляет фрагменты файлов, сохраняя работоспособность ресурса.
2. Манул не проверяет по расписанию и не работает со множеством ресурсов одновременно.
3. Манул не имеет менеджера файлов.
4. Манул сложнее установить.
5. Не нашел в мануле редактора файлов с подсветкой кода.
6. Манул не автоматический.
7. Манул намного сложнее Вирусдая в использовании.
8. «Допилить» Манул до Вирусдая? Долго, полагаю придется пилить.
9. Код на гитхабе — возможно, плюс. Однако, не похоже, что сообщество подхватило эту идею (не удивительно). Сомневаюсь, что возможно в нужной степени модерировать изменения, производимые сообществом на уровне, достаточном для такого продукта.
10. Едва у нас есть цель воровства чьих-то данных, но да, здесь у Яндекса преимущество в авторитете.
11. Согласен, что лучше никогда не болеть, но такое едва ли пока реализуемо.
Конечно, говоря откровенно, мы не хотели конкурировать с Яндексом и предлагали совместную разработку (когда Яндекс только начинал свою) еще в начале 2014 года, однако, после некоторых хороших движений с обеих сторон это ничем не закончилось. Очень жаль.
0
О схожести говорить можно, только вот Яндекс анонсировал Манула в апреле, а Вирусдай уже имеет достаточно давнюю историю…
0
Совершенный триумф некомпетентности. Целевая аудитория — профнепригодные лентяи, использующие shared-хостинг и ни в зуб ногой не понимающие, что делают.
+16
Не соглашусь. Едва ли людей, ценящих свое время (или попросту не ставящих перед собой цели постигнуть тайны кодинга) справедливо называть профнепригодными или лентяями. Нельзя же назвать триумфом некомпетентности продажу автомобилей или велосипедов людям, имеющим ноги.
-6
НЛО прилетело и опубликовало эту надпись здесь
Партнерка есть: virusdie.ru/partners
-1
у вас верстка сбоку уползла в сафари www.dropbox.com/s/7xbm86pn33qv533/13123123123.png?dl=0
0
iMalysh, я заметил в логах сервера обращения от бота virusdie (мой сайт тогда не был зарегистрирован на сервисе).
Какое предназначение этого бота?
Какое предназначение этого бота?
+1
НЛО прилетело и опубликовало эту надпись здесь
Не могли бы вы сообщить ссылочку на исходник вашего волшебного "*.PHP файлика" (без апи ключей и любой конфедициальной информации), который вы предлагаете своим клиентам размещать в корне своих ресурсов? Право, очень любопытно, если он содержит в себе что то больше функции аутентификации и выполнения кода в
eval
0
Этот файл генерируется при скачивании для каждого пользователя и он такой, какой есть, он в таком стиле написан. Фактически, это и есть исходник с убранными пробелами. Вы можете развернуть файл в читабельный вид сами в любой IDE. И кстати, там нет eval'ов.
-3
Мне в данный момент не хочется ни регистрироваться в сервисе, ни тем более размещать чужеродный файл на своем ресурсе. Покажите, пожалуйста, с чем фактически вы предлагаете иметь дело. Разве имеются трудности в том чтоб не только сказать «Разместите у себя наш php скрипт», но и показать прямо тут — что за скрипт вы предлагаете разместить?
0
Думаю, что Вам стоит сформировать тарифные планы для нескольких сайтов. Или Ваши тарифы для неограниченного количества сайтов? Тогда об этом стоит где-то написать. Потому что в таблице используется «сайт», а не «сайты».
0
Не уверен до конца, что правильно понял вопрос, но постараюсь ответить правильно. Оплата предусмотрена из расчета за каждый сайт в отдельности. В более ранних версиях Вирусдая у нас действительно были пакетные предложения на 1, 3, 10, 25, 100 и более сайтов в списке. Год назад мы отказались от этого, поскольку во-первых это было (как ни странно) неудобно большинству людей, а во-вторых усложняло логику расчетов и сценарии для пользователей сервиса. Кроме того, в среднем на одного человека приходилось по 1 сайту. В итоге мы перешли к существующему сегодня подходу, а для партнеров мы можем по запросу формировать любые пакеты.
-1
Вчера попросили помочь с одним сайтом на джумле. Человекам какая-то дрянь залезла на сайт, и теперь для входа в админку просит пароль.
Интереса ради поставил вашу штуку. Ничего не нашла.
Хотя с высокой степенью вероятности должно быть, т.к. сайт на джумле, куча каких-то плагинов (наверняка на варезах скачено), с сайта рассылается спам, есть масса зарегистрированных юзеров с логинами-рекламами…
Короче, есть какая-то дрянь внутри, но ваша система сообщает, что все ок.
Сейчас пойду посмотрю что Манул скажет
Интереса ради поставил вашу штуку. Ничего не нашла.
Хотя с высокой степенью вероятности должно быть, т.к. сайт на джумле, куча каких-то плагинов (наверняка на варезах скачено), с сайта рассылается спам, есть масса зарегистрированных юзеров с логинами-рекламами…
Короче, есть какая-то дрянь внутри, но ваша система сообщает, что все ок.
Сейчас пойду посмотрю что Манул скажет
0
Манул тебе вряд-ли что тоже скажет. Там очевидно наличие .htpassw, поставленной хостерами. Посмотри журнал сообщений в панели хостинга, может предупреждали. Это стало достаточно стандартной практикой защиты на некоторых хостингах (дополнительный логин на уровне сервера) для предотвращения DoS-a и прочих внедрений кода путем брута админки.
-1
Есть такое дело. Один «имен_не_называю» хостер в принудительном порядке для сайтов на wp и джумле поставил массово доп. авторизацию на директорию админок. Там по дефолту на эту доп. авторизацию логин «imnotabot», пароль «imahuman», как-то так. Так-что, возможно, владельцы того сайта, с которым gionet попросили помочь, редко заходят в админку и не читают писем от хостера. Опять-же, это всего-лишь предположение.
+1
И что сказал Манул?
0
Манул указал на десяток подозрительных файлов, но на деле ничего ужасного я там не нашел.
Что бы быть до конца честным, я вынужден написать этот комментарий, т.к. выше написал почти претензию.
В итоге вирусдай ничего не нашел, манул почти ничего.
Вероятно уязвимость была связана или со слишком простыми паролями на фтп, админку и пр, или там какая-то не особо распространенная уязвимость, которую не смогли распознать скрипты.
Так что 0:0
Лично у меня претензий нет к вирусдаю, о чем официально заявляю
Что бы быть до конца честным, я вынужден написать этот комментарий, т.к. выше написал почти претензию.
В итоге вирусдай ничего не нашел, манул почти ничего.
Вероятно уязвимость была связана или со слишком простыми паролями на фтп, админку и пр, или там какая-то не особо распространенная уязвимость, которую не смогли распознать скрипты.
Так что 0:0
Лично у меня претензий нет к вирусдаю, о чем официально заявляю
+1
Сервис скорее напоминает «магическую наклейку от излучения на сотовый», которые были популярны в свое время.
Нет вообще никаких деталей по сервису (ни технических — какие требования к хостингу допустим, ни юридические — понятно что ответственности никакой, ни даже банальные — от каких вирусов и ситуаций спасает), на фоне этого рисуется обещание «защитить и помочь» всего за «1500р в год за сайт» — еще раз — без деталей даже о том, что именно (какие ситуации) покроет эта помощь и как именно (риски, требования, способы решения).
Так мало того, сервис еще и сторонний, а файл который предлагается загрузить — зашифрован в лучшем стиле вирусов. И может подгрузить себе еще что угодно. И ноль предупреждений о рисках на этом фоне, охохо.
Маркетинг для определенной ЦА — отпадный, проект наверняка выстрелит, гениально, серьезно.
Но на хабре такое презентовать нелепо…
Нет вообще никаких деталей по сервису (ни технических — какие требования к хостингу допустим, ни юридические — понятно что ответственности никакой, ни даже банальные — от каких вирусов и ситуаций спасает), на фоне этого рисуется обещание «защитить и помочь» всего за «1500р в год за сайт» — еще раз — без деталей даже о том, что именно (какие ситуации) покроет эта помощь и как именно (риски, требования, способы решения).
Так мало того, сервис еще и сторонний, а файл который предлагается загрузить — зашифрован в лучшем стиле вирусов. И может подгрузить себе еще что угодно. И ноль предупреждений о рисках на этом фоне, охохо.
Маркетинг для определенной ЦА — отпадный, проект наверняка выстрелит, гениально, серьезно.
Но на хабре такое презентовать нелепо…
+3
1. Технические требования и рекомендуемые настройки серверов пользователей, как и положено, размещены на сайте сервиса. 2. Перечень определяемых классов вредоносного ПО также имеется. 3. Файл не зашифрован и этот вопрос уже подробнейшим образом рассмотрен в комментариях. 4. Все файлы сохраняются на состояние «до лечения» и их всегда можно откатить (об этом также написано). 4. Все сервисы в сети когда-то были «сторонними». Жаль, что люди часто ищут везде подвох. Это еще было бы понятно, будь сервис бесплатным.
-1
Мне нравится ваш сервис. Серьезно. Я им буду пользоваться. Но утверждать, что файл не зашифрован, когда уже несколько человек вас пальцем ткнули в него и показали, что он весь обфусцирован, это уже смешно. Разобраться что он делает, нереально, так как применена самая настоящая обфускация и совсем неважно обфусцировали его вручную или с помощью программных средств, но это обфускация как ни крути.
0
Соглашение жжет.
Гарантии сервиса разумеется тоже «на высоте».
3.5 Платные услуги считаются оказанными… в полном объеме… если они… предоставлялась… какое-либо количество времени в течение оплаченного… периода времени .Разик предоставили услуги и в принципе все, свободен.
4.2.5 Администрация Сервиса имеет право… удалить учетную запись Пользователя,… без уведомления Пользователя и объяснения причин, в случае неиспользования платных услуг Сервиса в течение 90 (Девяносто) календарных днейА если пользователь не дай бог на 3 месяца забыл о сервисе, то плевать на его годовой абонемент, удалить на фиг!
4.1.10 Денежные средства, переведенные на Лицевой и бонусный счета Пользователя, возврату не подлежатИ разумеется зажать все оставшиеся деньги.
4.1.11 Пользователь не имеет права использовать Сервис для работы с файлами (а также, проверки и/или лечения) веб-сайтов (кроме файлов веб-сайта, соответсвующему указанному в списке сайтов Пользователя доменному имени), находящихся во вложенных каталогах или в других каталогах на сервере Пользователя, доступ к которым может предоставить Сервис.Это просто приятный «бонус», учитывая что на многих хостингах другие сайты в подпапках основного и будут проверяться просто автоматически.
Гарантии сервиса разумеется тоже «на высоте».
5.4 Администрация Сервиса не несет ответственности за любые виды убытков
5.7 Пользователь соглашается с тем, что использование Сервиса может нанести вред программному обеспечению, телекоммуникационному оборудованию, компьютерной технике Пользователя и/или третьих лиц, а также, привести к полной или частичной потере данных
+5
Расчет на среднестатического пользователя, который не будет читать какие-то там соглашения и которого в последующем по любым вопросам можно будет тыкать носом в этот текст, мол «сам подписался, что теперь от нас хочешь?»
Не хорошо вы так к пользователям, ой, как не хорошо
Не хорошо вы так к пользователям, ой, как не хорошо
+2
Вы зарегистрированы в фейсбук? Если да, то вы читали их перед регистрацией и что вы можете сказать о правилах (https://ru-ru.facebook.com/terms.php) этой социальной сети, в частности о пункте 15.3 (там где об обжаловании)?
-4
Постараюсь прояснить и этот вопрос. Если вы знакомились с пользовательскими соглашениями или условиями использования сервисов таких компаний, как Мэйл.ру, Яндекс, Гугл или даже Фейсбук, то, вероятно, видели абсолютно тоже самое, но порой с еще более однозначными формулировками. Однако, разберу ваш комментарий по приведенным пунктам.
1. Допустим, вы решили перейти на годовое обслуживание сайта и, естественно, произвели оплату и получили соответствующий функционал. После этого вы, скажем, вылечили зараженный веб-сайт и решили на этом закончить работу на сервисе. Как бы вы предложили монетизировать подобный сценарий с нашей стороны? Пункт 3.5 — это решение вопроса.
2. Странно. Вы даже подчеркнули ответ на ваш вопрос в п.4.2.5. Имеется ввиду возможность удаления при неиспользовании платных услуг, а годовой тариф, как и любой платный — это же по определению платная услуга. Непонятна претензия.
3. 4.1.10 отсылает нас к комментарию №1.
4. 4.1.11 Полагаю, что мы имеем право таким образом защищать себя от фрода.
5. Снова попрошу вас прочитать эпиграф к данному ответу на ваш комментарий. Фейсбук, например, вам выплатит, как вы знаете, не более 100 долларов.
1. Допустим, вы решили перейти на годовое обслуживание сайта и, естественно, произвели оплату и получили соответствующий функционал. После этого вы, скажем, вылечили зараженный веб-сайт и решили на этом закончить работу на сервисе. Как бы вы предложили монетизировать подобный сценарий с нашей стороны? Пункт 3.5 — это решение вопроса.
2. Странно. Вы даже подчеркнули ответ на ваш вопрос в п.4.2.5. Имеется ввиду возможность удаления при неиспользовании платных услуг, а годовой тариф, как и любой платный — это же по определению платная услуга. Непонятна претензия.
3. 4.1.10 отсылает нас к комментарию №1.
4. 4.1.11 Полагаю, что мы имеем право таким образом защищать себя от фрода.
5. Снова попрошу вас прочитать эпиграф к данному ответу на ваш комментарий. Фейсбук, например, вам выплатит, как вы знаете, не более 100 долларов.
-9
Для начала — фейсбук не хочет с нас денег (в отличии от Вас), не требует устанавливать мутноватый скрипт с полным доступом к нашему сайту (в отличии от Вас), не пытается рассказывать нам про обеспечение нашей безопасности (в отличии от Вас), так что сравнение мимо кассы.
И для конца — научитесь отвечать за себя. То что кто-то что-то где-то как-то — это пускай он сам за себя отвечает, предъявите ему претензии если Вас что-то так волнует, а Вы отвечайте за себя, а не кивайте «а вот у другого парня который занимается совсем другим все еще хуже».
Теперь по Вашему ответу. Вы несколько плаваете в своем же соглашении, что печалит. И даже не знаем что хуже — если Вы не понимаете проблему или специально игнорируете ее.
1. Это не решение вопроса. Это освобождение Вас от обязательств перед пользователем который хотя бы один раз воспользовался сервисом, несмотря на то, что у него годовой абонемент и в рекламе это преподносится как анлим.
2. Что «имеется ввиду» — это к телепатам. В соглашении написано совершенно однозначно — 3 месяца не использования сервиса — можно удалять. Годовой тариф — это возможность использования, использование — это проверка.
3. Отошлем Вас туда же.
4. Не защищаете от фрода, а ставите пользователя в такое положение (и скрываете это в глубинах соглашения), когда он может случайно и не зная об этом нарушить правила, при чем Вы заведомо знаете о том вероятность нарушения правил достаточно высока (на шареде у многих хостеров именно система подпапок).
5. Отошлем Вас туда же.
И для конца — научитесь отвечать за себя. То что кто-то что-то где-то как-то — это пускай он сам за себя отвечает, предъявите ему претензии если Вас что-то так волнует, а Вы отвечайте за себя, а не кивайте «а вот у другого парня который занимается совсем другим все еще хуже».
Теперь по Вашему ответу. Вы несколько плаваете в своем же соглашении, что печалит. И даже не знаем что хуже — если Вы не понимаете проблему или специально игнорируете ее.
1. Это не решение вопроса. Это освобождение Вас от обязательств перед пользователем который хотя бы один раз воспользовался сервисом, несмотря на то, что у него годовой абонемент и в рекламе это преподносится как анлим.
2. Что «имеется ввиду» — это к телепатам. В соглашении написано совершенно однозначно — 3 месяца не использования сервиса — можно удалять. Годовой тариф — это возможность использования, использование — это проверка.
3. Отошлем Вас туда же.
4. Не защищаете от фрода, а ставите пользователя в такое положение (и скрываете это в глубинах соглашения), когда он может случайно и не зная об этом нарушить правила, при чем Вы заведомо знаете о том вероятность нарушения правил достаточно высока (на шареде у многих хостеров именно система подпапок).
5. Отошлем Вас туда же.
+4
Мы от вас ничего не требуем. Пользоваться или нет — решать только вам. Не похоже, что вас интересует наше мнение. По какой-то причине вы пытаетесь толковать содержание документа выставляя сервис злодеями, не нацеленными на долговременные отношения со своими пользователями. Жаль. Однако, это ваша позиция и мы ее принимаем.
-3
Имхо вполне стандартное соглашение для современных сервисов. Владельцы пытаются себя обезопасить со всех сторон. Вы ожидали чего-то другого? Покажите мне соглашение на каком-нибудь современном платном сервисе, где нет подобных пунктов. Насчет удаления аккаунта через 90 дней, то я уверен, что если абонемент оплачен на год, то никто его удалять не будет. ПыСы Я к этим ребятам не имею никакого отношения.
0
В комментариях на вас, как мне кажется, нападали не заслужено: владельцы типичного оффлайнового антивируса также ни за что не отвечают и ничего не гарантируют.
Сама по себе идея выглядит довольно интересной. Другое дело, что возможен ли у неё коммерческий успех? Понятно, что ориентируетесь вы в первую очередь на небольшие/дешёвые сайты, и, думаю, здесь есть проблема: владельцы таких сайтов вряд ли в типичной ситуации готовы к дополнительным расходам. Удаётся ли вам на данный момент зарабатывать насколько-нибудь вменяемые деньги?
Сама по себе идея выглядит довольно интересной. Другое дело, что возможен ли у неё коммерческий успех? Понятно, что ориентируетесь вы в первую очередь на небольшие/дешёвые сайты, и, думаю, здесь есть проблема: владельцы таких сайтов вряд ли в типичной ситуации готовы к дополнительным расходам. Удаётся ли вам на данный момент зарабатывать насколько-нибудь вменяемые деньги?
0
Ответил вам в личку.
-3
Соглашусь. По мне так очень интересный сервис, которого лично мне давно не хватало, так как курирую несколько сайтов на жумле и проблема вирусов уже просто достала. Притом конкурентов этого сервиса я лично вообще не знаю (manul это всё-таки не то), так что идея суперская. Очень для меня не понятно, почему в комментариях так накинулись на этот сервис ища подвохи и обвиняя во всех смертных грехах.
-2
Есть еще site secure
0
А еще есть Nazamok.com, который производит внешнюю проверку, не просит ничего устанавливать и стоит в 10 раз дешевле.
0
А еще для внешней проверки существует масса бесплатных сервисов. Нужно отличать поверхностную проверку от полноценной. При поверхностной проверке вам недоступно практически ничего, только HTML, JS и поведенческий анализ. Если причина (как в 90%) в PHP или других файлах,- внешняя проверка не даст результатов.
0
Начнем с того, что бесплатный сыр только в мышеловке :)
При поверхностной проверке доступно огромное количество возможностей.
Такая же синхронизация сайта с сервером, только с помощью умных алгоритмов и без размещения файлов.
Внешнее слежение за изменением ссылок, ифреймов, яваскриптов, воровство трафика ит.д. (а именно это хакеры внедряют в сайт в 90% случаев)
Да, не все угрозы обнаруживаются (например спам скрипты), но внедрение в сайт или в базу данных любого вредоносного кода, который напрямую отражается на сайте и может стать причиной занесения поисковиками в черный список, либо наложения на сайт других санкций таким образом отслеживаются элементарно.
Да, лечить и искать место заражения придется самому, но не придется для этого размещать к себе какие-то левые зашифрованные файлы.
При поверхностной проверке доступно огромное количество возможностей.
Такая же синхронизация сайта с сервером, только с помощью умных алгоритмов и без размещения файлов.
Внешнее слежение за изменением ссылок, ифреймов, яваскриптов, воровство трафика ит.д. (а именно это хакеры внедряют в сайт в 90% случаев)
Да, не все угрозы обнаруживаются (например спам скрипты), но внедрение в сайт или в базу данных любого вредоносного кода, который напрямую отражается на сайте и может стать причиной занесения поисковиками в черный список, либо наложения на сайт других санкций таким образом отслеживаются элементарно.
Да, лечить и искать место заражения придется самому, но не придется для этого размещать к себе какие-то левые зашифрованные файлы.
0
И это уже не говоря о том, что разобравшись какие данные отправляет ваш файл, злоумышленнику, проникнувшему на сайт, не составит труда их изменить и отправлять вам, что все хорошо. Владелец будет спокойно сидеть потеряв бдительность, а на сайте будет твориться вирусная рассада :)
+1
Кстати еще про некоторые эпизоды хотелось бы узнать — фаерволл на wordpress к примеру работает по принципу добавления правил в .htaccess? И как будет правка работать если у меня права на запись на файлах и директориях убраны?
0
То чувство, когда читаю статью с комментариями, а стыдно мне.
Автор,
![image](https://habrastorage.org/r/w780q1/getpro/habr/comment_images/15d/f92/b53/15df92b532ef1d23a93b5c58793f1501.jpg)
Автор,
![image](https://habrastorage.org/getpro/habr/comment_images/15d/f92/b53/15df92b532ef1d23a93b5c58793f1501.jpg)
+6
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
>Кстати почему «облачный» антивирус?
Соответственно принципам работы сервиса.
Соответственно принципам работы сервиса.
-2
НЛО прилетело и опубликовало эту надпись здесь
Похоже, вы путаете облачные хранилища с общим термином Облачные технологии. Обработка данных в понятиях облачных технологий (или общего понимания облачных сервисов) может быть как централизованной (100% на серверах SaaS), так и разделенной. Понятие «Облачный», как вам должно быть известно, не является сегодня жестким или однозначным и обозначает направление (тренд) переноса обработки данных (полной или частичной) в SaaS. Какая именно реализация (и с какой архитектурой) выбирается в каждом конкретном проекте — дело только его авторов. Термин применен нами вполне осознанно и корректно.
-1
- Убедитесь, что директива allow_url_fopen имеет следующее значение: allow_url_fopen=On (или 1).
- Убедитесь, что пользователь, от имени которого работает PHP имеет права на запись в конрневую папку вашего сайта
Просто умилительно.
Очень милое публичное убийство продукта.
Мне кажется, что ваша ЦА не на Хабре находится.
Никто в здравом уме не будет выполнять ваши рекомендации и закачивать ваш файл к себе на сервер. Имхо, конечно же.
+4
Итак, я рискнул, и поставил ваш волшебный скрипт на один из своих сайтов. С трудом преодолев естественное недоверие к чужому обфусцированному коду.
Сегодня пришло уведомление:
В статусе показано: автоматическое лечение — недоступно, подсветка вредоносного кода — доступно. Рекомендуется удаление.
Конечно же, по ссылке предлагается перейти на платный тариф.
Информация о том, где обнаружен зараженный файл, конечно, будет доступна только после оплаты.
Классификация «типов заражений», очевидно, своя — название ни о чём не говорит и в интернете не ищется.
Свежий ClamAV ничего подозрительного не находит.
Каждый из этих фактов, конечно, имеет право на существование, и каждому можно найти естественное объяснение. Но в совокупности это всё очень напоминает интернет-пугалки «ваш компьютер заражён, установите немедленно вот эту программу для лечения».
Но ничего, я поизучал ваш сайт, «пробил» компанию по базе ЕГРЮЛ, и решил таки пройти квест до конца, пожертвовав 500 руб. за право посмотреть на вредоносный код. Оплатил (при оплате были сбои, но сейчас не об этом).
Появилась обещанная подсветка кода. Сервис счёл подозрительным файл форума SMF Subs-Auth.php, содержащий следующий фрагмент:
Да, это потенциально уязвимый код. В последней версии SMF эта уязвимость устранена. Но это оригинальный код SMF, ни о каком заражении здесь речь не идёт.
Итог: заплатил 500 руб. за напоминание о том, что исходники форума нужно периодически обновлять.
Сегодня пришло уведомление:
Обнаружены заражения следующих типов:
PregReplace.E.
Рекомендуется немедленное лечение пораженных файлов.
15:14 04.06.2015
В статусе показано: автоматическое лечение — недоступно, подсветка вредоносного кода — доступно. Рекомендуется удаление.
Конечно же, по ссылке предлагается перейти на платный тариф.
Информация о том, где обнаружен зараженный файл, конечно, будет доступна только после оплаты.
Классификация «типов заражений», очевидно, своя — название ни о чём не говорит и в интернете не ищется.
Свежий ClamAV ничего подозрительного не находит.
Каждый из этих фактов, конечно, имеет право на существование, и каждому можно найти естественное объяснение. Но в совокупности это всё очень напоминает интернет-пугалки «ваш компьютер заражён, установите немедленно вот эту программу для лечения».
Но ничего, я поизучал ваш сайт, «пробил» компанию по базе ЕГРЮЛ, и решил таки пройти квест до конца, пожертвовав 500 руб. за право посмотреть на вредоносный код. Оплатил (при оплате были сбои, но сейчас не об этом).
Появилась обещанная подсветка кода. Сервис счёл подозрительным файл форума SMF Subs-Auth.php, содержащий следующий фрагмент:
preg_replace('~&#(\d+);~e',
Да, это потенциально уязвимый код. В последней версии SMF эта уязвимость устранена. Но это оригинальный код SMF, ни о каком заражении здесь речь не идёт.
Итог: заплатил 500 руб. за напоминание о том, что исходники форума нужно периодически обновлять.
+3
Интересно как поведет себя автоматическое «лечение», наверное удалит строку и положит сайт. Идеальный сервис разорвать отношение с заказчиком и получить статус «рукож#па» )) Зато с благими намерениями.
+2
В данном случае автоматическое лечение бы не сработало. Greesha выше показал список функций, доступных для этого вердикта, а именно: «В статусе показано: автоматическое лечение — недоступно, подсветка вредоносного кода — доступно...»
0
Конечно, понятен диссонанс, который у вас вызвал статус вердикта «Заражение». По статистике, более чем в 90% случаев группа правил, определяющих данный вердикт определяет именно Заражения, но, как в вашем случае, бывают исключения и под детектирование подпадает не определенно вредоносный код, а уязвимость. Путаница из-за термина «Заражение» понятна. Однако, несмотря на диссонирующий статус антивирус, как вы правильно заметили, просто выполнил свою работу, которую и должен был сделать — нашел уязвимость, которая, как вы заметили в текущей версии уже устранена.
Конечно, мы подумаем над более полным структурированием вердиктов по статусам.
Конечно, мы подумаем над более полным структурированием вердиктов по статусам.
-1
НЛО прилетело и опубликовало эту надпись здесь
На самом деле, это абсолютно логичный исход, скрипт обнаружил preg_replace*е, и посчитал, что это уязвимость.
Было бы крайне наивно полагать, что скрипт будет анализировать исходный код, а не просто искать вхождения сигнатур.
Надо просто понимать, что скрипт поиска сигнатур не может быть защитой, в том числе превентивной.
Продукт такого плана рассчитан на ленивых владельцев сайтов на joomla, ни больше, ни меньше, да простит меня автор.
Автору «антивируса»:
P.S. если автору интересно мнение человека, немного понимающего в ИБ — бросьте эту затею. Разделите продукт на 2 части:
1) серверный WAF
2) spider-сканер сайтов на паблик уязвимости (предварительно собрав и автоматизировав базу уязвимостей)
И отбросьте всё лишнее, типа этих «антивирусов» бесполезных. Если цель получить 500 рублей от любопытных людей, как комментатор выше, то вы действуете верно. Но, если вы преследуете цель создать продукт, то не выдумывайте велосипедов одноколёсных, а сосредоточьтесь на полезных продуктах.
UPD: под «разделить» я имел в виду не оставить в текущем виде, но располовинить, а переработать и осмыслить.
Было бы крайне наивно полагать, что скрипт будет анализировать исходный код, а не просто искать вхождения сигнатур.
Надо просто понимать, что скрипт поиска сигнатур не может быть защитой, в том числе превентивной.
Продукт такого плана рассчитан на ленивых владельцев сайтов на joomla, ни больше, ни меньше, да простит меня автор.
Автору «антивируса»:
P.S. если автору интересно мнение человека, немного понимающего в ИБ — бросьте эту затею. Разделите продукт на 2 части:
1) серверный WAF
2) spider-сканер сайтов на паблик уязвимости (предварительно собрав и автоматизировав базу уязвимостей)
И отбросьте всё лишнее, типа этих «антивирусов» бесполезных. Если цель получить 500 рублей от любопытных людей, как комментатор выше, то вы действуете верно. Но, если вы преследуете цель создать продукт, то не выдумывайте велосипедов одноколёсных, а сосредоточьтесь на полезных продуктах.
UPD: под «разделить» я имел в виду не оставить в текущем виде, но располовинить, а переработать и осмыслить.
+1
>Продукт такого плана рассчитан на ленивых владельцев сайтов на joomla, ни больше, ни меньше, да простит меня автор.
Уверяю вас, никто не в обиде. Сколько людей, столько и мнений. Если подобный сервис был бы абсолютно ненужным и никому не интересным — до столь развернутого обсуждения дело бы не дошло, верно?
Но т.к. эта мысль в комментариях проскакивала уже не раз, выскажу свое мнение. Лично я не вижу ничего плохого в бесплатных cms типа вордпресса и джумлы (обсуждаемому сервису, напомню, без разницы на какой cms сайт, на платной, бесплатной или вообще на самописном движке). Мне было бы интересно узнать, у какого процента комментирующих профессиональных админов и спецов по безопасности есть свои сайты (или сайты клиентов), которые они собственноручно создали от и до без использования популярных cms, абсолютно защищенных на все 100%? Так-же интересно знать каков процент владельцев сайтов (речь уже обо всем интернете) является админами? Я это к тому, что многие в комментариях довольно негативно отнеслись к сервису, исходя из своих знаний и навыков. Но надо учитывать, что владельцы сайтов в подавляющем большинстве совсем не админы, а личный админ сервера и безопасник есть далеко не у каждого.
Уверяю вас, никто не в обиде. Сколько людей, столько и мнений. Если подобный сервис был бы абсолютно ненужным и никому не интересным — до столь развернутого обсуждения дело бы не дошло, верно?
Но т.к. эта мысль в комментариях проскакивала уже не раз, выскажу свое мнение. Лично я не вижу ничего плохого в бесплатных cms типа вордпресса и джумлы (обсуждаемому сервису, напомню, без разницы на какой cms сайт, на платной, бесплатной или вообще на самописном движке). Мне было бы интересно узнать, у какого процента комментирующих профессиональных админов и спецов по безопасности есть свои сайты (или сайты клиентов), которые они собственноручно создали от и до без использования популярных cms, абсолютно защищенных на все 100%? Так-же интересно знать каков процент владельцев сайтов (речь уже обо всем интернете) является админами? Я это к тому, что многие в комментариях довольно негативно отнеслись к сервису, исходя из своих знаний и навыков. Но надо учитывать, что владельцы сайтов в подавляющем большинстве совсем не админы, а личный админ сервера и безопасник есть далеко не у каждого.
+2
А ещё очень позабавил раздел «Доходы и вывод средств». Вот, серьёзно, вы себя позиционируете как антивирус или это очередной хайп?
0
Малость запутала логика.
Зарегистрировался. Скормил неблагополучный сайт. Сначала понравилось. Ну, заплатил 500 рублей и добавил ещё горстку сайтов. Оказывается, как выяснилось, лечится только один. причём тестовый. Зря старался.
Вордпресс-плагин "Anti-Malware from GOTMLS.NET" к примеру, и сканирует и лечит бесплатно. Но зарабатывают они благодаря тому, что сканирование по расписанию, отправку отчётов на почту и файрвол предоставляется только в платной версии. причём нет ограничений по количество подключенных сайтов — отправил один раз донату в 30 баксов и юзай в своё удовольствие. Я, правда, признаюсь, уже несколько раз донату отправлял, ну просто потому что они мне нравятся.
Из Ваших же плюсов, если сравнивать — вижу удобство юзания ну и грамотные подстветки.
Но за это добро платить 500 рублей неохота. В общем, резюмируя, чувствую, что меня ввели в заблуждение не дав явно понять что я плачу за один сайт а не за сервис целиком. 500 рублей на ветер, я — лох. Поздравляю себя.
Зарегистрировался. Скормил неблагополучный сайт. Сначала понравилось. Ну, заплатил 500 рублей и добавил ещё горстку сайтов. Оказывается, как выяснилось, лечится только один. причём тестовый. Зря старался.
Вордпресс-плагин "Anti-Malware from GOTMLS.NET" к примеру, и сканирует и лечит бесплатно. Но зарабатывают они благодаря тому, что сканирование по расписанию, отправку отчётов на почту и файрвол предоставляется только в платной версии. причём нет ограничений по количество подключенных сайтов — отправил один раз донату в 30 баксов и юзай в своё удовольствие. Я, правда, признаюсь, уже несколько раз донату отправлял, ну просто потому что они мне нравятся.
Из Ваших же плюсов, если сравнивать — вижу удобство юзания ну и грамотные подстветки.
Но за это добро платить 500 рублей неохота. В общем, резюмируя, чувствую, что меня ввели в заблуждение не дав явно понять что я плачу за один сайт а не за сервис целиком. 500 рублей на ветер, я — лох. Поздравляю себя.
+3
А что случилось то с сервисом? На хабре удалились, сайт не работает. Всё?
0
Сервис абсолютная хрень. Заплатил за несколько сайтов. Пишет вирусов нет, а хостер блокирует отправку писем и присылает пути к зараженным файлам на лист А4.
+1
Здравствуйте!
Вас приветствует Регистратор доменных имён REG.RU!
бла… бла… бла
Результат проверки антивируса Virusdie:
{VIRUSDIE}PregReplace.E: u0000000: /var/www/u0000000/data/www/site.ru/protected/vendor/yiisoft/yii/framework/vendors/TextHighlighter/Text/Highlighter/Renderer/Console.php
pear.php.net/package/Text_Highlighter
4 года жил себе preg_replace и не знал бед. А теперь вне закона! Как в дешёвом плохом кино.
+2
Хочу сказать пару слов благодарности.
От rating@corp.mail.ru пришло письмо с указанием что у меня на сайте вирус:
«Обнаружены заражения: Trojan.Inject.9 Рекомендуется немедленное лечение пораженных файлов.»
И ссылка на virusdie.
При регистрации там дали 1 день бесплатно и попытался вылечить сайт, причем в отличие от Manul (я его поставил тоже) virusdie удалял именно зараженные куски файлов, а не все подряд.
В автоматическом режиме вылечить сайт не удалось (похоже вирус как то скрывался и себя все равно размножал), но сервис помог найти подозрительные файлы и после ручного лечения (мной) позволил убедится что все чисто.
Так же очень помог плагин Wordfence Scan, который умеет сравнивать измененные файлы (по сравнению с эталонным WordPress).
В общем спасибо, если бы не этот сервис и плагин копался бы я долго.
А вот Manul скорее не помог никак. Да, сервис нашел кучу подозрительных файлов. Но нет возможности удобного просмотра подозрительных мест, нет и удобной корректировки файлов (а их было много!)
От rating@corp.mail.ru пришло письмо с указанием что у меня на сайте вирус:
«Обнаружены заражения: Trojan.Inject.9 Рекомендуется немедленное лечение пораженных файлов.»
И ссылка на virusdie.
При регистрации там дали 1 день бесплатно и попытался вылечить сайт, причем в отличие от Manul (я его поставил тоже) virusdie удалял именно зараженные куски файлов, а не все подряд.
В автоматическом режиме вылечить сайт не удалось (похоже вирус как то скрывался и себя все равно размножал), но сервис помог найти подозрительные файлы и после ручного лечения (мной) позволил убедится что все чисто.
Так же очень помог плагин Wordfence Scan, который умеет сравнивать измененные файлы (по сравнению с эталонным WordPress).
В общем спасибо, если бы не этот сервис и плагин копался бы я долго.
А вот Manul скорее не помог никак. Да, сервис нашел кучу подозрительных файлов. Но нет возможности удобного просмотра подозрительных мест, нет и удобной корректировки файлов (а их было много!)
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Вирусдай — антивирус для сайтов, за который не стыдно