본문 바로가기

신뢰경계·최소권한·심층방어

직원이 사내망에서 로그인했다는 이유로 모든 자료를 읽을 수 있다면 계정 하나의 침해가 전체 피해로 번진다. 어느 지점에서 신뢰수준이 달라지는지 표시하고, 각 작업에 필요한 만큼만 권한을 주며, 한 통제가 실패해도 다음 통제가 막도록 설계해야 한다.

한 번 안으로 들어왔다고 계속 믿지 않는다

직원이 사내망에서 로그인했다는 이유로 모든 자료를 읽을 수 있다면 계정 하나의 침해가 전체 피해로 번진다. 어느 지점에서 신뢰수준이 달라지는지 표시하고, 각 작업에 필요한 만큼만 권한을 주며, 한 통제가 실패해도 다음 통제가 막도록 설계해야 한다.

신뢰경계·최소권한·심층방어

신뢰경계는 서로 다른 신뢰수준 사이에서 검증과 통제가 필요한 경계다. 최소권한은 주체에게 업무 수행에 필요한 최소 범위·시간·조건의 권한만 부여하는 원칙이다. 심층방어는 한 통제의 실패가 전체 침해로 이어지지 않도록 독립적인 예방·탐지·대응 통제를 여러 층에 배치하는 원칙이다.

신원을 확인한 뒤에도 작업별 허용을 판단한다

인증은 요청자가 누구인지 확인하는 일이고, 인가는 그 주체가 지금 그 자원에 그 행동을 해도 되는지 판단하는 일이다. 운영자가 로그인했다는 사실은 인증 근거일 뿐, 모든 서비스의 데이터 삭제까지 허용하는 근거가 아니다. 등록장치와 사건번호도 허용 판단에 필요한 조건이지, 그것만 맞으면 다른 조건을 생략해도 된다는 뜻은 아니다.

최소권한을 적을 때는 주체·대상 자원·행동·기간·추가 조건을 함께 쓴다. 예를 들어 “민수가 결제 서비스의 설정값을 10:00부터 10:30 전까지 변경하되, 승인된 사건과 정상 기록경로가 있을 때만 허용”이라고 하면 읽기 권한, 다른 서비스, 삭제 명령, 만료된 요청을 따로 구별할 수 있다. 화면에서 버튼을 숨기는 것만으로는 인가가 되지 않는다. 실제 변경을 집행하는 서버가 요청마다 객체와 행동을 검사하고, 명시한 허용 조건이 없으면 기본적으로 거부해야 한다.

관리자 작업을 세 원칙으로 보기

운영자 단말에서 관리 API로 넘어가는 지점을 신뢰경계로 두고 주체·장치·작업을 검증한다. 운영자는 평소 읽기 권한만 갖고 승인된 시간에 특정 시스템의 변경권한을 임시로 받는다. 계정이 탈취되어도 네트워크 제한, 행위승인, 변경검증, 이상탐지와 복구가 서로 다른 층에서 피해를 제한한다.

통제 수가 많아도 같은 실패를 공유하면 한 층이다

여러 통제가 같은 계정·규칙·관리서버에 의존하면 하나의 침해로 함께 무너질 수 있다. 최소권한을 너무 잘게 나누고 승인 절차가 느리면 공용계정과 우회가 늘어난다. 권한 사용성과 피해범위를 함께 보고, 각 방어층의 독립성·우회경로·탐지와 복구 능력을 시험한다.

경계를 지날 때마다 검증하고 실패범위를 줄인다

서비스를 통과해도 중요 데이터의 경계에서 다시 검증한다

상자 안의 대상과 화살표의 조건을 함께 읽으세요. 좁은 화면에서는 같은 관계를 세로로 재배치한 도식을 보여 줍니다.

서비스를 통과해도 중요 데이터의 경계에서 다시 검증한다운영자 단말→관리 접점은 신원·등록장치·사건번호를 검증한다. 업무 서비스에는 최소 범위·시간·조건만 허용하고, 중요 데이터에는 서비스 간 인증·인가와 객체·행위별 변경검증을 적용한다. 변경 전후 값·결과는 운영계정이 지울 수 없는 별도 기록경로로 보낸다.subject → first: 경계 검증first → service: 허용범위service → second: 경계 재검증second → data: 객체·행위data → record: 변경 기록경계 검증허용범위경계 재검증객체·행위변경 기록경계 1 · 사용자에서 관리 서비스경계 2 · 서비스에서 중요 자원운영자·등록장치: 신원·요청·사건번호 평소 제한된 읽기운영자·등록장치신원·요청·사건번호평소 제한된 읽기관리 접점 검증: 신원·장치·요청 확인 일시 변경은 분리승인관리 접점 검증신원·장치·요청 확인일시 변경은 분리승인업무 서비스: 특정 서비스·허용 명령 최소 범위·시간·조건업무 서비스특정 서비스·허용 명령최소 범위·시간·조건서비스 간 재검증: 인증·인가 확인 객체·행위별 허용서비스 간 재검증인증·인가 확인객체·행위별 허용중요 데이터: 허용된 변경만 집행 변경검증·복구본중요 데이터허용된 변경만 집행변경검증·복구본독립된 기록경로: 변경 전후 값·결과 운영계정 삭제 불가독립된 기록경로변경 전후 값·결과운영계정 삭제 불가
서비스를 통과해도 중요 데이터의 경계에서 다시 검증한다운영자 단말→관리 접점은 신원·등록장치·사건번호를 검증한다. 업무 서비스에는 최소 범위·시간·조건만 허용하고, 중요 데이터에는 서비스 간 인증·인가와 객체·행위별 변경검증을 적용한다. 변경 전후 값·결과는 운영계정이 지울 수 없는 별도 기록경로로 보낸다.subject → first: 경계 검증first → service: 허용범위service → second: 경계 재검증second → data: 객체·행위data → record: 변경 기록경계 검증허용범위경계 재검증객체·행위변경 기록경계 1 · 사용자에서관리 서비스경계 2 · 서비스에서중요 자원운영자·등록장치: 신원·요청·사건번호 평소 제한된 읽기운영자·등록장치신원·요청·사건번호평소 제한된 읽기관리 접점 검증: 신원·장치·요청 확인 일시 변경은 분리승인관리 접점 검증신원·장치·요청확인일시 변경은 분리승인업무 서비스: 특정 서비스·허용 명령 최소 범위·시간·조건업무 서비스특정 서비스·허용명령최소범위·시간·조건서비스 간 재검증: 인증·인가 확인 객체·행위별 허용서비스 간 재검증인증·인가 확인객체·행위별 허용중요 데이터: 허용된 변경만 집행 변경검증·복구본중요 데이터허용된 변경만 집행변경검증·복구본독립된 기록경로: 변경 전후 값·결과 운영계정 삭제 불가독립된 기록경로변경 전후 값·결과운영계정 삭제 불가

운영자 단말→관리 접점은 신원·등록장치·사건번호를 검증한다. 업무 서비스에는 최소 범위·시간·조건만 허용하고, 중요 데이터에는 서비스 간 인증·인가와 객체·행위별 변경검증을 적용한다. 변경 전후 값·결과는 운영계정이 지울 수 없는 별도 기록경로로 보낸다.

방어 역할다음 실패범위를 제한하는 수단
예방접근·권한 제한
탐지이상행위·변경 관찰
대응세션·계정·경로 차단
복구정상상태 복원·권한 회수

신뢰경계는 물리적인 망 선만 뜻하지 않는다. 사용자에서 서비스, 한 서비스에서 다른 서비스, 일반 데이터에서 중요 데이터처럼 가정과 권한 수준이 달라지는 지점이 경계다. 경계를 넘을 때 주체·자원·행동·상황을 확인하고, 통과 뒤에도 필요한 행동만 허용한다.

세 원칙은 서로 대신할 수 없다

원칙줄이려는 문제설계 질문확인 증거
신뢰경계검증되지 않은 신뢰의 전파어디서 가정·주체·권한 수준이 달라지는가경계별 허용·거부 시험과 흐름 기록
최소권한한 주체·세션의 과도한 피해범위어떤 객체·행위를 얼마 동안 허용해야 하는가권한목록·승인·만료·실사용 검토
심층방어한 통제 실패의 전체 침해 전파서로 다른 실패원인을 가진 다음 방어는 무엇인가우회·통제고장·탐지·복구 시험

경계에서 인증했다고 최소권한이 자동 구현되지 않고, 통제를 여러 개 샀다고 심층방어가 되지도 않는다. 각 통제가 같은 계정·정책원·관리경로에 의존한다면 한 원인으로 함께 실패할 수 있다.

최소권한이 우회를 만들지 않게 한다

권한을 너무 넓게 주면 한 계정의 침해범위가 커지고, 너무 잘게 나누며 승인을 늦추면 사용자는 공용계정·권한 공유·비공식 복사본을 만들 수 있다. 모든 요청을 같은 강도로 검사하면 비용과 지연이 커지고 장애 때 핵심업무가 멈출 수 있다. 반대로 비상 우회를 항상 열어 두면 정상통제를 무력화한다.

업무행동을 읽기·변경·승인·관리로 분해하고 피해가 큰 행동부터 강하게 통제한다. 정기권한은 최소화하고 일시권한은 사유·대상·기간·승인자·자동만료를 붙인다. 비상경로는 별도 신원, 강한 기록, 짧은 만료와 사후검토를 두며 실제 복구훈련에서 사용할 수 있는지 확인한다.

실무 사례: 운영자의 긴급 변경권한 설계

운영자는 평소 서비스 상태와 제한된 로그만 읽는다. 장애가 선언되면 담당 서비스의 변경권한을 30분 동안 요청하고 다른 담당자가 승인한다. 운영자 단말에서 관리 접점으로 넘어가는 경계에서 사용자·등록장치·사건번호를 확인하고, 서버는 해당 서비스와 허용 명령만 집행한다. 변경 전후 값과 결과를 별도 기록경로로 보내 운영계정이 지울 수 없게 한다.

한 통제가 실패하는 경우도 시험한다. 계정이 탈취되면 등록장치와 짧은 권한이 범위를 줄이고, 잘못된 명령이 승인되면 변경검증과 복구본이 다음 층이 되며, 기록경로가 멈추면 고위험 변경을 중단하거나 별도 비상기록을 사용한다. 사내망이면 관리자 권한과 만료 없는 공용계정은 편하지만 경계·최소권한·책임추적을 모두 끊으므로 채택하지 않는다.

선택한 정책은 기록경로가 중단되면 새로운 고위험 변경을 차단하는 것이다. 비상기록 예외는 사전에 승인된 사건별 절차, 별도 승인자, 변경 전에 기록 수용을 확인할 독립 보호 저장소가 모두 있을 때에만 사용한다. 이 조건을 확인하지 못하면 “긴급”이라는 이유로 무기록 변경을 허용하지 않는다.

권한이 10:00에 시작해 10:30에 만료되고 서버가 시각을 판정한다면 10:29:59의 허용 명령은 시간 조건을 통과하지만 10:30:00의 새 요청은 거부한다. 장기 실행 명령은 시작 때만 검사할지 중간 재확인할지도 정해야 하며, 이 예에서는 추가 명령마다 재검사하고 고위험 단계 진입 때도 다시 확인한다. 시험에는 만료 전·경계·후, 기록 정상·중단, 허용 외 명령을 포함한다.

시험에서는 무엇을 요구하는가

신뢰경계·최소권한·심층방어를 정의하고, 중요 시스템의 운영자 접근에 적용하는 방안을 설명하시오.

세 용어를 나란히 정의한 뒤 서로의 역할 차이를 보여 줘야 한다. 적용은 경계 위치, 권한의 범위·시간·조건, 독립된 예방·탐지·대응·복구층과 시험증거를 구체화하라는 요구다. 제품 목록보다 통제 실패 시 다음 층이 어떻게 피해를 제한하는지가 핵심이다.

풀이 방향과 모범답안 보기

답안 목차

  1. 신뢰경계·최소권한·심층방어의 정의
  2. 세 원칙의 목적·설계질문·증거 비교
  3. 사용자–서비스–데이터 경계와 검증
  4. 정기·일시·비상 권한의 범위·시간·조건
  5. 독립 방어층, 우회·실패·복구 시험과 개선

답안에 그릴 도식

사용자–서비스–중요 데이터 경계 그림에 최소 범위·시간·조건을 붙인다. 경계마다 재검증하고 예방 → 탐지 → 대응 → 복구의 서로 다른 통제로 앞선 실패의 피해범위를 제한한다. 같은 계정·규칙·관리서버에 함께 의존하면 독립층으로 세지 않는다. 우회·고장·탐지·복구 시험의 결과로 권한과 경계를 다시 조정한다.

모범답안

신뢰경계는 서로 다른 신뢰수준 사이에서 검증과 통제가 필요한 지점이다. 최소권한은 주체에게 업무에 필요한 최소 객체·행위·시간·조건만 허용하는 원칙이며, 심층방어는 한 통제 실패가 전체 침해로 이어지지 않도록 서로 다른 예방·탐지·대응·복구 통제를 여러 층에 배치하는 원칙이다.

중요 시스템에서는 운영자 단말–관리접점–서비스–데이터 경계를 표시하고 경계마다 신원·장치·요청을 다시 확인한다. 평시에는 읽기만 허용하고 고위험 변경은 사건번호·분리승인·특정 서비스·짧은 만료를 가진 일시권한으로 집행한다. 네트워크 제한, 서버 인가, 변경검증, 이상탐지, 별도 기록과 복구본을 독립층으로 두고 공용계정과 영구 비상권한을 금지한다. 계정탈취·정책오류·기록중단·복구실패를 각각 시험해 다음 층이 실제로 피해를 제한하는지 확인하고 결과에 따라 경계와 권한을 조정한다.

직접 판단: 하나의 조건만 통과했다고 허용하지 않는다

다음은 본문 사례를 바꾼 자체 연습이다. 민수에게 승인된 사건의 결제 서비스 설정 변경만 10:00부터 10:30 전까지 허용한다. 등록장치와 정상 기록경로도 필수이며, 이 연습에서는 사전 승인된 비상기록 예외가 없다. 표에 쓰지 않은 필수 조건은 모두 만족한다고 가정한다.

요청서버 시각바뀐 조건
A10:29:59결제 설정 변경, 기록 정상
B10:30:00결제 설정 변경, 기록 정상
C10:20:00다른 서비스 설정 변경
D10:20:00결제 데이터 삭제
E10:20:00결제 설정 변경, 기록경로 중단
  1. A~E를 허용·거부로 나누고 실패한 조건을 적어라.
  2. MFA, 일시권한 정책, 변경기록 저장소를 같은 관리자 계정 하나가 수정·삭제할 수 있다. 통제 세 개를 독립된 방어층 세 개로 세어도 되는가? 어떤 실패 시험이 필요한가?
  3. 화면에서 삭제 버튼을 숨겼지만 API는 로그인 여부만 확인한다. 최소권한을 지킨 것인가? 거부 시험의 대상과 실행 위치를 적어라.
연습 풀이와 실패조건 보기
  1. A만 허용한다. B는 만료 경계에 도달했고, C는 대상 서비스 밖이며, D는 허용 행동 밖이고, E는 필수 기록 조건을 잃었다. 신원·장치·사건·자원·행동·시간·기록 조건을 모두 만족해야 하며 하나가 맞는다는 이유로 나머지를 넘기지 않는다. 시각은 클라이언트가 보낸 값이 아니라 집행 서버의 신뢰할 수 있는 시각으로 판정한다.
  2. 같은 관리자 계정의 침해로 정책을 넓히고 기록까지 지울 수 있으므로 통제 수만으로 독립성을 주장할 수 없다. 정책 승인과 기록 보호의 권한·관리경로를 분리한 뒤, 운영계정으로 정책을 바꾸거나 기록을 지우려는 시험, 기록 중단 시 고위험 변경 거부 시험, 별도 경로의 탐지·복구 시험을 수행한다. 분리했다고 모든 공통 실패가 사라지는 것은 아니므로 공유 의존성도 계속 확인한다.
  3. 버튼 숨김은 사용 편의를 위한 표시일 뿐이다. 서버의 데이터 삭제 API에 직접 요청하는 경우와 다른 객체 식별자로 요청하는 경우를 검사해야 한다. 실제 집행 위치에서 객체·행동별 인가를 적용하고, 허용 범위를 벗어난 요청은 변경 없이 거부되는지 확인한다.

근거와 사례의 적용 범위

NIST SP 800-207은 망 위치나 자산 소유만으로 신뢰를 부여하지 않으며 인증과 인가를 구별한다. OWASP 인가 지침은 최소권한, 기본 거부, 요청별 인가와 서버 측 집행을 설명한다. 30분의 권한, 기록 중단 시 고위험 변경 거부, 비상기록 예외 조건은 이 교재가 정한 학습용 정책이다. 모든 조직에 동일한 시간을 요구하거나 두 문서가 이 사례의 모든 운영 정책을 의무화한다는 뜻은 아니다.

한 번에 되찾기

신뢰경계에서는 다시 검증하고, 최소권한으로 피해범위를 줄이며, 심층방어로 한 통제 실패의 전파를 막는다. 통제의 독립성과 실제 우회·복구 시험이 필요하다.