본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.
Integrity
데이터나 리소스를 인증되지 않은 변경으로부터 보호하는 것

무결성은 정보와 시스템이 허가 없이, 또는 부적절하게 바뀌거나 파괴되지 않았음을 보장하는 성질이다. 기밀성이 "누가 볼 수 있는가"를 다룬다면 무결성은 "믿고 쓸 수 있는가"를 다룬다. 미국 연방 정보보안 법령의 정의를 따르는 FIPS 199는 무결성을 "부적절한 정보 변경이나 파괴를 막는 것"으로 정의하면서, 여기에 정보의 부인 방지와 진정성(authenticity)을 보장하는 것까지 포함시킨다. 그래서 무결성 상실은 "정보의 무단 변경 또는 파괴"로 표현된다.

무결성이 깨지면 피해가 조용히 퍼진다. 계좌 잔액, 처방 용량, 제어 설비의 설정값이 바뀌어도 시스템은 정상처럼 돌아가고, 잘못된 데이터를 근거로 한 결정이 연쇄적으로 이어진다. 금융 거래, 의료, 산업제어처럼 데이터가 곧 행동으로 이어지는 분야에서 무결성을 특히 중시하는 이유이다. CISSP 출제 범위 1.2는 무결성을 기밀성, 가용성, 진정성, 부인 방지와 함께 "정보보안의 다섯 기둥"으로 다룬다.

데이터 무결성과 시스템 무결성

편집 원본 편집
구분 데이터 무결성(data integrity) 시스템 무결성(system integrity)
대상 저장·전송·처리 중인 데이터 운영체제, 애플리케이션, 펌웨어, 설정을 포함한 시스템 전체
의미 데이터가 생성·전송·저장된 이후 허가 없이 바뀌지 않았음 시스템이 의도적이든 우발적이든 무단 조작 없이 의도한 기능을 온전히 수행함
위협 예 전송 중 변조, DB 레코드 위조, 로그 삭제, 저장 매체 오류 루트킷, 악성 펌웨어, 승인되지 않은 설정 변경, 시스템 파일 교체
대표 통제 해시, 메시지 인증 코드, 전자서명, DB 제약조건, 입력 검증 보안 부팅, 코드 서명, 파일 무결성 모니터링, 형상 관리, 변경 관리

데이터베이스 설계에서 말하는 개체 무결성, 참조 무결성, 도메인 무결성은 데이터 무결성을 DBMS가 강제하는 규칙이다. 자세한 내용은 데이터베이스 무결성 문서를 참고한다.

위협 설명 예
고의적 변조(modification) 공격자가 데이터나 프로그램을 의도적으로 바꾼다. 전송 중 메시지 변조, 웹 페이지 위·변조, 로그 삭제로 흔적 은폐
위장·재전송 다른 주체를 사칭하거나 과거 메시지를 다시 보내 정상 거래처럼 보이게 한다. 송금 요청 재전송, 중간자 공격
권한 있는 사용자의 부적절한 변경 접근 권한은 있지만 업무 규칙을 벗어난 변경을 한다. 내부 부정의 전형이다. 담당자가 자기 계좌로 지급 정보를 바꿈
비인가 변경 권한이 없는 사용자나 프로세스가 변경한다. 웹 셸을 통한 파일 수정, SQL 인젝션으로 레코드 변경
우발적 오류 사람의 입력 실수, 잘못된 일괄 처리, 소프트웨어 결함으로 데이터가 틀어진다. 단위 착오, 잘못된 대량 갱신 스크립트
하드웨어·전송 오류 저장 매체 손상, 비트 반전, 통신 잡음으로 데이터가 손상된다. 디스크 섹터 오류, 패킷 손상
동시성 문제 여러 프로세스가 같은 자원을 갱신하다가 결과가 어긋난다. 경쟁 상태, 확인 시점과 사용 시점 사이의 변경(TOCTOU)
악성코드 시스템 파일과 데이터를 바꾸거나 암호화한다. 랜섬웨어, 루트킷

AI 시스템에서는 학습 데이터에 조작된 표본을 섞는 데이터 오염 공격(data poisoning), 모델 파일 바꿔치기, 간접 프롬프트 인젝션으로 출력과 행동을 비트는 공격이 무결성 위협에 해당한다.

통제 무엇을 보장하는가 한계·주의점
해시(암호 해시 함수) 원본과 해시값을 비교해 변경 여부를 탐지한다. 공격자가 데이터와 해시값을 함께 바꿀 수 있으면 소용없다. 해시값을 안전한 경로로 따로 보관하거나 서명해야 한다.
오류 검출 코드(CRC, 패리티, 체크섬) 우발적 전송·저장 오류를 탐지한다. 의도적 변조는 막지 못한다. 공격자가 값을 다시 계산하면 그만이다.
메시지 인증 코드(MAC, HMAC) 비밀 키를 공유한 당사자 사이에서 무결성과 출처를 확인한다. 같은 키를 가진 양쪽 누구나 만들 수 있으므로 제3자에게 누가 만들었는지 증명하지 못한다.
전자서명 개인키로 서명하고 공개키로 검증해 무결성, 출처 인증, 부인 방지를 함께 제공한다. 키 관리와 인증서 신뢰가 전제이다.
접근통제와 최소 권한 원칙 변경할 권한 자체를 필요한 주체로 제한한다. 권한 있는 사용자의 부적절한 변경은 막지 못하므로 직무 분리가 필요하다.
직무 분리·이중 통제 한 사람이 거래를 만들고 승인까지 하지 못하게 한다. 담합에는 약하므로 직무 순환과 감사로 보완한다.
입력 검증 형식, 범위, 업무 규칙에 맞지 않는 값을 처리 전에 거부한다. 서버 측에서 해야 한다. 클라이언트 측 검증은 우회된다.
변경 관리·형상 관리 승인·시험·기록을 거친 변경만 운영 환경에 반영하고, 기준 형상과 달라진 점을 찾아낸다. 긴급 변경도 사후 승인과 기록을 남겨야 한다.
파일 무결성 모니터링 주요 파일과 설정의 해시를 주기적으로 비교해 무단 변경을 알린다. 탐지 통제이므로 예방은 다른 통제가 맡는다.
트랜잭션·DB 제약조건 원자성과 일관성을 보장하고 참조·도메인 규칙 위반을 거부한다. 업무 논리 수준의 부정은 별도 통제가 필요하다.
백업과 버전 관리 손상·변조된 데이터를 알려진 정상 상태로 되돌린다. 백업 자체도 변조·암호화되지 않도록 분리 보관한다.

무결성 보안 모델

편집 원본 편집

무결성을 다루는 대표적인 형식 모델은 둘이다.

모델 핵심 규칙 특징
비바 무결성 모델 단순 무결성 속성: 낮은 무결성 수준의 객체를 읽지 않는다(no read down). *-무결성 속성: 높은 무결성 수준의 객체에 쓰지 않는다(no write up). 호출 속성: 높은 수준의 주체를 호출하지 않는다. 벨-라파둘라 모델의 규칙을 무결성 관점에서 뒤집은 모양이다. 오염된 정보가 신뢰도 높은 정보로 흘러 들어가는 것을 막는다.
클락-윌슨 모델 주체는 객체에 직접 접근하지 못하고 검증된 프로그램(변환 절차, TP)을 통해서만 제약 데이터(CDI)를 바꾼다(접근 삼원소: 주체-프로그램-객체). 무결성 검증 절차(IVP)로 데이터 상태를 확인하고, 직무 분리와 감사 기록을 요구한다. 상업 환경을 겨냥한 모델이다. 1987년 David Clark와 David Wilson의 논문에서 제시되었다.

무결성의 목표는 흔히 세 가지로 정리한다. 권한 없는 사용자의 변경을 막고, 권한 있는 사용자의 부적절한 변경을 막으며, 데이터의 내부 일관성과 외부 일관성(현실과의 일치)을 유지하는 것이다. 비바 모델은 첫 번째 목표만 다루고, 클락-윌슨 모델은 세 목표를 모두 다룬다.

  • 무결성 상실은 무단 변경·파괴이다. 기밀성(무단 공개), 가용성(접근·사용 중단)과 구분한다.
  • 해시만으로는 고의적 변조를 막지 못한다. 공격자가 해시값까지 바꿀 수 있으면 MAC이나 전자서명을 고른다.
  • MAC은 무결성과 출처 인증을 주지만 부인 방지는 주지 않는다. 부인 방지가 요구되면 전자서명이다.
  • 권한 있는 사용자의 부정을 막는 통제를 물으면 접근통제보다 직무 분리, 변경 관리, 감사가 정답에 가깝다.
  • 무결성 모델: 비바는 no read down·no write up, 클락-윌슨은 잘 짜인 거래(well-formed transaction)와 직무 분리이다. 벨-라파둘라는 기밀성 모델이다.
  • CRC·패리티는 우발적 오류 탐지용이다. "변조 방지" 선택지에서 고르지 않는다.