소프트웨어에서 이야기하는 무결성이란 프로그램이나 데이터에 대한 불법 사용이나 잘못된 접근을 막는 정도를 의미한다. 여기에는 데이터에 대한 적절한 접근 보장과 함께 권한이 없는 사용자의 접근 제한 기능이 포함된다.
사용자 -> 역할 -> 권한
의 계층 구조를 통해 관리하기 때문에 개인별로 일일이 권한을 설정할 필요 없이 역할 단위로 묶어 일괄 관리할 수 있다.
사용자나 프로세스가 업무 수행에 꼭 필요한 최소한의 권한만 가지도록 제한한다. 불필요한 권한을 제거함으로써 실수나 악의적 침해가 발생해도 피해 범위를 최소화할 수 있다.
일방향성: 입력값을 해시값으로 빠르게 계산할 수는 있지만, 역산할 수 없음
충돌 저항성: 서로 다른 두 입력이 같은 해시값을 갖는 일이 극도로 어려움
작은 변화 민감도: 입력이 1비트만 달라져도 출력 해시값이 완전히 달라짐
원본 파일의 SHA-256 해시 계산
해시갑을 함께 전송하여 수신 측은 수신된 파일의 SHA-256 해시를 다시 계산하여 비교한다.
이를 통해 전송 중 테이터가 변경되지 않음을 검증할 수 있음
비밀키 : 서명 시 사용
공개키 : 서명 검증에 사용
메시지 또는 파일을 해시한 후에 비밀키로 암호화하여 서명 값 생성
메시지가 매우 클 수 있기에 해시값을 암호화하는 것이 효율적이다.
서명과 원본 메시지를 함께 수신자에게 전송한다.
수신자는 보낸 사람의 공개키로 서명을 복호화해 해시값을 얻고 원본 메시지를 같은 해시 함수로 해싱한 결과와 비교하여 무결성을 보장할 수 있다.
추가적으로 디지털 서명은 다음과 같은 강점이 있다.
인증: 서명은 특정 비밀키 소유자만 생성할 수 있으므로 발행자 확인 가능
부인 방지: 서명자가 “내가 서명하지 않았다”고 부인하기 어려움
기록할 이벤트 유형 정의
각 시스템/어플리케이션이 발생시키는 로그를 표준 포맷(JSON, SYSLOG 등)으로 저장하고 중앙집중식 로길 서버로 전송한다.
SIEM(Security Information and Event Management) 도구에서 여러 로그를 결합 분석한다.
비정상 대량 삭제 시도
같은 복합 이벤트를 탐지한다.
규제/내부감사를 위해 로그를 일정 기간 보관하고 주기 보고서를 생성한다.
해당 방식들을 통해 우리는 데이터의 정확성
, 신뢰성 및 가용성
, 보안 강화
라는 이점을 얻을 수 있다!