WIKI
데이터 무결성
데이터 무결성
저장·전송·메모리 계층에서 데이터 손상을 검출하고 복구하는 방법은 무엇인가.
Scope
핵심 질문
저장된 데이터가 시간이 지나도 원래 값과 동일하다는 것을 어떻게 검출하고 보장하는가?
Research
핵심 근거
- 데이터 손상은 저장장치, 메모리, 케이블, controller, software bug 등 여러 계층에서 발생할 수 있다.
- checksum은 손상을 검출하고 redundancy는 올바른 복사본이 있을 때 복구를 가능하게 한다.
- backup은 무결성과 별개이며 손상된 데이터도 그대로 백업될 수 있다.
Draft
데이터 무결성은 저장하거나 전송한 데이터가 의도치 않게 바뀌지 않았음을 확인할 수 있는 성질이다.
Checksum
데이터 block의 hash나 checksum을 함께 저장하면 나중에 읽을 때 값이 달라졌는지 확인할 수 있다.
단순 filesystem이 저장장치가 반환한 값을 그대로 믿는 것과 달리 end-to-end checksum filesystem은 데이터와 metadata의 손상을 검출할 수 있다.
Redundancy
검출만으로는 복구할 수 없다. mirror나 parity에 정상 복사본이 있으면 checksum으로 잘못된 쪽을 식별하고 수정할 수 있다.
Backup과 차이
RAID와 checksum은 현재 storage의 장애·손상 검출과 복구를 다루고, 복구 가능한 백업은 삭제·랜섬웨어·운영실수로부터 분리된 사본을 필요로 한다. 손상되거나 암호화된 데이터를 그대로 미러링하거나 덮어쓴 사본만 남으면 백업이라는 이름이 있어도 복구할 수 없다. 독립적·버전별 또는 격리된 정상 사본을 보존하고 백업 접근권한을 제한하며, 무결성과 실제 복원 과정을 정기적으로 시험해야 한다.
핵심
무결성은 한 부품의 신뢰성보다 오류를 검출하고 정상 복사본으로 복구할 수 있는 전체 경로의 설계 문제다. CISA의 #StopRansomware Guide도 오프라인·암호화 백업과 정기적인 백업 무결성·복원 시험을 권고한다.