Строка неконтролируемого формата

Строка неконтролируемого формата Определение и история уязвимости форматной строки Уязвимость форматной строки — это тип уязвимости, связанный с внедрением кода, […]

Строка неконтролируемого формата

  • Определение и история уязвимости форматной строки

    • Уязвимость форматной строки — это тип уязвимости, связанный с внедрением кода, который был обнаружен в 1989 году. 
    • Изначально считалось, что эксплойты форматной строки безвредны, но они могут использоваться для аварийного завершения программы или выполнения вредоносного кода. 
    • Проблема связана с использованием непроверенного пользовательского ввода в качестве параметра format string в функциях C, таких как printf(). 
  • Эксплуатация уязвимости

    • Злоумышленник может использовать токены формата для печати данных из стека вызовов или других мест в памяти. 
    • Уязвимость позволяет записывать произвольные данные в произвольные места, используя токен формата %n. 
    • Типичный эксплойт включает комбинацию методов для контроля над указателем команд процесса. 
  • Причины и последствия уязвимости

    • Ошибки форматирования строк часто возникают из-за неправильного использования спецификаторов формата. 
    • Механизм varargs в C не является типобезопасным, что позволяет злоумышленникам использовать ошибки форматирования для выполнения кода. 
    • Ошибки в форматировании строк встречаются и в других языках программирования, но реже и не всегда могут быть использованы для атаки. 
  • История обнаружения и распространения

    • Ошибки форматирования были обнаружены в 1989 году во время тестирования в Университете Висконсина. 
    • Использование ошибок форматной строки в качестве вектора атаки было обнаружено в 1999 году. 
    • Первые эксплойты, привлекающие внимание к проблеме, были опубликованы в июне 2000 года. 
  • Предотвращение уязвимости в компиляторах

    • Многие компиляторы могут статически проверять формат строки и выдавать предупреждения. 
    • Приложения должны проверять строку формата перед ее использованием, а также быть осторожными при генерации или выборе строк формата «на лету». 
  • Обнаружение уязвимости

    • Уязвимость легко обнаруживается в исполняемых файлах, скомпилированных на x86, благодаря соглашению о вызове. 
    • Неправильное использование функций семейства printf может быть обнаружено путем подсчета количества аргументов, переданных функции. 
  • Рекомендации и дальнейшее чтение

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

Полный текст статьи:

Строка неконтролируемого формата — Википедия

Оставьте комментарий

Прокрутить вверх