OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Понедельник, 19 Август, 2019 04:23

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Stack Overflow Attack
СообщениеДобавлено: Вторник, 17 Март, 2015 11:22 

Зарегистрирован: Вторник, 01 Март, 2011 09:34
Сообщения: 368
Откуда: Москва
Почему-то раньше не сталкивался с этой темой...
ПО на С/С++ имеет уязвимость при переполнении стека.
Код:
#include <string.h>
 
void vuln(const char *str)
{
  char buf[20];
  strcpy(buf, str);
}
 
int main(int argc, char *argv[])
{
  vuln(argv[1]);
  return 0;
}

При вызове с параметром более 20 символов контроля границ не происходит и перетирается поле, содержащее адрес возврата из процедуры (ибо стек растет от больших адресов к меньшим). Обычно это приводит к Segmentation Fault. Но можно сформировать такую строчку, которая перетрет адрес возврата осмысленно, чтобы вызвать потенциально вредоносное ПО "по свистку от хакера".

Способ борьбы опция -fstack-protector (там дополнительная загрузка процессора)
Цитата:
The command line flag -fstack-protector switches SSP on. -fno-stack-protector switches it off. If nothing is specified at the invocation of gcc, whether SSP is switched on or off by default depends on the system and the configuration of gcc. Some systems (like OpenBSD) switch SSP on. Others (like Debian GNU/Linux) switch it off.


Подробности в http://www.drdobbs.com/security/anatomy-of-a-stack-smashing-attack-and-h/240001832


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Stack Overflow Attack
СообщениеДобавлено: Вторник, 17 Март, 2015 11:37 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2309
Откуда: Россия, Томск
Дмитрий Дагаев писал(а):
Почему-то раньше не сталкивался с этой темой...
ПО на С/С++ имеет уязвимость

ПО на С/С++ имеет уязвимость? Не, не слышал.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Stack Overflow Attack
СообщениеДобавлено: Вторник, 17 Март, 2015 22:51 
Аватара пользователя

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1162
Откуда: Tel-Aviv
http://stackoverflow.com/a/610288


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Stack Overflow Attack
СообщениеДобавлено: Среда, 18 Март, 2015 08:02 

Зарегистрирован: Пятница, 26 Август, 2011 23:42
Сообщения: 339
Откуда: Россия, Самара
По на си решето.

В С++ есть std::string, который не подвержен данным ошибкам.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Stack Overflow Attack
СообщениеДобавлено: Среда, 18 Март, 2015 14:54 

Зарегистрирован: Пятница, 26 Август, 2011 23:42
Сообщения: 339
Откуда: Россия, Самара
Есть подвижки в сторону, безопасности.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Stack Overflow Attack
СообщениеДобавлено: Четверг, 19 Март, 2015 08:55 

Зарегистрирован: Вторник, 01 Март, 2011 09:34
Сообщения: 368
Откуда: Москва
Как strcpy переписать - известно, но задача состоит в правильной сборке Linux из исходников.
Jordan писал(а):

А вот это действительно очень интересно, спасибо.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2019, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB