신뢰경계·최소권한·심층방어
직원이 사내망에서 로그인했다는 이유로 모든 자료를 읽을 수 있다면 계정 하나의 침해가 전체 피해로 번진다. 어느 지점에서 신뢰수준이 달라지는지 표시하고, 각 작업에 필요한 만큼만 권한을 주며, 한 통제가 실패해도 다음 통제가 막도록 설계해야 한다.
한 번 안으로 들어왔다고 계속 믿지 않는다
직원이 사내망에서 로그인했다는 이유만으로 모든 자료를 읽을 수 있다면, 계정 하나가 침해되었을 때 피해가 전체로 번진다. 그래서 어느 지점에서 신뢰수준이 달라지는지 표시하고, 각 작업에 필요한 만큼만 권한을 준다. 그리고 한 통제가 실패해도 다음 통제가 막아 내도록 설계해야 한다.
신뢰경계·최소권한·심층방어
신뢰경계는 서로 다른 신뢰수준 사이에서 검증과 통제가 필요한 경계다. 최소권한은 주체에게 업무 수행에 필요한 최소 범위·시간·조건의 권한만 부여하는 원칙이다. 심층방어는 한 통제의 실패가 전체 침해로 이어지지 않도록 독립적인 예방·탐지·대응·복구 통제를 여러 층에 배치하는 원칙이다.
신원을 확인한 뒤에도 작업별 허용을 판단한다
인증은 요청자가 누구인지 확인하는 일이고, 인가는 그 주체가 지금 그 자원에 그 행동을 해도 되는지 판단하는 일이다. 그래서 운영자가 로그인했다는 사실은 신원이 확인되었다는 뜻일 뿐, 모든 서비스의 데이터 삭제까지 허용한다는 뜻이 아니다. 등록장치와 사건번호도 마찬가지다. 둘 다 허용 판단에 필요한 조건이지만, 그것만 맞으면 다른 조건을 생략해도 된다는 뜻은 아니다.
최소권한을 적을 때는 주체·대상 자원·행동·기간·추가 조건을 함께 쓴다. 예를 들어 “민수가 결제 서비스의 설정값을 10:00부터 10:30 전까지 변경하되, 승인된 사건과 정상 기록경로가 있을 때만 허용”이라고 적어 보자. 이렇게 쓰면 읽기 권한과 다른 서비스, 삭제 명령, 만료된 요청을 각각 따로 구별할 수 있다. 다만 화면에서 버튼을 숨기는 것만으로는 인가가 되지 않는다. 실제 변경을 집행하는 서버가 요청마다 객체와 행동을 검사하고, 명시한 허용 조건이 없으면 기본적으로 거부해야 한다.
관리자 작업을 세 원칙으로 보기
먼저 운영자 단말에서 관리 API로 넘어가는 지점을 신뢰경계로 두고, 그곳에서 주체·장치·작업을 검증한다. 다음으로 최소권한에 따라 운영자는 평소 읽기 권한만 갖고, 승인된 시간에만 특정 시스템의 변경권한을 임시로 받는다. 끝으로 심층방어에 따라 계정이 탈취되더라도 네트워크 제한과 행위승인, 변경검증, 이상탐지, 복구가 서로 다른 층에서 피해를 제한한다.
통제 수가 많아도 같은 실패를 공유하면 한 층이다
여러 통제가 같은 계정이나 규칙, 관리서버에 의존하면 한 번의 침해로 함께 무너질 수 있다. 반대로 최소권한을 너무 잘게 나누고 승인 절차까지 느리면 공용계정과 우회가 늘어난다. 그래서 권한의 사용성과 피해범위를 함께 보고, 각 방어층이 정말 독립적인지, 우회경로는 없는지, 탐지와 복구가 실제로 되는지를 시험한다.
경계를 지날 때마다 검증하고 실패범위를 줄인다
상자 안의 대상과 화살표의 조건을 함께 읽으세요. 좁은 화면에서는 같은 관계를 세로로 재배치한 도식을 보여 줍니다.
운영자 단말→관리 접점은 신원·등록장치·사건번호를 검증한다. 업무 서비스에는 최소 범위·시간·조건만 허용하고, 중요 데이터에는 서비스 간 인증·인가와 객체·행위별 변경검증을 적용한다. 변경 전후 값·결과는 운영계정이 지울 수 없는 별도 기록경로로 보낸다.
그림에는 신뢰경계가 두 개 있다. 경계 1은 운영자 단말에서 관리 서비스로 넘어가는 곳으로, 관리 접점이 신원·장치·요청을 확인한다. 경계 2는 업무 서비스에서 중요 데이터로 넘어가는 곳으로, 서비스 간에 인증·인가를 다시 확인하고 객체·행위별로 허용한다. 허용된 변경의 전후 값과 결과는 운영계정이 지울 수 없는 독립된 기록경로로 간다. 아래 표는 이 층들이 앞선 실패의 범위를 어떤 방식으로 제한하는지 역할별로 정리한 것이다.
| 방어 역할 | 다음 실패범위를 제한하는 수단 |
|---|---|
| 예방 | 접근·권한 제한 |
| 탐지 | 이상행위·변경 관찰 |
| 대응 | 세션·계정·경로 차단 |
| 복구 | 정상상태 복원·권한 회수 |
신뢰경계는 물리적인 망 선만 뜻하지 않는다. 사용자에서 서비스로, 한 서비스에서 다른 서비스로, 일반 데이터에서 중요 데이터로 넘어가는 곳처럼 가정과 권한 수준이 달라지는 지점이 모두 신뢰경계다. 그래서 경계를 넘을 때 주체·자원·행동·상황을 확인하고, 통과한 뒤에도 필요한 행동만 허용한다.
세 원칙은 서로 대신할 수 없다
| 원칙 | 줄이려는 문제 | 설계 질문 | 확인 방법 |
|---|---|---|---|
| 신뢰경계 | 검증되지 않은 신뢰의 전파 | 어디서 가정·주체·권한 수준이 달라지는가 | 경계별 허용·거부 시험과 흐름 기록 |
| 최소권한 | 한 주체·세션의 과도한 피해범위 | 어떤 객체·행위를 얼마 동안 허용해야 하는가 | 권한목록·승인·만료·실사용 검토 |
| 심층방어 | 한 통제 실패의 전체 침해 전파 | 서로 다른 실패원인을 가진 다음 방어는 무엇인가 | 우회·통제고장·탐지·복구 시험 |
신뢰경계에서 인증했다고 최소권한이 저절로 구현되지는 않고, 통제를 여러 개 샀다고 심층방어가 되지도 않는다. 각 통제가 같은 계정이나 정책원, 관리경로에 의존한다면 한 가지 원인으로 함께 실패할 수 있기 때문이다.
최소권한이 우회를 만들지 않게 한다
권한을 너무 넓게 주면 계정 하나가 침해되었을 때의 범위가 커진다. 그렇다고 너무 잘게 나누고 승인을 늦추면, 사용자는 공용계정이나 권한 공유, 비공식 복사본 같은 우회로를 만든다. 모든 요청을 같은 강도로 검사하면 비용과 지연이 커지고, 장애 때 핵심업무가 멈출 수 있다. 반대로 비상 우회를 항상 열어 두면 정상통제가 무력해진다.
그래서 업무행동을 읽기·변경·승인·관리로 나누고, 피해가 큰 행동부터 강하게 통제한다. 정기권한은 최소화하고, 일시권한에는 사유와 대상, 기간, 승인자, 자동만료를 붙인다. 비상경로에는 별도 신원과 강한 기록, 짧은 만료, 사후검토를 두고, 실제 복구훈련에서 그 경로를 쓸 수 있는지 확인한다.
실무 사례: 운영자의 긴급 변경권한 설계
운영자는 평소 서비스 상태와 제한된 로그만 읽는다. 장애가 선언되면 담당 서비스의 변경권한을 30분 동안 요청하고, 다른 담당자가 승인한다. 운영자 단말에서 관리 접점으로 넘어가는 신뢰경계에서는 사용자·등록장치·사건번호를 확인하고, 서버는 해당 서비스의 허용 명령만 집행한다. 변경 전후 값과 결과는 별도 기록경로로 보내 운영계정이 지울 수 없게 한다.
한 통제가 실패하는 경우도 시험한다. 계정이 탈취되면 등록장치와 짧은 권한이 피해범위를 줄인다. 잘못된 명령이 승인되면 변경검증과 복구본이 다음 층이 된다. 기록경로가 멈추면 고위험 변경을 중단하거나 별도 비상기록을 사용한다. 사내망이면 관리자 권한이나 만료 없는 공용계정은 편하지만, 신뢰경계와 최소권한, 책임추적을 모두 끊으므로 채택하지 않는다.
이 사례에서 선택한 정책은 기록경로가 중단되면 새로운 고위험 변경을 차단하는 것이다. 비상기록 예외는 사전에 승인된 사건별 절차와 별도 승인자, 변경 전에 기록이 받아들여졌는지 확인할 독립 보호 저장소가 모두 있을 때에만 사용한다. 이 조건을 확인하지 못하면 “긴급”이라는 이유로 기록 없는 변경을 허용하지 않는다.
권한이 10:00에 시작해 10:30에 만료되고 서버가 시각을 판정한다고 하자. 그러면 10:29:59의 허용 명령은 시간 조건을 통과하지만 10:30:00의 새 요청은 거부된다. 오래 실행되는 명령은 시작할 때만 검사할지 중간에 다시 확인할지도 정해야 한다. 이 예에서는 추가 명령마다 다시 검사하고, 고위험 단계에 들어갈 때도 다시 확인한다. 그래서 시험에는 만료 전·만료 시각·만료 후, 기록 정상·중단, 허용 범위 밖의 명령을 모두 넣는다.
시험에서는 무엇을 요구하는가
신뢰경계·최소권한·심층방어를 정의하고, 중요 시스템의 운영자 접근에 적용하는 방안을 설명하시오.
세 용어를 나란히 정의한 뒤 서로의 역할 차이를 보여 줘야 한다. 적용은 신뢰경계의 위치와 권한의 범위·시간·조건, 독립된 예방·탐지·대응·복구층, 시험 결과를 구체적으로 쓰라는 요구다. 그래서 제품 목록보다, 한 통제가 실패했을 때 다음 층이 피해를 어떻게 제한하는지가 핵심이다.
풀이 방향과 모범답안 보기
답안 목차
- 신뢰경계·최소권한·심층방어의 정의
- 세 원칙의 목적·설계질문·증거 비교
- 사용자–서비스–데이터 경계와 검증
- 정기·일시·비상 권한의 범위·시간·조건
- 독립 방어층, 우회·실패·복구 시험과 개선
답안에 그릴 도식
사용자–서비스–중요 데이터 경계 그림에 최소 범위·시간·조건을 붙인다. 신뢰경계마다 다시 검증하고, 예방 → 탐지 → 대응 → 복구의 서로 다른 통제로 앞선 실패의 피해범위를 제한한다. 이때 같은 계정·규칙·관리서버에 함께 의존하는 통제는 독립층으로 세지 않는다. 우회·고장·탐지·복구 시험의 결과에 따라 권한과 신뢰경계를 다시 조정한다.
모범답안
신뢰경계는 서로 다른 신뢰수준 사이에서 검증과 통제가 필요한 지점이다. 최소권한은 주체에게 업무에 필요한 최소 객체·행위·시간·조건만 허용하는 원칙이며, 심층방어는 한 통제 실패가 전체 침해로 이어지지 않도록 서로 다른 예방·탐지·대응·복구 통제를 여러 층에 배치하는 원칙이다.
중요 시스템에서는 운영자 단말–관리접점–서비스–데이터 사이의 신뢰경계를 표시하고, 경계마다 신원·장치·요청을 다시 확인한다. 평시에는 읽기만 허용하고, 고위험 변경은 사건번호·분리승인·특정 서비스·짧은 만료를 갖춘 일시권한으로 집행한다. 네트워크 제한과 서버 인가, 변경검증, 이상탐지, 별도 기록과 복구본을 독립층으로 두고 공용계정과 영구 비상권한은 금지한다. 끝으로 계정탈취·정책오류·기록중단·복구실패를 각각 시험해 다음 층이 실제로 피해를 제한하는지 확인하고, 그 결과에 따라 신뢰경계와 권한을 조정한다.
직접 판단: 하나의 조건만 통과했다고 허용하지 않는다
다음은 본문 사례를 바꾼 자체 연습이다. 민수에게는 승인된 사건에 대해 결제 서비스의 설정 변경만, 그것도 10:00부터 10:30 전까지만 허용한다. 등록장치와 정상 기록경로도 필수이며, 이 연습에서는 사전 승인된 비상기록 예외가 없다. 표에 쓰지 않은 필수 조건은 모두 만족한다고 가정한다.
| 요청 | 서버 시각 | 바뀐 조건 |
|---|---|---|
| A | 10:29:59 | 결제 설정 변경, 기록 정상 |
| B | 10:30:00 | 결제 설정 변경, 기록 정상 |
| C | 10:20:00 | 다른 서비스 설정 변경 |
| D | 10:20:00 | 결제 데이터 삭제 |
| E | 10:20:00 | 결제 설정 변경, 기록경로 중단 |
- 요청 A부터 E까지를 허용·거부로 나누고 실패한 조건을 적어라.
- MFA, 일시권한 정책, 변경기록 저장소를 같은 관리자 계정 하나가 수정·삭제할 수 있다. 통제 세 개를 독립된 방어층 세 개로 세어도 되는가? 어떤 실패 시험이 필요한가?
- 화면에서 삭제 버튼을 숨겼지만 API는 로그인 여부만 확인한다. 최소권한을 지킨 것인가? 거부 시험의 대상과 실행 위치를 적어라.
연습 풀이와 실패조건 보기
- A만 허용한다. B는 만료 시각인 10:30:00에 도달했고, C는 대상 서비스 밖이다. D는 허용 행동 밖이고, E는 필수 기록 조건을 잃었다. 신원·장치·사건·자원·행동·시간·기록 조건을 모두 만족해야 하며, 하나가 맞는다는 이유로 나머지를 넘기지 않는다. 시각은 클라이언트가 보낸 값이 아니라 집행 서버의 신뢰할 수 있는 시각으로 판정한다.
- 세어서는 안 된다. 관리자 계정 하나가 침해되면 정책을 넓히고 기록까지 지울 수 있으므로, 통제의 개수만으로 독립성을 주장할 수 없다. 먼저 정책 승인과 기록 보호의 권한·관리경로를 분리한다. 그런 다음 운영계정으로 정책을 바꾸거나 기록을 지우려는 시험, 기록이 중단되었을 때 고위험 변경을 거부하는지 보는 시험, 별도 경로의 탐지·복구 시험을 수행한다. 분리했다고 모든 공통 실패가 사라지는 것은 아니므로 공유 의존성도 계속 확인한다.
- 지킨 것이 아니다. 버튼 숨김은 사용 편의를 위한 표시일 뿐이다. 서버의 데이터 삭제 API에 직접 요청하는 경우와 다른 객체 식별자로 요청하는 경우를 검사해야 한다. 실제 집행 위치인 서버에서 객체·행동별 인가를 적용하고, 허용 범위를 벗어난 요청이 변경 없이 거부되는지 확인한다.
근거와 사례의 적용 범위
NIST SP 800-207은 망 위치나 자산 소유만으로 신뢰를 부여하지 않으며 인증과 인가를 구별한다. OWASP 인가 지침은 최소권한, 기본 거부, 요청별 인가와 서버 측 집행을 설명한다. 30분짜리 권한과 기록 중단 시 고위험 변경 거부, 비상기록 예외 조건은 이 교재가 정한 학습용 정책이다. 즉 모든 조직에 같은 시간을 요구한다거나, 두 문서가 이 사례의 운영 정책을 모두 의무로 정한다는 뜻은 아니다.
한 번에 되찾기
신뢰경계에서는 다시 검증하고, 최소권한으로 피해범위를 줄이며, 심층방어로 한 통제의 실패가 번지지 않게 막는다. 그러려면 통제가 서로 독립적이어야 하고, 실제 우회·복구 시험으로 확인해야 한다.