완전한 루트 액세스 권한을 부여하지 않고 노련한 Linux syadmin을 생산적으로 만드는 방법이 있습니까?
이 질문은 전적으로 코드 및 / 또는 구성 파일 (즉, 쉽게 복사되는 작은 디지털 파일) 인 지적 재산 (IP)을 보호한다는 관점에서 비롯됩니다. 우리의 비밀 소스는 우리의 작은 크기가 제안하는 것보다 우리를 더 성공적으로 만들었습니다. 마찬가지로, 우리는 IP를 훔치려 고 시도했던 이전의 부도덕 한 직원들 (시스템 관리자가 아닌)로부터 두 번 부끄러워 했습니다. 최고 경영진의 입장은 기본적으로 “우리는 사람들을 신뢰하지만 이기심이 없으면 어느 누구도 자신의 업무를 수행하는 데 필요한 것보다 더 많은 액세스 권한을 부여 할 위험이 없습니다”
온 개발자 면, 그것은 사람들이 생산 될 수 있도록 워크 플로우 및 액세스 수준을 분할하지만 그들이 볼 필요 것만보고 상대적으로 쉽습니다. 최고인 (실제 회사 소유주)만이 모든 재료를 결합하고 특별한 소스를 만들 수 있습니다.
그러나 나는 리눅스 관리자 측 에서이 IP 비밀을 유지하는 좋은 방법을 생각해 낼 수 없었습니다. 우리는 코드와 민감한 텍스트 파일에 GPG를 광범위하게 사용하지만 … 관리자가 사용자에게 고소하고 tmux 또는 GNU Screen 세션에서 도청하여 그들이하는 일을 보지 못하게하는 것은 무엇입니까?
(우리는 또한 민감한 정보와 접촉 할 수있는 모든 곳에서 인터넷 액세스가 비활성화되어 있습니다. 그러나 완벽한 것은 없으며 네트워크 관리자 측의 영리한 시스템 관리자 나 실수에 대한 구멍이 열려 있거나 오래된 USB도 있습니다. 물론 수많은 다른 조치가 있지만이 문제의 범위를 벗어납니다.)
내가 생각해 낼 수있는 최선은 기본 적으로 sudo로 개인화 된 계정을 사용하는 것인데 , 루트로 작동하는 여러 Linux sysadmins 에서 설명한 것과 비슷 합니다 . 특히, 회사 소유주를 제외하고는 아무도 직접 루트 액세스 권한을 갖지 못합니다. 다른 관리자는 개인화 된 계정과 루트 로 sudo 할 수있는 기능이 있습니다. 또한 원격 로깅이 작성되고 로그는 회사 소유자 만 액세스 할 수있는 서버로 이동합니다. 로깅이 해제되어 있으면 일종의 경고가 설정됩니다.
영리한 sysadmin은 여전히이 체계에서 일부 구멍을 찾을 수 있습니다. 그리고 그 외에도, 그것은 능동적 이라기보다는 여전히 반응성 입니다. IP의 문제는 경쟁 업체가 IP를 매우 빠르게 사용할 수 있고 매우 짧은 순서로 많은 피해를 입힐 수 있다는 것입니다.
따라서 관리자가 수행 할 수있는 작업을 제한하는 메커니즘이 더 좋습니다. 그러나 저는 이것이 미묘한 균형이라는 것을 알고 있습니다 (특히, 현재 해결해야하는 생산 문제 해결 및 해결 측면에서 ).
매우 민감한 데이터를 가진 다른 조직이이 문제를 어떻게 관리하는지 궁금하지 않습니다. 예를 들어, 군사 시스템 관리자 : 기밀 정보를 보지 않고 서버와 데이터를 어떻게 관리합니까?
편집 : 초기 게시에서, 나는 “채용 관행”의견을 선제 적으로 다루고 자했다. 하나, 이것은 기술적 인 질문 이되어야하고 , 관행 IMO를 고용하는 것은 사회적 질문 으로 향하는 경향이 있습니다 . 그러나,이, 나는이 말 것 : 인터뷰 : 우리가 사람을 고용하기위한 합리적인 모든 것을 할 생각 배수를회사의 사람들; 배경 및 참조 확인; 모든 직원은 IP 관련 우려 사항을 자세히 설명하는 핸드북을 읽고 이해 한 문서를 포함하여 수많은 법률 문서에 서명합니다. 이제이 질문 / 사이트의 범위를 벗어 났지만 누군가가 나쁜 행위자를 100 % 걸러내는 “완벽한”채용 관행을 제안 할 수 있다면 나는 모두 귀입니다. 사실은 다음과 같습니다. (1) 완벽한 채용 프로세스가 있다고 생각하지 않습니다. (2) 사람들이 변한다 – 오늘의 천사는 내일의 악마 일 수있다. (3) 시도 된 코드 도난은이 산업에서 다소 일상적인 것으로 보입니다.
답변
당신이 말하는 것은 “Evil Sysadmin”위험으로 알려져 있습니다. 그것의 길고 짧은 :
- sysadmin은 높은 권한을 가진 사람입니다
- 기술적으로는 ‘해커’가 될 수있는 수준에 능숙합니다.
- 비정상 시나리오에서 시스템과 상호 작용
이러한 것들의 조합으로 인해 악의적 인 행동을 막을 수는 없습니다. 비교할 ‘정상’이 없기 때문에 감사조차 어렵습니다. (솔직히 시스템이 고장 나면 감사도 제대로되지 않았을 수 있습니다).
여러 완화 단계가 있습니다.
- 권한 분리-루트를 가진 사람 이 시스템 에서 아무것도 하지 못하게 막을 수 없습니다 . 그러나 한 팀은 네트워킹을 담당하고 다른 팀은 ‘운영 체제'(또는 Unix / Windows 별도)를 담당 할 수 있습니다.
- 다른 팀으로 키트에 대한 물리적 액세스를 제한합니다. 관리자는 계정을 얻지 못하고 모든 ‘손’작업을 관리합니다.
- ‘데스크톱’과 ‘서버’책임을 분리하십시오. 데이터 제거를 금지하도록 데스크탑을 구성하십시오. 데스크톱 관리자는 민감한 사용자에게 액세스 할 수 없으며 서버 관리자는이를 훔칠 수 있지만 건물 밖으로 나가려면 농구대를 뛰어 넘어야합니다.
- 제한된 액세스 시스템
syslog
및 이벤트 레벨 감사, 권한이없는 액세스 권한이없는 시스템에 대한 감사. 그러나 정보를 수집하는 것만으로는 충분하지 않으며이를 모니터링해야합니다. 솔직히 감사 레이더에 표시되지 않을 수있는 정보를 ‘훔치는’방법이 많이 있습니다. (푸셔 대 게임 키퍼) - ‘휴면’암호화를 적용하므로 데이터가 ‘명확하게’저장되지 않으며 라이브 시스템에 액세스해야합니다. 즉, 물리적 액세스 권한이있는 사용자는 적극적으로 모니터링되지 않는 시스템에 액세스 할 수 없으며 sysadmin이 작업중인 ‘비정상적인’시나리오에서는 데이터가 덜 노출됩니다. (예 : 데이터베이스가 작동하지 않는 경우 데이터를 읽을 수없는 것 같습니다)
- 두 사람의 규칙-생산성이 저하되고 사기도 마찬가지로 괜찮다면. (진실하게-나는 그것을 보았고, 일하고 감시하는 지속적인 상태는 그것이 매우 어려운 근무 조건을 만듭니다).
- 시스템 관리자에게 수의사-국가에 따라 다양한 기록 확인이있을 수 있습니다. (범죄 기록은 확인 할 수 심지어는 신원 조회 트리거 할 경우의 보안 허가를 신청할 수 있습니다 찾을 수)
- sysadmins를 돌보십시오. 당신이하고 싶은 절대적인 일은 “신뢰할 수있는”사람에게 당신이 그들을 믿지 않는다고 말하는 것입니다. 그리고 악의적 행동의 가능성 이 높아지기 때문에 사기에 피해를 입히고 싶지는 않습니다 . 그러나 책임과 기술에 따라 지불하십시오. 그리고 급여보다 저렴하지만 아마도 더 가치있는 ‘특징’을 고려하십시오. 무료 커피 나 일주일에 한 번 피자처럼.
- 또한 계약 조건을 금지하기 위해 계약 조건을 시도하고 적용 할 수도 있지만 위의 사항에주의하십시오.
그러나 매우 근본적으로-이것은 기술적 인 것이 아니라 신뢰하는 것임을 받아 들여야합니다. 이 완벽한 폭풍으로 인해 시스템 관리자는 항상 잠재적으로 매우 위험합니다.
답변
지금까지 언급 한 모든 내용은 좋은 것이지만 불량 시스템 관리자를 무효화하는 데 도움이되는 ‘쉬운’비 기술적 방법 이 있습니다. 기본적으로 4 명의 눈 원칙 은 기본적으로 2 명의 시스템 관리자가 높은 액세스 권한을 갖도록 요구합니다.
편집 : 의견에서 본 가장 큰 두 가지 항목은 비용과 담합 가능성에 대해 논의하는 것입니다. 이 두 가지 문제를 피하기 위해 고려한 가장 큰 방법 중 하나는 취해진 조치의 검증에만 사용되는 관리 서비스 회사를 이용하는 것입니다. 기술자들은 서로를 알지 못했을 것입니다. MSP에 기술적 인 능력이 있다고 가정하면 취한 조치를 취하기에 충분할 것입니다. 사악한 것에 대해 예 / 아니요로 간단 할 수도 있습니다.
답변
사람들이 시스템에 대한 관리자 액세스 권한이 실제로 필요한 경우 해당 상자에서 해당 활동을 제한 할 수있는 방법이 거의 없습니다.
대부분의 조직이하는 일은 신뢰하지만 검증 -사람들에게 시스템의 일부에 대한 액세스 권한을 부여 할 수 있지만 명명 된 관리자 계정 (예 : root에 직접 액세스 권한을 부여하지 않음 )을 사용한 다음 해당 활동을 로그에 감사합니다. 방해 할 수 없습니다.
여기에 밸런싱 행위가 있습니다. 시스템을 보호해야 할 수도 있지만 사람들도 자신의 작업을 수행하도록 신뢰해야합니다. 회사가 파렴치한 종업원에 의해 이전에 “물린”상태 였다면, 이는 회사의 고용 관행이 어떤 식 으로든 좋지 않다는 것을 암시 할 수 있으며, 그러한 관행은 아마도 “최 상사”에 의해 만들어 졌을 것입니다. 신뢰는 가정에서 시작됩니다. 그들은 채용 선택을 고치기 위해 무엇을하고 있습니까?
답변
sysadmin에게 전원을 공급하지 않고 전원을 공급하지 않는 방법을 생각해 내기 위해 미친 기술적 정신 왜곡에 빠지지 않으면 서 (가능할 수도 있지만 궁극적으로 어떤 방식 으로든 결함이 있음).
비즈니스 관행 관점에서 간단한 솔루션 세트가 있습니다. 저렴한 솔루션은 아니지만 간단합니다.
당신은 당신이 걱정하는 IP 조각이 나뉘어져 있고 맨 위에있는 사람들 만 볼 수있는 힘을 가지고 있다고 언급했습니다. 이것은 본질적으로 당신의 대답입니다. 관리자는 여러 명이어야하며 그 중 어느 것도 완전한 그림을 작성하기에 충분한 시스템의 관리자 여야합니다. 물론 관리자가 아프거나 교통 사고 등을 당할 경우 각 조각 당 최소 2 ~ 3 명의 관리자가 필요합니다. 어쩌면 그것들을 비틀 수도 있습니다. 4 명의 관리자와 8 개의 정보가 있다고 가정 해 보겠습니다. 관리자 1은 조각 1과 2가있는 시스템에 액세스 할 수 있으며 관리자 2는 조각 2와 3에 도달 할 수 있으며 관리자 3은 3과 4에 도달 할 수 있으며 관리자 4는 4와 1에 도달 할 수 있습니다. 각 시스템에는 백업 관리자가 있지만 없음 관리자는 전체 그림을 손상시킬 수 있습니다.
군대가 사용하는 기술 중 하나는 데이터 이동의 한계입니다. 민감한 지역에는 디스크를 굽거나 USB 플래시 드라이브를 사용할 수있는 단일 시스템 만있을 수 있으며 다른 모든 시스템은 제한됩니다. 또한이 시스템을 사용하는 능력은 극히 제한되어 있으며 정보 유출로 이어질 수있는 데이터를 누군가가 제출할 수 있기 전에 상위 관리자의 구체적인 문서 승인이 필요합니다. 동일한 토큰과 함께 다른 시스템 간의 네트워크 트래픽이 하드웨어 방화벽에 의해 제한되도록합니다. 방화벽을 제어하는 네트워크 관리자는 라우팅중인 시스템에 액세스 할 수 없으므로 정보에 액세스 할 수 없으며 서버 / 워크 스테이션 관리자는 시스템과주고받는 모든 데이터가 암호화되도록 구성되어 있습니다.
모든 랩탑 / 워크 스테이션에는 암호화 된 하드 드라이브가 있어야하며, 각 직원은 밤이되면 드라이브 / 노트북을 잠 가서 개인 / 사물함을 확보해야합니다. 그들은해서는 안됩니다.
하루가 끝날 때 물리적 액세스가 모두 우선하므로 각 서버를 관리하는 관리자 만 서버에 액세스 할 수 있도록 각 서버는 자체적으로 잠긴 랙에 있어야합니다.
다음으로 상처를 입히거나 도울 수있는 방법이 있습니다. 한정된 계약. 새로운 인재를 유치하기에 충분한 비용을 지불 할 수 있다고 생각 될 경우, 각 관리자를 정해진 시간 (IE 6 개월, 1 년, 2 년) 동안 만 유지하는 옵션을 사용하면 누군가의 시간을 제한 할 수 있습니다 모든 IP 조각을 모 으려고 시도합니다.
내 개인 디자인은 라인을 따라 뭔가가 될 것입니다 … 데이터를 여러 조각으로 나누고 숫자 8을 가지기 위해 8 개의 git 서버가 있으며 각각 8 개의 git 서버가 있으며 각각의 중복 하드웨어 세트가 있으며 다른 관리자 집합.
IP에 닿는 모든 워크 스테이션을위한 암호화 된 hardrive. 드라이브에 특정 디렉토리 인 “프로젝트”디렉토리를 가진 유일한 디렉토리 사용자는 자신의 프로젝트를 넣을 수 있습니다. 매일 밤 그들은 안전한 삭제 도구를 사용하여 프로젝트 디렉토리를 삭제해야합니다. 그런 다음 하드 드라이브를 제거하고 잠겨 있습니다 (안전을 위해).
프로젝트의 각 비트마다 다른 관리자가 할당되어 있으므로 사용자는 자신이 할당 된 워크 스테이션 관리자와 만 상호 작용할 수 있습니다. 프로젝트 할당이 변경되면 데이터가 지워지고 새 관리자가 할당됩니다. 시스템에는 굽기 기능이 없어야하며 인증없이 데이터를 전송하기 위해 USB 플래시 드라이브를 사용하지 못하도록 보안 프로그램을 사용해야합니다.
이것에서 당신이 무엇을 취할 것입니다.
답변
건물 관리인을 고용하는 것과 비슷합니다. 관리인은 모든 열쇠를 가지고 있고, 어떤 문이든 열 수 있지만, 그 이유는 관리인이 열쇠를 필요로하기 때문입니다. 시스템 관리자와 동일합니다. 대칭 적으로이 오래된 문제를 생각하고 역사적으로 신뢰가 부여되는 방식을 살펴볼 수 있습니다.
깨끗하게 절단 된 기술 솔루션은 없지만, 시도하지 않을 이유가 없어야한다는 사실이 불완전한 솔루션의 집합은 다소 큰 결과를 가져올 수 있습니다.
신뢰를 얻는 모델 :
- 시작할 수있는 권한을 줄입니다.
- 점차적으로 권한 증가
- 허니팟을 넣고 앞으로 일어날 일을 모니터링
- sysadmin이 악용하려고 시도하지 않고이를보고하면 좋은 시작입니다.
몇 가지 수준의 관리 능력을 구현하십시오 .
- 레벨 1 : 하위 계층 구성 파일을 수정할 수 있습니다
- 레벨 2 : 약간 더 높은 구성 파일 계층을 수정할 수 있습니다
- 레벨 3 : 약간 더 높은 구성 파일 및 OS 설정을 수정할 수 있습니다
항상 한 사람이 완전히 액세스 할 수없는 환경을 만드십시오 .
- 클러스터에서 분할 시스템
- 다른 그룹에 클러스터 관리자 권한 부여
- 최소 2 그룹
높은 수준의 핵심 변경을 수행 할 때는 2 인 규칙을 사용하십시오 .
- https://en.wikipedia.org/wiki/Two-man_rule
- 핵심 변경 사항을 위해 cluster1 및 cluster2의 관리자 필요
신뢰와 검증 :
- 모든 것을 기록하십시오
- 로그 모니터링 및 경고
- 모든 행동을 구별 할 수 있는지 확인
서류 :
- 법률 시스템이 상처를 입었을 때 고소함으로써 도움을 줄 수 있도록 서류에 서명하도록하십시오.
답변
관리 액세스 권한이있는 호스트로부터 호스트를 보호하는 것은 매우 어렵습니다. 같은 도구 동안 PowerBroker의 시도가이 작업을 수행하기 위해, 비용은 깰 수있는 다른 뭔가를 모두 추가하고 그리고 그것을 해결에 시도 장벽을 추가합니다. 시스템 가용성은 것 이 이렇게 일찍 물건을 보호의 비용으로 그 기대를 설정처럼 당신이 뭔가를 구현할 때 놓습니다.
또 다른 가능성은 클라우드 공급자 또는 로컬 호스팅 프라이빗 클라우드를 통해 앱이 일회용 호스트에서 실행될 수 있는지 확인하는 것입니다. 문제를 해결하기 위해 관리자에게 보내지 말고 문제가 발생하면이를 버리고 대체물을 자동 빌드하십시오. 이 모델에서 실행되도록하려면 애플리케이션 측에서 많은 작업이 필요하지만 많은 운영 및 보안 문제를 해결할 수 있습니다. 잘못 수행하면 심각한 보안 문제가 발생할 수 있으므로 해당 경로로 이동하면 도움을받을 수 있습니다.
답변
이것은 기본 토론입니다 : https://security.stackexchange.com/questions/7801/keeping-secrets-from-root-on-linux
시스템 구성 및 설치를 담당하는 보안 엔지니어를 통해 책임을 분담하지만 자격을 얻거나 생산중인 시스템에 액세스 할 수는 없습니다. 또한 감사 인프라를 운영합니다.
시스템을받는 프로덕션 관리자가 있지만 SELinux 정책이 활성화되지 않은 상태에서 시스템을 부팅 할 키가 없습니다. 보안은 고장난 기계를 서비스에서 꺼낼 때 디스크에 저장된 중요한 데이터를 해독하는 열쇠를 얻지 못합니다.
Vault 와 같은 강력한 감사 기능으로 중앙 집중식 인증 시스템을 사용하고 암호화 작업을 활용하십시오. Yubikey 장치를 배포하여 키를 절대 개인용 및 읽을 수 없도록 만듭니다.
기계는 파손시 닦거나 운영진과 경비원이 함께 처리하며 경영진의 감독이 필요한 경우