О защите веб-приложений

Источник: computerra
Наталья Жилкина

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

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

Денежным курсом

В последние годы отмечается два тренда: во-первых, атаки злоумышленников имеют исключительно финансовый интерес; по этой причине чаще всего им подвергаются веб-сервисы интернет-банкинга. Во-вторых, мишенью для хакеров становятся веб-приложения. По оценке Gartner, атаки на веб-приложения составляют около 75% от всего их количества.
"Веб-приложение - это, по сути, только способ представления информации посредством определенного графического интерфейса, - поясняет Джабраил Матиев, руководитель группы по информационной безопасности IBS Platformix. - Однако в силу особенностей веб-платформ он имеет множество уязвимостей, которые могут привести к возникновению целого ряда угроз безопасности. Во-первых, это угрозы на уровне приложений, платформ, БД, интерфейсов и так далее. Во-вторых, - связанные с нарушением доступности веб-сервиса (DDoS-атаки). В-третьих, - угрозы, связанные с функцией аутентификации и авторизации".

По словам Матиева, чаще всего атаки возникают вследствие наличия уязвимостей в веб-приложении и могут привести к получению контроля над ним и использованием его в качестве платформы для доступа к бизнес-процессам, внутренней инфраструктуре и критичным данным организации. "Взлом веб-приложения, связанного с ключевыми бизнес-процессами, может нанести организации непоправимый вред, вплоть до остановки бизнеса", - подчеркивает специалист.
Иллюстрацией типичной угрозы для веб-ресурсов, влекущей за собой крайне негативные последствия, может служить DDoS-атака на коммерческий сайт. Опасность заключается в том, что DDoS может "положить", казалось бы, совершенно безопасные веб-приложения.

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

Две большие разницы

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

- В отношении традиционных веб-сайтов, как правило, внимание уделяется устранению уязвимостей сервера, который "отдает" страницы по клику пользователя, - поясняет Михаил Кондрашин, генеральный директор компании "АПЛ". - А вот когда работает веб-приложение, хакер атакует не веб-сервер, а промежуточный код. И сервер в этом случае "не знает", что в данный момент через него крадут информацию: он исправно отдает запрошенные страницы.

Та же проблема наблюдается и в отношении баз данных. Во всех традиционных БД реализовано строгое разграничение доступа: каждому пользователю делегируются свои полномочия. Зачастую веб-приложение, с которым взаимодействуют все пользователи, имеет слишком высокий уровень полномочий: таков типичный подход при программировании таких приложений. В результате штатные средства защиты базы данных теряют смысл: вся логика разграничения доступа находится внутри приложений. Отсюда возникают типичные уязвимости сайта: если сам веб-сервер способен предоставить доступ к конкретной папке только по паролю, то пользователь веб-приложения имеет доступ к любым "полагающимся" ему данным. А если до этих ссылок доберется кто-то сторонний, то и он получит доступ к этим данным, даже не имея пароля доступа к самому веб-приложению. Типичным примером подобного поведения системы, является утечка в Интернет СМС-сообщений одного из федеральных операторов сотовой связи летом 2011 года.

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

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

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

Корень проблемы

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

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

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

Если приложение написано бездумно, то ничто не мешает пользователю написать, например, какой-нибудь хитрый запрос на авторизацию, который всегда будет пропускать злоумышленника: ему даже не потребуется где-то украсть пароль доступа. Это классический запрос SQL Injection, с помощью которого можно удалить или даже выкачать всю базу.

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

Проблемы и решения

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

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

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

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

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

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

Средства для защиты от DDoS имеются, но они очень дороги. Такую систему, по идее, должен приобрести провайдер. Однако у него своя мотивация: если провайдер видит, что сайту его клиента отведена полоса в 10 гигабит и она полностью исчерпана, он предпочитает отнести это на счет проблем самого клиента. Если у других абонентов проблемы пока нет, провайдеру проще расторгнуть контракт с клиентом: это дешевле, чем покупать средства защиты.

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

Тайны ремесла

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


Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=33365