Tanner
@Tanner
Огромный человекоподобный боевой робот

«Компилятору не место на боевом сервере» ‒ истина или предрассудок?

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

Обобщённо говоря, в gcc, ld, as, make и прочих инструментах нет такого кода, который можно было бы эксплуатировать для повышения привилегий; эти функции там не нужны. Если же у злоумышленника уже есть лишние права или способ их поднять, то неважно, как именно он доставит эксплойт на машину-жертву: в виде текста или готового бинарника.

Подходя к вопросу с другой стороны, я не припомню ни одного массового эксплойта, который был бы основан на уязвимости компилятора. Ну, и ещё мне как-то трудно представить безопасный сервер на Gentoo или FreeBSD, на котором не было бы компилятора.

Разумеется, мой кругозор в области инфобеза весьма ограничен, поэтому обращаюсь к коллективному разуму. Может ли удаление компилятора из инсталляции UNIX-подобного или Linux-сервера повысить безопасность, и если да, то каким именно образом? И если есть какие-то исторические прецеденты, которые сейчас неактуальны, то было бы очень интересно узнать о них.

Спасибо.
  • Вопрос задан
  • 911 просмотров
Решения вопроса 1
@asd111
Вы правы.
Компилятор не является способом получения удаленного доступа.
Основные способы - ошибки в ftp, ssh, smtp, web сервера, интерпретатора либо слабые пароли.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
martin74ua
@martin74ua Куратор тега Linux
Linux administrator
наличие компилятора - просто дополнительное облегчение для взломщика.
Пример. Допустим, на сервере живет хостинг. И на одном из сайтов обнаружилась дырочка, позволяющая заливать файлы. И предположим у взломщика есть описание уязвимости, имеющейся на сервере. Для того, чтобы ей воспользоваться - надо собрать код, запустить бинарник и радоваться )
Так вот, проще загрузить исходник, собрать его на месте, и запустить. Бинарник залить тоже можно, но надо соблюсти архитектуру, версии библиотек, ядра... А загружать кроме исходника трояна еще и тулчейн по его сборке....
Ответ написан
@Eddy_Em
Полный бред. а как компилять сишные скрипты, CGI и т.п.?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы