Переполнение стекового буфера
-
Основы переполнения стека
- Переполнение стека — это уязвимость, при которой происходит переполнение буфера стека.
- Переполнение стека может привести к выполнению произвольного кода.
- Переполнение стека часто используется в атаках типа «отказ в обслуживании» (DoS).
-
Типы переполнения стека
- Переполнение буфера стека может быть вызвано переполнением буфера, переполнение буфера может быть вызвано переполнением буфера.
- Переполнение буфера может произойти из-за неправильного использования функций, таких как malloc или strcpy.
-
Примеры переполнения стека
- Червь Morris использовал переполнение стека для распространения в 1988 году.
- Червь Slammer использовал переполнение стека в Microsoft SQL Server в 2003 году.
- Червь Blaster использовал переполнение стека в службе Microsoft DCOM в 2003 году.
- Червь Witty использовал переполнение стека в системе интернет-безопасности BlackICE Desktop Agent в 2004 году.
-
Методы эксплуатации переполнения стека
- Эксплуатация переполнения стека включает в себя перезапись указателя инструкции стека.
- Существуют различные методы, такие как использование стековых канареек, неисполняемого стека и рандомизации памяти.
-
Обходные контрмеры
- Существуют методы обхода защиты от переполнения стека, такие как утечка информации с использованием уязвимостей форматной строки и обход неисполняемого стека.
-
Известные примеры атак
- Червь Morris, червь Slammer, червь Blaster и червь Witty использовали переполнение стека для распространения.
- В видеоиграх, таких как Wii, переполнение стека используется для запуска произвольного кода.