IT-DailyРежим архива
 
 
 

Вернуться на все новости от 13 октября 2009 г.

SQL-инъекции по-прежнему опасны

В 2007 году компания Hewlett-Packard приобрела фирму SPI Dynamics, специализировавшуюся на безопасности Web-приложений. Сооснователь SPI Dynamics Калеб Сима, уже тогда имевший репутацию эксперта в этой области, занял должность вице-президента HP и директора по технологиям отдела безопасности приложений HP Application Security Center.

Калеб Сима напоминает о необходимости проверять входные данные В 2007 году компания Hewlett-Packard приобрела фирму SPI Dynamics, специализировавшуюся на безопасности Web-приложений. Сооснователь SPI Dynamics Калеб Сима, уже тогда имевший репутацию эксперта в этой области, занял должность вице-президента HP и директора по технологиям отдела безопасности приложений HP Application Security Center. Выступления энергичного и обаятельного Симы, в которых он как семечки раскалывает парольную защиту некоторых Web-сайтов, всегда пользуются большим успехом у аудитории, но достойно внимания, что за несколько лет некоторые предметы этих выступлений остаются неизменными. Механизм проверки сайта на уязвимость к SQL-инъекции, например, был подробно описан Симой в статье Locking the Door Behind You: Hacker Protection for Your Web Applications в 2005 году, однако и на форуме Программные миры HP 2009 демонстрация подобного и других взломов вызвала живой интерес и аплодисменты (см. Программные темы HP, Computerworld Россия, 2009, № 30). Означает ли это, что хорошо известная угроза остается по-прежнему актуальной, в частности потому, что многие компании продолжают использовать приложения, написанные несколько лет назад« Сима свидетельствует, что дело обстоит именно так. Впрочем, начать с SQL-инъекции в этот раз он решил в основном потому, что на этом примере очень легко показать людям, не являющимся экспертами в области безопасности, угрозы и риски Web-уязвимостей.

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

Опасность SQL-инъекции возникает тогда, когда параметр, отсылаемый серверному приложению в запросе GET протокола HTTP (куда он попадает из гиперссылки или строки браузера), напрямую передается в систему управления базой данных. Например, если к адресу www.site.com/script.php«text=1 после единицы добавить апостроф (признак начала и конца текстовой константы), а серверное приложение не проверяет корректность параметра, то при определенных настройках сервера пользователю может быть выдано сообщение СУБД об ошибке. В этом случае можно добавить более сложное выражение, включая разного рода функции преобразования типов. Сервер базы данных, отвечая на ввод, может выдавать названия таблиц, строк, выполнять разные команды, а полная информация о содержимом таблиц может быть получена с помощью запросов, предполагающих ответ истина или ложь.

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

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

Сима советует придерживаться очень простого принципа: Говорите вашим разработчикам, чтобы они всегда выполняли надлежащую проверку входных данных. Если они будут следовать этому правилу, то без каких-либо инструментальных средств или технологий, без специальных знаний в области безопасности вам удастся избежать до 80% уязвимостей в Web-приложениях.

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

HP развивает целый набор полученных с покупкой SPI Dynamics инструментов для диагностики уязвимостей Web-приложений. Например, HP Assessment Management Platform позволяет распространить программу обеспечения безопасности Web-приложений на весь цикл их разработки и поставить ее под контроль руководителей, не являющихся экспертами в области безопасности. А программа HP WebInspect обеспечивает анализ сложных Web-приложений на целый ряд уязвимостей, включая SQL-инъекцию, переполнение буфера, передачу кода через формы и т. д., и поддерживает AJAX, Flash, SOAP и целый ряд других технологий. К сожалению, далеко не все ошибки могут быть выявлены автоматически. Но, по крайней мере, поиск фрагментов, содержащих операторы ввода, которые затем могут быть просмотрены программистом, легко автоматизируется.

 



16 октября 200915 октября 200914 октября 2009
13 октября 2009
12 октября 20099 октября 20098 октября 20097 октября 20096 октября 20095 октября 20092 октября 2009