Czy jest jakiś sposób, aby sprawić, że doświadczony syadmin Linuksa będzie produktywny bez zapewnienia mu pełnego dostępu do roota?
To pytanie pochodzi z perspektywy ochrony własności intelektualnej (IP), która w moim przypadku jest całkowicie kodem i / lub plikami konfiguracyjnymi (tj. Małymi plikami cyfrowymi, które można łatwo skopiować). Nasz sekretny sos sprawił, że odnieśliśmy większy sukces niż sugerowałby nasz niewielki rozmiar. Podobnie jesteśmy raz ugryzieni, dwukrotnie nieśmiali od kilku byłych pozbawionych skrupułów pracowników (nie sysadminów), którzy próbowali ukraść IP. Stanowisko najwyższego kierownictwa jest w gruncie rzeczy „Ufamy ludziom, ale ze względu na własny interes nie możemy pozwolić sobie na ryzyko, by dać każdej osobie większy dostęp, niż jest to absolutnie konieczne do wykonywania pracy”.
Po stronie programisty można stosunkowo łatwo podzielić partycje i poziomy dostępu, dzięki czemu ludzie mogą być produktywni, ale widzą tylko to, co potrzebują. Tylko najlepsi ludzie (faktyczni właściciele firmy) mają możliwość łączenia wszystkich składników i tworzenia specjalnego sosu.
Ale nie byłem w stanie wymyślić dobrego sposobu na zachowanie tej tajemnicy IP po stronie administratora Linuksa. W szerokim zakresie korzystamy z GPG dla kodu i poufnych plików tekstowych ... ale co powstrzyma administratora przed (na przykład) przesłaniem do użytkownika i przeskoczeniem sesji Tmux lub GNU Screen i zobaczeniem, co robią?
(Mamy również wyłączony dostęp do Internetu wszędzie, co może mieć kontakt z wrażliwymi informacjami. Ale nic nie jest idealne, i mogą istnieć luki otwarte dla sprytnych administratorów lub błędów po stronie administratora sieci. A nawet dobrego starego USB. oczywiście istnieje wiele innych środków, ale są one poza zakresem tego pytania.)
Najlepsze, co mogę wymyślić, to w zasadzie korzystanie ze spersonalizowanych kont w sudo , podobnie jak opisano w wielu systemach Linux działających jako root . W szczególności: nikt oprócz właścicieli firmy nie miałby bezpośredniego dostępu do konta root. Inni administratorzy mieliby spersonalizowane konto i możliwość sudo do rootowania. Ponadto ustanowiono by zdalne rejestrowanie, a logi trafiałyby na serwer, do którego dostęp mieli tylko właściciele firmy. Wyłączenie rejestrowania uruchomiłoby pewnego rodzaju alerty.
Sprytny administrator może prawdopodobnie znaleźć pewne dziury w tym schemacie. Poza tym nadal jest raczej reaktywny niż proaktywny . Problem z naszym IP polega na tym, że konkurenci mogą z niego bardzo szybko skorzystać i spowodować bardzo duże szkody w bardzo krótkim czasie.
Tak więc jeszcze lepiej byłby mechanizm, który ogranicza to, co może zrobić administrator. Ale zdaję sobie sprawę, że jest to delikatna równowaga (szczególnie w świetle rozwiązywania problemów i rozwiązywania problemów produkcyjnych, które należy teraz rozwiązać ).
Nie mogę się nie zastanawiać, jak inne organizacje z bardzo wrażliwymi danymi zarządzają tym problemem? Na przykład sysadmini wojskowi: jak zarządzają serwerami i danymi, nie widząc poufnych informacji?
Edycja: W początkowej fazie postu chciałem zapobiegawczo odnieść się do komentarzy „praktyki zatrudniania”, które zaczynają się pojawiać. Po pierwsze, ma to być pytanie techniczne , a praktyki zatrudniania IMO są bardziej ukierunkowane na pytania społeczne . Ale po drugie, powiem tak: uważam, że robimy wszystko, co rozsądne do zatrudniania ludzi: rozmowa z wieloma osobamiludzie w firmie; kontrole przeszłości i odniesienia; wszyscy pracownicy podpisują wiele dokumentów prawnych, w tym jeden, który mówi, że przeczytał i zrozumiał nasz podręcznik, który szczegółowo opisuje obawy dotyczące własności intelektualnej. Teraz jest to poza zakresem tego pytania / strony, ale jeśli ktoś może zaproponować „idealne” praktyki zatrudniania, które odfiltrowują 100% złych aktorów, jestem cały w uszach. Fakty są następujące: (1) Nie wierzę, że istnieje tak doskonały proces zatrudniania; (2) ludzie się zmieniają - dzisiejszy anioł może być jutrzejszym diabłem; (3) próba kradzieży kodu wydaje się w tej branży dość rutynowa.
Odpowiedzi:
To, o czym mówisz, znane jest jako ryzyko „Zła Sysadmin”. Długi i krótki to:
Połączenie tych rzeczy zasadniczo uniemożliwia powstrzymanie złośliwych działań. Nawet audyt staje się trudny, ponieważ nie masz „normalnego” do porównania. (I szczerze mówiąc - zepsuty system mógł równie dobrze zepsuć kontrolę).
Istnieje kilka kroków łagodzących:
syslog
i audyt na poziomie zdarzenia - do systemu stosunkowo odpornego na manipulacje, do którego nie mają uprzywilejowanego dostępu. Ale zbieranie ich nie wystarcza, musisz je monitorować - i szczerze mówiąc, istnieje wiele sposobów na „kradzież” informacji, które mogą nie pojawić się na radarze kontrolnym. (Poacher vs. gamekeepers)Ale zasadniczo - musisz zaakceptować, że jest to kwestia zaufania, a nie kwestia techniczna. Twoi administratorzy zawsze będą dla ciebie potencjalnie bardzo niebezpieczni w wyniku tej doskonałej burzy.
źródło
Wszystko, co do tej pory powiedziano tutaj, jest dobre, ale istnieje jeden „łatwy” nietechniczny sposób, który pomaga negować nieuczciwego administratora systemu - zasada czterech oczu, która zasadniczo wymaga obecności dwóch sysadminów dla każdego podwyższonego dostępu.
EDYCJA: Dwa największe elementy, które widziałem w komentarzach, dotyczą kosztów i możliwości zmowy. Jednym z największych sposobów, które rozważałem, aby uniknąć obu tych problemów, jest korzystanie z usług firmy zarządzanej używanej tylko do weryfikacji podjętych działań. Wykonane prawidłowo, technicy się nie znają. Zakładając techniczną sprawność, jaką powinien posiadać MSP, łatwo byłoby podpisać się na podjęte działania ... może nawet tak proste jak tak / nie dla nikczemnych.
źródło
Jeśli ludzie naprawdę potrzebują dostępu administratora do systemu, niewiele można zrobić, aby ograniczyć ich działania w tym polu.
Większość organizacji robi zaufanie, ale sprawdza - możesz dać ludziom dostęp do części systemu, ale używasz nazwanych kont administratora (np. Nie dajesz im bezpośredniego dostępu do roota ), a następnie kontrolujesz ich działania w dzienniku, który oni nie może przeszkadzać.
Występuje tutaj równowaga; być może trzeba będzie chronić swoje systemy, ale trzeba też ufać ludziom, że wykonają swoją pracę. Jeśli firma została wcześniej „ugryziona” przez pozbawionego skrupułów pracownika, może to sugerować, że praktyki zatrudniania firm są w pewien sposób słabe, a praktyki te prawdopodobnie zostały stworzone przez „najwyższych kierowników”. Zaufanie zaczyna się w domu; co robią, aby naprawić swoje wybory dotyczące zatrudnienia?
źródło
Nie zmuszając się do szalonego technicznego skrętu umysłu, aby spróbować znaleźć sposób, by dać sysadminowi moc bez dawania im mocy (prawdopodobnie jest to wykonalne, ale ostatecznie byłoby w jakiś sposób wadliwe).
Z punktu widzenia praktyki biznesowej istnieje zestaw prostych rozwiązań. Nie tanie rozwiązanie, ale proste.
Wspomniałeś, że części IP, o które się martwisz, są podzielone i tylko ludzie na górze mają moc ich zobaczyć. To jest zasadniczo twoja odpowiedź. Powinieneś mieć wielu administratorów, a ŻADNY z nich nie powinien być administratorem w wystarczającej liczbie systemów, aby stworzyć pełny obraz. Będziesz oczywiście potrzebował co najmniej 2 lub 3 administratorów na każdą sztukę, na wypadek, gdyby administrator był chory, miał wypadek samochodowy lub coś takiego. Może nawet je rozłóż. powiedzmy, że masz 4 administratorów i 8 informacji. admin 1 może uzyskać dostęp do systemów, które mają część 1 i 2, admin 2 może dostać się do części 2 i 3, admin 3 może dostać się do 3 i 4, a admin 4 może dostać się do 4 i 1. Każdy system ma zapasowego administratora, ale nie Administrator może skompromitować cały obraz.
Jedną z technik stosowanych również w wojsku jest ograniczenie przenoszenia danych. W newralgicznym obszarze może znajdować się tylko jeden system, który jest w stanie nagrać dysk lub użyć dysku flash USB, wszystkie inne systemy są ograniczone. A możliwość korzystania z tego systemu jest bardzo ograniczona i wymaga szczególnej udokumentowanej zgody wyższego szczebla, zanim ktokolwiek będzie mógł umieścić jakiekolwiek dane na czymkolwiek, co mogłoby doprowadzić do rozlania informacji. W tym samym tokenie zapewniasz, że ruch sieciowy między różnymi systemami jest ograniczony zaporami sprzętowymi. Administratorzy sieci, którzy kontrolują ściany przeciwpożarowe, nie mają dostępu do systemów, które kierują, więc nie mogą uzyskać dostępu do informacji, a administratorzy serwera / stacji roboczej zapewniają, że wszystkie dane do i z systemu są skonfigurowane do szyfrowania,
Wszystkie laptopy / stacje robocze powinny mieć zaszyfrowane dyski twarde, a każdy pracownik powinien mieć osobistą szafkę, w której muszą zamykać dyski / laptopy pod koniec nocy, aby upewnić się, że nikt nie przyjdzie wcześnie / nie spóźni się i nie uzyska dostępu do czegoś nie powinni.
Każdy serwer powinien co najmniej znajdować się w swoim zamkniętym szafie, jeśli nie we własnym, zamkniętym pomieszczeniu, aby dostęp do niego mieli tylko administratorzy odpowiedzialni za każdy serwer, ponieważ pod koniec dnia fizyczny dostęp przebija wszystko.
Następnie jest praktyka, która może albo zranić / pomóc. Umowy ograniczone Jeśli uważasz, że możesz zapłacić wystarczająco dużo, aby nadal przyciągać nowe talenty, opcja zatrzymania każdego administratora przez określony czas (IE 6 miesięcy, 1 rok, 2 lata) pozwoliłaby ci ograniczyć czas, jaki ktoś miałby próbować zebrać wszystkie elementy twojego adresu IP.
Mój osobisty projekt byłby czymś w rodzaju ... Podziel dane na dowolną liczbę elementów, powiedzmy ze względu na liczbę 8, masz 8 serwerów git, każdy z własnym zestawem nadmiarowego sprzętu, każdy administrowany przez inny zestaw administratorów.
Zaszyfrowane dyski twarde dla wszystkich stacji roboczych, które będą dotykać adresu IP. z konkretnym katalogiem „projektu” na dysku, który jest jedynym katalogiem, w którym użytkownicy mogą umieszczać swoje projekty. Pod koniec każdej nocy są zobowiązani do sanacji katalogów projektu za pomocą bezpiecznego narzędzia do usuwania, a następnie dyski twarde są usuwane i zamknięty (tylko dla bezpieczeństwa).
Do każdego bitu projektu przypisany jest inny administrator, więc użytkownik będzie mógł wchodzić w interakcje tylko z administratorem stacji roboczej, do którego jest przypisany, jeśli ich przypisanie projektu ulegnie zmianie, ich dane zostaną wyczyszczone, przypisany zostanie nowy administrator. Ich systemy nie powinny mieć możliwości nagrywania i powinny używać programu zabezpieczającego, aby uniemożliwić korzystanie z dysków flash USB do przesyłania danych bez autoryzacji.
weź z tego co chcesz.
źródło
How do we find the top-tier talent we want, but only give them a teeny-tiny workload?
Do pewnego stopnia możesz to złagodzić, oferując im także duże środowisko testowe / badawczo-rozwojowe, dostęp do nowych fajnych zabawek i zachęcając je do spędzania znacznej części dnia roboczego na rozwijaniu umiejętności technicznych. Efektywne obciążenie 25% prawdopodobnie przesuwa to za daleko, ale byłbym absolutnie za daleko od zadania, które jest w 50% rzeczywistą pracą i 50% rozwojem technicznym / badaniami i rozwojem (zakładając, że wynagrodzenie jest na tym samym poziomie, co normalne ~ 100% ” praca rzeczywista).Byłoby to podobne do wyzwania, jakim jest wynajęcie dozorcy budynku. Woźny otrzymuje wszystkie klucze, może otworzyć dowolne drzwi, ale powodem jest to, że dozorca potrzebuje ich do wykonania pracy. To samo z administratorami systemu. Symetrycznie można pomyśleć o tym odwiecznym problemie i spojrzeć na to, jak historycznie zaufanie jest udzielane.
Chociaż nie ma jednoznacznego rozwiązania technicznego, fakt, że nie ma żadnego, nie powinien być powodem, dla którego nie próbujemy, agregacja niedoskonałych rozwiązań może dać nieco świetne wyniki.
Model, w którym zdobywa się zaufanie :
Wdrożenie kilku poziomów uprawnień administracyjnych :
Zawsze twórz środowisko, w którym całkowity dostęp jednej osoby nie jest możliwy :
Podczas wprowadzania podstawowych zmian na wysokim poziomie stosuj zasadę dwóch osób :
Zaufaj i zweryfikuj :
Formalności :
źródło
Bardzo trudno jest zabezpieczyć hosty przed dostępem administracyjnym. Podczas gdy narzędzia takie jak PowerBroker próbują to zrobić, kosztem jest dodanie czegoś innego, co może złamać ORAZ dodanie barier w próbach jego naprawy. Twój dostępność systemu BĘDZIE upuścić kiedy zaimplementować coś takiego tak ustawione, że oczekiwanie na początku jako koszt ochrony rzeczy.
Inną możliwością jest sprawdzenie, czy aplikacja może działać na hostach jednorazowych za pośrednictwem dostawcy chmury lub w prywatnej chmurze lokalnie hostowanej. Kiedy ktoś się psuje, zamiast wysyłać administratora, aby go naprawić, wyrzuca się go i automatycznie buduje zamiennik. Będzie to wymagało sporo pracy po stronie aplikacji, aby je uruchomić w tym modelu, ale może rozwiązać wiele problemów operacyjnych i bezpieczeństwa. Jeśli zrobione źle, może powodować poważne problemy z bezpieczeństwem, więc skorzystaj z doświadczonej pomocy, jeśli pójdziesz tą drogą.
źródło
Oto podstawowa dyskusja: https://security.stackexchange.com/questions/7801/keeping-secrets-from-root-on-linux
Rozdzielasz swoją odpowiedzialność, mając inżynierów bezpieczeństwa, których zadaniem jest konfigurowanie i instalowanie systemów, ale nie otrzymują oni poświadczeń ani dostępu do maszyn w produkcji. Obsługują również infrastrukturę audytu.
Masz administratorów produkcji, którzy otrzymują systemy, ale nie mają kluczy do uruchomienia komputera bez aktywnych zasad SELinux. Zabezpieczenia nie dostają kluczy do odszyfrowania poufnych danych przechowywanych w spoczynku na dysku w przypadku wycofania z eksploatacji uszkodzonej maszyny.
Skorzystaj ze scentralizowanego systemu uwierzytelniania z silnymi kontrolami, takimi jak Vault, i skorzystaj z jego operacji kryptograficznych. Rozdaj urządzenia Yubikey, aby klucze były całkowicie prywatne i nieczytelne.
Maszyny są albo wycierane po zepsuciu, albo obsługiwane przez operacje i zabezpieczenia razem, a jeśli czujesz potrzebę nadzoru wykonawczego.
źródło
Administratorzy ze względu na charakter pracy mają dostęp do wszystkiego. Widzą każdy plik w systemie plików z poświadczeniami administratora. Potrzebny jest więc sposób szyfrowania plików, aby administratorzy nie mogli go zobaczyć, ale pliki są nadal użyteczne przez zespoły, które powinny je zobaczyć. Zajrzyj do Vormetric Transparent Encryption ( http://www.vormetric.com/products/transparent-encryption )
Jego sposób działania polega na tym, że znajduje się on między systemem plików a aplikacjami, które uzyskują do niego dostęp. Kierownictwo może utworzyć zasadę, która mówi: „Tylko użytkownik httpd, działający demon serwera WWW, może zobaczyć pliki niezaszyfrowane”. Następnie administrator z poświadczeniami administratora może spróbować odczytać pliki i uzyskać tylko zaszyfrowaną wersję. Ale serwer sieciowy i wszelkie potrzebne mu narzędzia nie są zaszyfrowane. Może nawet sumę kontrolną pliku binarnego, aby utrudnić administratorowi poruszanie się.
Oczywiście należy włączyć inspekcję, aby w przypadku, gdy administrator spróbuje uzyskać dostęp do plików, wiadomość zostanie oflagowana, a ludzie o tym wiedzą.
źródło
Jedynym praktycznym sposobem jest ograniczenie, kto może robić to, co w sudo. Możesz potencjalnie zrobić większość tego, co chcesz z selinux, ale prawdopodobnie zajmie to wieczność, aby ustalić prawidłową konfigurację, co może sprawić, że będzie to niepraktyczne.
Umowa poufności. Zatrudnij sysadmina, muszą podpisać NDA, jeśli złamią obietnicę, zabierz ich do sądu. Nie może to uniemożliwić im kradzieży tajemnic, ale wszelkie szkody, które z tego powodu spowodują, można odzyskać w sądzie.
Administratorzy wojskowi i rządowi muszą uzyskać poświadczenia bezpieczeństwa różnych stopni, w zależności od wrażliwości materiału. Chodzi o to, że osoba, która może uzyskać zezwolenie, jest mniej skłonna do kradzieży lub oszukiwania.
źródło
Innym sposobem na obniżenie ryzyka (skorzystaj z tych wymienionych wcześniej, a nie zamiast) jest wypłacenie dobrych pieniędzy swoim administratorom. Zapłać im tak dobrze, że nie chcą kraść z twojego adresu IP i cię zostawić.
źródło
Myślę, że odpowiedź na to pytanie może być niemożliwa bez dodatkowych szczegółów, takich jak:
Ilu sysadminów spodziewasz się „ograniczyć”?
Do czego ludzie potrzebują dostępu „sysadmin”?
Przede wszystkim pamiętaj, co możesz zrobić z sudo. Dzięki sudo możesz zezwolić podwyższonym uprawnieniom na uruchamianie tylko jednego polecenia (lub jego odmian, takich jak polecenia zaczynające się na „mount -r”, ale inne polecenia nie są dozwolone). Za pomocą kluczy SSH można przypisać poświadczenia, które pozwalają osobie uruchomić tylko określone polecenie (na przykład „sudo mount -r / dev / sdd0 / media / backup”). Dlatego istnieje stosunkowo łatwy sposób, aby pozwolić praktycznie każdemu (kto ma klucz SSH) na wykonanie określonych operacji bez konieczności wykonywania absolutnie wszystkiego innego.
Sprawy stają się nieco trudniejsze, jeśli chcesz, aby technicy naprawiali to, co jest zepsute. Zwykle może to wymagać większej liczby uprawnień i być może dostępu do uruchamiania szerokiej gamy poleceń i / lub zapisu do różnych plików.
Sugeruję rozważenie podejścia do systemów opartych na sieci, takich jak CPanel (który jest używany przez wielu dostawców usług internetowych) lub systemów opartych na chmurze. Często mogą powodować problemy na maszynie, powodując jej odejście. Tak więc osoba może być w stanie uruchomić polecenie, które zastępuje maszynę (lub przywraca maszynę do znanego dobrego obrazu), niekoniecznie dając tej osobie dostęp do odczytu dużej ilości danych lub wprowadzając niewielkie zmiany (takie jak połączenie drobnej poprawki z wprowadzeniem nieautoryzowanych tylnych drzwi). Następnie musisz zaufać ludziom, którzy robią obrazy, ale zmniejszasz liczbę osób, którym musisz ufać, aby robić mniejsze rzeczy.
Ostatecznie jednak pewna niezerowa liczba osób, które pomagają zaprojektować system i działają na najwyższym poziomie, musi uzyskać pewne zaufanie.
Jedną z rzeczy, które robią duże firmy, jest poleganie na takich rzeczach, jak serwery SQL, które przechowują dane, do których można uzyskać dostęp z większej liczby komputerów. Następnie większa liczba techników może mieć pełny dostęp do roota na niektórych komputerach, bez dostępu do roota do serwerów SQL.
Innym podejściem jest być zbyt dużym, by upaść. Nie myśl, że duże wojsko lub gigantyczne korporacje nigdy nie mają incydentów związanych z bezpieczeństwem. Wiedzą jednak, jak:
Podstawowym założeniem jest to, że powstałe szkody są po prostu ryzykiem i kosztem prowadzenia działalności. Oczekują, że będą nadal działać, a ciągłe zmiany i ulepszenia na przestrzeni lat ograniczą, o ile szkody pojedyncze zdarzenie mogą faktycznie wpłynąć na ich długoterminową wartość w pewnym okresie czasu.
źródło
Aktywne sprawdzanie jest bardzo trudne.
Rozwiązania takie jak http://software.dell.com/solutions/privileged-management/ (nie pracuję dla Dell i inne podobne rozwiązania są dostępne) są bardzo skuteczne w egzekwowaniu odpowiedzialności sysadmin.
źródło
Umieść maszynę administracyjną do rootowania w pokoju zamkniętym dwoma kluczami i podaj tylko jeden dla każdego z dwóch administratorów. Administratorzy zawsze będą współpracować, obserwując nawzajem swoje działania. Powinien to być jedyny komputer zawierający klucz prywatny, aby zalogować się jako root.
Niektóre działania mogą nie wymagać praw root, więc tylko część pracy wymagałaby przejścia do tego pokoju w celu „programowania par”
Możesz także nagrywać filmy w tym pokoju, głównie po to, aby mieć pewność, że nikt nie pracuje sam (tyle jest dobrze widoczne). Upewnij się również, że miejsce pracy jest takie, aby ekran był dobrze widoczny dla obu osób (być może duży ekran telewizora z dużymi czcionkami).
źródło