Добавить новость
Добавить компанию
Добавить мероприятие
Тесты цифровой техники
|
|
|
Проблемы безопасности современных веб-технологий
04.10.2005 00:00
версия для печати
В отраслевом отчете компании VeriSign по итогам 2-го квартала 2005 года фигурирует число в 82,9 млн доменов, из которых за отчетный период было зарегистрировано 8,1 млн доменных имен. Очевидно, что в связи с таким быстрым ростом количества используемых веб-приложений, именно они попали под пристальный взгляд как специалистов по сетевой безопасности, так и тех, кто, пользуясь различными уязвимостями веб-приложений, получают личную выгоду. Здесь специально не используется термин «хакеры», потому что «хакеры», обладая большим багажом знаний для поиска новых уязвимостей, далеко не всегда играют за «нападение»: все чаще и чаще высококлассные специалисты по сетевой безопасности играют в команде «защиты». В сети находится множество материалов по использованию известных уязвимостей веб-приложений; для осуществления взлома достаточно знать лишь технические азы, а все остальное сделает специально написанная программа. На самом деле, прежде чем говорить о проблемах безопасности веб-технологий, следует условно разделить веб-серверы на несколько групп: персональный сайт, информационный сайт (портал), корпоративный сайт и веб-сервер программных приложений. Первую группу не так интересно рассматривать как с точки зрения взлома, так и с точки зрения защиты, так как взлом личного сайта вряд ли вызовет глобальные катаклизмы. Информационный портал уже более интересен для взломщика. Информация - это деньги, изменение информации на требуемую – тоже деньги. Взлом корпоративного сайта также является достаточно востребованным видом сетевой преступности: такие понятия, как промышленный шпионаж и информационная разведка, еще никто не отменял. Но наиболее интересным представляется атака на веб-серверы приложений. Для начала давайте разберемся, что имеется в виду под веб-ориентированными приложениями. Такие понятия, как CRM, CMS, ERP, прочно вошли в бизнес-реалии современных компаний, а современные веб-технологии позволили перенести эти система (или их интерфейсы) на уровень веб-сервера. Согласитесь, гораздо удобнее получать доступ к последним отчетам о продажах компании из любой точки мира, имея на руках не громоздкое программное обеспечение, а всего лишь веб-браузер. Кроме удобства одним из ключевых преимуществ веб-ориентированных решений является кросс-платформенность. Разработаны веб-браузеры для любой операционной системы, и, соответственно, разработку приложения или интерфейса нужно вести всего лишь под одну платформу – веб. Логично, что подобная трансфигурация существенно сократила время и стоимость разработки и, как результат, цену продукта. Использование веб-ориентированных технологий стало тем самым ключом, открывающим двери к быстрой и эффективной разработке приложений. В результате множество компаний (как среди разработчиков программного обеспечения, так и среди его заказчиков) по всему миру приняли на вооружение подобный инструментарий. Неавторизованный доступ к самому сердцу корпоративной информационной системы может нести огромные убытки для владельцев компании и баснословную выгоду для взломщика. Именно поэтому веб-ориентированные приложения должны быть качественно защищены, а возможность взлома должна быть если не исключена, то хотя бы минимизирована. Другими словами, при заказе разработки веб-ориентированной системы, системы управления контентом (CMS) корпоративного сайта необходимо выяснить у разработчика тот уровень безопасности, который он закладывает в разрабатываемую систему. К сожалению, статистика подсказывает, что в настоящее время 9 из 10 веб-разработчиков не уделяют должного внимания вопросам безопасности. Предупрежден – значит вооружен. В России есть компании-разработчики, четко понимающие важность обеспечения безопасности устанавливаемого или разрабатываемого приложения. Задача заказчика – понять, как к вопросу безопасности относится компания, которой он собирается доверить внедрение или разработку требуемой веб-системы. Любой разработчик или заказчик веб-приложений должен осознать, что построить защищенное приложение гораздо проще (и эффективнее с точки зрения финансовых и временных затрат), если заложить компоненты и модули обеспечения безопасности в фундамент системы. Поэтому рассмотреть вопросы обеспечения безопасности целесообразно еще на этапе проектирования системы. Гораздо сложнее будет защитить систему и написать необходимую “заплатку”, когда организация безопасности системы не продумана с самого начала и не является ее базовым компонентом. Для подтверждения вышесказанного рассмотрим проблему с SQL-инъекциями. Наверное, ни одно из современных веб-приложений не обходится без использования СУБД (системы управления базой данных), где хранятся как информационные, так и авторизационные данные. Именно поэтому SQL-инъекции являются одним из наиболее действенных методов взлома веб-приложений. Обеспечить устойчивость веб-приложения к SQL-инъекциям можно только в том случае, если инструментарий защиты находится в самом сердце приложения. SQL-инъекция - это способ получения неавторизованного доступа к базе данных через веб-приложение. Они изменяют передаваемые параметры таким образом, чтобы изменить сам выполняемый SQL-запрос. Например, добавляя кавычки или логические параметры, можно выполнить произвольный запрос к базе данных. Подобный произвольный (а значит - неконтролируемый) запрос может получать, записывать, изменять или удалять данные из БД. В некоторых случаях через специальным образом написанный запрос можно получить доступ к внешней среде, например, к файловой системе или операционной системе в целом. Взломщик, как правило, проверяет уязвимость к SQL-инъекциям путем подачи входных данных, которые генерируют ошибочный запрос к БД. И если приложение возвращает сообщение об ошибке, взломщик пытается проанализировать возможную структуру таблицы или БД, опираясь на полученную из ошибки информацию. Типичный метод защиты – отключение возможностей генерации ошибок при обращении к базе данных. Метод действенный, но, к сожалению, недостаточный. Веб-приложение, не возвращающее никаких сообщений об ошибках, все равно может быть подвержено SQL-инъекциям, на сей раз “слепым”. “Слепые” SQL-инъекции – это метод взлома, при котором аналитическая информация добывается взломщиком не на основе сообщений об ошибках, а на основе логических конструкций. Рассмотрим простой теоретический пример атаки на веб-приложение методом SQL-инъекций: Допустим, взломщик изучает корпоративный сайт, где по адресу: ВЫБРАТЬ название_документа, дата_документа, адрес_документа ИЗ таблицы_документов ГДЕ номер_документа=7 Веб-приложение сработает нормально и покажет документ с номером 7. Для определения, подвержено ли приложение SQL-инъекциям, давайте попробуем добавить дополнительные параметры, введя в браузере адрес: Передаваемым параметром будет выражение «7 И 1=1», соответственно, к БД будет передан запрос вида: ВЫБРАТЬ название_документа, дата_документа, адрес_документа ИЗ таблицы_документов ГДЕ номер_документа=7 И 1=1 Если приложение вернуло тот же документ, что и в первый раз, – это означает, что оно принимает пользовательское выражение как часть запроса к базе данных и, соответственно, подвержено взлому методом SQL-инъекций. Безопасное приложение отклонило бы подобный запрос, потому что принимает параметром ввода только число, а поскольку параметр «7 И 1=1» является текстовой строкой, а не числом , то подобный запрос был бы отклонен и требуемый документ не был бы отображен. Для построения защищенного веб-приложения разработчик должен предусмотреть необходимость проверки пользовательского ввода на правильность и полностью исключить возможность модификации SQL-запросов со стороны клиента. При этом лучшая защита – это изоляция веб-приложения от сервера базы данных. Например, размещение всех возможных схем работы с данными не в приложении, а в виде исполняемых процедур и функций на уровне СУБД. Как вы понимаете, и первое, и второе значительно проще и дешевле предусмотреть именно на этапе проектирования системы. Еще одним методом скрытия внутренних процессов приложения является использование ЧПУ - человеку понятного адреса (URL) в системе адресации веб-приложения. Например, если в вышеуказанном документе его название «Тест надежности», то адрес с применением ЧПУ мог бы быть не www.site.ru/documents.php?7, а www.site.ru/test_nadezhnosti.html. Использование ЧПУ не только затрудняет поиск и выполнение SQL-инъекций, но и значительно упрощает и визуализирует адресацию документов на веб-сайте. Бурный рост и развитие веб-технологий – безусловно положительная тенденция. Веб-технологии позволяют нам моментально получать любые интересующие нас данные, находясь в любой точки мира, снижают затраты на разработку и владение системой. Их единственным минусом, пожалуй, являются возможные проблемы с безопасностью. Но вызваны они не тем, что веб-технологии и веб-приложения невозможно или проблематично защитить, а тем, что зачастую компании-разработчики в погоне за количеством разработок порой забывают об их качестве. Тем не менее, найти разработчика, который не забывает о важности обеспечения безопасности системы, вполне возможно. При этом стоит помнить, что нет систем, которые нельзя было бы взломать, однако создать или заказать веб-приложение, риск взлома которого приближается к нулю, вполне возможно. Виталий Яковлев, компания «Телегрид», генеральный директор
наверх
Для того, чтобы вставить ссылку на материал к себе на сайт надо:
|
||||||
А знаете ли Вы что?
ITSZ.RU: последние новости Петербурга и Северо-Запада11.09.2024 ФАС вновь возьмется за операторов связиз>
11.09.2024 ФАС вновь возьмется за операторов связи 11.09.2024 ФАС вновь возьмется за операторов связи |
||||