SQL-инъекция: все еще угроза? Как этого избежать?
Опубликовано: 2020-03-07Нарушения данных настолько распространены, что уже даже не удивляют. Злоумышленники стремятся собрать как можно больше данных. Они ищут учетные данные для входа, информацию о кредитной карте или коммерческую тайну. Как только они получают такие данные, они продают их в даркнете.
Если вы не можете понять, сколько данных они украли до сих пор и сколько они сбросили в темную сеть, вот тревожная цифра. В прошлом году преступники украли и продали 620 миллионов учетных записей только с шестнадцати взломанных веб-сайтов. Да, взлом шестнадцати веб-сайтов может нанести такой ущерб. Но знаете, что хуже? Каждый день взламываются тысячи новых сайтов!
Киберпреступники ежедневно придумывают новые методы взлома. Но это не означает, что они забывают старые методы, такие как SQL-инъекции. Они по-прежнему являются одним из наиболее распространенных векторов атак, которые просты в исполнении и дают плодотворные результаты.
- Что такое SQL-инъекция и чем она опасна?
- Как работает SQL-инъекция?
- Внутриполосная SQL-инъекция
- Слепая SQL-инъекция
- Внеполосная SQL-инъекция
- Эта угроза все еще актуальна?
- Советы по безопасности для предотвращения
- Заключительные слова
Что такое SQL-инъекция и чем она опасна?
Внедрение SQL, также известное как SQLi, представляет собой форму атаки путем внедрения, которая позволяет хакеру выполнить оператор SQL. Инъекционные атаки — это широкая категория различных векторов атак. Но все они позволяют злоумышленникам выполнять опасные действия. Они действуют как системная команда, которая затем выполняется.
Операторы SQL чаще всего используются для добавления или извлечения данных из различных баз данных. Многие известные системы управления, такие как Microsoft SQL Server, Access и Oracle, используют эти операторы.
Поскольку многие широко используемые системы управления базами данных используют операторы SQL, хакеры могут использовать эти системы с помощью SQL-инъекций. Это означает, что преступники могут получить доступ и украсть конфиденциальные данные, хранящиеся в базе данных. Он может включать следующее:
- интеллектуальная собственность.
- Информация о кредитной карте.
- Информация для клиентов.
- адреса.
- секреты компании.
Рекомендуется для вас: Chrome и Firefox: сравнение производительности, безопасности и конфиденциальности!
Как работает SQL-инъекция?
Чтобы выполнить атаку с внедрением SQL-кода, хакер должен найти уязвимые пользовательские данные на веб-сайте или во внутренних приложениях компании.
Например, жертва использует WordPress для своего веб-сайта. В коде может быть уязвимость SQL, которая отправляет пользовательский ввод непосредственно в базу данных без какой-либо очистки. Если хакер обнаружит эту уязвимость, он может отправить команды в соответствующую базу данных. Затем вывод базы данных возвращается в браузер и позволяет хакеру выполнять различные команды. Таким образом, они могут загружать всю базу данных, настраивать новые команды, изменять учетные записи пользователей или создавать новые учетные записи.
Существует три основных формы атак с помощью SQL-инъекций:
- Внутриполосная инъекция SQL:
- SQL-инъекция на основе ошибок.
- SQL-инъекция на основе объединения.
- Слепая SQL-инъекция:
- логический.
- Основанный на времени.
- Внеполосная SQL-инъекция.
Внутриполосная SQL-инъекция
Внутриполосная инъекция SQL является одним из наиболее распространенных типов, поскольку она проста и эффективна. Здесь злоумышленник использует один и тот же канал связи для выполнения атаки и сбора результатов. Он имеет две подвариации — внедрение SQL на основе ошибок и на основе объединения:
- SQL-инъекция на основе ошибок позволяет хакеру заставить базу данных выдавать сообщения об ошибках. Затем они могут использовать эти сообщения об ошибках для сбора информации о самой базе данных.
- SQL-инъекция на основе объединения позволяет преступнику воспользоваться оператором UNION SQL. Он объединяет различные операторы, предоставляемые базой данных, для получения одного HTTP-ответа. Такой ответ часто содержит данные, которыми могут воспользоваться хакеры.
Слепая SQL-инъекция
Слепые SQL-инъекции основаны на поведенческих шаблонах сервера. Они намного медленнее выполняются. Хакер выдает полезные данные и проверяет ответ сервера, чтобы проанализировать его структуру. Они называют это «слепым», потому что данные не попадают непосредственно к хакерам. Таким образом, они не могут видеть никакой информации об эксплойте внутри сети. Он поставляется в двух вариантах, а именно: Boolean и Time-based:
- Логическая вариация позволяет хакеру отправить запрос SQL, который предлагает базе данных вернуть информацию. Информация в ответе HTTP изменяется в зависимости от предыдущего результата.
- Изменение на основе времени позволяет злоумышленнику отправить SQL-запрос непосредственно в базу данных, что заставляет базу данных ждать, прежде чем она сможет отреагировать. Злоумышленник замечает время, необходимое для ответа базы данных, и решает, является ли запрос истинным или ложным. В зависимости от результата HTTP-ответ будет мгновенным или задержанным.
Внеполосная SQL-инъекция
Внеполосная инъекция SQL позволяет хакеру атаковать базу данных только в том случае, если на сервере базы данных включены определенные функции. Это наименее популярный метод внедрения SQL. Многие хакеры используют его как замену для инъекций на основе ошибок и слепых SQL-инъекций.

Эта конкретная атака является вариантом, когда хакер не может использовать один и тот же носитель для выполнения атаки и сбора информации. Или они могут использовать эту инъекцию, когда сервер нестабилен и медленный для выполнения двух других типов инъекций. Этот метод создает запросы DNS и HTTP для пересылки украденных данных.
Вам может понравиться: Советы по оценке и управлению рисками кибербезопасности для малого бизнеса.
Эта угроза все еще актуальна?
SQL-инъекции — одна из старейших форм агрессивных кибератак. Тем не менее, он по-прежнему очень актуален. Два года назад Open Web Application Security Project назвал SQL-инъекции угрозой номер один. Поставщик облачных услуг Akamai создал отчет о состоянии Интернета, в котором установлено, что SQL-инъекции были причиной 65% всех веб-атак с 2017 по 2019 год. Таким образом, можно сказать, что SQL-инъекции по-прежнему встречаются в двух третях веб-атак. в последние годы.
В первом квартале 2017 года на эти векторы приходилось 44% атак на уровне приложений. Что еще хуже, никакая другая форма вектора атаки приложений не растет так быстро, как SQL-инъекции. В ноябре 2018 года произошел еще один значительный всплеск. Было показано, что было совершено более 35 миллионов попыток атак с помощью SQL-инъекций. Эксперты считают, что основной причиной этого всплеска стал курортный сезон. Это то, о чем должны знать все владельцы веб-сайтов, особенно если они работают в сфере розничной торговли. Но даже после окончания курортного сезона SQL-инъекция остается угрозой, о которой вам нужно знать.
Соединенные Штаты являются основной целью атак на уровне приложений. Всего за 17 месяцев на него было совершено около 3 миллиардов атак. Другие популярные жертвы включают Великобританию, Германию, Бразилию, Индию, Японию, Канаду, Австралию, Италию и Нидерланды. Таким образом, можно с уверенностью предположить, что это по-прежнему огромная угроза и что все компании должны принять всесторонние меры предосторожности.
Советы по безопасности для предотвращения
Лучший способ действий для разработчиков — принять меры предосторожности, чтобы предотвратить атаки. Вот самые эффективные меры профилактики:
- Проверка ввода: Проверка ввода проверяет, разрешен ли какой-либо конкретный ввод пользователя или нет. Это означает, что формат, длина и тип должны быть приняты коллективно. Это полезно для борьбы с командами, которые хакер подбрасывает во входную строку.
- Параметризованные запросы. Параметризованные запросы — это способ предварительной компиляции различных операторов SQL. Затем он сохраняет параметры, чтобы оператор мог быть выполнен. Это позволяет базе данных распознавать код и отличать его от обычных входных данных.
- Хранимые процедуры. Им нужно, чтобы разработчики объединили один или несколько операторов SQL в логическую единицу. Это форма кода, которую можно сохранить, как следует из названия, и сохранить на потом.
- Экранирование. Разработчики должны использовать функции экранирования символов, чтобы гарантировать, что СУБД не спутает пользовательский ввод с оператором SQL.
- Брандмауэр веб-приложений: это один из самых безопасных методов предотвращения атак путем внедрения кода SQL. Брандмауэр контролирует трафик, который циркулирует к серверу и от него. Он определяет, какие запросы потенциально опасны, а какие нет. Этого решения достаточно для многих других эксплойтов, поэтому оно всегда прилично.
- Избегайте административных привилегий: разработчики никогда не должны подключать свои приложения к базе данных через учетные записи с root-доступом. В противном случае хакеры могут получить доступ ко всей системе и нанести непоправимый ущерб. Более того, разработчики должны убедиться, что каждая база данных имеет собственный набор учетных данных с ограничениями.
Вам также может понравиться: 10 самых продаваемых программ для обеспечения безопасности в Интернете (антивирусы и безопасность).
Заключительные слова
Любой, кто беспокоится о SQL-инъекциях, не должен забывать и о других возможных атаках. Применяются обычные методы кибербезопасности: используйте надежные пароли, научитесь распознавать угрозы, включайте VPN каждый раз, когда вы подключаетесь к веб-сайтам или базам данных, и так далее. Что такое VPN и что он делает? Он шифрует ваш онлайн-трафик каждый раз, когда вы выходите в интернет. Итак, если вы отправляете запрос SQL в свою базу данных, только БД может его расшифровать. Если кто-то перехватит рассматриваемые пакеты данных, он не поймет в них никакого смысла. Чем больше вы или ваша компания готовы ко всем видам угроз, тем лучше.
Только внедрение комплексных превентивных мер гарантирует, что SQL-инъекции или атаки никогда не будут успешными. Будьте готовы потратить много времени, усилий и денег, чтобы убедиться, что у вас есть надлежащие инструменты для борьбы с различными эксплойтами.