В настоящее время все больше информации и сервисов помещаются компаниями в Интернет.
В тоже время помещенные в Интернет ресурсы все больше подвергаются атакам злоумыщленников.
В статье описываются возможности инструмента IBM Rational AppScan для тестирования безопасности Web-сайтов.
Также объясняются некоторые методы и возможности взлома, которые применяются при попытках проникновения на Web-сайты компаний для получения конфиденциальной информации.
Контроль безопасности Web-ресурсов с помощью IBM Rational AppScan.
В настоящее время все больше информации и сервисов помещаются компаниями в Интернет.
В тоже время помещенные в Интернет ресурсы все больше подвергаются атакам злоумыщленников.
В статье описываются возможности инструмента IBM Rational AppScan для тестирования безопасности Web-сайтов.
Также объясняются некоторые методы и возможности взлома, которые применяются при попытках проникновения на Web-сайты компаний для получения конфиденциальной информации.
1.
Введение
Web-сайт - это лицо любой современной большой или малой по размерам компании, которое видят бесчисленное количество пользователей всемирной паутины.
В наш век высоких технологий значение так называемых Web-страниц растет с каждым днем.
Через Web-ресурсы компании дают рекламу, ищут потенциальных клиентов, знакомят со своими возможностями и услугами, оказывают сервис, проводят продажи и многое другое.
Web-технологии все прочнее и прочнее устанавливаются в бизнесе и в нашем быту.
Трудно уже представить себе рабочее место в офисе или компьютер дома, который был бы не подключен к Интернет, если даже простой мобильный телефон уже вполне справляется с задачами Web-браузера настольного компьютера.
Появляются все новые и новые технологии реализации необходимых задач, но и с тем же появляются новые возможности для реализации своих задач взломщикам Web-ресурсов.
Не очень приятно будет наверно обнаружить какую-нибудь неприличную страницу вместо основной страницы Вашей компании или вдруг получить информацию от заказчиков, что сервис, которые вы предоставляете, недоступен в данное время.
Смешки в адрес Вашей компании - это самое малое последствие, которое может быть.
А вот потеря большого количества клиентов из-за отказа работы вашего сервиса или кража Вашей конфиденциальной информации, которая может быть ценна Вашим конкурентам, - это уже серьезный удар по авторитету организации и в последствии это может повлечь и финансовые потери.
2.
Зачем и кому нужно взламывать?
Все причины, по которым детище компании может оказаться под атакой хакеров, можно объединить под следующими категориями:
1.
Спортивный интерес;
2.
Взлом ради получения конфиденциальной информации;
3.
Месть.
2.1.
Спортивный интерес
Обычно под эту группу попадают начинающие взломщики, у которых пока есть только интерес попробовать что-либо новенькое, похвастаться перед друзьями своими достижениями.
Зачастую эти опыты могут заканчиваться на дефейсе вашего сайта.
Дефейс - это подмена на сайте его основной страницы, основная страница в этом случае может быть подменена на страницу со словом «HACKED» или словами «Вася любит Федю», а могут быть вообще размещены фотографии аморального характера.
И конечно нет ничего приятного в том, что Ваши клиенты, партнеры или просто случайные посетители будут лицезреть данную надпись или изображение на Вашей главной странице.
Также может использоваться еще одна разновидность атак - флудинг, при которой посылается множество сообщений с целью перегрузки сервиса.
Используется этот вид атаки в основном на сервисах, которые используются для приема заявок и заказов, что в свою очередь ведет к снижению скорости работы этих сервисов и даже возможно к полному краху или отказу системы из-за перегруза.
2.2.
Взлом ради получения конфиденциальной информации
Данный вид взлома обычно выполняется на заказ или для продажи или дальнейшего использования полученной информации.
Целью злоумышленников могут оказаться базы данных, которые размещены у сайте, программы и документы, находящие в вашей локальной сети и которые могут быть доступны через уязвимости Web-портала.
В этом случае сайт может подвергаться различным видам атак, начиная от использования эксплоитов и заканчивая популярным в последнее время использованием методов SQL-инъекций.
Но использование высоких технологий и интересных идей это не единственное оружие взломщика при попытке получить желаемое с Ваших ресурсов.
Не стоит забывать и еще одной уязвимости - человеческий фактор.
Пароли программистов, которые могут быть оставлены в коде страницы в виде комментария, тривиальные пароли к административным ресурсам являются легкой добычей для злоумышленника, с которой попасть к данным сайта и возможно локальной сети уже не составит.
В данном случае Web-ресурс будет похож на большую крепость со стальной дверью и ключиком под ковриком.
2.3.
Месть
Это одна из самых опасных категорий.
Под эту категорию попадают в основном атаки, которые совершаются бывшими или еще работающими, но оказавшимися на грани увольнения сотрудниками компании.
Это в основном люди, которые считают, что к ним руководство компании или коллеги относились несправедливо, и которые имели доступ к каким-либо административным ресурсам в Вашей компании.
Зачастую политика безопасности редко касается системных администраторов, и пароли могут передаваться ни один год в наследство от одного администратора к другому, что в свою очередь делает огромную брешь в системе безопасности компании.
Компания может стать заложником одного человека, когда этот человек уволившись заменит все пароли на основных узлах системы, а «сброс» системы иногда может повлечь за собой не просто обнуление пароля системного администратора, но и перенастройку всей системы в целом, что может занимать в свою очередь много времени и ресурсов.
3.
Теория взлома
Для того, чтоб понять как защищаться, надо сначала понять те методы взлома, которые могут применены к сайту.
Некоторые компании считают, что если настроить брандмауэр, то этого будет достаточно для обеспечения безопасности данных.
Но это заблуждение.
Рассмотрим рисунок, который изображен ниже.
Рисунок 1.
Типичная архитектура Web-порталов
На рисунке изображена типичная архитектура, которая используется при организации работы внешних Web-порталов.
При ее построении выделяются основные три составляющие:
* Брандмауэр (firewall) - программно-аппаратный комплекс, который предназначен для фильтрации входящего и исходящего трафика.
Такой сетевой фильтр используется для организации первого уровня защиты используемых внешних сервисов (ограничение доступа на служебные порты, ограничение на входящие соединения и т.д.);
* Серверы приложений - серверы, на которых находятся программы обеспечивающие взаимодействие с пользователем.
В нашем случае в качестве серверов приложений используются Web-серверы, которые могут быть на основе Apache, IIS и т.д.
На серверах размещают Web-порталы, которые содержат набор электронных страниц, Web-сервисы и через которые пользователь получает интересующую его информацию о компании, доступ к сервисам компании и т.д.;
* Базы данных - хранилище информации, которая используется Web-порталами.
Это может быть база данных пользователей, которая используется авторизации пользователей сайта, каталоги товаров, информация о маршрутах и оплатах и многое другое.
Также они могут содержать документы, программы, служебные файлы или информацию, откуда эти документы и программы могут быть доступны.
Как видно их рисунка, брандмауэр должен быть настроен таким образом, чтоб был организован доступ пользователям к серверу приложений.
Поэтому, на сколько умело не были б настроены параметры безопасности на брандмауэре, доступ к серверу приложений всегда открыт и злоумышленнику не нужно утруждать себя взломом сетевого экрана для того, чтоб попасть в локальную сеть и получить доступ интересующим данным.
Теперь весь груз безопасности падает на сам Web-портал и взломщику нужно всего лишь использовать свой Интернет-браузер для обнаружения лазеек на сайте компании.
Рассмотрим некоторые методы и возможности хакеров для взлома:
1.
Человеческий фактор ;
2.
Межсайтовый скриптинг ;
3.
SQL инъекции .
3.1.
Человеческий фактор
Тут можно выделить в основном ошибки, халатность и недосмотры программистов или администраторов создаваемых и обслуживаемых информационных систем.
Хотя это обычно пресекается в корне во многих компаниях, но все равно существует вероятность, что на странице авторизации может пройти имя пользователя "admin" и пароль "admin", и любая другая простая комбинация одинаковых с наименованием учетной записей паролей.
Также могут встречаться варианты использования абсолютно пустого пароля или простого цифрового или буквенного пароля в виде "111","123", "qwerty".
Почему возникают такие ситуации? Ну, как одной из причин может быть простая человеческая халатность или невнимательность - администратор не удосужился установить нормальный пароль или, может, установил такой пароль при инсталляции системы и забыл поменять его при вводе информационной системы в эксплуатацию.
Второй причиной такой ситуации может быть результат использования систем заказных или скачанных из Интернета, в которых используются стандартные технические учетные записи, про которые также в свою очередь все кроме взломщиков потом забывают.
Но простые и технические пароли это не единственная возможность по «вылавливанию» паролей.
Если сайт часто меняют, то также существует вероятность, что учетная запись и пароль доступа к базам данных или к системе может находиться в комментариях исходного кода страницы, видимо так чтоб не забыть.
И если открыть исходный код страницы, выбрав правой кнопкой мыши пункт меню на странице Интернет-браузера «Просмотр исходного кода страницы», можно спокойно получить доступ к системе и скорее всего привилегированный.
Рисунок 2.
Закомментированный пароль в исходном коде страницы
3.2.
Межсайтовый скриптинг
Межсайтовый скриптинг или XSS-атака - это атака с использованием скриптов JavaScript для выполнения определенных вредоносных действий, например, кражу куки или информации о сессии.
Возможность для проведения такой атаки возникает в том случае, если разработчики Web-приложений не придерживались правил безопасности при разработке сайта.
Проблема заключается в том, что не была включена фильтрация на обработку специальных символов, таких как знаки (), кавычки (", ‘), слеши (/, ) и т.д.
Может ли быть сайт подвержен подобной атаке, можно проверить следующим образом:
1.
Перейти на страницу с элементами для текстового ввода, например, страница поиска;
2.
Ввести искомую строку как alert(1)
3.
Если появится окно, которое изображено ниже, то есть опасность, что сайт может быть подвержен XSS-атаке.
Рисунок 3.
Результат выполнения скрипта со страницы поиска
Если вводимую информацию в предыдущем примере изменить на alert(document.cookie), то можно получить информацию, которая хранится в куках сессии.
Рисунок 4.
Информация о куках
Далее уже все зависит от умения взломщика заставить сработать эту уязвимость на рабочем месте пользователя сайта и передачу этой информации себе.
Это может быть специально сформированная ссылка, которая пересылается по почте, внедрение кода в уязвимую страницу и т.д.
Получив же, например, информацию о сессии пользователя, злоумышленник может спокойно быть на атакуемом сайте под чужой учетной записью.
3.3.
SQL-инъекции
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/*
4.
Использование AppScan
IBM Rational AppScan - это инструмент, который предназначен для автоматизированного или ручного тестирования безопасности Web-сайтов и Web-сервисов.
При использовании автоматизированного тестирования сайтов AppScan выполняет все те же действия, которые выполняют взломщики при попытке добыть интересующую информацию.
Но в отличие от хакера, который использует в основном набор своих наработанных схем взлома, AppScan имеет набор всех известных возможностей проникновения на сайт и при тестировании применяет их.
Поэтому даже если для тестирования сайта будет нанята группа взломщиков, то необязательно, что они обнаружат тоже количество уязвимостей, которые может обнаружить автоматизированный тестировщик.
И как еще один плюс в сторону AppScan - это то, что набор тестов всегда можно пополнять и при этом старые тесты тоже будут выполняться.
И это очень важно, т.к.
технологии используются все новые, у разработчиков появляются новые задачи по обеспечению безопасности для написанного ими кода и никто не гарантирует, что уязвимость, которую всегда учитывали еще два года назад, нечаянно забудут.
Использование же AppScan поможет избегать таких ситуаций.
При проведении тестирования приложение просматривает сначала структуру всего Web-портала и выстраивает набор тестов, которые могут быть применены.
По ходу процесса тестирования AppScan сразу организует все найденные уязвимости по определенным классификаторам (межсайтовый скриптинг, SQL-инъекции и т.д.) и по критичности.
На каждую уязвимость сохраняется запрос, который был применен к сайту при выполнении теста, и сохраняется ответ, который был получен от сайта на запрос.
Это очень полезное свойство при исправлении найденных проблем.
Рисунок 5.
Просмотр запросов и ответов при тестировании
Интересная особенность этого инструмента еще состоит в том, что с помощью него можно не только обнаружить уязвимости тестируемой системы, но и получить рекомендации по исправлению этих уязвимостей.
Рекомендации включают в себя не только простое описание обнаруженной уязвимости, но примеры их исправления.
Все категории уязвимостей имеют детальное описание и во многих случаях это описание содержит и видео-презентации.
Рисунок 6.
Главное окно приложения и информационная панель
Все результаты, которые были получены при тестировании, могут быть сохранены в отчетах с использованием различных шаблонов, которые доступны в мастере отчетов AppScan.
Отчеты можно сохранять как по всей полученной информации при тестировании, так и только те пункты, которые представляют особый интерес, например, может интересовать только описание ошибки и информация о запросах и ответах сервера и т.д.
Но генерирование и сохранение отчетов совсем не единственная возможность AppScan при работе с результатами тестирования.
Еще одно полезное свойство - это сравнение отчетов тестирования.
AppScan позволяет сравнивать сохраненные отчеты, что позволяет определить динамику исправления обнаруженных ошибок и протоколирование появления новых.
Рисунок 7.
Мастер отчетов
Но кроме возможности внутреннего документирования обнаруженных уязвимостей, есть также возможность внесения их в систему управления изменениями.
Как правило все продукты IBM Rational имеют тесную интеграцию, что и было реализовано и в этом продукте.
AppScan имеет встроенную интеграцию с IBM Rational ClearQuest , которая помогает заносить обнаруженные бреши в виде дефектов непосредственно из AppScan.
Кроме стандартного описания дефекта, при внесении в систему ClearQuest , AppScan позволяет в виде вложений вносить всю подробную информацию, включая подробную информацию об уязвимости, рекомендации по исправлению и т.д.
В результате разработчик получает не только простое описание обнаруженного дефекта, но и в принципе, возможно, и полное руководство по его реализации.
Рисунок 8.
Документирования дефекта для IBM Rational ClearQuest
5.
Заключение
Когда есть конфиденциальная информация, практически всегда есть люди, которые в ней заинтересованы.
И как один из методов доступа к этой информации - это взлом Интернет-ресурсов компании.
Но и как было сказано выше, взлом сайтов ради наживы совсем не единственная причина, по которой вдруг может перестать функционировать Интернет-сервис компании.
Поэтому безопасность этих ресурсов в последнее время приобретает все большее и большее значение, на что и обратила внимание компания IBM.
Продукт IBM Rational AppScan - это инструмент, который обеспечит тестирование безопасности Web-сайтов и поможет поместить во всемирную паутину ресурс, который уже будет не по зубам злоумышленникам.
Большой набор стандартных тестов и возможность расширения возможностей позволяет всегда идти данному продукту в ногу с технологиями и продолжать долгое время обеспечивать качественное тестирование безопасности разрабатываемых Web-продуктов.