Уязвимости
Переполнение буфера
Также известно как: Buffer overrun
Определение
Ошибка безопасности памяти, при которой программа пишет за концом выделенного буфера, повреждая соседнюю память и часто открывая возможность выполнения кода.
Примеры
- CVE-2014-0160 (Heartbleed): переполнение чтения памяти в OpenSSL.
- Червь Морриса (1988): эксплуатация переполнения стека в fingerd.
Связанные термины
Уязвимость переполнения стека
Переполнение буфера, происходящее на стеке программы, обычно затирающее сохранённый адрес возврата или локальные указатели, чтобы перенаправить выполнение.
Переполнение кучи
Переполнение буфера в динамически выделенной памяти, часто повреждающее метаданные аллокатора, указатели функций или виртуальные таблицы объектов.
Повреждение памяти
Обобщающий термин для уязвимостей, при которых программа пишет за пределы предполагаемой памяти, нарушая типовую безопасность, поток управления или целостность данных.
Использование после освобождения
Ошибка безопасности памяти, при которой программа продолжает использовать память после её освобождения, часто позволяя атакующему управлять состоянием объектов и перехватывать выполнение.
Secure Coding
Secure Coding — definition coming soon.
Фаззинг
Автоматизированная техника тестирования, при которой программу обстреливают большим числом некорректных, случайных или неожиданных входов для выявления крэшей, повреждений памяти и уязвимостей.