запах пропасти МИХАИЛ ФЛЕНОВ AKA HORRIFIC Хакер, номер #075, стр. 046 WWW.VR-ONLINE.RU ОБЗОР ПРОГРАММ ПОИСКА УЯЗВИМОСТЕЙ НА САЙТАХ ЧЕЛОВЕК — СУЩЕСТВО ПО СВОЕЙ СУТИ ЛЕНИВОЕ, И БОЛЬШИНСТВО ПОЛЕЗНОСТЕЙ В ЭТОМ МИРЕ ПОЯВИЛОСЬ ИМЕННО ИЗ-ЗА ЛЕНИ И ДЛЯ ОБЛЕГЧЕНИЯ ЖИЗНИ. В ТАКОМ РАЗРЕЗЕ ЛЕНЬ — ЭТО НЕ ЗЛО, ЭТО ПРОГРЕСС, И ПРОИЗВОДИТЕЛЬНОСТЬ ТРУДА ОТ ПОДОБНЫХ «ЛЕНИВЫХ» ИЗОБРЕТЕНИЙ ПОВЫШАЕТСЯ. ЧТОБЫ НЕ ИСКАТЬ ОШИБКИ НА WEB-СТРАНИЦАХ РУКАМИ, «ЛЕНТЯИ» СОЗДАЛИ МНОЖЕСТВО ПРОГРАММ, КОТОРЫЕ МОГУТ ПРОВЕРИТЬ САЙТ НА УЯЗВИМОСТИ И ПРОСИГНАЛИЗИРОВАТЬ, ЕСЛИ НАЙДЕНО ЧТО-ТО ПОДОЗРИТЕЛЬНОЕ. ПОПРОБУЕМ РАЗОБРАТЬСЯ, ТАК ЛИ ЭФФЕКТИВНЫ ПОДОБНЫЕ УТИЛИТЫ Откуда берутся ошибки? Можно выделить две основные проблемы: плохое образование и человеческий фактор. Тотальная нехватка программистов лет пять назад стала превращать в кодеров всех подряд. Ладно, человек стал программистом без специального образования, но надо же учиться, совершенствоваться, а не «просиживать» рабочее место за большую зарплату! Сейчас в Европе и США с кодингом попроще: стали использовать оффшор и открыли кучу представительств в странах, где программистов хватает, но качество кода, создаваемого в оффшоре и представительствах, все же оставляет желать лучшего. Все мы «человеки», и все мы ошибаемся, и именно человеческий фактор является второй значимой проблемой и причиной половины ошибок. Даже профессионалы могут ошибаться в абсолютно очевидных ситуациях. Чисто машинально можно поставить не тот символ или из-за невнимательности забыть сделать проверку. Искать ошибки вручную не так уж и сложно, но программисты не любят тщательно тестировать свое творение, надеясь на правильность кода и всемогущий авось. А надежда умирает последней, точнее, сразу после взлома. Если перефразировать Ленина, то нужно тестировать, тестировать и еще раз тестировать после каждого изменения кода. Так нудно просматривать все страницы и все параметры... Но надо, Вася, надо! Причем именно после каждого изменения кода, даже незначительного. Тестировать нужно абсолютно все, ведь изменение в одном сценарии или настройках в базе данных может привести к ошибке совершенно в неожиданном месте и на той странице, сценарий которой не был изменен. CyD NET Utils Сайт: http://www.cydsoft.com Лицензия: Shareware Цена: для России 300 руб CyD NET Utils — набор сетевых утилит для облегчения собственной жизни Недавно в программе появился новый модуль — Security Test, который позволяет протестировать сервер на наиболее популярные уязвимости. На данный момент web-сайты тестируются на SQL-Injection, XSS, PHP-инклудинг и тому подобные упущения в коде. Алгоритм поиска пока не идеален, но постоянно совершенствуется, - обновления выкладываются практически каждый месяц. Программа может работать как напрямую с интернетом, так и через proxy-сервер. При этом настройки proxy можно сохранить глобально для всех тестов программы или выбрать индивидуально для каждого конкретного, к примеру, если хочешь сделать тест через анонимный прокси, чтобы тебя никто не вычислил. Для теста программы проверим сайт www.apahelpcenter.org. Запусти программу и выбирай в меню «File-> Security test». В появившемся окне нажимаешь кнопку «Test web server», она первая на панели инструментов окна «Security test». Перед тобой появится окно, где нужно указать URL сайта, который необходимо протестировать, и настройки соединения (прямой коннект или через прокси-сервер). В качестве URL указываем www.apahelpcenter.org и нажимаем OK. Понеслась. Хотя алгоритм не сильно напрягает трафик, хорошая скорость желательна. Терпения и желания у нас хватило на тестирование пяти сценариев и в трех из них найдены уязвимости SQL-Injection. Авторы, наверное, вообще не задумывались о безопасности. По завершении сканирования программа предлагает небольшой отчет о проделанной работе и ссылки в Сети с описанием найденных ошибок с вариантами их исправления (если у тебя нет проблем с английским, то это описание может пригодиться). На данный момент программа ищет ошибки в сценариях на PHP и ASP. В ближайшее время будет добавлен Macromedia Cold Fusion. Ошибки в сценариях Perl пока добавлять не планируется, - с точки зрения web-кодинга этот язык постепенно вымирает. По крайней мере, количество сайтов, написанных на нем, сокращается, а новые практически не появляются. Acunetix Web Vulnerability Scanner Сайт: http://www.acunetix.com Лицензия: Shareware Цена: $349 Разработчиком программы является раскрученная Acunetix (в недавнем времени — малоизвестная). Рекламу этой программы довольно часто можно встретить в Google ads. В триальной версии дозволено тестировать только сайты testphp.acunetix.com, testasp.acunetix.com и testaspnet.acunetix.com. Они созданы компанией специально для тестирования программы, но не факт, что на других серверах данный сканер безопасности покажет такие же результаты сканирования и найдет хотя бы половину ошибок. Алгоритм поиска нам не известен, а разработчик его не афиширует. Так что реально проверить качество тестирования невозможно: будем отталкиваться от того, что известно и доступно. Vulnerability Scanner позволяет искать ошибки в сценариях на языках PHP, ASP и ASP.NET. Помимо этого, программа может проверять на ошибки JavaScript-сценарии, что смело относим к преимуществам. Можно тестировать не только напрямую, но и через HTTP или SOCKS прокси-сервер - для обеспечения анонимности. Итак, что имеем на выходе: — БОГАТЫЕ, НО НЕ ПОДТВЕРЖДЕННЫЕ БОЕВЫМИ ТЕСТАМИ ВОЗМОЖНОСТИ; — КРАСИВЫЙ И УДОБНЫЙ ИНТЕРФЕЙС; — ПОИСК УЯЗВИМОСТЕЙ XSS, SQL-INJECTION, PHP-ИНКЛУДИНГ, ПОИСК ХАКЕРСКИХ ЗАПРОСОВ ПО БАЗЕ GOOGLE, ОБХОД КАТАЛОГА, CRLF-INJECTION, ОБЩЕДОСТУПНЫЕ РЕЗЕРВНЫЕ КОПИИ СЦЕНАРИЕВ; — ХОРОШАЯ СЛУЖБА ПОДДЕРЖКИ, КОТОРАЯ ВСЕГДА ОТВЕЧАЕТ, НО НЕ ВСЕГДА ВОВРЕМЯ (НА НАШИ ВОПРОСЫ РАЗРАБОТЧИКИ ОТВЕТИЛИ ЧЕРЕЗ ТРИ ДНЯ, ПРАВДА, ДВА ИЗ НИХ БЫЛИ ВЫХОДНЫМИ). Если у тебя есть лишние 350 баксов, то можешь купить программу и юзать на здоровье. SQL Injection Tools Автор: SQLHacK Лицензия: Халява Сайт: на диске к ноябрьскому Хакеру за 2006 год Эта утилита не ищет ошибки на сайте, а использует их для получения определенной информации о сервере/базе данных. Она помогает узнать версию сервера БД, ее имя, пользователя, подобрать имена таблиц и полей через уже найденную уязвимость. Некоторые любят повторять, что через найденную уязвимость и обезьяна сможет узнать всю информацию. Но почему бы не облегчить себе труд? Если нашел уязвимый URL, но не знаешь, как им воспользоваться, загружай SQL-Injection Tools: 1 ВВЕДИ URL C ПАРАМЕТРАМИ, НАПРИМЕР HTTP://WWW.TARGET.COM/INDEX.PHP?ID=123. УЯЗВИМЫЙ ПАРАМЕТР ОБЯЗАТЕЛЬНО ДОЛЖЕН БЫТЬ ПОСЛЕДНИМ В URL — «ID=123». 2 В ПОЛЕ «ЧТО ИЩЕМ» ВВЕДИ КУСОК ТЕКСТА ИЛИ СЛОВО, КОТОРОЕ ОТОБРАЖАЕТСЯ, ЕСЛИ ЗАГРУЗИТЬ, НАПРИМЕР, HTTP://WWW.TARGET.COM/INDEX.PHP?ID=123, И НЕ ОТОБРАЖАЕТСЯ, ЕСЛИ ЗАГРУЗИТЬ HTTP://WWW.TARGET.COM/INDEX.PHP?ID=123'. 3 ДАЛЬШЕ ВСЕ ЯСНО, КНОПКИ ГОВОРЯТ САМИ ЗА СЕБЯ. Утилита позволяет серьезно сэкономить время, - нужно только создать хороший словарик и скормить его SQL-Injection Tools. Paros Сайт: parosproxy.org Автор: paros Лицензия: Халява Это не просто программа для сканирования, это прокси-сервер, написанный на Java с продвинутыми возможностями для анализа. После загрузки Paros создает на твоей машине прокси. По умолчанию он работает на 8080 порте. Запускаешь браузер и идешь в свойства. Установи работу через прокси, укажи локальную машину 127.0.0.1 и порт 8080. Теперь можешь работать с интернетом, а в это время Paros будет сканировать открываемые сайты на наличие уязвимостей. Только приготовься потерять уйму трафика: кушает Paros с аппетитом (для тех, кто сидит на безлимитке, это не так критично). Программа позволяет модифицировать запросы к серверу, имеет кучу фильтров, может работать через удаленный прокси, обладает хорошими возможностями журналирования, но анализатор еще сырой. Явный недостаток — откровенно убогий и неудобный интерфейс. Отлично подойдет для анализа пакетов, но для автоматического поиска уязвимостей не рекомендовал бы. n4n0bit Автор: n4n0bit Лицензия: Халява Сайт: http://n4n.cup.su/ Эта программа написана нашим соотечественником на Perl и ее любимая среда — Linux. Ищет SQL/PHP-Injection (в том числе, и в исходниках), XSS через web, а также имеет небольшой CGI-сканер. К сожалению, ограниченность одним только языком PHP открывает не очень широкое поле боевых действий, но хороший анализатор перебивает недостаток. [итого.] Мы показали разноплановые программы. Но информация быстро устаревает, появляются новые утилиты, а некоторые из старых могут «умирать». Плюс помни, что программы автоматизации не могут дать гарантии, что нет уязвимости на сервере. В большинстве случаев они находят откровенные ляпы, особенно когда включены сообщения об ошибках. Но если ошибки не выводятся и некоторые символы все же фильтруются, автоматический тест может ничего не дать. А вот обход фильтров вручную может быть куда более результативным. С другой стороны, «быстрый» тест позволяет понять, смогут ли данный сайт взломать начинающие, малоопытные «хакеры» с набором чужих программ. Несмотря на отсутствие 100% результата, рекомендуем использовать представленные программки для экспресс-анализа. ЧТО ВЫБРАТЬ Когда сайт состоит из одного файла сценария и получает немного параметров, проверить все руками достаточно просто. А если у тебя целый портал, который состоит из сотен сценариев? В таком случае на полноценные ручные тесты может уйти больше времени, чем на кодинг. Делать беглый тест не имеет смысла – обязательно что-нибудь да пропустишь, и тогда взлом не за горами. Для облегчения жизни есть программы, автоматизирующие этот процесс. Может ли программа решить проблему? Решить-то может, а вот гарантировать результат — нет. Алгоритмы поиска не идеальны и зависят от множества факторов. Какая-то мелочь может повлиять на результат, и программа не найдет уязвимости, а вот хакер ручками ошибку выудит. Что же тогда делать? В случае со средствами безопасности, особенно тестами, рекомендуем использовать несколько разных программ. Если одна не найдет ошибку, то вполне возможно, что другая ее увидит. Ведь каждая программа использует свой алгоритм, который может быть эффективным в той или иной ситуации. Но даже при использовании автоматического тестирования ручной способ исключать нельзя. При регулярной проверке автоматом достаточно хотя бы раз в неделю просматривать основные места самому (лучше, конечно же, все). Солидные компании нанимают хакеров, чтобы они тестировали их серверы на предмет безопасности. Мелкие компании и индивидуальные владельцы сайтов не могут позволить себе такого счастья, поэтому приходится ограничиваться автоматикой... |