본문 바로가기
← 메인으로
🎚️
제로트러스트 실습 · 언젠가 쓸지 몰라서 준 권한
Target:
사내 권한 관리(IAM)
성숙도:
기존 → 최적화
식별자·신원 / 접근 관리 — 조건부·최소 권한
💡 쉽게 말하면
🔓 공격 시뮬레이션 (Red Team)
🛡️ 대응 방안 (Blue Team)
일반 직원 계정으로 권한 확장
🔒 Secured Channel
권한은 "필요할 때 필요한 만큼"이어야 합니다. 업무가 바뀔 때마다 더하기만 하고 빼지 않으면 권한은 쌓입니다(권한 적체).
한 계정이 털렸을 때 잃는 것의 크기
가 바로 이 적체의 크기입니다.
⚡ 누적 권한 악용
부서 3회 이동하며 누적된 역할 11개
OFF
📡 거래/인증 요청 (가로채어 변조 가능)
역할 요청 { "user": "choi.mk", "need": "마케팅 대시보드 조회", "period": "2026-09-01 ~ 09-30" }
요청 전송
🖥️ 금융 시스템 처리 로그
[SYSTEM]
Core Banking Channel ready.
[INFO]
거래 요청 대기 중...
⚖️ 컴플라이언스 위반 분석
공격 실행 후 분석 결과가 표시됩니다.
[심각] 암묵적 신뢰가 악용되었습니다
식별자·신원 / 접근 관리 — 최소 권한 원칙이 부여 시점에만 적용되고 유지되지 않음
권한에 유효기간과 재승인 주기가 없음
성숙도 1단계(기존): 역할이 정적이고 회수는 수동
🛡️ 대응 코드/설정 실습
권한은
기본이 없음(deny)
이고, 필요할 때
기간을 정해
부여했다가 자동으로 사라져야 합니다. 요청 시점의 맥락(기기 상태·위치·업무)까지 조건으로 넣으세요.
// [취약] 한 번 준 역할은 계속 남는다 public boolean can(User u, String action) { return u.roles().stream() .anyMatch(r -> r.allows(action)); // 유효기간·조건 없음 }
코드 검증
힌트(정답) 보기
📚 제로트러스트 성숙도 해설 / 적용 가이드
1. 무엇을 보는 항목인가
권한이
업무에 맞게 줄어드는 구조인지
를 본다. 부여 절차만 있고 회수 절차가 없으면 최소 권한은 문서에만 존재한다.
2. 성숙도 단계별 모습
기존
— 역할이 정적이고 회수는 담당자 기억에 의존
초기
— 정기 권한 재검토(반기·연)를 수행
향상
— 유효기간이 붙은 권한, 조건부 접근 정책 적용
최적화
— 요청 시점에 필요한 만큼만 임시 부여하고 자동 회수
3. 무엇을 증적으로 남길 수 있나
권한별 유효기간·재승인 주기 설정값
부서 이동 건 대비 권한 회수 완료율
거부된 접근 요청과 그 사유 로그