소프트웨어 무결성

윤효준·2025년 6월 30일
0

콤퓨타 공부

목록 보기
16/17

무결성이란?

소프트웨어에서 이야기하는 무결성이란 프로그램이나 데이터에 대한 불법 사용이나 잘못된 접근을 막는 정도를 의미한다. 여기에는 데이터에 대한 적절한 접근 보장과 함께 권한이 없는 사용자의 접근 제한 기능이 포함된다.

무결성을 보장하는 방법

1. 접근 제어

역할 기반 접근 제어(RBAC)

  • User: 특정 역할을 부여받아 그 역할에 속한 권한을 갖는 주체
  • Role: 조직 내에서 수행하는 업무나 책임 단위
  • Permission: 시스템 자원에 대한 CRUD 권한

사용자 -> 역할 -> 권한의 계층 구조를 통해 관리하기 때문에 개인별로 일일이 권한을 설정할 필요 없이 역할 단위로 묶어 일괄 관리할 수 있다.

최소 권한 원칙(Principle of Least Privilege)

사용자나 프로세스가 업무 수행에 꼭 필요한 최소한의 권한만 가지도록 제한한다. 불필요한 권한을 제거함으로써 실수나 악의적 침해가 발생해도 피해 범위를 최소화할 수 있다.

2. 암호학적 기법

해시 함수 & 체크섬

해시 함수의 핵심 속성

  • 일방향성: 입력값을 해시값으로 빠르게 계산할 수는 있지만, 역산할 수 없음

  • 충돌 저항성: 서로 다른 두 입력이 같은 해시값을 갖는 일이 극도로 어려움

  • 작은 변화 민감도: 입력이 1비트만 달라져도 출력 해시값이 완전히 달라짐

체크섬 vs 암호학적 해시

체크섬

  • 단순 계산 등 가벼운 방법
  • 강력한 충돌 저항은 제공하지 않음

암호학적 해시

  • SHA-256 등 표준 알고리즘
  • 체크섬 대비 충돌 저항성이 훨씬 높아 고의적 위변조 탐지에 적합

원본 파일의 SHA-256 해시 계산
해시갑을 함께 전송하여 수신 측은 수신된 파일의 SHA-256 해시를 다시 계산하여 비교한다.

이를 통해 전송 중 테이터가 변경되지 않음을 검증할 수 있음

디지털 서명

키 쌍 생성

비밀키 : 서명 시 사용
공개키 : 서명 검증에 사용

서명

메시지 또는 파일을 해시한 후에 비밀키로 암호화하여 서명 값 생성

메시지가 매우 클 수 있기에 해시값을 암호화하는 것이 효율적이다.

서명과 원본 메시지 전송

서명과 원본 메시지를 함께 수신자에게 전송한다.

검증

수신자는 보낸 사람의 공개키로 서명을 복호화해 해시값을 얻고 원본 메시지를 같은 해시 함수로 해싱한 결과와 비교하여 무결성을 보장할 수 있다.

추가적으로 디지털 서명은 다음과 같은 강점이 있다.

  • 인증: 서명은 특정 비밀키 소유자만 생성할 수 있으므로 발행자 확인 가능

  • 부인 방지: 서명자가 “내가 서명하지 않았다”고 부인하기 어려움

3. 변경 감지 및 로깅

파일 무결성 모니터링

1. 베이스라인 생성

  • 관리 대상 파일의 정상 상태 해시값을 수집
  • 해시값 외에도 파일 크기, 권한, 소유자 정보를 함께 저장

2. 주기적 스캔

  • 설정된 주기로 대상 파일의 현재 해시/메타데이터를 다시 계산

3. 비교 & 알림

  • 현재 해시값 != 베이스라인 해시값 -> "무단 변경"으로 분류
  • 병경 시점, 변경된 파일명, 이전/현재 해시, diff 등을 관리자에게 알림

4. 정상화 작업

  • 의도된 업데이트나 패치 적용 후에는 새 해시를 베이스라인으로 갱신하여 정상 변경으로 인정

에이전트 vs 에이전트리스

  • 에이전트 방식: 각 호스트에 모니터링 에이전트를 설치
  • 에이전트리스: 중앙 서버가 ssh 등을 통해 원격으로 파일 상태를 조회

감사 로그

1. 이벤트 선택

기록할 이벤트 유형 정의

  • 시스템 레벨: 로그인/로그아웃, 권한 변경, 프로세스 실행
  • 어플리케이션 레벨: DB 조회/수정, API 호출, 파일 열람

2. 로그 수집

각 시스템/어플리케이션이 발생시키는 로그를 표준 포맷(JSON, SYSLOG 등)으로 저장하고 중앙집중식 로길 서버로 전송한다.

3. 상관분석

SIEM(Security Information and Event Management) 도구에서 여러 로그를 결합 분석한다.
비정상 대량 삭제 시도 같은 복합 이벤트를 탐지한다.

4. 장기 보관 & 리포트

규제/내부감사를 위해 로그를 일정 기간 보관하고 주기 보고서를 생성한다.

무결성을 보장해서 얻는 이점

해당 방식들을 통해 우리는 데이터의 정확성, 신뢰성 및 가용성, 보안 강화라는 이점을 얻을 수 있다!

profile
작은 문제를 하나하나 해결하며, 누군가의 하루에 선물이 되는 코드를 작성해 갑니다.

0개의 댓글