Анализ атак на повышение привилегий | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 30 ноября, печатный экземпляр отправим 4 декабря.

Опубликовать статью в журнале

Библиографическое описание:

Ананьин, Е. В. Анализ атак на повышение привилегий / Е. В. Ананьин, И. С. Кожевникова, А. В. Лысенко, А. В. Никишова. — Текст : непосредственный // Молодой ученый. — 2016. — № 28 (132). — С. 8-10. — URL: https://moluch.ru/archive/132/36737/ (дата обращения: 16.11.2024).



Атаки на повышение привилегий — это такие атаки, в которых злоумышленник эксплуатирует ошибку в программном обеспечении, чтобы получить доступ к ресурсу, который обычно защищен от приложения или пользователя, что приводит к изменению привилегий для выполняемых вредоносных действий, которые осуществляются с большими привилегиями, чем предполагалось разработчиком приложения и системным администратором [1]. Известные атаки в этом типе в можно разделить на две категории:

  1. Вертикальное повышение привилегий — от пользователя до суперпользователя [2]: низкопривилегированный пользователь с обычной учетной записью в системе использует уязвимости ПО для доступа к функциям или данным, которые доступны только для более привилегированных пользователей или суперпользователей.
  2. Горизонтальное повышение привилегий — от не-пользователя системы к пользователю: обычный пользователь с обычным доступом или без какой-либо учетной записи в системе, использует некоторую уязвимость системы или ПО для того, чтобы получить доступ к функциям или контенту, доступные для других обычных пользователей [3].

Некоторые примеры хорошо известных атак на повышение привилегий описаны в данной статье.

Атаки на переполнение буфера.

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

Широко известная атака на переполнение буфера была проведена на Microsoft Outlook и Outlook Express в 2000 году [4]. Из-за ошибки в коде, сделанной Microsoft, злоумышленники были способны выполнить любой код на компьютере-жертве, просто отправив письмо по электронной почте. В отличие от других типичных почтовых вирусов, пользователи не могли защитить себя, не открывая вложенные файлы, поскольку уязвимость была в алгоритме обработки заголовка сообщения, поэтому вредоносный код выполнялся в системе в тот самый момент, как письмо загружалось с сервера. Некоторые другие хорошо известные атаки на переполнение буфера для повышения привилегий использовали Sendmail, который переполняет буфер в алгоритме декодирования MIME в Sendmail (SMTP)-службы на системах с Linux и IMAP, которая использует ошибку в коде авторизации транзакции входа в систему из IMAP-службы на Linux-системах.

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

Атаки на системы снеправильной конфигурацией

Каждая система безопасности должна быть настроена администратором для некоторых параметров, чтобы применить необходимую часть политики безопасности и гарантировать, что система предоставляет только те функциональные возможности, в которых нуждаются пользователи. Как правило, это означает, включение только необходимых частей системы и отключение прочих [5]. Проблема может возникнуть, когда администратор забывает отключить ненужные пользователю части системы. Любая неверная или незавершенная настройка системы может быть использована злоумышленниками для того, чтобы преодолеть защитный барьер или узнать о возможной уязвимости в системе. В результате неправильная настройка системы или неустановленное вовремя обновление ПО, стала одним из самых значительных уязвимостей предприятий, с которым сталкиваются в последнее время, и прогноз показывает, что на такие атаки приходиться 70 % успешных атак WLAN в течение 2009 года.

Некоторые хорошо известные примеры таких атак — bruteforce атака на FTPWrite. Злоумышленник знает имя пользователя и подбирает пароля из списка возможных паролей. Если администратор не меняет имя пользователя и пароль по умолчанию, угадать возможные пароли будет очень легко. Brute-force атака может быть обнаружена и предотвращена путем установки максимального числа неудачных попыток входа для каждой службы или при необходимости вставляя некоторую задержку между двумя последовательными попытками входа в систему. Другой атакой на FTP является использование гостевой учетной записи. При неправильно настроенных правах гостевого пользователя и директорий, гость сможет создавать и загружать в директории других пользователей и суперпользователя файлы, например файл rhosts, который позволит получить злоумышленнику доступ к системе с большими правами нежели доступны гостевой учетной записи. Мониторинг гостевых аккаунтов и отслеживание создаваемых ими файлов легко пресечет такого рода атаку.

«Состояние гонки»

Состояние гонки — ошибка проектирования многопоточной системы или приложения, при которой работа системы или приложения зависит от того, в каком порядке выполняются части кода. Своё название ошибка получила от похожей ошибки проектирования электронных схем. Состояние гонки — «плавающая» ошибка, проявляющаяся в случайные моменты времени и «пропадающая» при попытке её локализовать.

Хорошо известный пример это атака при входе пользователя в старых версиях Unix-систем, в которой, когда создается новый процесс «login», существует короткий промежуток времени, когда новый процесс выполняется в режиме приоритета (kernel или root) и еще не переключился на нормальный режим работы пользователя [6]. В это время, если пользователь несколько раз нажал кнопку «ESC» во время входа в систему, то возможно, что будет отменено изменение от root к user, давая человеку полные права и доступ ко всей системе. Появления такой уязвимости зависело только от того, была ли нажата клавиша «ESC» до или после перехода системы к пользовательскому режиму.

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

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

Атака «Man-In-The-Middle»

Атака Man-In-The-Middle(MITM) является одной из форм активного перехвата в которой злоумышленник контролирует весь диалог между жертвами, делая независимое соединение с каждой жертвой, передавая сообщения между жертвами и имитировать, что они говорят непосредственно друг с другом по частной связи. Для того чтобы провести успешную атаку MITM, атакующий должен иметь возможность перехватывать все сообщения, идущие между двумя жертвами, вводить новые и выдавать себя за каждую конечную точку [7]. Хотя большинство криптографических протоколов или иной форме механизмов аутентификации конечных точек может предотвратить MITM-атаки, они все равно часто используются злоумышленником в любых сетях, например, атаки на пользователей в общедоступной беспроводной сети.

Сильный механизм шифрования является лучшей контрмерой против MITM-атак, например использование SSH вместо Telnet, механизмы шифрования файлов (например, PGP или Entrust), или контрольные суммы сеансов.

Литература:

  1. R. Albert, H. Jeong, and A. Barabasi, Error and attack tolerance in complex networks, Nature 406 (2000), 387–482.
  2. H. Aljifri, M. Smets, and A. Pons, IP traceback using header compression, Computers &Security 22 (2003), no. 2, 136–151.
  3. Никишова А. В. Программный комплекс обнаружения атак на основе анализа данных реестра // Вестник Волгоградского государственного университета. Серия 10. Инновационная деятельность. — 2012. — № 6. — С.152–155.
  4. Аткина В. С. Оценка эффективности катастрофоустойчивых решений // Вестник Волгоградского государственного университета. Серия 10. Инновационная деятельность.. — 2012. — № 6. — С. 45–48.
  5. S. M. Bellovin, M. Leech, and T. Taylor, ICMP traceback messages, (2000).
  6. V. Berk, G. Bakos, and R. Morris, Designing a framework for active worm detection on global networks, Proceedings of the IEEE InternationalWorkshop on Information Assurance (Darmstadt, Germany), 2003.
  7. N. Brent, G. Lee, and H. Weatherspoon, Netbait: a distributed worm detection service, Tech.Report IRB-TR-03–033, Intel Research Berkeley, September 2003.
Основные термины (генерируются автоматически): атака, переполнение буфера, MITM, система, злоумышленник, повышение привилегий, пользователь, FTP, гостевая учетная запись, программное обеспечение.


Задать вопрос