운영체제 (LNX,WIN)

랜섬웨어 공격 시 백업 데이터 암호화 예방을 위한 전략 (무결성 보장)

날으는물고기 2024. 9. 23. 00:26

Cloudian 및 Veeam v11을 사용하여 안전하고 변경 불가능한 백업 저장소를 만드는 자세한 방법

랜섬웨어 공격 시 백업 데이터가 암호화되는 것을 예방하기 위한 몇 가지 전략과 권장 사항을 제시하겠습니다. 랜섬웨어 예방을 위한 백업 전략은 다층적인 접근이 필요합니다. 오프라인 백업, 다중 백업 원칙, 데이터 암호화 및 접근 제어, 최신 소프트웨어 사용, 지속적인 모니터링과 대응 계획 수립 등을 통해 백업 데이터의 안전성을 확보할 수 있습니다.

1. 백업 데이터 분리 (Air-Gapped 백업)

  • 오프라인 백업: 백업 데이터를 오프라인 상태로 유지하는 것이 중요합니다. 백업이 완료된 후 네트워크에서 분리하여 오프라인 상태로 두면 랜섬웨어가 접근할 수 없습니다.
  • 클라우드 백업: 클라우드 스토리지에 백업을 저장하되, 백업 시스템과 로컬 네트워크 사이에 엄격한 접근 제어를 설정합니다. 백업 완료 후 자동으로 네트워크에서 분리되는 설정을 고려합니다.

2. 다중 백업 전략

  • 3-2-1 백업 원칙: 세 가지 백업 복사본을 만들고, 두 가지 서로 다른 매체에 저장하며, 한 가지는 오프사이트에 보관합니다. 이를 통해 한 곳의 백업이 손상되더라도 다른 백업 복사본을 사용할 수 있습니다.
  • 정기적인 백업 테스트: 정기적으로 백업 데이터를 복원하여 실제로 데이터가 유효하고 손상되지 않았는지 확인합니다.

3. 백업 데이터 암호화 및 접근 제어

  • 백업 데이터 암호화: 백업 데이터를 암호화하여 저장합니다. 이렇게 하면 백업 데이터에 대한 무단 접근이 이루어지더라도 데이터를 읽을 수 없습니다.
  • 엄격한 접근 제어: 백업 시스템에 대한 접근 권한을 최소화하고, 멀티팩터 인증(MFA)을 사용하여 접근을 통제합니다.

4. 백업 소프트웨어와 스토리지 보호

  • 최신 백업 소프트웨어 사용: 최신 버전의 백업 소프트웨어를 사용하고 정기적으로 업데이트하여 알려진 취약점이 악용되지 않도록 합니다.
  • 보안 설정: 백업 소프트웨어와 스토리지 시스템에 대한 보안 설정을 강화합니다. 예를 들어, 네트워크 접근 제어, 방화벽 설정, 백신 소프트웨어 등을 통해 보호합니다.

5. 지속적인 모니터링과 대응 계획 수립

  • 보안 모니터링: 시스템 로그 및 네트워크 트래픽을 모니터링하여 이상 징후를 조기에 발견합니다. osquery와 Wazuh 같은 도구를 사용하여 이를 자동화할 수 있습니다.
  • 비상 대응 계획: 랜섬웨어 공격 발생 시 대응 계획을 사전에 수립하고, 주기적으로 연습합니다. 데이터 복구 절차와 연락망을 명확히 정리해 둡니다.

기술적 구현 예시

백업 스크립트 예시 (Linux 환경)

#!/bin/bash

# 백업 대상 디렉토리
SOURCE_DIR="/path/to/source"

# 백업 저장 디렉토리
BACKUP_DIR="/path/to/backup"

# 날짜 형식 설정
DATE=$(date +'%Y%m%d%H%M%S')

# 백업 파일 이름 설정
BACKUP_FILE="${BACKUP_DIR}/backup_${DATE}.tar.gz"

# 백업 수행
tar -czvf ${BACKUP_FILE} ${SOURCE_DIR}

# 네트워크에서 분리 (예: 마운트 해제)
umount /path/to/backup_drive

echo "백업이 완료되고, 네트워크에서 분리되었습니다."

그리고, 백업된 데이터의 변경 및 변조를 방지하기 위해 다양한 보안 조치와 기술을 적용할 수 있습니다.

1. 불변 스토리지 (Immutable Storage) 사용

불변 스토리지는 저장된 데이터를 일정 기간 동안 변경하거나 삭제할 수 없도록 설정하는 방식입니다.

  • 클라우드 불변 스토리지: AWS S3, Azure Blob Storage, Google Cloud Storage 등 주요 클라우드 서비스 제공자는 불변 스토리지를 지원합니다.
    • AWS S3: Object Lock 기능을 사용하여 버전 관리와 보존 정책을 설정합니다.
    • Azure Blob Storage: Immutable Blob 기능을 사용합니다.
    • Google Cloud Storage: Retention Policy를 설정하여 데이터를 보호합니다.

 

AWS S3 Object Lock 예시

aws s3api put-object-lock-configuration \
    --bucket my-bucket \
    --object-lock-configuration \
    '{"ObjectLockEnabled":"Enabled","Rule":{"DefaultRetention":{"Mode":"GOVERNANCE","Days":365}}}'

2. 접근 제어 및 권한 관리

백업 데이터에 대한 접근을 엄격하게 제한하여 변경 및 변조를 방지합니다.

  • 접근 제어: 파일 시스템 및 네트워크 접근 제어 목록(ACL)을 설정하여 특정 사용자나 그룹만 백업 데이터에 접근할 수 있도록 합니다.
  • 다중 인증(MFA): 중요한 백업 데이터에 접근할 때 다중 인증을 요구합니다.
  • 최소 권한 원칙(Least Privilege Principle): 백업 데이터에 접근할 수 있는 권한을 최소한의 사용자에게만 부여합니다.

 

Linux 환경에서 접근 제어 예시

# 사용자 및 그룹 설정
chown root:backup /path/to/backup

# 접근 권한 설정
chmod 770 /path/to/backup

# 특정 사용자만 접근 가능하도록 설정
setfacl -m u:specific_user:rwx /path/to/backup

3. 백업 데이터 암호화

백업 데이터를 암호화하여 무단 접근 시에도 데이터를 보호합니다.

  • 전송 중 암호화: 백업 데이터가 네트워크를 통해 전송될 때 SSL/TLS 암호화를 사용합니다.
  • 저장 시 암호화: 백업 데이터가 저장될 때 AES-256과 같은 강력한 암호화 알고리즘을 사용합니다.

 

OpenSSL을 이용한 데이터 암호화 예시

# 데이터 암호화
openssl enc -aes-256-cbc -salt -in /path/to/backup.tar.gz -out /path/to/backup_encrypted.tar.gz

# 데이터 복호화
openssl enc -d -aes-256-cbc -in /path/to/backup_encrypted.tar.gz -out /path/to/backup_decrypted.tar.gz

4. 무결성 검증

백업 데이터의 무결성을 검증하여 변경이나 변조가 없는지 확인합니다.

  • 체크섬 사용: SHA-256 같은 해시 알고리즘을 사용하여 백업 데이터의 체크섬을 생성하고, 정기적으로 이를 검증합니다.
  • 무결성 모니터링 도구: Tripwire 같은 무결성 모니터링 도구를 사용하여 백업 데이터의 변경을 감시합니다.

 

SHA-256 체크섬 생성 및 검증 예시

# 체크섬 생성
sha256sum /path/to/backup.tar.gz > /path/to/backup.tar.gz.sha256

# 체크섬 검증
sha256sum -c /path/to/backup.tar.gz.sha256

5. 백업 정책 및 절차

명확한 백업 정책과 절차를 수립하여 백업 데이터의 변경 및 변조를 예방합니다.

  • 백업 정책: 백업 주기, 보존 기간, 복구 절차 등을 명확히 정의합니다.
  • 정기적인 감사: 백업 절차와 정책의 준수 여부를 정기적으로 감사합니다.

 

백업 데이터의 변경 및 변조를 방지하기 위해 불변 스토리지, 접근 제어, 데이터 암호화, 무결성 검증, 명확한 백업 정책 등을 적용할 수 있습니다. 이러한 방법들을 통해 백업 데이터의 안전성을 보장할 수 있습니다. 리눅스 환경에서 백업 시스템을 운영하면서 백업 후 파일의 퍼미션을 000으로 설정하거나 이뮤터블(immutable) 속성을 적용하는 방법도 있습니다.

1. 파일 퍼미션 000으로 설정

백업 후 파일 퍼미션을 000으로 설정하면 파일에 대한 읽기, 쓰기, 실행 권한이 모두 제거됩니다. 이는 파일에 대한 접근을 완전히 차단하는 효과가 있습니다.

 

파일 퍼미션 000 설정 예시

# 백업 파일 생성
tar -czvf /path/to/backup.tar.gz /path/to/data

# 파일 퍼미션을 000으로 설정
chmod 000 /path/to/backup.tar.gz

# 설정 확인
ls -l /path/to/backup.tar.gz

2. 이뮤터블(immutable) 속성 적용

이뮤터블 속성을 적용하면 파일을 수정, 삭제 또는 이름 변경할 수 없게 됩니다. 이는 중요한 백업 파일의 무결성을 유지하는 데 매우 유용합니다.

 

이뮤터블 속성 적용 예시

# 이뮤터블 속성 적용
chattr +i /path/to/backup.tar.gz

# 설정 확인
lsattr /path/to/backup.tar.gz

3. 이뮤터블 속성 제거

파일을 수정하거나 삭제해야 할 경우 이뮤터블 속성을 제거해야 합니다.

 

이뮤터블 속성 제거 예시

# 이뮤터블 속성 제거
chattr -i /path/to/backup.tar.gz

# 설정 확인
lsattr /path/to/backup.tar.gz

4. 스크립트를 사용한 자동화

백업 과정에서 위의 작업들을 자동화할 수 있는 스크립트를 작성하여 실행하면 편리합니다.

 

백업 스크립트 예시

#!/bin/bash

# 백업 대상 디렉토리
SOURCE_DIR="/path/to/source"

# 백업 저장 디렉토리
BACKUP_DIR="/path/to/backup"
DATE=$(date +'%Y%m%d%H%M%S')
BACKUP_FILE="${BACKUP_DIR}/backup_${DATE}.tar.gz"

# 백업 수행
tar -czvf ${BACKUP_FILE} ${SOURCE_DIR}

# 파일 퍼미션을 000으로 설정
chmod 000 ${BACKUP_FILE}

# 이뮤터블 속성 적용
chattr +i ${BACKUP_FILE}

echo "백업이 완료되었습니다. 파일 퍼미션과 이뮤터블 속성이 적용되었습니다."

리눅스 환경에서 백업 파일의 보안을 강화하기 위해 백업 후 파일 퍼미션을 000으로 설정하고, 이뮤터블 속성을 적용할 수 있습니다. 이는 파일에 대한 접근을 완전히 차단하고, 파일의 무결성을 유지하는 데 효과적입니다. 이러한 작업들을 자동화하는 스크립트를 작성하여 백업 프로세스를 더욱 안전하게 운영할 수 있습니다.

728x90