Старый 27.11.2010, 22:27   #11
Beched
 
Регистрация: 06.07.2010
Сообщений: 396
Репутация: 118
По умолчанию

Знаком.
Beched вне форума   Ответить с цитированием
Старый 27.11.2010, 22:32   #12
Qwazar
 
Регистрация: 09.07.2010
Сообщений: 376
Репутация: 154
По умолчанию

Цитата:
Сообщение от xCedz Посмотреть сообщение
Дык яж про что- есть регулярки. я не про просмотр всего кода, а поиска узких мест в коде спомощью регулярок, главное знать, что искать в общем то. это поднималочь и нераз и не два. старо как какашка древнего мамонта
class A {

private string a;

void setA(a) {
this.a = a;
}

string getA() {
return a;
}
}

class B {

void query(a) {
mysql_query("SELECT * FROM news WHERE id = " + a);
}
}

main() {
A.setA($_GET['id']);
B.query(A.getA());
}

OH SHI...
__________________
Мой блог: http://qwazar.ru/.
Qwazar вне форума   Ответить с цитированием
Старый 27.11.2010, 22:46   #13
Qwazar
 
Регистрация: 09.07.2010
Сообщений: 376
Репутация: 154
По умолчанию

Цитата:
Сообщение от xCedz Посмотреть сообщение
ога ога. оч смешно. один хер ни одна тулза не заменит анализаторские способности человека. имхо. облегчить труд да, но никак не заменить.
пшел я спать, скучно тут.
Ну конкретно ту багу что я указал выше, можно найти полностью автоматически. Полностью конечно все баги автоматом не найти, т.к. проблема останова неразрешима (кто не знает что это такое - прочтёт), но довольно большой процент можно ловить полностью автоматом, и регулярные выражения в данном направлении - каменный век.
__________________
Мой блог: http://qwazar.ru/.
Qwazar вне форума   Ответить с цитированием
Старый 28.11.2010, 14:07   #14
Raz0r
 
Аватар для Raz0r
 
Регистрация: 17.07.2010
Сообщений: 100
Репутация: 78
По умолчанию

Правильный подход - разбивать код на токены и анализировать их последовательности. Как пример:
http://websec.wordpress.com/2010/06/11/rips-a-static-source-code-analyser-for-vulnerabilities-in-php-scripts/
Raz0r вне форума   Ответить с цитированием
Старый 28.11.2010, 14:35   #15
Beched
 
Регистрация: 06.07.2010
Сообщений: 396
Репутация: 118
По умолчанию

Raz0r, ну да, для наиболее эффективного анализа php-кода, программа должна работать на уровне интерпретатора, а это легче всего сделать средствами самого php (пример - функция token_get_all()).
Beched вне форума   Ответить с цитированием
Старый 28.11.2010, 22:02   #16
Qwazar
 
Регистрация: 09.07.2010
Сообщений: 376
Репутация: 154
По умолчанию

Цитата:
Сообщение от Raz0r Посмотреть сообщение
Правильный подход - разбивать код на токены и анализировать их последовательности. Как пример:
http://websec.wordpress.com/2010/06/11/rips-a-static-source-code-analyser-for-vulnerabilities-in-php-scripts/
На днях обсуждал проблемы анализа кода с парой широко известных в узких кругах людей, работающих по этой теме Они оба говорят, что на данный момент самый перспективный подход - сочетание динамического анализа кода с фаззингом параметров.
__________________
Мой блог: http://qwazar.ru/.
Qwazar вне форума   Ответить с цитированием
Старый 30.11.2010, 21:59   #17
destiny
 
Аватар для destiny
 
Регистрация: 11.08.2010
Сообщений: 242
Репутация: 79
По умолчанию

а причём тут проблема останова? заданная задача вроде естественным образом алгоритмически неразрешима, но не из-за останова, а из-за /*точное название не помню*/ распознавания принадлежности грамматике.
destiny вне форума   Ответить с цитированием
Старый 30.11.2010, 22:29   #18
Beched
 
Регистрация: 06.07.2010
Сообщений: 396
Репутация: 118
По умолчанию

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

Ведь у php-скрипта есть параметры, размер их ограничен, а значит, конечным перебором можно найти все баги.

//хм, хотя не, надо подумать, ведь нужно ещё сказать алгоритм, как понять, это уязвимость или нет..
Beched вне форума   Ответить с цитированием
Старый 30.11.2010, 22:30   #19
Qwazar
 
Регистрация: 09.07.2010
Сообщений: 376
Репутация: 154
По умолчанию

Цитата:
Сообщение от destiny Посмотреть сообщение
а причём тут проблема останова? заданная задача вроде естественным образом алгоритмически неразрешима, но не из-за останова, а из-за /*точное название не помню*/ распознавания принадлежности грамматике.
"Даны описание алгоритма и его начальные входные данные, требуется определить, сможет ли выполнение алгоритма с этими данными завершиться когда-либо." . Т.е. в принципе ты не сможешь взять любой кусок кода и предсказать к чему приведёт его выполнение с определёнными входными данными.
__________________
Мой блог: http://qwazar.ru/.
Qwazar вне форума   Ответить с цитированием
Старый 30.11.2010, 22:33   #20
Beched
 
Регистрация: 06.07.2010
Сообщений: 396
Репутация: 118
По умолчанию

Цитата:
Сообщение от Qwazar Посмотреть сообщение
"Даны описание алгоритма и его начальные входные данные, требуется определить, сможет ли выполнение алгоритма с этими данными завершиться когда-либо." . Т.е. в принципе ты не сможешь взять любой кусок кода и предсказать к чему приведёт его выполнение с определёнными входными данными.
Ну а если совместить с динамическим анализом? Анализировали статически, нашли потенциальные уязвимости - отправляем входные данные на скрипт, и не нужно нам ничего алгоритмически доказывать -- просто получаем результат работы программы.
Beched вне форума   Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход



Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot