СОВРЕМЕННЫЕ  ПРОБЛЕМЫ КОМПЬЮТЕРНЫХ И ИНФОРМАЦИОННЫХ НАУК, XIII Международная научно-практическая конференция «Современные информационные технологии и ИТ-образование»

Размер шрифта: 
АНАЛИЗ ЭФФЕКТИВНОСТИ РАЗЛИЧНЫХ СПОСОБОВ ПРЕДОТВРАЩЕНИЯ ВНЕДРЕНИЯ ВРЕДОНОСНОГО КОДА В ВЕБ-ПРИЛОЖЕНИЯ
Ольга Робертовна Лапонина

Изменена: 2019-06-07

Реферат


В статье проанализирована эффективность различных способов предотвращения внедрения вредоносного кода в веб-приложения.

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

Одним из традиционных способов определить, что приложение уязвимо для атак внедрения является поиск в исходном коде всех вызовов внешних ресурсов (например, system, exec, fork, Runtime.exec, SQL-запросы или любой синтаксис, который используется для выполнения запросов к интерпретаторам в используемом окружении). Следует учитывать, что многие языки имеют несколько способов выполнения внешних команд.

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

В статье проанализированы способы реализации в различных средах программирования следующих основных технологий: 1) Использование подготовленных выражений (prepared statements) совместно с параметризованными запросами. 2) Использование хранимых процедур. В отличие от подготовленных выражений, хранимые процедуры хранятся в базе, но в обоих случаях вначале определяется SQL-запрос, и в него передаются параметры. 3) Проверка действительности входных данных по принципу белого списка. 4) Экранирование (escape) всех предоставляемых пользователем входных данных. А также дополнительных технологий: 5) Обеспечение наименьших привилегий. 6) Выполнение проверки действительности по принципу белого списка в качестве второй линии обороны.

В качестве экранирования (escape) всех входных данных, предоставляемых пользователем, рассмотрена библиотека OWASP ESAPI, а также проанализированы возможные альтернативы данной библиотеки, такие как: 1) OWASP Java Encoder проект, обеспечивающий хорошую защиту от атак типа мейсайтового скриптинга (XSS-атак). 2) OWASP Java HTML Sanitizer проект. 3) Проект  Apache Shiro, обеспечивающий аутентификацию и авторизацию. 4) Проект OWASP CSRFGuard, который является библиотекой, реализующей шаблоны различных вариантов синхронизационного токена.