новости
статьи
.save ass…

контроль безопасности веб-ресурсов с помощью IBM Rational AppScan

В настоящее время все больше информации и сервисов помещаются компаниями в Интернет. В тоже время, помещенные в Интернет ресурсы все больше подвергаются атакам злоумышленников. В статье описываются возможности инструмента IBM Rational AppScan для тестирования безопасности веб-сайтов. Также объясняются некоторые методы и возможности взлома, которые применяются при попытках проникновения на web-сайты компаний для получения конфиденциальной информации.

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

Все причины, по которым детище компании может оказаться под атакой хакеров, можно объединить под следующими категориями:

- спортивный интерес;

- взлом ради получения конфиденциальной информации;

- месть.

Обычно под группу «спортивный интерес» попадают начинающие взломщики, у которых пока есть только интерес попробовать что-либо новенькое, похвастаться перед друзьями своими достижениями. Зачастую эти опыты могут заканчиваться на дефейсе вашего сайта. Дефейс - это подмена на сайте его основной страницы, основная страница в этом случае может быть подменена на страницу со словом hacked или словами «Вася любит Федю», а могут быть вообще размещены фотографии аморального характера.

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

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

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

Для того, чтоб понять, как защищаться, надо сначала понять те методы взлома, которые могут применены к сайту. Некоторые компании считают, что если настроить файрволл, то этого будет достаточно для обеспечения безопасности данных. Но это заблуждение. Файрволл (firewall) - программно- аппаратный комплекс, который предназначен для фильтрации входящего и исходящего трафика. Такой сетевой фильтр используется для организации первого уровня защиты используемых внешних сервисов (ограничение доступа на служебные порты, ограничение на входящие соединения и т.д.). Серверы приложений - серверы, на которых находятся программы обеспечивающие взаимодействие с пользователем. В нашем случае в качестве серверов приложений используются веб-серверы - Apache, IIS и т.д. На серверах размещают веб-порталы, которые содержат набор электронных страниц, веб- сервисы и через которые пользователь получает интересующую его информацию о компании, доступ к сервисам компании и т.д.

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

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

Рассмотрим некоторые методы и возможности взлома:

- человеческий фактор;

- межсайтовый скриптинг;

- SQL-инъекции.

Человеческий фактор. Тут можно выделить в основном ошибки, халатность и недосмотры программистов или администраторов создаваемых и обслуживаемых информационных систем. Хотя это обычно пресекается в корне во многих компаниях, но все равно существует вероятность, что на странице авторизации может пройти имя пользователя admin и пароль admin или любая другая простая комбинация одинаковых с наименованием учетной записей паролей. Также могут встречаться варианты использования абсолютно пустого пароля или простого цифрового или буквенного пароля в виде 111, 123, qwerty. Почему возникают такие ситуации? Ну, одной из причин может быть простая человеческая халатность или невнимательность - администратор не удосужился установить нормальный пароль или, может, установил такой пароль при инсталляции системы и забыл поменять его при вводе информационной системы в эксплуатацию. Второй причиной может быть результат использования систем заказных или скачанных из Интернета, в которых используются стандартные технические учетные записи, про которые также все, кроме взломщиков, потом забывают.

Но простые и технические пароли - это не единственная возможность по «вылавливанию» паролей. Если сайт часто меняют, то также существует вероятность, что учетная запись и пароль доступа к базам данных или к системе может находиться в комментариях исходного кода страницы, видимо чтоб не забыть. И если открыть исходный код страницы, можно спокойно получить доступ к системе и, скорее всего, привилегированный.

Межсайтовый скриптинг или XSS-атака - это атака с использованием скриптов JavaScript для выполнения определенных вредоносных действий, например, кражи cookie или информации о сессии. Возможность для проведения такой атаки возникает в том случае, если разработчики веб-приложений не придерживались правил безопасности при разработке сайта. Проблема заключается в том, что не была включена фильтрация на обработку специальных символов, таких как знаки (<, >), кавычки (", ‘), слеши (/, \) и т.д.

Может ли быть сайт подвержен подобной атаке, можно проверить следующим образом:

- перейти на страницу с элементами для текстового ввода, например, страница поиска;

- ввести искомую строку, например

<script>alert(1)</script>

Если появится диалоговое окно, то есть опасность, что сайт может быть подвержен XSS-атаке.

Если вводимую информацию в предыдущем примере изменить на <script>alert(document.cookie)</script>, то можно получить информацию, которая хранится в куках сессии.

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

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

Как один из методов определения может ли быть сайт подвержен атаке с помощью SQL-инъекции - это попробовать сформировать адресную строку, которая заведомо должна вернуть ошибку обработки SQL-запроса.

Например, если сформировать строку:

http://site/test.php?id=1'

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

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''' at line 1

Это сообщение будет означать, что на обработку SQL-запросов не установлен фильтр и есть возможность проводить инъекцию. А далее уже помогают знания по формированию SQL-запросов. Например, если попробовать сформировать подобную адресную строку:

http://site/test.php?id=-1+union+select+null, mysql.user.password, null+from+mysql.user+limit+0, 1/*

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

http://site/test.php?id=-1+union+select+null, LOAD_FILE('/etc/passwd'), null/*

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

При проведении тестирования приложение просматривает сначала структуру всего веб-портала и выстраивает набор тестов, которые могут быть применены. По ходу процесса тестирования AppScan сразу организует все найденные уязвимости по определенным классификаторам (межсайтовый скриптинг, SQL-инъекции и т.д.) и по критичности. На каждую уязвимость сохраняется запрос, который был применен к сайту при выполнении теста, и сохраняется ответ, который был получен от сайта на запрос. Это очень полезное свойство при исправлении найденных проблем.

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

Кроме возможности внутреннего документирования обнаруженных уязвимостей, есть также возможность внесения их в систему управления изменениями. Как правило, все продукты IBM Rational имеют тесную интеграцию, что было реализовано и в этом продукте. AppScan имеет встроенную интеграцию с IBM Rational ClearQuest , которая помогает заносить обнаруженные бреши в виде дефектов непосредственно из AppScan. Кроме стандартного описания дефекта, при внесении в систему ClearQuest , AppScan позволяет в виде вложений вносить всю подробную информацию, включая подробную информацию об уязвимости, рекомендации по исправлению и т.д. В результате разработчик получает не только простое описание обнаруженного дефекта, но и в принципе, возможно, и полное руководство по его реализации.

Когда есть конфиденциальная информация, практически всегда есть люди, которые в ней заинтересованы. И как один из методов доступа к этой информации - это взлом интернет-ресурсов компании. Но и как было сказано выше, взлом сайтов ради наживы - совсем не единственная причина, по которой вдруг может перестать функционировать интернет-сервис компании. Поэтому безопасность этих ресурсов в последнее время приобретает все большее и большее значение, на что и обратила внимание компания IBM. Продукт IBM Rational AppScan - это инструмент, который обеспечит тестирование безопасности веб-сайтов и поможет поместить во всемирную паутину ресурс, который уже будет не по зубам злоумышленникам. Большой набор стандартных тестов и возможность расширения возможностей позволяет всегда идти данному продукту в ногу с технологиями и продолжать долгое время обеспечивать качественное тестирование безопасности разрабатываемых веб-продуктов.



обсудить статью
© сетевые решения
.
.