💉 9 популярных типов атак на веб-приложения – Information Security Squad
💉  9 популярных типов атак на веб-приложения
Проблема с веб-приложениями заключается в том, что им подвергаются миллиарды интернет-пользователей!
В первые дни работы Интернета одним из наиболее распространенных методов атаки был простой брутфорс.
Обычно боты выполняли эти атаки – или люди с большим количеством свободного времени – которые пробовали миллионы комбинаций имен пользователей и паролей, пока не находили такую, которая предоставила бы доступ к целевому приложению.

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

👨⚕️️ Атаки веб-приложений: что это такое и как оставаться защищенным👨

Но киберпреступники любят открывать новые технологии и использовать их для выполнения новых типов атак.

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

Таким образом, на сцену вышли так называемые инъекционные атаки.

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

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

Инъекция кода

Внедрение кода является одним из наиболее распространенных типов атак.

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


Эти типы инъекционных атак возможны в приложениях, в которых отсутствует проверка входных данных.

Если текстовое поле ввода позволяет пользователям вводить все, что они захотят, то приложение потенциально может быть скомпрометировано.

Чтобы предотвратить атаки такого рода, приложение должно ограничивать входные данные от пользователей.

Например, необходимо ограничить объем ожидаемых данных, проверять формат данных  и ограничить набор разрешенных символов.

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

Обнаруженные уязвимости трудно использовать.

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

SQL-инъекция

Подобно внедрению кода, эта атака вставляет скрипт SQL – языка, используемого большинством баз данных для выполнения операций запросов – в поле ввода текста.
Скрипт отправляется приложению, которое выполняет его непосредственно в своей базе данных.
В результате злоумышленник может пройти через экран входа в систему или совершать более опасные действия, такие как чтение конфиденциальных данных непосредственно из  самой базы данных, изменение или уничтожение данных базы данных или выполнение в ней операций администратора.
Приложения PHP и ASP подвержены атакам внедрения SQL из-за своих старых функциональных интерфейсов.
Приложения J2EE и ASP.Net обычно более защищены от этих атак.
При обнаружении уязвимости SQL-инъекций – а их можно легко найти – масштаб потенциальных атак будет ограничен только умением и воображением злоумышленника.
Таким образом, влияние атак использованием SQL-инъекции, несомненно, велико.

Инъекция команд

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

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

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

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

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

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

Браузер жертвы выполняет вредоносный скрипт, не подозревая, что ему нельзя доверять.

Поэтому браузер разрешает ему получать доступ к токенам сеансов, файлам cookie или конфиденциальной информации, хранящейся в браузере.

При правильном программировании сценарии могут даже переписать содержимое файла HTML.

Атаки XSS обычно можно разделить на две категории: хранимые и отраженные.

В хранимых XSS-атаках вредоносный скрипт постоянно находится на целевом сервере, в пуле сообщений, в базе данных, в журнале посещений и т. д.

Жертва получает его, когда браузер запрашивает сохраненную информацию.

В отраженных атаках XSS вредоносный сценарий отражается в ответе, который включает входные данные, отправленные на сервер.

Это может быть, например, сообщение об ошибке или результат поиска.

XPath инъекция

Этот тип атаки возможен в том случае, когда веб-приложение использует информацию, предоставленную пользователем, для создания запроса XPath для данных XML.

Эта атака работает аналогично SQL-инъекции: злоумышленники отправляют искаженную информацию в приложение, чтобы узнать, как структурированы данные XML, а затем снова атакуют, чтобы получить доступ к этим данным.

XPath – это стандартный язык, с помощью которого, подобно SQL, вы можете указать атрибуты, которые хотите найти.

Чтобы выполнить запрос к данным XML, веб-приложения используют пользовательский ввод для установки шаблона, которому должны соответствовать данные.

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

Внедрение команд почты

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

Чтобы использовать SMTP-сервер, злоумышленникам нужна действующая учетная запись электронной почты для отправки сообщений с введенными командами.

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

CRLF инъекция

Вставка символов и перевода строки – комбинации, известной как CRLF, – в поля ввода веб-формы представляет собой метод атаки, называемый инъекцией CRLF.

Эти невидимые символы указывают на конец строки или конец команды во многих традиционных интернет-протоколах, таких как HTTP, MIME или NNTP.

Например, вставка CRLF в HTTP-запрос с последующим определенным HTML-кодом может отправлять пользовательские веб-страницы посетителям веб-сайта.

Эта атака может быть выполнена на уязвимых веб-приложениях, которые не применяют надлежащую фильтрацию к пользовательскому вводу.

Эта уязвимость открывает двери для других типов атак с использованием инъекций, таких как XSS и внедрение кода.

Внедрение заголовков хоста

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

Значение заголовка сообщает серверу, на какой виртуальный хост отправлять запрос.

Когда сервер получает неверный заголовок узла, он обычно передает его первому в списке виртуальному узлу.

Это представляет собой уязвимость, которую злоумышленники могут использовать для отправки произвольных заголовков узлов первому виртуальному узлу на сервере.

Инъекция LDAP

LDAP – это протокол, разработанный для облегчения поиска ресурсов (устройств, файлов, пользователей) в сети.

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

Запросы LDAP включают использование специальных управляющих символов, которые влияют на его управление

Злоумышленники могут потенциально изменить предполагаемое поведение запроса LDAP, если они могут вставить в него управляющие символы.

Предотвращение инъекционных атак

Как мы увидели в этой статье, все инъекционные атаки направлены на серверы и приложения с открытым доступом в Интернете.
Ответственность за предотвращение этих атак распределяется между разработчиками приложений и администраторами серверов.
Разработчики приложений должны понимать риски, связанные с неправильной проверкой пользовательского ввода, и изучать лучшие практики для очистки пользовательского ввода в целях предотвращения рисков.
Администраторы серверов должны периодически проверять свои системы, чтобы обнаруживать уязвимости и исправлять их как можно скорее.
Существует много вариантов выполнения этих аудитов, как по запросу, так и автоматически.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *