해커 루트 액세스의 경우에도 안전한 오프 사이트 백업


24

악의적 인 해커가 서버에 대한 루트 액세스 권한을 얻은 상황으로부터 데이터를 보호하는 오프 사이트 백업을 수행하는보다 안전한 방법을 구현하는 방법을 찾고 있습니다. SSH 및 암호 보안이 올바르게 설정되어 있고 시스템이 최신 상태로 유지되면 그러한 위험이 발생할 가능성이 다른 종류의 위험보다 적더라도 영구적으로 수행 할 수있는 피해량은 실제로 높기 때문에 그것을 제한하는 해결책을 찾고 싶습니다.

이미 두 가지 오프 사이트 백업 방법을 시도했습니다.

  • 백업 된 데이터가 복사되는 간단한 루트 쓰기 가능 webdav 마운트 (및 fstab에서 구성). 문제 : 외부 사이트에 대한 연결 및 액세스가 파일 시스템의 폴더로 계속 열려 있기 때문에 실제로 외부 사이트 백업이 아닙니다. 마운트에 제한된 액세스 권한 (루트 전용 액세스)이 있지만 루트 액세스 권한이있는 악의적 인 사람으로부터 보호하지 않는 경우 여러 종류의 공격에 대해 충분한 보호입니다.

  • 키 인증을 통한 SSH를 통한 Borg 백업. 문제 : 악의적 인 사용자가 호스트에 대한 루트 액세스 권한을 가진 경우 호스트에 저장된 키를 사용하여 해당 오프 사이트 서버에 연결할 수 있습니다.

해결책으로 이러한 잠재적 인 방법에 대해 생각하고 있지만 방법과 방법을 모르겠습니다.

  • 백업은 대상에 쓰거나 추가 할 수 있지만 삭제할 수는 없습니다.
  • 오프 사이트 백업을 처리하고 첫 번째 호스트에서 오프 사이트 백업의 대량 삭제를 지원하지 않는 백업 소프트웨어 사용.

내 상황에서 실제로 흥미롭지 않은 솔루션 :

  • 오프 사이트 호스트의 추가 백업 작업으로, 기술적 제한으로 인해 첫 번째 호스트가 액세스 할 수없는 위치로 전송합니다.

누구든지 내 사건에 적절한 오프 사이트 백업을 구현하는 방법에 대한 조언을 줄 수 있습니까?


7
먼저 서버 내부에서 로컬 백업을 만듭니다. 그런 다음 다른 서버에서 디렉토리를 마운트하지 않고 자신에게 백업을 다운로드합니다.
데스트로

2
30 년 또는 40 년 전에 익명의 "들어오는"디렉토리를 가진 FTP 서버가있었습니다. 파일을 업로드 할 수는 있지만 덮어 쓰거나 나열 할 수는 없습니다. 디렉토리의 권한을 적절히 설정하여 간단하게 작동했습니다. 로컬 루트인지 아닌지에 차이가 없습니다.
데이먼

@TheDESTROS 댓글이 아닌 답변에 답하십시오.
wizzwizz4

익명의 FTP를 더 이상 사용해야한다고 생각하지 않습니다.
Lucas Ramage

답변:


54

모든 제안은 현재 공통점이 하나 있습니다. 백업 소스는 백업을 수행하고 백업 대상에 액세스 할 수 있습니다. 위치를 마운트하든 SSH 또는 rsync와 같은 도구를 사용하든 소스 시스템은 백업에 액세스 할 수 있습니다. 따라서 서버가 손상되면 백업도 손상 될 수 있습니다.

백업 솔루션이 서버에 액세스 할 수 있다면 어떨까요? 백업 시스템은 읽기 전용 액세스로 작업을 수행 할 수 있으므로 백업 시스템의 손상은 서버를 손상시키지 않을 것입니다. 또한 백업 시스템은 이러한 목적으로 만 사용될 수 있으므로 백업 내용이 유일한 공격 경로가됩니다. 그럴 가능성은 거의 없으며 매우 정교한 공격이 필요합니다.

내용이 변조되거나 손상된 백업을 덮어 쓰지 않으려면 정의 된 복원 기간 내에 이전 상태를 복원 할 수 있는 증분 백업을 수행 하십시오.


읽기 전용 액세스 솔루션을 설정하기위한 가이드를 검색 할 위치에 대한 조언이 있습니까?
EarthMind

5
이것이 ssh를 통해 백업하는 방법입니다. 백업 서버가 백업 될 서버로 ssh됩니다.
Michael Hampton

4
ssh를 통한 rsync도 좋은 옵션이며 증분 백업을 허용합니다. 바로 SCP 더 나은 전체 백업에 적합
GoFundMonica이 - codidact.org

10
+
1-

1
BackupPC 또는 IBM Tivoli Storage Manager (일명 Spectrum Protect) 와 같은 백업 솔루션이 작동 하는 방식이기도합니다 .
Dubu

9

불변 저장

한 가지 좋은 옵션은 백업 스토리지를 변경 불가능하게 만들거나 최소한 신뢰할 수있는 버전 관리를 제공하여 효과적으로 불변성을 제공하는 것입니다. 명확하게 : 불변은 변경 불가능하거나 영구적 인 것을 의미합니다.

이를 위해 여러 서비스가 있습니다. AWS S3, BackBlaze B2 및 Azure와 Google 모두 비슷한 서비스를 제공한다고 생각합니다. 이 작업을 수행하기 위해 서버를 설정할 수는 있지만 확실하지 않습니다.

변경 불가능한 버전 관리 리포지토리가있는 경우 백업을 어느 시점 으로든 복원 할 수 있으므로 호스트가 손상된 경우에도 언제든지 복원 할 수 있습니다.

* AWS S3 **

AWS S3에 가장 익숙합니다. S3는 내구성이 높은 버전의 암호화 된 저장소를 제공합니다.

S3는 버전 관리를 지원하여 효과적인 불변성을 제공합니다. 수명주기 규칙을 사용하여 구성 할 수있는 기간이 지난 후 이전 버전의 파일을 삭제하도록 선택할 수 있습니다. 또한 TB 당 월 $ 1의 비용으로 콜드 스토리지 (glacier 콜드 아카이브)에 버전을 아카이브 할 수도 있습니다.

지능형 스토리지 계층화 클래스 를 사용하여 비용을 줄일 수 있습니다. 수명주기 규칙을 사용하여 모든 정적 데이터를 드문 액세스 클래스로 이동하기로 결정했습니다.이 클래스는 내구성이 높고 중간 정도 (핫) 성능이지만 S3 표준의 확장 성 또는 성능이 없습니다.

S3는 IAM (ID 액세스 관리, 즉 사용자 관리) 사용자 및 정책을 사용합니다. 이를 통해 백업 소프트웨어가 스토리지로 수행 할 수있는 작업을 매우 세밀하게 제어 할 수 있습니다. 백업 사용자에게 업로드 권한을 부여하지만 업데이트 및 삭제는 거부 할 수 있습니다. 파일을 삭제하기 위해 다단계 인증이 필요하거나 파일을 삭제할 수 없도록 개체 잠금을 제공 할 수도 있습니다.

추천 소프트웨어

Restic을 사용하여 증분 백업을 만듭니다 . Restic은 새 파일을 저장 위치에 업로드합니다. 나는 그것이 새로운 파일을 생성한다고 생각하지만 (잘못 될 수는 있지만) 일반적으로 작동하면 파일을 업데이트하거나 삭제하지 않습니다.

Borg는 또 다른 옵션입니다. 나는 Borg를 사용했지만, 수백 MB의 적당한 크기의 백업으로 매일 모든 데이터를 EC2에서 S3로 효과적으로 업로드한다는 것을 알았습니다. 나에게 이것은 증분되지 않으므로 사용을 중단했습니다. 이것에 관한 문서를 찾았지만 링크가 없습니다.

클라우드 스토리지에 업로드 할 수있는 수십 가지 소프트웨어가 있습니다.

보호 된 스토리지

일부 백업 소프트웨어를 사용하면 IAM 사용자에게 새 파일을 쓸 수는 있지만 기존 파일은 업데이트하지 못하도록 권한을 부여 할 수 있습니다. AWS IAM에서는 이러한 제한을 쉽게 적용 할 수 있지만 아래 설명에 따라 Restic은 해당 권한으로 작동하지 않습니다. S3에서 파일을 삭제하는 데 필요한 다단계 인증이있을 수도 있습니다.

PC에서 실행하는 다른 IAM 사용자가 주기적으로 아카이브를 정리하고 설정 한 정책에 따라 버전을 버릴 수 있습니다.


1
S3 Object Lock 도 참조하십시오 . 루트 사용자조차도 정의 된 기간 동안 개체를 삭제하거나 덮어 쓸 수 없도록 구성 할 수 있습니다.
user71659

때로는 파일을 삭제하고 싶을 때 객체 잠금이 백업에 다소 도움이 될 것으로 생각됩니다. 나중에 파일을 삭제할 수 있도록 만료 될 수 있습니다.

1
Restic은 독점 액세스를 제어하기 위해 "locks"디렉토리에 파일을 작성하고 제거하는 것을 좋아하므로 백엔드에서 파일을 제거 할 수있는 권한을 제거하면 파일이 중단됩니다. 여기서 제안 된 한 가지 솔루션 은 두 개의 버킷 (하나는 잠금을위한 읽기 / 쓰기 버킷, 다른 하나는 추가 전용 버킷)을 사용하는 것입니다. 그런 다음 로컬 tinyproxy 인스턴스를 사용하여 요청 경로에 따라 두 개의 Rclone 인스턴스 중 하나를 통해 물건을 보내고 각 Rclone은 명령을 적절한 버킷으로 보냅니다.
스콧 더들리

8

Borg Backup은 추가 전용 원격 저장소를 지원 합니다 . 백업중인 서버가 손상되면 기존 백업 만 덮어 쓰지 않고 새 백업 만 만들 수 있습니다.


2
내가 Borg에 대해 싫어하는 한 가지는 증분 백업이 특정 크기 미만인 경우 각 백업마다 업로드하는 것입니다. 대역폭이 비효율적이기 때문에 Restic으로 옮겼습니다. 나는 임계 값이 무엇인지 알지 못하지만 약간 성가시다.

그렇다면 누가 그러한 시스템에서 오래된 백업을 제거합니까? 하드 드라이브에 물건을 한 번만 추가하고 제거하지 않으려 고 시도했지만 스토리지가 빨리 소모됩니다.
마스트

7

내 상황에서 실제로 흥미롭지 않은 솔루션 :

오프 사이트 호스트의 추가 백업 작업으로 첫 호스트가 액세스 할 수없는 위치로 전송합니다.

근본적인 문제는 원격으로 백업에 액세스 할 수 있으면 해커도 액세스 할 수 있다는 것 입니다.

(기술적 인 한계로 인해)

기술적 인 한계가 극복되었습니다.

누구든지 내 사건에 적절한 오프 사이트 백업을 구현하는 방법에 대한 조언을 줄 수 있습니까?

테이프 드라이브 는 거의 70 년 동안 해커를 포함한 모든 종류의 재난에 대해 안전한 오프 사이트 보호를 제공해 왔습니다.


1
왜이 답변이 더 높지 않은지 이해할 수 없습니다. 온라인 공격을 방지하는 가장 좋은 방법은 오프라인 공격을하는 것입니다. 테이프는 간단하고 입증되었습니다.
그렉

@Greg webdav, Borg, SMB 및 NFS 연결 만 허용하는 사용중인 서비스의 제한으로 인해 내 경우와 같이 모든 솔루션이 아닙니다. 또한 그것은 매우 비싸고 (괜찮은 대안에 비해) 솔루션이며 모든 경우에 흥미롭지 않습니다. 비싼 오프라인 백업 솔루션으로 € 10 / m VPS를 백업하는 것을 보지 못했습니다. 데이터가 사라지면 세상의 끝이 아닙니다. 다양한 가격대의 권장 사항을 확인하는 것이 좋지만이 솔루션은 제 사용 사례에서 가장 흥미롭지 않습니다.
EarthMind

이. 물리적 인 미디어에 백업하고 안전한 오프 사이트 위치를 통해 물리적 인 미디어를 회전 시키십시오. 이상적으로는 자연 재해에 대한 다른 위험 프로파일이 있습니다.
arp

@asp 내 시스템 관리자 중 두 명 (나는 DBA)이 테이프를 차 트렁크에 보관했습니다. 그 중 하나는 9/11에 WTC에서 근무하기 늦었습니다 (이러한 시스템은 다른 DC에있었습니다). 12 또는 9/13 (어떤 것을 잊었는지) 그는 주 테이프로 백업 DC로갔습니다.
RonJohn

3

루트 계정 PUT 권한은 버킷에 부여 할 수 있지만 DELETE 권한은 부여 할 수없는 AWS S3 (또는 Google 또는 Azure와 동등한 기능)와 같은 스토리지 서비스를 사용할 수 있습니다. 이렇게하면 푸시 모델을 사용할 수 있으며 공격자는 백업을 삭제할 수 없습니다.

MFA가 버킷에서 DELETE를 수행하도록 요구하지만 MFA없이 PUT 및 GET을 허용하는 등 AWS에서 취할 수있는 추가 보안 조치가 있습니다. 이렇게하면 MFA 장치를 사용하지 않고도 데이터를 백업하고 데이터를 검색하여 서비스를 복원 할 수 있습니다. 이는 MFA 장치에 액세스하면 데이터를 손상시킬 수있는 극단적 인 경우 (아마도 모호한 경우도 있음)에 유용 할 수 있습니다.

또한, 범위 밖에서 흥미 롭거나 유용하다고 생각할 수 있지만 주 데이터 소스가 오프라인 인 경우 자동 장애 조치를 위해 S3 및 유사한 서비스를 구성하는 방법에는 여러 가지가 있습니다.


1
IAM에서 쓰기 권한이 있고 삭제 권한이없는 전용 "푸시"클라이언트를 생성하는 것이 좋습니다. 또한 버킷에서 버전 관리를 켜서 이전 버전을 계속 사용할 수 있습니다. 비용 절감으로 Glacier에 이전 버전을 "복구"합니다.
Criggie

3

키 인증을 통한 SSH를 통한 Borg 백업. 문제 : 악의적 인 사용자가 호스트에 대한 루트 액세스 권한이있는 경우 호스트에 저장된 키를 사용하여 해당 오프 사이트 서버에 연결할 수 있습니다.

authorized_keys에서 옵션 명령을 사용할 수 있습니다. 원격에서 허용 된 명령을 수정하십시오.

ssh certified_keys에 명령을 추가하는 방법

공격자가 로그인 루트를 복구하더라도 정의 된 명령 이외의 작업을 수행 할 수 없습니다.


1

설정할 수있는 기술은 서버와 원격 백업 서버 사이의 동기화를 사용하고 원격 백업 서버가 스냅 샷 또는 그 밖의 모든 작업을 수행하여 서버 측을 지워도 오프 사이트가 삭제되지 않도록하는 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.