«При достаточном количестве глаз все ошибки лежат на поверхности».
Эрик Стивен Рэймонд,
уточнение закона Линуса Торвальдса, эссе «Собор и Базар»

Начиная с 4 июля 2009, Дня независимости США, интернет-сайты американских государственных учреждений и крупнейших компаний подверглись массированному хакерскому нападению. Среди пострадавших оказались Госдепартамент, Пентагон, министерство финансов и другие ведомства. Произошли сбои и в работе сайтов ООН, штаб-квартира которой находится в Нью Йорке.

21 апреля газета Wall Street Journal со ссылкой на представителей правительства США написала, что киберпреступники проникли в компьютерную систему Пентагона и похитили информацию о новом многоцелевом истребителе пятого поколения Joint Strike Fighter, также известном как F-35 Lightning II. Хакерам удалось скопировать несколько терабайт данных, касающихся дизайна и электронной системы нового самолета. По мнению экспертов, эта информация может быть использована при разработке систем защиты от данного типа истребителей.

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

25 марта Служба информации и безопасности (СИБ) Молдавии сообщила о пресечении попытки проникновения в компьютерную сеть правительства и информационные ресурсы большинства государственных учреждений. Как уточнили в пресс-службе СИБ, с IP-адресов, находящихся в приднестровском регионе и за пределами республики, компьютерные системы органов публичной власти были атакованы специальными программами-шпионами. Деятельность электронных шпионов была направлена на скрытый и несанкционированный сбор информации с зараженных серверов и последующую отправку ее в закодированном виде на интернет-ресурсы Тираспольской компании InterDnestrCom и за рубеж.

2 марта председатель ЦИК РФ Владимир Чуров сообщил, что более 270 тысяч хакерских атак зафиксировано в пяти субъектах РФ, где проходили экспериментальные электронные опросы избирателей.

17 февраля официальный сайт премьер-министра Косово Хашима Тачи был взломан сербскими хакерами. На главной странице сайта главы косовского кабмина на несколько часов появилась надпись на английском "это мой подарок на первый год" и несколько нецензурных фраз, которые подписаны неким Игорем, представляющем команду хакеров бывшей Союзной Югославии.

Вышеприведенная информация свидетельствует, что веб-серверы, 365 дней в году доступные для кого угодно во Всемирной паутине, требуют более чем серьезной защиты.
Сегодня веб-сайт это далеко не просто визитка компании, а полнофункциональный инструмент бизнеса. Фактически площадка в вебе конвертировалась сегодня в интернет-магазин, систему клиент-банк, CRM, наконец, во внутреннюю библиотеку с шаблонами документов.
Веб-технологии постоянно совершенствуются. Первый веб-сервер Apache мог отображать лишь статичные HTML-страницы. Затем появились язык PHP, технология ASP.NET, появились серверы веб-приложений. Благодаря последним на серверах баз данных стали активно размещать гигабайты информации, тем самым подставляя ее под атаки из мировой сети.

Проблематика защиты веб-приложений
Основной уязвимостью веб-приложений является обязательная доступность сервисов и то, что стандартные межсетевые экраны обязаны пропускать весь трафик запросов и ответов веб-серверов (Рис. 1).

Рис. 1 Стандартная схема размещения веб-серверов с открытыми портами на межсетевом экране

Атаки на веб-сервер можно разделить следующим образом:
• Атаки на доступность (Отказ в обслуживании) – DoS и DDoS - атака, имеющая своей целью заставить сервер не отвечать на запросы. Данный вид атак происходит на сетевом уровне и при определенных условиях может блокироваться на файерволах или IPS-системах. Возможен вариант отключения на время целых сегментов Интернет, при этом может быть заблокирована деятельность легальных пользователей;
• Атаки на целостность – атака с целью изменить содержимое самого сайта. Размещение на страницах разнообразных призывов, возможно с целью компрометации самого предприятия;
• Атаки на конфиденциальность – атака с целью получить определенные данные из баз данных предприятия; Этот вид атак является наиболее серьезным для любого предприятия, поскольку могут быть украдены как конфиденциальные данные самого предприятия, так и данные о клиентах, что в свою очередь будет иметь самые плохие последствия для деловой репутации. Во многих странах мира предприятие несет ответственность и облагается штрафами в случае утери конфиденциальных данных своих клиентов.
• Атаки на клиентские компьютеры. Отдельный тип атак, который предназначен для заражения вирусами или кражи паролей с компьютеров третьих пользователей, которые доверяют любому содержимому популярного веб-ресурса или строго определенного, но необходимого в повседневной работе. К этому типу атак относятся очень известные атаки вида Cross-Site Scripting.

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

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

Веб-сервер традиционно имеет 2 типа уязвимостей: уязвимость программного кода в новых версиях и ошибки при администрировании или конфигурировании самого сервера его администраторами. Веб-приложения, в основном, имеют ошибки и уязвимости в программном коде. Следует также заметить, что уязвимости имеют и операционные системы, на которых собственно и «крутится» любой веб-сайт.

Следующая диаграмма отображает рост числа уязвимостей в зависимости от уровня программного обеспечения на сервере с веб-сайтом.

Рис.2 Диаграмма зависимости числа уязвимостей

Как правило, вышеописанная «пирамида» зависит от следующего факторов:
• Операционные системы пишутся высокопрофессиональными программистами с хорошими ресурсами для тестирования.
• Многие уязвимости ОС исправляют достаточно быстро, до написания специализированного атакующего эксплойта.
• Ошибки в протоколах сетевого уровня, а также атаки на сетевом уровне блокируются системами предотвращения вторжений.
• Веб-приложения пишутся небольшими группами разработчиков, специально под бизнес-задачи клиента.
• Веб-приложения имеют максимальное количество уязвимостей.
• При написании веб-приложения основные усилия сосредотачиваются только на исправлении ошибок в логике самого приложения. Защищенности самого сайта отводятся минимальное время и ресурсы.
• Очень много веб-приложений разрабатывается с привлечением свободно-распространяемых технологий (проекты Open Source), которые даже не тестировались международными или локальными организациями по безопасности на предмет уязвимостей.

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

В обиходе появился термин WAF (Web Application Firewall) – файервол уровня приложений для защиты веб-приложений.

Глобальная задача

Проблема защиты веб-серверов давно стала всемирной и в 2004 году производители программного и аппаратного обеспечения объединились с целью выработки стандартов в области защиты веб-технологий. В результате был создан WASC (Web Application Security Consortium) – Консорциум по защите веб-приложений.

В 2009 году консорциум опубликовал свой отчет по результатам тестирования 12186 веб-приложений. Итоги отчета выглядят удручающими: в протестированных приложениях найдено 97554 уязвимости разной степени! В целом, консорциум на сегодня определил 34 типа атак и 15 видов «слабостей» для веб-серверов.

Чтобы оценить самые «популярные» уязвимости, обратите внимание на рис. 3.

Рис.3. Наиболее популярные уязвимости веб-приложений.

Как можно заметить, 39% от всех нападений составляют атаки с целью получить конфиденциальную информацию из информационных веб-активов и баз данных предприятия. Отсюда следует совершенно законное требование к WAF – необходимо не только обеспечить защиту веб-приложений и клиентских веб-браузеров, но и предусмотреть инспекцию ответов веб-сервера на предмет информационных утечек, например номеров кредитных карточек.

Средства защиты

Одним из первых (актуально до сих пор) решений в области защиты веб-приложений является Open Source продукт ModSecurity. ModSecurity стартовал в 2002 году и очень быстро завоевал популярность в мире, на сегодняшний день загружено более одного миллиона версий с сайта продукта.

Изначально задумываемый как модуль к веб-серверу Apache, сегодня ModSecurity портирован во все основные операционные системы, а также поддерживает IIS и может работать в связке с Microsoft ISA сервером. Из-за своей доступности, простоты в установке и настройке ModSecurity часто называют «Снортом» (Snort – самый популярный Open Source продукт в области сетевых систем обнаружения или предотвращения вторжений) для защиты веб-приложений.

К недостаткам решения можно отнести отсутствие автоматического обновления или добавления правил детектирования новых угроз и невозможность качественного управления или администрирования сразу несколькими сенсорами. Эти минусы присущие многим Open Source разработкам.

Из коммерческих систем рынка WAF хотим отметить решение WebDefend компании Breach Security Inc. Продукт выполняет глубокую двунаправленную инспекцию трафика. Для защиты от информационных утечек используется функция ExitControl. Данная функция позволяет настроить шаблоны ответов сервера, блокируя даже ответы с ошибками. Это лишает атакующего знаний о внутренней архитектуре веб-приложений и возможных уязвимостей стандартного программного обеспечения. Виртуальный «патчинг» защищает от атак Zero-Day и решает проблему «человеческого фактора», так как согласно отчета консорциума WASC, почти 43% всех уязвимостей веб-приложений связано с ошибками в конфигурационных файлах или отсутствием необходимых знаний и навыков у администраторов веб-узлов.

В составе WebDefend есть специально настроенная политика защиты для соответствия требованию 6.6 стандарта PCI DSS. Правила автоматически определяют номера карт разных платежных систем и могут блокировать передачу информации неавторизованным пользователям. Специальные отчеты разработаны для помощи персоналу при прохождении аудита по PCI и регулярного мониторинга на соответствие стандарту.

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

Хотим отметить, что наличие WAF стало обязательным при выполнении требования 6.6 стандарта PCI DSS.

-----------------
В статье использованы следующие материалы:
1. Агенство «РИА Новости»
2. Консорциум WASC ( www.webappsec.org)
3. http://ru.wikipedia.org/wiki/Уязвимость_(компьютерная_безопасность)
4. Сайт www.modsecurity.org
5. Отчет http://www.sans.org/top-cyber-security-risks/

Сергей Маковец
Директор по технологиям
ISSP | Information Systems Security Partners