Безпека завжди стосується компромісів. Так само, як і пословічний сервер, який знаходиться в безпечному, відключеному від мережі, на дні океану, root
був би найбільш безпечним, якби взагалі не було доступу до нього.
LD_PRELOAD та PATH-атаки, як ті, кого ви описуєте, припускають, що є зловмисник, який вже має доступ до вашого акаунта, або, принаймні, до ваших дотфілів. Судо взагалі не дуже добре захищає від цього - якщо у вас є ваш пароль, зрештою, не потрібно намагатися обманути вас на потім ... вони можуть просто sudo
зараз використовувати .
Важливо врахувати, для чого судо було розроблено судо: делегування певних команд (як, наприклад, для управління принтерами) "суб-адміністраторам" (можливо, студентам класів у лабораторії), не віддаючи повністю корінь. Використання sudo для виконання всього - це найпоширеніше використання, яке я бачу зараз, але це не обов'язково проблема, яку програма мала на меті вирішити (отже, смішно складний синтаксис конфігураційного файлу).
Але, Судо-для-необмежений корінь робить рішення ще однієї проблем безпеки: керованості кореневих паролів. У багатьох організаціях вони, як правило, передаються як цукерки, написані на дошках, і залишаються такими ж назавжди. Це залишає велику вразливість, оскільки відкликання або зміна доступу стає великим виробничим числом. Навіть відслідковувати, на якій машині є який пароль, є проблемою - не кажучи вже про те, щоб відстежити, хто знає, який саме.
Пам'ятайте, що більшість "кіберзлочинів" походить зсередини. Описуючи ситуацію з кореневим паролем, важко відстежити, хто що робив - щось судо із віддаленим веденням журналу справляється досить добре.
Що стосується вашої домашньої системи, я думаю, що це справді більше питання зручності не запам’ятовувати два паролі. Цілком ймовірно, що багато людей просто встановлювали їх однаковими - або ще гірше, встановлюючи їх такими ж, а потім дозволяючи вийти з синхронізації, залишаючи кореневий пароль гниття.
Використовувати паролі взагалі для SSH небезпечно, тому що нюхаючи паролем троянізовані ssh-демони встановлюються на щось на зразок 90% компромісів із реальною системою, які я бачив. Набагато краще використовувати SSH ключі, і це може бути працездатною системою і для віддаленого кореневого доступу.
Але проблема в тому, що тепер ви перейшли від управління паролем до керування ключами, і ключі ssh насправді не дуже керовані. Немає можливості обмежувати копії, і якщо хтось робить копію, у них є всі спроби, які вони хочуть, щоб жорстоко примусити парольну фразу. Ви можете скласти політику, кажучи, що ключі потрібно зберігати на знімних пристроях і монтувати їх лише за потреби, але немає можливості цього примусово застосовувати - і тепер ви запровадили можливість загубленого або викраденого знімного пристрою.
Найвища безпека буде забезпечуватися одноразовими ключами або криптографічними маркерами на основі часу / лічильника. Це можна зробити за допомогою програмного забезпечення, але обладнання, стійке до фальсифікації, ще краще. У світі з відкритим кодом є WiKiD , YubiKey або LinOTP , і звичайно є також власна RSA SecurID у важкій вазі . Якщо ви є середньою чи великою організацією або навіть малою мірою безпекою, я настійно рекомендую вивчити один із цих підходів для адміністративного доступу.
Це, мабуть, надмірна кількість для дому, але там, де у вас справді не виникає труднощів із управлінням, доки ви дотримуєтесь розумних практик безпеки.