Проверка сайта на уязвимости: XSS, SQL Injection, сканер, поиск уязвимостей

    Зачастую при поднятии такой темы, кто-то нет, нет да скажет: -А зачем проверять сайт? Нужно людей на сайт привлекать! Кто мой сайт взламывать будет, кому он нужен? 


    При таком подходе трудно возражать. Что ж, если нет стоящего сайта, и его безопасность владельцу не интересна. И вы с этим согласны, можете просто закрыть этот пост, статья не для вас.
    Я не буду перечислять то, что можно сделать при XSS или SQL Injection. Перечисление займет ни одну страницу печатного текста. И скорее всего зажжет желание, что-то такое провернуть. Цель статьи не в этом, а в способах борьбы с подобными вещами.
    Ниже перечислены способы которые помогут в нахождении уязвимостей, и их не много:
    Самое первое, если вы знакомы с программированием, то проверьте код глазами(своим умом всегда хорошо и дешево).
    Лучший, но не самый дешевый способ, это нанять опытного программиста, который выполнит первый и последующие пункты.
    Есть также автоматические сканеры, такие как: find-xss.net, acunetix.com, scovetta.com и другие. Многие не доверяют сканерам, а напрасно. Сканер это отличный помощник, который находит уязвимости пачками. Человек будет просматривать код на 5 мегабайт дни, а сканер это сделает за секунды. Можете возразить, что он не все найдет. Да не все, но намного больше человека.
    Вот лучшие сканеры, которые я использую:
    Yasca (scovetta.com) - достаточно мощный инструмент ищет уязвимости в Java, C/C++, HTML, JavaScript, ASP, ColdFusion, PHP, COBOL, .NET . Сканер с открытым кодом. Есть версия под PHP, требует небольших знаний в работе с консолью.
    Поиск уязвимостей (find-xss.net) - Самый простой в использовании сканер. Ищет XSS и SQL Injection. Все что нужно, это загрузить архив PHP кода. Как и Yasca выдает пронумерованные строки уязвимого кода. Ищет уязвимости в HTML, JavaScript, PHP.
    Acunetix (acunetix.com) - один из лучших сканеров. Помимо XSS выдает отчет об открытых портах, слепых SQL Injection и других уязвимостях. Недостаток в том, что стоит не дешево, и требует много времени для сканирования (сайт на 40 страниц у меня сканируется на локальном хосте, 3 часа).
    Есть еще всевозможные плагины, которые призваны отслеживать XSS или SQL Injections во время работы сайта. Их много, они реализованы практически под все CMS. И эффективность их разная. Но я просто уверен, что подобное вхождение параметра "&id=1 OR 1" в адресную строку, не отследит ни один из этих плагинов. А если в коде образно говоря есть строка mysql_query("DELETE FROM users WHERE user_id = ".$_GET['id']); То с таблицы users удалится не один пользователь как ожидается, а сразу все. Пример конечно грубый, но общий смысл он дает. В конце подведу итоги:
    Если на программиста у вас нет средств, но вы знаете как защитить код от XSS или SQL Injection. То сканеры find-xss.net и scovetta.com вам идеально подойдут.
    Если у вас есть время и средства, то acunetix.com поможет найти сетевые уязвимости. Для отладки кода он мало подходит, так как не выдает отчета, где именно в коде уязвимость.
    Если вы не готовы тратить средства, установите плагин для вашей CMS. Возможно это будет защитой, хотя бы от пользователей.
    Но во всех случаях, проверьте ваш код сканерами. Если не acunetix.com и scovetta.com, то обязательно find-xss.net . А дальше смотрите по результатам сканирования.

P.S. Постоянный спонсор: налоговый портал.


Опубликовал admin
10 Фев, Четверг 2011г.



Программирование для чайников.