LabHub
배우기 러닝패스 코스

폐쇄망 현장 — 방산·국방 도메인 · 계정과 권한을 최소로 줄이기 · 실습

아무도 쓰지 않는 계정이 가장 강한 계정이었다

LabHub 에서 이어서 보기

목표

계정·역할·권한 자료에서 유효 권한을 펴고, 쓰이지 않는 권한·휴면 계정·직무 분리 위반·권한 상승 경로를 찾아 축소안을 만든 뒤, 적용한 상태로 다시 판정해 위반이 줄었음을 숫자로 보입니다.

왜 중요한가

권한 목록은 시간이 지나면 아무도 설명하지 못하는 상태가 됩니다. 폐쇄망에서는 자료를 밖으로 옮길 수 있는 유일한 통로가 그럴 권한을 가진 계정이라, 이 목록이 곧 반출 경로의 목록입니다. 그래서 감리는 "누가 무엇을 할 수 있는가" 를 묻고, 그 답은 기억이 아니라 자료에서 계산해 내야 합니다. 이 실습에서 어려운 부분은 규칙이 아니라 구조입니다. 역할 상속이 순환하면 소박한 재귀가 멈추지 않고, 권한을 부여할 수 있는 계정은 한 단계만 따라가면 실제 도달 범위를 놓칩니다.

단계

1. python3/root/least/data 에 여섯 개 자료 파일을 만듭니다. 생성 스크립트를 그대로 쓰세요.
2. 상속을 편 계정별 유효 권한을 /root/least/effective.json 에, 서로를 상속하는 역할 두 개를 /root/least/cycle.txt 에 적습니다.
3. 가진 권한 중 관측 기간에 쓰이지 않은 것을 /root/least/unused.csvaccount_id,perm 으로 적습니다.
4. 기준일 기준 미접속 90일 이상이거나 퇴직 표시가 있는 계정을 /root/least/dormant.csvaccount_id,days_idle,reason 으로 적습니다.
5. 유효 권한에서 직무 분리 규칙을 어긴 쌍을 /root/least/sod.csvaccount_id,rule_id,perm_a,perm_b 로 적습니다.
6. 스스로 역할을 더해 도달할 수 있는 추가 권한을 /root/least/escalation.json 에 계정별로 적습니다.
7. 배정마다 회수/유지와 사유를 정해 /root/least/plan.csvaccount_id,role,action,reason 으로 적습니다.
8. 축소안을 적용한 배정을 /root/least/after/assignments.csv 에, 전후 수를 견준 보고를 /root/least/after/report.json 에 남깁니다.

참고

단계 8개

  1. 판정의 바탕이 될 자료 만들기
  2. 상속을 펴서 계정이 실제로 쥔 것 보기
  3. 가졌지만 한 번도 쓰지 않은 권한 세기
  4. 기준일로 휴면 계정 가르기
  5. 함께 쥐면 안 되는 권한 쌍 찾기
  6. 스스로 늘릴 수 있는 권한까지 따라가기
  7. 배정마다 회수할지 둘지 정하기
  8. 적용한 뒤 다시 판정해 줄었는지 보기