Рубрика «fuzzing» - 2

Поиск уязвимости методом фаззинга и разработка шеллкода для её эксплуатации - 1 Для поиска уязвимостей все средства хороши, а чем хорош фаззинг? Ответ прост: тем, что он дает возможность проверить, как себя поведёт программа, получившая на вход заведомо некорректные (а зачастую и вообще случайные) данные, которые не всегда входят во множество тестов разработчика.

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

В этой статье мы:

  • продемонстрируем, как фаззить обработчик JSON-запросов;
  • используя фаззинг, найдём уязвимость переполнения буфера;
  • напишем шеллкод на Ассемблере для эксплуатации найденной уязвимости.

Разбирать будем на примере исходных данных задания прошлого NeoQUEST. Известно, что 64-хбитный Linux-сервер обрабатывает запросы в формате JSON, которые заканчиваются нуль-терминатором (символом с кодом 0). Для получения ключа требуется отправить запрос с верным паролем, при этом доступа к исходным кодам и к бинарнику серверного процесса нет, даны только IP-адрес и порт. В легенде к заданию также было указано, что MD5-хеш правильного пароля содержится где-то в памяти процесса после следующих 5 символов: «hash:». А для того, чтобы вытащить пароль из памяти процесса, необходима возможность удалённого исполнения кода.
Читать полностью »

Security Week 49: Google фаззит опенсорс, Android-троян крадет учетные записи, Microsoft чинит старый баг - 11 декабря команда специалистов по безопасности Google анонсировала новую программу OSS-Fuzz в рамках которой планирует выделить ресурсы на непрерывный фаззинг ПО с открытым исходным кодом (новость, пост в блоге Google Security). Фаззинг — это метод автоматизированного тестирования программ, идея которого была сформулирована еще в конце 80-х (PDF). С ростом производительности компьютеров достаточно прямолинейный процесс скармливания софту произвольных данных в поиске уязвимостей становится все актуальнее. Да и вообще, в мире где компьютерами все чаще управляют другие компьютеры, это годная тема, уже включенная, например, в методику Secure Development Lifecycle у Microsoft.

Объясняя успешность подхода именно по отношению к свободному ПО, в Google приводят пример уязвимости в библиотеке Freetype, обнаруженной фаззером OSS-Fuzz. Freetype установлена на миллиардах устройств, и поэтому исследовать такой софт важно. Серьезные уязвимости в опенсорсе вроде Heartbleed показали, что сама возможность независимого аудита не равняется повышенной безопасности. У людей просто не хватает рук проанализировать все, поэтому на сцену выходят роботы. Странно, что в Google ничего не рассказывают про фаззинг Android, хотя исследователи из других компаний таки этим занимаются.

На самом деле главная польза проекта заключается в том, что Google приглашает сторонних исследователей и мейнтейнеров открытого софта, по сути предоставляя им вычислительные ресурсы в рамках проекта. В своих впечатлениях исследователь и разработчик Алекс Гэйнор пишет, что меньше чем за день его тестовый код, добавленный в OSS-Fuzz, обработал 17 триллионов тестовых кейсов, на что в домашних условиях у него ушел бы месяц.
Читать полностью »

Анализ защищенности терминалов общего пользования - 1

Игра Watch Dogs прекрасно описывает недалекое будущее: вокруг всевозможные девайсы, средства выдачи и приема наличных, а также разнообразные имеющие доступ в интернет устройства, нашпигованные уязвимостями, эксплуатация которых позволяет хакеру извлечь определенную выгоду. Например, в игре главный герой при помощи смартфона может скомпрометировать систему видеонаблюдения, получив тем самым возможности вести слежку и добывать дополнительную информацию.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js