Деякі люди будуть стверджувати, що наявність інструментів розробки на виробничій машині полегшить життя нападнику. Однак це настільки крихітна дорога до зловмисника, що будь-який інший аргумент, який ви можете знайти за або проти встановлення інструментів розробки, буде важити більше.
Якщо зловмиснику вдалося проникнути в систему так далеко, щоб вони могли викликати будь-які інструменти, наявні на сервері, то у вас вже є серйозне порушення безпеки. Без інструментів розробки існує багато інших способів записувати бінарні дані у файл, а потім запустити chmod у цьому файлі. Зловмисник, який бажає використовувати користувальницьку виконувану програму в системі в цей момент, може так само добре побудувати її на своїй машині та перенести її на сервер.
Є й інші набагато релевантні речі, на які слід звернути увагу. Якщо встановлена частина програмного забезпечення містить помилку безпеки, існує декілька способів її впливу на зловмисника:
- Пакет може містити виконуваний файл suid або sgid.
- Пакет може бути запуском послуг у системі.
- У пакеті можуть бути встановлені сценарії, які автоматично викликаються за певних обставин (це включає завдання cron, але сценарії можуть викликатися іншими подіями, наприклад, коли стан мережевого інтерфейсу змінюється або коли користувач входить у систему).
- У пакеті можуть бути встановлені вставки пристроїв.
Я б не очікував, що інструменти розробки відповідають одному з перерахованих вище, і як такий не є пакетом високого ризику.
Якщо у вас є робочі процеси, в яких ви б використовували інструменти розробки, то спочатку ви повинні вирішити, чи це розумні робочі процеси, і якщо вони є, вам слід встановити інструменти розробки.
Якщо ви виявите, що ці інструменти вам не потрібні на сервері, вам слід утримуватися від їх встановлення з кількох причин:
- Економить місце на диску як на сервері, так і на резервних копіях.
- Менш встановлене програмне забезпечення полегшує відстеження ваших залежностей.
- Якщо вам не потрібен пакет, немає ніякого сенсу брати на себе додатковий ризик безпеки від його встановлення, навіть якщо цей ризик безпеки є невеликим.
Якщо ви вирішите, що з міркувань безпеки ви не дозволите непривілейованим користувачам розміщувати власні виконавчі ярлики на сервері, тоді вам слід уникати не інструментів розробки, а каталогів, доступних для цих користувачів у файлових системах, встановлених з дозволом на виконання. Навіть за таких обставин може використовуватися інструмент розробки, але це не дуже ймовірно.