ГлавнаяТехнологииКак работает внедрение кода?

Как работает внедрение кода?

Внедрение кода, часто называемое удаленным выполнением кода (RCE), — это атака, совершаемая благодаря способности злоумышленника внедрить и выполнить вредоносный код в приложение; инъекционная атака. Этот внешний код способен нарушить безопасность данных, поставить под угрозу целостность базы данных или частную собственность. Во многих случаях он может обойти контроль аутентификации, и обычно эти атаки связаны с приложениями, выполнение которых зависит от ввода данных пользователем.

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

пример инъекции1

В приведенном выше примере информационная страница PHP уязвима и будет отображаться, если будет запущен URL-адрес http://example.com/?code=phpinfo();.

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

Типы внедрения кода

В основном существует четыре типа внедрения кода: внедрение SQL, внедрение сценария, внедрение оболочки и динамическая оценка. Все они имеют один и тот же принцип работы, то есть код вводится в приложения и выполняется ими, но я уделю особое внимание двум инъекциям SQL и внедрению скриптов.

Как работают SQL-инъекции

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

Этот метод эффективен только в том случае, если веб-приложение содержит пользовательский ввод, включенный в оператор SQL. Затем можно вставить полезную нагрузку (вредоносный

Типы внедрения кода

на сервере базы данных.

Следующий псевдокод на стороне сервера представляет собой простой пример аутентификации, которая может оказаться уязвимой для SQL-инъекций.

пример инъекции2

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

password' OR 1=1

Это автоматически приводит к выполнению следующего оператора на сервере базы данных:

SELECT id FROM users WHERE username='username' AND password='password' OR 1=1

Что может SQL-инъекция

Это наиболее распространенный тип внедрения кода. Учитывая тот факт, что SQL — это язык, используемый для манипулирования данными, хранящимися в системах управления реляционными базами данных (СУБД), атака с возможностью создания и выполнения операторов SQL может использоваться для доступа, изменения и даже удаления данных.

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

Как предотвратить SQL-инъекции

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

  • Отключите использование динамического SQL – это означает, что нельзя создавать запросы к базе данных на основе пользовательского ввода. При необходимости очистите, проверьте и экранируйте значения перед выполнением запроса с входными данными пользователя.
  • Используйте брандмауэр. Брандмауэр веб-приложений (программный или прикладной) поможет фильтровать вредоносные данные.
  • Покупайте лучшее программное обеспечение. Это просто означает, что программисты будут нести ответственность за проверку и исправление ошибок.
  • Зашифруйте или хешируйте пароли и все другие имеющиеся у вас конфиденциальные данные, включая строки подключения.
  • Избегайте подключения к базе данных с помощью учетных записей с правами администратора, если в этом нет крайней необходимости.

Внедрение скрипта

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

Что может SQL-инъекция

данными, через элементы пользовательского интерфейса. Эту атаку часто называют межсайтовым скриптингом или XSS. <script>, <meta>, <html>, <body>, <embed>, 9 Теги, <frameset>, <img>наиболее часто используются для внедрения скриптов.

Как предотвратить внедрение скриптов

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

  • проверять и очищать вводимые пользователем данные (поля ввода любой формы), удаляя или экранируя потенциально вредоносный контент.
  • очистить строки запроса в URL
  • проверять и очищать все формы данных, массивов и объектов перед выполнением на сервере

Заключение

Проще говоря, профилактика лучше лечения. Благодаря новым обновлениям в технологиях наши системы будут подвергаться большему количеству угроз. Чтобы оставаться в курсе собы

Как предотвратить SQL-инъекции

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

Внедрение скрипта

Как предотвратить внедрение скриптов

Заключение

ПОХОЖИЕ СТАТЬИ

Популярные записи