Technote

보안 실무

연재 트래픽이 늘기 시작할 때 8부 중 7부

사람이 늘 때의 권한 설계

모두가 관리자면 아무도 관리자가 아닙니다. 역할이 나뉘어 있는 것은 불편하게 하려는 것이 아니라, 사고의 범위를 줄이기 위한 장치입니다.

혼자 운영할 때는 계정이 하나였습니다. 그런데 콘텐츠를 도와줄 사람이 오고, 외주 디자이너가 잠깐 들어오고, 마케터가 합류합니다. 가장 빠른 처리는 전부 관리자 권한을 주는 것이고, 실제로 대부분 그렇게 시작합니다.

문제는 이 상태가 되돌아가기 어렵다는 점입니다. 그리고 관리자가 다섯 명이 되는 순간, 사이트에 무슨 일이 있었는지 아무도 확정할 수 없게 됩니다. 모두가 관리자면 아무도 관리자가 아닙니다.

역할은 불신이 아니라 범위입니다

권한을 나누는 것이 사람을 못 믿는다는 뜻으로 읽히면 팀에서 반발이 생깁니다. 그래서 설명이 중요합니다 — 역할은 실수와 사고가 번지는 범위를 줄이는 장치입니다.

계정이 탈취되었을 때, 그 계정이 글만 쓸 수 있는 계정이면 피해는 글에서 멈춥니다. 관리자라면 플러그인 설치와 사용자 추가까지 가능하고, 그것은 사이트 전체를 잃는 경로입니다. 실수든 공격이든 결과는 권한의 크기만큼 커집니다.

역할 계층 — 대부분의 팀원에게 필요한 것은 위에서 두 번째 이하다

실제로 어떻게 나누나

기준은 간단합니다. 그 사람의 일에 필요한 최소한을 줍니다. 콘텐츠를 쓰는 사람에게 플러그인 설치 권한은 필요하지 않고, 디자인을 손보는 외주에게 사용자 관리 권한은 필요하지 않습니다.

그리고 관리자는 가능한 한 적게 둡니다. 한 명이 이상적이고, 부재 시를 대비해 두 명까지가 현실적입니다.

권한 설계의 목적은 통제가 아니라 추적 가능성이다

계정 공유가 가장 위험합니다. 한 계정을 셋이 쓰면 문제가 생겼을 때 누구의 행동인지 알 수 없고, 한 사람이 떠날 때 비밀번호를 전원이 바꿔야 합니다. 실무에서는 결국 바꾸지 않게 되고, 떠난 사람의 접근이 남습니다.

들어올 때와 나갈 때

합류할 때의 절차보다 떠날 때의 절차가 자주 빠집니다. 외주 작업이 끝난 날, 담당자가 바뀐 날에 계정을 정리하지 않으면 그 접근 권한은 그대로 남습니다. 몇 년 뒤에도 살아 있는 계정이 사고의 시작이 되는 경우가 실제로 있습니다.

정기 점검을 분기에 한 번 정도 넣어 두세요. 사용자 목록을 열고 지금도 이 사람이 이 권한을 필요로 하는가만 확인하면 됩니다. 5분이면 끝나는 작업입니다.

마지막으로 관리자 계정에는 2단계 인증을 붙입니다. 비밀번호가 어딘가에서 새더라도 그 한 겹이 남습니다.

계정과 접근 통제에 관한 글은 보안 아카이브에 모여 있고, 권한 · 하드닝 · 취약점 점검을 한 번에 정비하려면 최적화 지원 사업에 보안 진단이 포함됩니다.

다음 회차

연재의 마지막 회차입니다. 지금까지 다룬 것들을 하나의 점검표로 묶어, 다음 6개월을 버틸 준비가 되었는지 확인합니다.

이 주제의 다른 글

노하우 목록으로

보안 실무

업로드 디렉터리의 PHP 실행 차단 — 마지막 관문

업로드 취약점은 파일을 올리는 데서 끝나지 않습니다. 올라간 파일이 실행될 때 원격 코드 실행이 됩니다. uploads 에서 PHP 를 못 돌게 하면 그 승격이 끊깁니다.

운영 · 관리자 2분 읽기

₩270,000 · 신청하기