Назад | Перейти на главную страницу

Безопасность удаленного сервера: обработка инструментов компилятора

Мне было интересно, удалить ли инструменты компилятора (gcc, make, ...) с удаленного рабочего сервера, в основном в целях безопасности.

Задний план:
На сервере работает веб-приложение в Linux. Считайте, что Apache заключен в тюрьму. В противном случае только OpenSSHd выходит на открытую сеть. Конечно, в тюрьме нет компилятора, так что речь идет о фактической ОС за пределами тюрьмы.

Вот мой личный список PRO / CON (относительно удаления):

ЗА:

ПРОТИВ:

Хорошо, вот мои вопросы к вам:

(а) Верна ли моя оценка PRO / CON?

(b) Знаете ли вы о других преимуществах / недостатках удаления всех инструментов компилятора? Они весят больше?

(c) Какие двоичные файлы я должен считать опасными, если данный оператор PRO верен? Только gcc, или также make, или что еще? Следует ли мне удалить поставляемые с ними программные пакеты enitre?

(d) Можно ли просто переместить эти двоичные файлы в каталог, доступный только для root, когда они не нужны? Или есть выигрыш в безопасности, если я каждый раз "вставляю их"?

Спасибо!

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

Я был бы очень осторожен с тем, какие службы я запускал на машине: все, что связано с внешним миром, является потенциальной уязвимостью. В противном случае я бы удалил компиляторы только для того, чтобы мои программисты были честны. Я не думаю, что в наши дни это сильно повышает безопасность.

Распространенная мудрость «правильного способа делать что-то» заключается в размещении минимально необходимого на серверах. Если вам не нужны компиляторы, не кладите их туда. Это еще одна вещь, которую в случае взлома системный взломщик потенциально может использовать против вашей системы, и он вводит больше двоичных файлов, в которых могут быть ошибки, которыми можно воспользоваться.

Это также освобождает место на сервере.

Тем не менее, я думаю, что есть много малых офисов и малых предприятий (и людей, которые не анализируют безопасность или передовые методы), которые оставляют компиляторы и дополнительные инструменты на своих серверах и не считают это большим делом.

Если вы хотите перестраховаться, удалите их. Установите двоичные файлы, которые вы предварительно собрали, или протестируйте себя на другом компьютере, или установите из надежных репозиториев. Это также сэкономит место и немного упростит резервное копирование.

Если это критически важный производственный сервер, вам, вероятно, не стоит играть на нем с неизвестными конфигурациями тестового ядра. Вы бы построили его на другом оборудовании, а затем перенесли бы. Обычно мы просто используем «достаточно хорошие» ядра из репозиториев нашего дистрибутива, выбранных для нашей платформы, поэтому в нашем случае перекомпиляция не производится.