현재 선택한 정보보안 과정

정보보안기사 필기 이론 학습

이론 목록으로 돌아가기

권한 악용과 경쟁조건

검사와 사용 사이의 대상 교체인 TOCTOU를 이해하고 원자적 처리·안전한 임시파일·최소권한을 연결합니다.

예상 읽기 3

1. 경쟁조건의 기본 개념

두 작업이 공유 자원을 동시에 사용하고, 실행 순서에 따라 결과가 달라질 때 경쟁조건이 발생할 수 있다.

CODE코드 영역 안에서 좌우로 이동할 수 있습니다.
작업 A: 값 확인 → 값 변경
작업 B: 값 확인 → 값 변경

두 작업이 같은 초기값을 읽고 각각 변경하면 사용량 한도·재고·잔액·파일 상태가 잘못될 수 있다.

경쟁조건은 파일뿐 아니라 공유 메모리나 상태에서도 발생할 수 있다. 필기에서는 공유 자원과 시간 차가 존재하고 실행 순서가 보안 결과를 바꾼다는 점을 기억한다.

2. TOCTOU

TOCTOU(Time Of Check To Time Of Use)는 자원을 검사한 뒤 실제로 사용하는 사이에 그 자원이나 상태가 바뀌는 문제다.

CODE코드 영역 안에서 좌우로 이동할 수 있습니다.
1. 프로그램이 경로의 대상과 권한을 검사
2. 공격자가 같은 경로가 가리키는 대상을 교체
3. 프로그램이 그 경로를 다시 열어 사용

검사한 객체와 실제 사용한 객체가 다르면 높은 권한 프로그램이 공격자가 지정한 파일을 읽거나 덮어쓸 수 있다.

좌우로 이동해 그림을 확인하세요.그림 크게 보기
TOCTOU: 검사와 사용 사이의 교체
TOCTOU: 검사와 사용 사이의 교체

3. 하드링크와 심볼릭 링크

구분핵심 특징
하드링크같은 파일 객체를 가리키는 다른 이름
심볼릭 링크다른 경로를 가리키는 별도 파일

링크 자체가 악성 기능은 아니다. 그러나 높은 권한 프로그램이 공격자가 제어할 수 있는 디렉터리에서 파일 경로를 믿으면 링크를 이용해 예상과 다른 파일에 접근할 수 있다.

경로 문자열이 같다는 사실과 실제 파일 객체가 같다는 사실은 구분해야 한다.

4. 공유 임시파일의 위험

공용 임시 디렉터리에서 예측 가능한 이름을 사용하면 공격자가 먼저 파일이나 링크를 만들어 이름을 선점할 수 있다.

위험한 조건은 다음과 같다.

  • 누구나 쓸 수 있는 디렉터리
  • 예측 가능한 파일명
  • 높은 권한 프로그램
  • 파일 존재 여부를 검사한 뒤 별도로 생성
  • 지나치게 넓은 파일 권한

Sticky bit는 다른 사용자의 파일 삭제·이름 변경을 제한하지만, 모든 링크 공격과 이름 선점을 해결하지는 않는다.

5. 대표 대응 원칙

검사와 사용을 분리하지 않는다

가능하면 “존재하는지 확인한 뒤 생성”하지 말고 배타적·원자적 생성처럼 하나의 시스템 동작으로 처리한다.

안전한 임시파일 기능을 사용한다

무작위성이 충분한 이름, 배타적 생성, 제한된 권한을 제공하는 운영체제·라이브러리 기능을 사용한다.

신뢰 가능한 디렉터리를 사용한다

민감한 작업은 공격자가 파일·링크를 만들 수 없는 전용 디렉터리에서 수행한다.

최소권한을 적용한다

높은 권한이 필요한 부분만 작게 분리하고, 작업 후에는 불필요한 권한을 유지하지 않는다.

공유 상태를 동기화한다

공유 값에는 잠금·원자 연산 등 적절한 동기화를 적용한다. 잠금은 관련 작업이 같은 규칙을 지킬 때 효과가 있으므로 파일 경로 교체를 모든 경우에 자동 방지하지는 않는다.

로그와 감사

높은 권한 작업의 요청자, 대상, 결과, 실패를 기록해 권한 오용과 반복 실패를 추적한다.

6. 간단한 사례

높은 권한의 보고서 서비스가 /tmp/report.txt 파일이 없음을 확인한 뒤 생성한다고 가정한다.

CODE코드 영역 안에서 좌우로 이동할 수 있습니다.
서비스: 파일 없음 확인
공격자: /tmp/report.txt를 중요 설정 파일을 가리키는 링크로 생성
서비스: 같은 경로를 열어 보고서 기록

이 경우 높은 권한으로 중요 파일이 덮어써질 수 있다. 대응은 다음과 같다.

  • 공격자가 쓸 수 없는 전용 디렉터리 사용
  • 배타적·원자적 파일 생성
  • 파일 권한 제한
  • 서비스 권한 최소화
  • 작업 대상과 결과 감사
스스로 확인하기

개념 확인 문제

문제를 누르면 바로 아래에서 정답과 해설을 확인할 수 있습니다.

01파일 경로가 같으면 검사한 파일과 나중에 연 파일도 같은 객체인가?
정답 및 해설

반드시 그렇지는 않다. 검사와 사용 사이에 링크나 디렉터리 항목이 바뀔 수 있다. 이것이 경로 기반 TOCTOU의 핵심이다.

02공유 임시 디렉터리의 Sticky bit만으로 이름 선점도 막을 수 있는가?
정답 및 해설

아니다. 다른 사용자의 파일 삭제·이름 변경 제한과 예측 가능한 이름의 선점은 다른 문제다. 배타적·원자적 생성, 제한된 권한, 신뢰할 수 있는 디렉터리를 함께 사용한다.