CyD Software Labs > Блог > Автоматизация поиска уязвимостей на WEB сайте

Автоматизация поиска уязвимостей на WEB сайте

Автоматизация поиска уязвимостей достаточно сложная задача, особенно, если пытаться создать универсальный метод поиска уязвимостей, потому что необходимо научить компьютер хакерству, и написать программу так, чтобы она программно взламывала сайт. Компьютер - не человек и ему очень сложно анализировать не структурированные данные, а WEB страницы можно считать не структурированными. Да, есть стандарты, которым должны подчиняться разработчики при создании WEB страниц, но как много программистов придерживаются этим стандартам? Существует множество технологий создания сайтов и WEB мастера и программисты могут использовать любые инструменты. Чтобы анализировать результат для поиска уязвимостей в WEB сценариях нужны широкие знания и опыт.

Что предлагают в интернете чаще всего для поиска уязвимостей? Большинство алгоритмов сводиться к простому поиску сигнатур на WEB странице. В данном случае, сигнатурами являются сообщения о некорректных параметрах и ошибки обращения к базе данных. А что если программист отключил отображение ошибок? Хороший программист обязан это делать и если сайт создавал профессионал, то я вас уверяю, он отключил все сообщения об ошибках и поиск уязвимостей на таком WEB сайте по сигнатурам становиться пустой тратой трафика. Алгоритм и программа не найдет ни единой уязвимости.

А что если на сайте просто есть текст «ошибка доступа», а статья на странице просто описывает работу с базой данных? Автоматический анализатор поиска по сигнатурам выдаст предупреждение там, где уязвимости нет!!! Слишком большое количество различных сообщений об ошибках, которые могут стать сигнатурами приведет к большому количеству ложных срабатываний, а отсутствие возможности найти сигнатуру при выключеных сообщениях об ошибках, сделают алгоритм почти бесполезным. Поиск уязвимостей WEB сайтов - это не антивирусная программа и тут нельзя использовать те же методы.

Что же тогда делать? Как создать автоматический поиск уязвимостей WEB сайта, который будет находить даже скрытые ошибки? Алгоритмы поиска таких ошибок есть и они достаточно просты и эффективны, но для их написания уже не достаточно банального поиска по сигнатурам. Тут уже приходиться создавать программный комплекс, обладающий задатками искусственного интеллекта. Этот метод более сложный в реализации, но дает более точные результаты и находит ошибки там, где сообщения об ошибках отключены программистом.

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

Да, и тут тоже возможны ложные срабатывания, особенно там, где WEB страницы подвержены сильной мутацией. Да, и тут тоже не всегда возможно найти ошибку, даже если она есть, и опять же главным врагом выступает мутация страницы. Но мы верим и наши тесты доказали, что такой наш новый алгоритм, который пытается программно взломать сайт выгоднее и точнее поиска по сигнатурам.CyD Network Utilities 2008 искала уязвимости по сигнатурам и не смотря на то, что результат был хорошим, он пропускал много ошибок незамеченными. Новая версия CyD Network Utilities 2008 (Сетевые утилиты) использует аналитический анализатор. Он тратит больше трафика и работает дольше, но позволяет найти скрытые уязвимости. А одна пропущенная уязвимость может стоить WEB сайту своим существованием. Если хакер найдет уязвимость и она окажется серьезной, то сайт может быть уничтожен.

Программный взлом сайта сложнее в реализации и требует больше времени на анализ уязвимостей и больше трафика, но зато дает более точный результат.