Вопрос: Linux: продуктивные системные администраторы без root (защита интеллектуальной собственности)?


Есть ли способ сделать опытный Linux syadmin продуктивным без предоставления ему полного доступа к корню?

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

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

Но я не смог придумать хороший способ сохранить эту секретность IP-адресов на стороне администратора Linux. Мы широко используем GPG для кода и чувствительных текстовых файлов ... но что должно остановить администратор (например) для пользователя и перескочить на сеанс tmux или GNU Screen и посмотреть, что они делают?

(У нас также есть доступ к Интернету, который может быть связан с конфиденциальной информацией, но ничто не является идеальным, и могут быть отверстия, открытые для умных системных администраторов или ошибок на стороне администрирования сети. Или даже старый добрый USB-накопитель. конечно, множество других мер, но это выходит за рамки этого вопроса.)

Лучшее, что я могу придумать, - это в основном использовать персонализированные учетные записи с Судо, аналогично тому, что описано в Несколько системных администраторов Linux, работающих как root, В частности: никто, кроме владельцев компании, фактически не имеет прямого доступа root. Другие администраторы имели бы персонализированную учетную запись и Судо в корень. Кроме того, будет установлено дистанционное ведение журнала, и журналы войдут на сервер, к которым могут получить доступ только владельцы компаний. Если отключить ведение журналов, будут заданы какие-то предупреждения.

Умный системный администратор, вероятно, все еще может найти дыры в этой схеме. И это в стороне, это все еще реактивный скорее, чем упреждающий, Проблема с нашим IP-интерфейсом такова, что конкуренты могут использовать его очень быстро и наносить большой урон в очень коротком порядке.

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

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

Редактировать: В первоначальной публикации я хотел упреждающе рассмотреть комментарии «найма практики», которые начинают появляться. Во-первых, это должно быть технический вопросов и методов найма ИМО больше Социальное вопросов. Но, два, я скажу это: я считаю, что мы делаем все, что разумно для найма людей: интервью с множественный люди в фирме; фоновые и контрольные проверки; все сотрудники подписывают многочисленные юридические документы, в том числе тот, который говорит, что они прочитали и поняли наш справочник, в котором подробно описывается проблема ИС. Теперь это выходит за рамки этого вопроса / сайта, но если кто-то может предложить «идеальные» методы найма, которые отфильтровывают 100% плохих актеров, я все уши. Факты: (1) Я не верю, что существует такой совершенный процесс найма; (2) люди меняются - сегодняшний ангел может быть завтрашним дьяволом; (3) попытка кражи кода выглядит несколько рутинной в этой отрасли.


63
2018-02-01 18:20


Источник


первое, что пришло в голову при чтении вашего последнего вопроса ... Сноуден. - Hrvoje Špoljar
Вы можете далеко продвинуться в соответствующих правилах SELinux, но это будет довольно дорого реализовать. В конце дня сидадмины должен иметь некоторый доступ к системе и файлам на ней, чтобы выполнять свою работу. Ваша проблема не техническая, она находится в процессе найма. - Michael Hampton♦
Военные используют разрешения безопасности и целостность двух человек, Даже тогда, иногда есть нарушения. Шансы и то и другое люди с гнусными планами гораздо меньше. - Steve
Причина, по которой это пахнет проблемой людей, состоит в том, что это проблема людей. - Sirex
Для этого нужны NDA. - Michael Martinez


Ответы:


То, о чем вы говорите, известно как риск «злого сисадмина». Длинные и короткие:

  • Сисадмин - это тот, кто имеет повышенные привилегии
  • Технически адепт, до уровня, который сделает их хорошим «хакером».
  • Взаимодействие с системами в аномальных сценариях.

Сочетание этих вещей делает невозможным прекращение злонамеренных действий. Даже аудит становится тяжелым, потому что у вас нет «нормального» для сравнения. (И, откровенно говоря, сломанная система тоже может сломать аудит).

Есть множество смягчающих шагов:

  • Привилегированное разделение - вы не можете остановить парня, у которого есть корень что-нибудь в системе. Но вы можете сделать одну команду ответственной за сетевое взаимодействие и другую команду, отвечающую за «операционные системы» (или Unix / Windows отдельно).
  • Ограничьте физический доступ к набору другой команде, которая не получает учетные записи администратора ... но позаботьтесь о всех «руках».
  • Отделите ответственность «настольного компьютера» и «сервера». Настройте рабочий стол, чтобы запретить удаление данных. Администраторы рабочего стола не имеют возможности доступа к чувствительным, администраторы сервера могут украсть его, но им нужно прыгать через обручи, чтобы вытащить его из здания.
  • Аудит на систему с ограниченным доступом - syslog и аудита уровня событий, к относительно устойчивой к несанкционированному доступу системе, к которой у них нет привилегированного доступа. Но собрать его недостаточно, вам нужно следить за ним - и, откровенно говоря, существует множество способов «украсть» информацию, которая может не отображаться на аудиторском радаре. (Браконьер против геймеров)
  • применять шифрование «в покое», поэтому данные не сохраняются «в ясности» и требуют доступа к живой системе. Это означает, что люди с физическим доступом не могут получить доступ к системе, которая не подвергается активному мониторингу, и что в «аномальном» сценарии, в котором работает сисадмин, данные менее подвержены риску. (например, если база данных не работает, данные, вероятно, не читаются)
  • Правило двух человек - если вы в порядке с вашей продуктивностью, искалеченной, и ваш моральный дух аналогичным образом. (Серьезно - я видел, как это было сделано, а постоянное состояние работы и наблюдение делают его чрезвычайно трудными условиями работы).
  • Приобретайте своих системных администраторов - в зависимости от страны могут существовать различные проверки записей. (Проверка уголовных дел, вы мог бы даже если вы обнаружите, что в некоторых случаях вы можете обратиться за разрешением на безопасность, что вызовет проверку)
  • Послушайте своих системных администраторов - абсолютное последнее, что вы хотите сделать, - сказать «доверенный» человек, которому вы им не доверяете. И вы, конечно, не хотите наносить урон морали, потому что это увеличивается вероятность злонамеренного поведения (или «небрежная халатность, но сдержанность в бдительности»). Но платите в соответствии с ответственностью, а также навыками. И рассмотрите «льготы», которые дешевле, чем зарплата, но, вероятно, ценятся больше. Как бесплатный кофе или пицца один раз в неделю.
  • и вы также можете попытаться применить условия контракта, чтобы заблокировать его, но будьте осторожны с вышеуказанным.

Но довольно принципиально - вам нужно признать, что это вещь доверия, а не техническая вещь. Ваши системные администраторы всегда будут потенциально очень опасны для вас, в результате этого совершенного шторма.


19
2018-02-02 10:04



Иногда я ношу шляпу сисадмина. Я обнаружил, что необходимо хранить мощные инструменты, лежащие вокруг, где я могу добраться до них, некоторые из которых имеют свою цель, обходя систему контроля доступа к системе (в случае, если кто-то сумеет заблокировать всех из рабочей станции, конечно). Как сама природа их деятельности, аудит ослаблен или неэффективен. - joshudson
Да. По всем причинам слесари могут входить в ваш дом законно, системные администраторы, возможно, должны проникнуть в сеть. - Sobrique
@Sobrique: есть кое-что, что я до сих пор не понимаю: почему мы слышим о мошенниках, которые сбивают много данных, а не о мошенниках, которые делают то же самое (они могли сделать это за время, когда все было на бумаге), - user2284570
Объем - терабайт печатной копии большой. И урон. Саботаж этой системы может буквально разрушить компанию. - Sobrique


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

РЕДАКТИРОВАТЬ: Два самых больших предмета, которые я видел в комментариях, обсуждают стоимость и возможность сговора. Один из самых больших способов, который я решил избежать обоих этих проблем, - это использование управляемой сервисной компании, используемой только для проверки предпринятых действий. Совершенно правильно, техников не знали друг друга. Предполагая, что техническое мастерство, которое MSP должно иметь, было бы достаточно простым, чтобы иметь знак действий, предпринятых ... возможно, даже столь же просто, как «да / нет», к чему-то неописуемому.


50
2018-02-01 19:52



@Sirex: Да, это проблема безопасности - у нее всегда есть стоимость. - sleske
Нет, я работал в довольно небольших (100-1000 человек) организациях, которые сделали именно это. Они просто согласились с тем, что их процедуры сделают всю деятельность системного администратора стоимостью в четыре и десять раз больше, чем в противном случае, и они заплатили. - MadHatter
Это единственный реальный ответ. Наш комплект находится внутри некоторых безопасных местоположений gov't и (среди других шагов) мы используем этот подход, чтобы гарантировать, что никто не может получить доступ к приподнятому терминалу. Детальный запрос поднят для выполнения работы, многие люди подписываются на него (50+, вздох), затем два админа собираются вместе и делают изменения. Это минимизирует риск (а также глупые ошибки). Это дорого и моральная боль, чтобы что-то сделать, но это цена безопасности. Re: 50+ подписчиков, в том числе сетевая команда, команда DC, руководители проектов, безопасность, хранилище, тестер пера, поставщик программного обеспечения и т. Д. - Basic
Да, вы бы, наверное, боролись за прокат. Это было бы мгновенной пробкой для меня, поскольку мне нравится на самом деле делать все, и это может испортить мою работу. - Sirex
Обратите внимание, что увеличение затрат не распространяется на каждое действие sysadmin. Однако это относится как к самим повышенным действиям, так и к их подготовке. IOW, вы не можете сказать: «sysadmin работает 40 часов в неделю, 4 из них подняты, поэтому увеличение стоимости составит всего 10%». С положительной стороны, схема также ловит обычные, честные ошибки. Это экономит деньги. - MSalters


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

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

Здесь есть балансирующий акт; вам может потребоваться защитить ваши системы, но вам нужно доверять людям, чтобы они тоже работали. Если раньше компания была «укушена» недобросовестным сотрудником, это могло бы предполагать, что практика найма компаний плохо в некотором роде, и эта практика, по-видимому, была создана «топ-менеджерами». Доверие начинается дома; что они делают, чтобы исправить свои варианты найма?


27
2018-02-01 19:18



Это замечательное замечание. Хороший аудит позволяет людям выполнять свою работу, но не несут ответственности за свои действия. - Steve Bonds
Правильное использование auditd и syslog может также иметь большое значение. Эти данные могут отслеживаться множеством инструментов безопасности, чтобы искать странное или явно плохое поведение. - Aaron
Реальная проблема с аудитом заключается в том, что есть много шума. Через несколько месяцев никто не будет смотреть на журналы, кроме случаев, когда что-то произошло. - TomTom
Я согласен с TomTom, так как отношение сигнал-шум прямо к журналам безопасности является проблемой, но вам все равно нужно регистрироваться, я думаю. @Sobrique Я бы сказал, однако, что «злые системные администраторы» являются преимущественно проблемой найма, а не технологической проблемой; вам нужно закрыть обе стороны разрыва, поэтому я бы требовал «лучшей практики» изо дня в день и улучшать процессы найма, рассматривать «4 глаза» для истинного секретного соуса, как Тим намекал, а также просеять журналы - Rob Moir
Немного, но помните о «рабочем цикле», предыдущий добросовестный актер может превратиться в злонамеренный. Это больше касается лишения гражданских прав и морального духа, чем практика найма на работу. То, что делает кого-то хорошим системным администратором, также сделает их хорошим хакером. Так, может быть, в этот момент - наем посредственных системных администраторов - это путь вперед? - Sobrique


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

С точки зрения деловой практики существует множество простых решений. Не дешевое решение, но простое.

Вы упомянули, что части ИС, о которых вы беспокоитесь, делятся, и только люди наверху имеют право видеть их. Это, по сути, ваш ответ. У вас должно быть несколько администраторов, и NONE из них должен быть админом на достаточном количестве систем, чтобы собрать полную картину. Вам, конечно, потребуется по крайней мере 2 или 3 администратора для каждой части, если администратор болен или в автокатастрофе или что-то еще. Может быть, даже поразить их. скажем, у вас 4 администратора и 8 информационных материалов. admin 1 может получить доступ к системам, у которых есть куски 1 и 2, админ 2 может разобраться в 2 и 3, администратор 3 может добраться до 3 и 4, а администратор 4 может добраться до 4 и 1. У каждой системы есть резервный администратор, но нет admin может поставить под угрозу полную картину.

Одним из методов, применяемых военными, является ограничение перемещения данных. В чувствительной области может быть только одна система, способная записывать диск или использовать флэш-накопитель USB, все остальные системы ограничены. И способность использовать эту систему крайне ограничена и требует специального документированного утверждения более высокими версиями, прежде чем кому-либо будет разрешено помещать любые данные во все, что может привести к утечке информации. В то же время вы гарантируете, что сетевой трафик между различными системами ограничен аппаратными брандмауэрами. Администраторы вашей сети, которые контролируют стены огня, не имеют доступа к системам, которые они маршрутизируют, поэтому они не могут получить доступ к информации, а администраторы серверов и рабочих станций гарантируют, что все данные в систему и из системы настроены для шифрования, поэтому что ваши администраторы сети не могут подключиться к сети и получить доступ к данным.

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

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

Затем есть практика, которая может либо повредить / помочь. Ограниченные контракты. Если вы считаете, что можете заплатить достаточно, чтобы продолжать привлекать новых талантов, возможность сохранить только каждого администратора в течение заранее определенного времени (IE 6 месяцев, 1 год, 2 года) позволит вам ограничить, как долго кто-то будет попытаться собрать все части вашего IP-адреса.

Мой личный дизайн был бы чем-то вроде ... Разделите свои данные на многие части, скажем, ради числа 8, у вас есть 8 git-серверов, каждый со своим набором избыточных аппаратных средств, каждый из которых управляется другой набор админов.

Зашифрованные жесткие диски для всех рабочих станций, которые будут касаться IP. с конкретным каталогом «проекта» на диске, который является единственным пользователем каталога, которому разрешено включать свои проекты. В конце каждой ночи они должны санатировать свои каталоги проектов с помощью безопасного инструмента удаления, затем удаляются жесткие диски и заперты (просто чтобы быть в безопасности).

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

возьмите из этого, что хотите.


18
2018-02-01 23:28



Спасибо, много хорошего там, и много, что мы делаем. Хотя мне нравится идея нескольких админов, мы не настолько велики, чтобы в этом нуждаться. Я действительно только необходимость один администратор, так что, если бы у меня было четыре, им обычно было бы скучно из их умов. Как мы находим талант высшего уровня, которого хотим, но только даем им крошечную рабочую нагрузку? Боюсь, умные люди быстро соскучится и перейдут на более зеленые пастбища. - Matt
Да, это большая проблема, и на самом деле одно из полей правительства сильно страдает. Место, которое я получил в качестве администратора, часто называлось «вращающейся дверью». Все это сложная проблема. Информационное обеспечение в целом - довольно крутая гайка для взлома: \ - Gravy
@ Matt How do we find the top-tier talent we want, but only give them a teeny-tiny workload? В какой-то мере вы можете смягчить это, предоставив им большую среду тестирования / R & D, доступ к прохладным новым игрушкам и поощряя их тратить значительную часть своего рабочего дня на развитие своих технических навыков. Эффективная 25-процентная рабочая нагрузка, вероятно, слишком сильно продвигается, но я был бы абсолютно за луной относительно работы, которая составляет 50% фактической работы и 50% технического развития / НИОКР (при условии, что заработная плата находится на том же уровне, что и нормальный ~ 100% фактическая работа "). - HopelessN00b


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

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

Модель, в которой заработано доверие:

  • Предоставьте меньше разрешений для начала.
  • Постепенно увеличивайте разрешения
  • Поместите honeypot и следите за тем, что произойдет в ближайшие дни
  • Если системный администратор сообщает об этом вместо того, чтобы пытаться злоупотреблять им, это хорошее начало

Внедрение нескольких уровней административных полномочий:

  • Уровень 1: может изменять нижний уровень конфигурационных файлов
  • Уровень 2: может изменять несколько более высокий уровень файлов конфигурации
  • Уровень 3: может изменять несколько более высокий уровень файлов конфигурации и настроек ОС.

Всегда создавайте среду, в которой общий доступ одного человека невозможен.:

  • Сплит-системы в кластерах
  • Предоставление полномочий администратора кластера различным группам
  • Минимум 2 группы

Используйте правило «Два человека» при выполнении основных изменений ядра:

Доверие и проверка:

  • Зарегистрировать все
  • Мониторинг и оповещение журналов
  • Убедитесь, что все действия различимы

Оформление документации:

  • Попросите их подписать документы, чтобы юридическая система могла помочь вам, предъявив им иск, если они причинили вам боль, дает больше стимулов, чтобы не делать этого

11
2018-02-02 03:39



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


Очень сложно защитить хосты от лиц с административным доступом. Хотя такие инструменты, как PowerBroker попытайтесь сделать это, стоимость добавляет и то, что может сломаться А ТАКЖЕ добавляя барьеры к попыткам его исправления. Доступность вашей системы БУДЕМ когда вы реализуете что-то подобное, поэтому установите это предположение раньше, чем стоимость защиты вещей.

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


9
2018-02-01 18:36





Это ваше основное обсуждение: https://security.stackexchange.com/questions/7801/keeping-secrets-from-root-on-linux

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

У вас есть администраторы производства, которые получают системы, но не имеют ключей для загрузки машины без активной политики SELinux. Безопасность не получает ключей для дешифрования конфиденциальных данных, хранящихся в состоянии покоя на диске, когда они получают сломанную машину, выведенную из службы.

Использовать централизованную систему аутентификации с сильным аудитом, например Свод и использовать свои криптографические операции. Отправляйте устройства Yubikey, чтобы сделать ключи абсолютно частными и нечитаемыми.

Машины либо вытираются при поломке, либо обрабатываются операциями и безопасностью вместе, и если вы чувствуете необходимость в контроле над руководителями.


4
2018-02-03 18:49