URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 9253
[ Назад ]

Исходное сообщение
"Безопасность демона"

Отправлено Fx , 07-Окт-11 23:09 
Здравствуйте,

Простите за глупый вопрос, но кто и что может сказать по безопасности ПЕРЕМЕННЫХ демона, если он от пользователя через веб-форму получает данные и помешает их в переменные std::string (потом даже пишет на диск). Есть ли какие-то нюансы, возможно спец. символы, которые в память нельзя записывать, чтобы целостность данных не нарушилась, чтобы демон не упал или еще хуже злоумышленник не получил доступ к диску и тд.

Если есть такие нюансы, то на что проверять данные?

Спасибо


Содержание

Сообщения в этом обсуждении
"Безопасность демона"
Отправлено Вова , 08-Окт-11 09:21 
> Здравствуйте,
> Простите за глупый вопрос, но кто и что может сказать по безопасности
> ПЕРЕМЕННЫХ демона, если он от пользователя через веб-форму получает данные и
> помешает их в переменные std::string (потом даже пишет на диск). Есть
> ли какие-то нюансы, возможно спец. символы, которые в память нельзя записывать,
> чтобы целостность данных не нарушилась, чтобы демон не упал или еще
> хуже злоумышленник не получил доступ к диску и тд.
> Если есть такие нюансы, то на что проверять данные?
> Спасибо

Вы не можете подать сокету для буфера std:string, буфер всегда участок памяти, соответственно необходимо контролировать размер читаемых данных.


"Безопасность демона"
Отправлено Fx , 08-Окт-11 13:35 

> Вы не можете подать сокету для буфера std:string, буфер всегда участок памяти,
> соответственно необходимо контролировать размер читаемых данных.

да, точно, если переполнить буфер, то перезапишется какой-то другой участок памяти с разными последствиями, это верно, еще раз проверю этот помент, но вроде бы реализовал чтение по 256 символов из сокета и потому добавление их к std::string т.е. все безопасно.

Еще какие-то моменты могут быть при работе с этими данными, при условии, что в buf а потом и в std::string попадают любые данные от злоумышленника.
Позже std::string не ограничено в использовании, в том числе пишется на диск.
Нужны ли дополнительные проверки где-то еще?
Т.е. я так понимаю, главное чтобы не было ситуации, что в std::string не оказался какой-то бинарный код, который неожиданно выполнится процессором.

Спасибо.


"Безопасность демона"
Отправлено Вова , 08-Окт-11 21:33 
>[оверквотинг удален]
> разными последствиями, это верно, еще раз проверю этот помент, но вроде
> бы реализовал чтение по 256 символов из сокета и потому добавление
> их к std::string т.е. все безопасно.
> Еще какие-то моменты могут быть при работе с этими данными, при условии,
> что в buf а потом и в std::string попадают любые данные
> от злоумышленника.
> Позже std::string не ограничено в использовании, в том числе пишется на диск.
> Нужны ли дополнительные проверки где-то еще?
> Т.е. я так понимаю, главное чтобы не было ситуации, что в std::string
> не оказался какой-то бинарный код, который неожиданно выполнится процессором.

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