Атаки переполнения буфера используются хакерами для поиска уязвимостей уже более 30 лет. Они позволили хакерам контролировать устройства пользователей и даже нарушать интернет-соединения по всему миру.

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

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

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

Что такое атака на переполнение буфера?

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

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

Примеры атак на переполнение буфера

Атака Morris Worm, 1988

Самым ярким примером переполнения буфера является атака Morris Worm – одна из первых сложных кибер-атак, в которой использовались вредоносные программы (червь).

Роберт Моррис

Сначала червь атаковал буфер, и в результате хаоса непреднамеренно произошел сбой ARPANET (сети, которая стала основой для интернета) через отказ в обслуживании (DoS). Атака не требовала взаимодействия с человеком, поскольку копировалась сама по себе на хост-системе.

Атака SQL Slammer, 2003

SQL Slammer Attack – это компьютерный червь, который заразил 75 000 пользователей всего за 10 минут.

Он также поразил несколько DNS-серверов, многие провайдеры потеряли соединение и замедлил интернет-трафик по всему миру. Эта атака использовала уязвимость переполнения буфера в продуктах баз данных Microsoft SQL Server и Desktop Engine.

Атака WhatsApp, 2019

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

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

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

Это может оказаться полезным: Лучшие частные поисковые системы для безопасного просмотра интернет-страниц

Как предотвратить атаки на переполнение буфера?

Переполнение буфера обычно происходит из-за ошибок при разработке программного обеспечения. Например:

  • Размер хранилища, необходимый для приложения, может быть недооценен разработчиками и программистами;
  • Программисты могут переоценить возможности буфера и переполнить его;
  • Данные отправляются не в тот буфер;
  • Использование языков программирования C/C ++, которые очень восприимчивы к переполнению буфера, потому что не имеют встроенной защиты;
  • Неспособность регулярно проверять, находятся ли загруженные данные в допустимых пределах размеров буфера.

Наиболее надежный способ защитить приложения и устройства от атак переполнения буфера – это защитить его на уровне языка и написать код на Perl или JavaScript. Другой способ – выполнить проверку границ, чтобы убедиться, что данные в буфере находятся в ее пределах.

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

Если вам интересны новости науки и высоких технологий, подписывайтесь на наш Дзен-канал! Там вы найдете статьи, неопубликованные на сайте.

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here

три × три =