WEB уязвимости

Это даже не статья, а скорее всего заметка, не претендующая на новизну и уникальность. /в процессе написания/

Уязвимости

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


Согласно классификации угроз web-приложений международной организации WASC(Web Application Security Consortium) существует 15 видов уязвимостей и 34 вида атак на web-приложения. Приводить их все не имеет смысла, я расскажу о 10 самых распространенных и серьезных уязвимостях по версии международной организации OWASP(Open Web Application Security Project) на 2010 год.


1. Инъекции


Инъекции - это большой класс атак, включающий в себя SQL, OS, PHP, LDAP инъекции. Все они сводятся к тому, что злоумышленник, пользуясь несовершенством интерпретатора, посылает вредоносные данные на атакуемый ресурс. Данные, которые должны фильтроваться, успешно обрабатываются системой, в результате чего злоумышленник может получить доступ к конфиденциальной информации, уничтожить, модифицировать данные или заблокировать доступ к веб-ресурсу.

1.1. SQL инъекции


Возможность SQL инъекции (SQL injection) возникает в случае если злоумышленник может каким то образом модифицировать запрос к СУБД, например, из-за некорректной обработки входных данных, используемых в SQL-запросах.

Некоторые разновидности SQL инъекции:
  • Blind SQL Injection - бывает такое, что результат запроса можно оценить лишь по косвенным признакам, например, по различному контенту на страницах с разными входными параметрами. Такие виды атак называются "слепыми" SQL инъекциями и выполняются они путем множественных запросов с логическими условиями (OR, AND, IF) в результате которых определяется, например, является ли буква 'a' первой буквой в поле password;
  • SIXSS (SQL Injection Cros Site Scripting) - это совместное использование двух видов атак SQL injection + XSS, когда посредством SQL запроса на страницу выводится исполняемый код;
  • DoS атака на SQL-сервер - загрузка SQL сервера с помощью ресурсоемкого запроса (запросов).
    Например, SELECT BENCHMARK(100000, BENCHMARK(100000,md5(current_time)))
И это далеко не полный список, различных вариаций SQL инъекции.
Наиболее популярной программой для выявления инъекции является SQLMAP, а наиболее полный FAQ собран здесь

1.2 PHP инъекции


PHP инъекции можно разделить на два класса, внедрение кода (так называемый include bug) и инъекции выполняемого кода.

1.2.1 Include bug

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

Типичным примером, может служить код:
include $_GET['action'].'.php';
Данный тип уязвимости можно разделить на два вида, удаленная (remote include bug) и локальная (local include bug).

Remote include bug
Основой для возможности проведения данного типа атаки, является директива интерпретатора PHP "allow_url_fopen", которая позволяет работать с ссылками URL, как с локальными файлами. Она задействована во всех функциях работы с файловой системой (readfile ,fpassthru, file, fopen, include, require, virtual, file_get_contents...).

: Когда существует возможность подключить скрипт с другого сайтаfunction list: file,fopen (с настройкой allow_url_fopen) include

2. Межсайтовый скриптинг


Межсайтовый скриптинг (XSS) - это вид атаки, позволяющая злоумышленнику передать серверу исполняемый код, который будет перенаправлен браузеру пользователя. То есть атака производится не на сам ресурс, а на его пользователей. В результате успешно проведенной атаки у атакованного пользователя может быть скомпрометирован аккакунт (кража cookie), его браузер может быть перенаправлен на другой сервер или может быть осуществлена подмена содержимого сервера.

3. Ошибки в архитектурах аутентификации и управления сессиями


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

4. Незащищенные прямые ссылки на объекты


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

5. Подделка межсайтовых запросов


Подделка межсайтовых запросов (CSFR, XSRF) - это вид атак на посетителей веб-сайтов, использующий недостатки протокола HTTP. Если пользователь Вашего ресурса перейдет на сайт злоумышленника, то при недостаточной настройке сервера, злоумышленник может совершать доступные действия от имени этого пользователя.

6. Небезопасная конфигурация окружения


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

7. Небезопасное хранение зашифрованных данных


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

8. Несанкционированный доступ к функционалу, требующему особых привилегий


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

9. Недостаточная защита данных при их передаче на транспортном уровне


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

10. Непроверенные перенаправления


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

Ссылки на источники:
http://www.sec-web.ru/uyazvimosti - уязвимости
https://forum.antichat.ru/thread43966-faq+sql.html - SQL injection полный FAQ
http://www.inattack.ru/article/535.html
blog comments powered by Disqus
сюда туда