Віддалений консультант адміністратора Linux - найкраща практика [закрито]


19

Ми залучаємо консультанта в Індії як наш адміністратор Linux. Ми його не знаємо добре, і він вимагає кореневого доступу до всіх наших серверів, щоб виконувати свою роботу (включаючи аудит безпеки).

Яка найкраща практика для надання віддаленому консультанту такої роботи, щоб ми були захищені від будь-якої злоякісної діяльності?

Заздалегідь спасибі.


66
Якщо ви комусь не довіряєте, не надайте їм доступ до ваших серверів. Період. Найміть когось, якому ви можете довіряти.
EEAA

6
Не можу не задатися питанням, чи це дія, яку доручають вищі особи, і ви шукаєте боєприпаси / хороші аргументи проти цього?
Метт

5
LOL ... Це гарна ідея?
ewwhite

5
Якщо ви надаєте комусь кореневий доступ до своїх серверів, у вас зовсім немає можливості систематично захистити себе від злоякісних дій на машині (машинах), до якої людина має кореневий доступ.
Крейг

3
Сподіваюся, у вас є хороші резервні копії в режимі офлайн
CaffeineAddiction

Відповіді:


55

Не варто . Крім того , ви в такий же небезпеки бездарності як злість від того, що я бачив звичайним способом компанії впоратися з цим.

Я хотів би сказати, що там, мабуть, чудові системні адміністратори в Індії, але те, як багато компаній роблять справи, жахливе.

Якщо ви переходите до магазину для кузовів, ви, ймовірно, побачите, що до них піде досить великий зріз, і багато з них навряд чи правильно перевірять своїх працівників. Я розмовляв з трьома, з яких я працював, і жоден з них не робив жодних технічних інтерв'ю.

Тож, якщо вам потрібно когось найняти віддалено, ради бога, опитайте його самі і переконайтеся, що він знає його роботу. Системне адміністрування є надто важливим, щоб передати комусь наосліп

Тепер, коли я вирішив "невмілість" його частини,

Адміністрація - досить широка фраза. А хтось із кореневим доступом може зробити все, що завгодно . Тепер я особисто думаю, що створити обліковий запис для адміністратора та дати йому можливість піднятися через sudo - це краща ідея (з якою має працювати ваша система управління конфігураціями, якщо у вас є багато серверів). Але це навіть покладається на певну довіру. Тут так багато історій про саму шкоду, яку може зробити незадоволений систематик. Змінити всі ваші паролі? Звичайно, ви могли б потрапити в підсумку, але це не банально, і це, ймовірно, обійдеться дорожче, ніж ви економите.

Отже, вважайте місцевим. Якщо ні, то розгляньте когось, кого ви самі перевірили і безпосередньо найняли .


35
Мені досить важко дати привілейований доступ хлопцеві на одну двері вниз від мене, не кажучи вже про когось на 12 часових поясах. Моя думка кидається в очі, що хтось навіть вважатиме це варіантом.
EEAA

7
Якщо ви переходите до магазину, ви навіть не дізнаєтесь, хто справді має ці кореневі дані, ви не маєте гарантії, що людина, яка сьогодні працює над вашими системами, - це та сама людина, яка буде працювати над ними завтра, у вас немає гарантії, що ці хлопці буквально не будуть надсилати ваші паролі на кореневому рівні одночасно один одному (я бачив це занадто багато разів) тощо.
Крейг

2
Ніхто не повинен увійти в сучасний дистрибутив Linux як root. У кореневому обліковому записі навіть не повинно бути пароля. Натомість повинні бути користувачі, які мають suповноваження підняти себе на корінь. Коли хтось каже, що їм потрібен "кореневий доступ", це те, про що вони повинні просити. Якщо ця людина каже, що йому потрібен "корінний пароль", він все одно не має права виконувати цю роботу.
Monty Harder

@MontyHarder Ви маєте на увазі, що (певні) користувачі повинні мати sudoповноваження підніматись до root? Якщо ні, чи можете ви окреслити свої найкращі методи використання suдля піднесення себе до root, не маючи і не поширюючи кореневий пароль?
MadHatter підтримує Моніку

2
@MontyHarder має багато сенсу, це просто не те, про що ви говорили перший раз; sudoі suце дві абсолютно різні речі. Дякуємо за уточнення.
MadHatter підтримує Моніку

33

Як вже було сказано, не робіть цього.

Єдиний спосіб захистити себе - це зробити щось подібне:

  1. Наполягайте, щоб консультант використовував систему керування конфігурацією на ваш вибір.
  2. Консультант запише маніфести управління конфігурацією для дій, які потрібно виконати.
  3. Консультант перевірить маніфести на тестовій системі.
  4. Після готовності консультант здійснить конфігурацію в сховищі коду.
  5. Усі зміни переглядає або член вашого персоналу, або іншим консультантом, який абсолютно не має відношення до першого, і не має можливості контактувати з ними.
  6. Після підписання змін вони застосовуються до сервера вами або членом вашого персоналу. Оригінальний консультант не повинен мати доступу до жодної вашої системи.

Як має бути зрозуміло, це дуже незграбний і неефективний процес, але якщо ви наполягаєте на прийнятті роботи від не довіреної людини, це один із способів впоратися з речами.

Однак, як я рекомендував, вам набагато краще найняти відому, довірену особу.


Чому ні? Я працюю віддалено, керуючи близько 300 виділених серверів, протягом однієї години я міг би знищити все, якщо захочу. Але, звичайно, я б цього не зробив, навіть якщо мене звільнять. Я відповідальний за створення резервних копій, маю найвищі привілеї (не тільки я, пара з нас), і ми можемо отримати зловмисний спосіб у будь-який час. Причина, чому ми цього не робимо, - це мораль та етика. Ми любимо компанію та працівників та свою роботу загалом. Тут головне - довіритися комусь і знайти моральну людину для цієї роботи.
втікач

@fugitive Ви говорите про іншу ситуацію. Я припускаю, що вам довіряють компанії, для яких ви консультуєтесь, інакше вони не надали б вам дозволів. У випадку з ОП зрозуміло, що вони не довіряють цьому консультанту, тому я рекомендував не давати цій особі дозволу на будь-які важливі системи.
ЄЕАА

Ну, довіру треба заслужити. :)
втікач

10

Яка найкраща практика для надання віддаленому консультанту такої роботи, щоб ми були захищені від будь-якої злоякісної діяльності?

З юридичної точки зору: попередня ретельність та суворі штрафи за порушення договору.

Ви починаєте з звичайних добрих методів найму, які застосовуються також при наймі персоналу на місцях (та / або постачальників послуг), які включають перевірку фактів поданого резюме, запитують стенограми про освіту та номери сертифікацій, перевіряють та називають їх довідки, інтерв'ю, можливо навіть перевірка фону або скринінг безпеки тощо.

Потім застосуйте моркву : заплатіть справедливу вартість, запропонуйте привабливу роботу, дивовижних колег, хороші умови праці та переваги тощо ( якщо ви платите арахіс, ви отримаєте мавп. )

І палиця : порушуйте умови вашого трудового / службового договору, і ми захворімо наших адвокатів на вас і залишимо вас банкрутом!

На жаль, і вищезгадане стає все складніше при перетині кордонів та часових поясів.

Як тільки ви вирішите найняти когось:

  • чіткі директиви та політику, люди повинні знати про те, що вони повинні, а що можуть робити.
  • застосовується принцип мінімального доступу, утрудняє людей (випадково чи спеціально) робити те, чого вони не повинні. Для типового системного адміністратора це все ще означає повний доступ, але, наприклад, аудитору безпеки не повинен бути потрібний повний доступ адміністратора, а він може просто попросити існуючих адміністраторів запустити сценарій від його імені, який збирає реквізити, необхідні для створення його звіту. Такий сценарій можна легко перевірити заздалегідь.
  • довіряйте, але перевіряйте. Просто дозвольте наявним працівникам перевірити роботу нового столяра та як завжди збирати аудиторську інформацію.
  • тощо.

Це питання детально описує те, що я зазвичай прошу своїх клієнтів, щоб встановити віддалений доступ для мене, що може стати відправною точкою і для вас.


3
"якщо ви платите арахіс, ви отримуєте мавп" Або слонів. Хоча придумайте це, я не впевнений, що це краще чи гірше, ніж мавпи.
CVn

Додамо лише, що «приклеїти» частину вашої відповіді може бути важче застосувати, якщо інша сторона перебуває в іншій країні. Спершу слід порадитись з досвідченим / досвідченим юристом, щоб побачити, які можливості у вас є, якщо щось піде не так.
користувач121391

Крім того, примусове виконання після інциденту, ймовірно, затягує більше, ніж робота зі стороною, якій можна довіряти в першу чергу. З іншого боку, є люди, яким ви повністю можете довіряти, до кого ви, можливо, не схильні автоматично, і люди, яким ви інстинктивно тяжієте до тих, кому ви, мабуть, не повинні взагалі довіряти.
Крейг

7

Існує один системний метод захисту себе, який спадає на думку, про який я не бачив.

Розмістіть ваші екземпляри Linux як VM на гіпервізорі віртуалізації (VMware, Xenserver, Hyper-V тощо).

НЕ надайте віддаленому адміністратору адміністративний доступ до гіпервізора. Віддалений адміністратор отримав би лише корінний доступ до самих VM.

DO Впровадити систему резервного копіювання на основі гіпервізора (Unitrends, Veeam, vSphere Data Data Protection тощо)

Зберігайте принаймні один знімок на день кожної VM Linux, повертаючись назад у той час, скільки вам здається необхідним.

НЕ надайте віддаленому адміністратору запису на доступ до резервних сховищ.

Якщо ви зробите це, у вас з'являться резервні знімки кожного екземпляра Linux, над яким віддалений адміністратор не має управління. Якщо віддалений адміністратор робить щось химерне, навмисно чи випадково, ви завжди зможете встановити резервну копію до того, як настала хинкнеса, щоб оцінити, що сталося, і, можливо, відновитись до чистого стану.

Це не буде доказом проти нападу бічного каналу гіпервізора, який потенційно може бути встановлений з VM, до якого зловмисник має кореневий доступ.

Якщо ваші резервні копії не піде досить далеко назад у часі, це не захистить вас.

Вам потрібно ретельно довіряти тому, хто контролює ваш гіпервізор та резервну інфраструктуру.

Якщо ви робите це у хмарі (AWS, Azure тощо), деталі реалізації будуть відрізнятися, але загальна концепція була б однаковою.

По суті, розподіліть обов'язки між сторонами, які не є діловими партнерами, крім того, що ви наймаєте лише людей, яким ви довіряєте.


1
На той час, коли ви все це зробили, ви вже системний адміністратор і ви наймаєте віддалений лакей або PFY.
Criggie

3
Не зовсім. Ви керуєте лише гіпервізором та резервними копіями. Що, правда, не нічого. Але це не обов'язково однаковий набір навичок або адміністративний тягар. Цілком ймовірно, що якщо ви займаєтесь віртуалізацією (ми), то у вас є інша людина чи люди, відповідальні за те, що все-таки відбувається в окремих ВМ.
Крейг

1
Хоча загальна ідея хороша, вона допомагає лише проти некомпетентності / помилок (видалена виробнича база даних тощо), а не проти зловмисності (якщо ви не перевіряєте кожну зміну щодня і не порівнюєте вміст змін, фактично щоденний повний аудит). Також збитки можуть бути не пов'язані з технічними речами, наприклад, дані клієнтів або комерційні таємниці, які відшиті, не можуть міститися таким чином, оскільки вони є лише реактивними.
користувач121391

@ user121391: Я дійсно не можу погодитися, особливо з проблемою ексфільтрації даних. Після того, як дані будуть взяті, це абсолютно поза вашим контролем.
Крейг

-1

Дайте йому власний обліковий запис користувача. Тоді з’ясуйте, до чого саме він потребує доступу, і надайте саме цей доступ, але нічого іншого. Наприклад, якщо йому потрібно переконфігурувати веб-сервер Apache, використовуйте ACL, щоб надати йому доступ до записів до файлів конфігурації Apache та налаштувати sudoйого, щоб він перезапустив службу Apache, але не виконував жодних інших команд як root. Як завжди, зберігайте резервні копії всього, до чого ви надаєте йому доступ (у цьому випадку ваші файли конфігурації Apache).


3
Маючи дозвіл на налаштування та перезапуск Apache, що працює як root, по суті надає привілеї root. Досить просто мати довільний двійковий файл, виконаний процесом apache, наприклад, для трубопроводу журналів для цього. Краще налаштуйте Apache, щоб він міг працювати як некореневий і все-таки прив'язуватися до привілейованих портів. Ось що я робив у цій ситуації в минулому.
MvG
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.