Сетевое издание
Международный студенческий научный вестник
ISSN 2409-529X

1 1
1 Penza state technological university

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

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

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

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

OWASP (некоммерческой организации Open Web Application Security Project) после своего исследования представила список десяти наиболее опасных, но, в то же время, распространенных уязвимостей в программном обеспечении для интернета и веб-сервисах [1]. По мнению OWASP, на эти уязвимости стоит обратить самое пристальное внимание как государственным, так и коммерческим организациям, желающим обезопасить себя и своих клиентов от хакеров. Все указанные уязвимости достаточно широко распространены, а использовать их под силу даже малоквалифицированным хакерам, поскольку соответствующие средства взлома легко найти в сети Интернет.

1) Injection (всякого рода инъекции, в т.ч. SQL, LDAP и т.д.).

2) Cross Site Scripting (не потерявший актуальности XSS).

3) Broken Authentication and Session Management (ошибки в архитектуре аутентификации и управления сессиями).

4) Insecure Direct Object References (незащищенные ресурсы и объекты).

5) Cross Site Request Forgery (CSRF).

6) Security Misconfiguration (небезопасная конфигурация окружения, различных фреймворков, платформы).

7) Failure to Restrict URL Access (несанкционированный доступ к функционалу, требующему особых привилегий – например, обход проверки c помощью двойного «//» в URL для получения доступа к управлению блогом в WordPress).

8) Unvalidated Redirects and Forwards (открытые редиректы, которые ведут к фишингу, HTTP Response Splitting и XSS).

9) Insecure Cryptographic Storage (небезопасное хранение важных данных).

10) Insufficient Transport Layer Protection (недостаточная защита данных при их передаче на транспортном уровне, например по HTTP вместо HTTPS).

Опасность некоторых из указанных уязвимостей представлена ниже:

1) SQL-инъекции – встраивание вредоносного кода в запросы к базе данных – наиболее опасный вид атак [2]. С использованием SQL-инъекций злоумышленник может не только получить закрытую информацию из базы данных, но и, при определенных условиях, внести туда изменения. Уязвимость по отношению к SQL-инъекциям возникает из-за того, что пользовательская информация попадает в запрос к базе данных без должной обработке: чтобы скрипт не был уязвим, требуется убедиться, что все пользовательские данные попадают во все запросы к базе данных в экранированном виде.

2) PHP-инъекция (англ. PHP injection) – один из способов взлома веб-сайтов, работающих на PHP, заключающийся в выполнении постороннего кода на серверной стороне [3]. Потенциально опасными функциями являются: * eval(), * preg_replace() (с модификатором «e»), * require_once(), * include_once(), * include(), * require(), * create_function(). PHP-инъекция становится возможной, если входные параметры принимаются и используются без проверки.

3) Cross-Site Scripting – это вид уязвимости программного обеспечения (Web-приложений), при которой, на генерированной сервером странице, выполняются вредоносные скрипты, с целью атаки клиента. Сейчас XSS составляют около 15 % всех обнаруженных уязвимостей. Долгое время программисты не уделяли им должного внимания, считая их неопасными. Однако это мнение ошибочно: на странице или в HTTP-Cookie могут быть весьма уязвимые данные (например, идентификатор сессии администратора). На популярном сайте скрипт может устроить DoS-атакy.

4) CSRF (англ. Сross Site Request Forgery – «Подделка межсайтовых запросов», также известен как XSRF) – вид атак на посетителей веб-сайтов, использующий недостатки протокола HTTP. Если жертва заходит на сайт, созданный злоумышленником, от её лица тайно отправляется запрос на другой сервер (например, на сервер платёжной системы), осуществляющий некую вредоносную операцию (например, перевод денег на счёт злоумышленника).

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

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