보안 식별자는 누가 무엇에 접근할 수 있는지 선별하고 추적하기 위해 만들어진 고유 코드가 있는 특별 출입증이라고 생각하세요. 이제 여러분의 기업이 모든 주요 출입구에 이러한 특별 출입증을 사용한다고 상상해 보세요.
일반적인 작동 방식은 다음과 같습니다: 방문자 출입증은 일반 구역으로만 접근을 제한하고, 직원 출입증은 직무와 관련된 작업 구역에 접근할 수 있게 하며, 관리자 출입증은 최고 경영진이나 기타 고위 직원들이 더 제한된 고위험 구역에 접근할 수 있게 합니다. 바로 이처럼 SID는 IT 시스템에서 중요한 시스템, 영업 비밀 및 민감한 데이터를 무단 접근으로부터 보호하는 역할을 합니다.
이제 보안 식별자(SID) 개념을 자세히 살펴보겠습니다. SID의 정의, 중요성, 작동 방식, 그리고 일반적인 SID 문제 해결을 위한 모범 사례를 탐구해 보겠습니다.
보안 식별자(SID)란 무엇인가요?
보안 식별자 (SID)는 Windows 서버, 운영 체제(OS), Active Directory와 같은 Windows 환경에서 보안 주체를 식별하고, 접근을 제어하며, 보안 사고를 해결하기 위해 사용되는 고유하고 변경 불가능한 값입니다.
SID는 컴퓨터 계정, 사용자, 프로세스 및 보안 그룹과 같은 보안 주체에 다른 모든 주체와 구별되는 고유 식별자를 부여하여 접근 거버넌스를 용이하게 합니다. 일반적으로 긴 문자열(예: S-1-5-21-3632462615-3141105534-30830830-1115, 사용자 신원이 변경되더라도 SID는 재사용되지 않으며 동일하게 유지됩니다.
SID 내 긴 문자열이 의미하는 바는 다음과 같습니다.
| 구성 요소 | 의미 |
|---|---|
| s | 문자열이 SID임을 표시함 |
| 1 | SID 구조의 버전을 나타내며, SID 개정 수준이라고 함 |
| 5 | SID를 발급한 권한 기관(식별자 권한 기관)을 지정합니다. SID 식별자 권한 값은 0-5 사이입니다. 여기서 5는 NT 권한 기관을 의미합니다. |
| 21 | 이 값은 하위 권한 값을 반영하며, 도메인의 크기를 나타냅니다. 이 경우 SID에는 세 개의 하위 권한이 있습니다. |
| 3632462615-3141105534-30830830 | SID가 생성된 도메인 또는 로컬 컴퓨터를 식별합니다. 하위 권한 값과 결합되어, John Reed가 두 도메인에 접근할 수 있는 경우 각 도메인마다 서로 다른 SID를 가지며, 한 도메인의 SID가 다른 도메인에서는 유효한 보안 식별자가 되지 않도록 보장합니다. |
| 1115 | 상대 식별자(RID)라고도 하며, 보안 주체를 정확히 지정하여 동일한 조직 내에 두 명의 John Reed가 존재할 경우 서로를 위한 민감한 리소스에 접근할 수 없도록 보장합니다. |
사이버 보안에서 보안 식별자의 목적은 무엇인가?
사이버 보안에서 SID의 주요 목적은 Windows 환경에서 신원 및 접근 관리를 위한 적절한 기반을 제공하는 것입니다. SID는 다음과 같은 핵심 역할을 수행합니다.
- 객체 식별: SID는 보안 주체를 특정 ID와 연결하여 엔터티를 쉽게 식별하고 민감한 파일 주변의 활동을 쉽게 감사할 수 있도록 합니다.
- 접근 제어: Windows는 특정 보안 주체와 연관된 권한 수준을 결정하기 위해 SID를 액세스 제어 목록(ACL)과 대조합니다. 이를 통해 사용자에게 액세스 제어 목록에 명시된 권한(읽기, 쓰기, 삭제 등)보다 더 많거나 적은 권한이 부여되지 않도록 보장합니다.
- 모니터링 및 감사: SID는 Windows 로그에서 로그인 시도 및 파일 변경과 같은 액세스 이벤트를 추적하는 데 사용됩니다. 이를 통해 보안 팀은 사용자 활동을 모니터링하고, 침해된 계정을 격리하며, 로그인 실패 시도, 무단 파일 삭제 등과 같은 보안 사고를 해결할 수 있습니다.&
- 보안: 복잡한 해싱 메커니즘을 사용하여 생성되고 액세스 토큰에 내장되기 때문에 SID는 사용자 이름/암호 쌍과 달리 도용, 해독 또는 복제가 어려워 침해 위험을 제한합니다. 또한 SID는 엔터프라이즈 네트워크의 다양한 도메인에서 일관된 액세스 제어를 가능하게 하는 도메인 간 액세스 기능을 제공합니다.
보안 식별자는 어디에 사용됩니까?
Windows는 다음 요소에서 파일 액세스, 그룹 권한 및 시스템 수준 기능을 관리하기 위해 SID를 사용합니다.
- 보안 설명자: 개체의 소유권 지정(예: 파일 소유 주체)
- 액세스 제어 항목: 허용되거나 거부된 접근 권한을 가진 수탁자 및 감사 대상 접근 이벤트를 나타냅니다.
- 접근 토큰: 사용자의 신원, 소속 그룹 및 보유 권한 유형을 증명합니다.
보안 식별자 조회: 보안 식별자 번호를 찾는 방법
보안 식별자가 무엇이며 그 목적이 무엇인지 이해했으므로, 이제 사용자의 SID를 검색하는 방법을 소개합니다.
Windows 레지스트리 편집기로 이동하여 Windows Management Instrumentation Command (WMIC)를 실행합니다. 이는 관리자 작업을 수행하기 위한 명령줄 인터페이스(CLI)입니다. 실행 후 다음 명령을 입력하세요:
wmic useraccount get domain,name,sid
보안 식별자와 사용자 이름 비교
보안 식별자는 사용자 접근을 제어하는 기계가 읽을 수 있는 문자열인 반면, 사용자 이름은 사용자를 식별하는 사람이 읽을 수 있는 문자 조합입니다. 아래 표는 주요 차이점을 강조합니다.
| SID | 사용자 이름 |
|---|---|
| 유일하고 중복 불가능하여 추가 보안 계층 제공 | 환경 전반에 걸쳐 중복되는 경우가 많기 때문에, 도난당한 사용자 이름/비밀번호 쌍은 무차별 대입 공격 및 기타 관련 공격에서 주요 공격 경로입니다 |
| 불변성 — 도메인 내 사용자의 SID는 계정 삭제 시를 제외하고 절대 변경되지 않음 | 대체로 변경 가능 |
| SID는 해싱을 통해 생성되므로 변조가 더 어렵습니다. | 사용자 이름은 일반 텍스트로 생성되어 변조가 더 쉽습니다. |
보안 식별자와 사용자 이름은 서로 다른 개념이지만, Windows 환경에서 신원 및 네트워크 자원을 보호하기 위해 조화롭게 작동합니다.
보안 식별자의 유형
Windows는 다양한 SID를 제공하며, 각각은 서로 다른 목적을 수행합니다.
다음은 몇 가지 주요 보안 식별자 유형에 대한 설명입니다.
- 잘 알려진 SID: 일반적으로 일반적인 사용자와 그룹을 식별하는 일정한 식별자입니다. Windows는 특정 의미를 지닌 이러한 SID를 미리 정의했습니다. 예를 들어,
Everyone – S-1-1-0SID는 모든 사용자를 포함하는 반면,Local Administrators – S-1-5-32-544는 로컬 관리자 그룹을 나타냅니다. - 전역 고유 식별자(GUID) SID: GUID는 Active Directory의 개체 식별자입니다. 새 도메인이나 계정이 생성될 때 잘 알려진 SID와 함께 새 개체에 할당됩니다.
- 상대 식별자(RID) SID: RID는 SID 끝에 있는 고유한 문자열입니다. 도메인 또는 그룹 내 특정 주체를 식별합니다.
- 도메인별 SID: 이 SID는 Windows 또는 Active Directory 도메인과 도메인 내 개체를 나타냅니다. 도메인 SID에 이어 도메인 내 각 개체에 대한 고유한 RID가 포함됩니다.
- 보안 계정 관리자(SAM) SID: Windows에서 SAM 데이터베이스는 민감한 자산에 대한 접근을 통제하는 사용자 및 계정 자격 증명을 보관합니다. SAM SID는 SAM 데이터베이스 내 또는 이에 접근 권한이 있는 주체를 식별하는 값입니다.
- 가상 계정 SID: 애플리케이션, 서비스 및 프로세스에 부여된 권한 수준을 검증하고 적용하기 위한 SID입니다.
보안 식별자는 어떻게 작동하나요?
SID는 Windows에서 IAM(ID 및 액세스 관리) 요새를 구축하는 기반이라고 생각하십시오. SID의 작동 방식은 다음과 같습니다.
- SID 할당: Windows에서 계정이 생성되면 관련 SID가 즉시 생성, 할당되어 보안 데이터베이스에 저장됩니다.
- SID-ACL 상관 관계: SID가 생성되면 액세스 제어 목록(ACL)에 명시된 권한 및 특권과 연결됩니다.
- 사용자 인증: 보안 주체가 로그온할 때마다 Windows는 먼저 로그인 정보가 유효한지 확인합니다. 유효한 경우 데이터베이스에서 해당 SID를 검색하여 토큰에 저장합니다.
- SID 기반 접근 제어: Windows는 SID를 보안 설정(액세스 토큰에도 포함됨)과 비교하여 주체가 접근할 수 있는 파일 및 리소스를 결정합니다.
보안 식별자(SID) 설정
SID는 일반적으로 Windows 시스템에서 엔터티 생성 시 기본적으로 활성화됩니다. 그러나 커널 드라이버나 SQL 서버를 모니터링하는 System Center Operations Manager(SCOM) HealthService와 같이 SQL 서버를 모니터링하는 서비스—는 자동으로 서비스 SID를 제공하지 않습니다.
이러한 서비스에서 SID를 설정하려면 서비스가 서비스 SID를 사용할 수 있도록 구성하십시오. 그런 다음 SID 인증을 트리거할 로그인 프로세스를 생성합니다. 예를 들어 SCOM HealthService에 SID를 설정하려면:
- Windows SDK의 CLI 도구인 SC.exe를 사용하여 SID를 생성합니다.
- SQL 데이터베이스 수준 보안 설정 및 권한을 쿼리하여 SCOM HealthService SID가 생성되었는지 확인합니다.
- 쿼리 또는 SQL Server Management Studio(SSMS)를 사용하여 SQL Server 내에서 Windows 로그인을 생성합니다.
- 기본 SID를 가진 엔터티에 할당하는 것과 동일한 방식으로 SID에 역할 및 권한을 할당합니다.
보안 식별자(SID)의 일반적인 문제점과 해결 방법?
보안을 강화하기 위해 설계된 모든 메커니즘과 마찬가지로 SID에도 문제점과 위험이 존재합니다. 다음은 SID의 주요 문제점과 해결 방법에 대한 간략한 개요입니다.
1. SID 히스토리 주입 노출
SID 히스토리 주입 노출는 해커가 SID 값을 주입하여 권한 상승이나 민감한 리소스에 대한 원격 접근을 가능하게 하는 SID 히스토리 취약점입니다.
SID 히스토리 주입 노출을 방지하려면 고아 계정을 삭제하고 신원 탐지 및 대응 도구를 사용하십시오. 이러한 도구는 보안 주체를 관리하고 신원 위협을 실시간으로 탐지하는 데 도움이 됩니다. 또한 SIEM 도구를 사용하여 SID 주변의 접근 패턴과 활동을 기록하고 감사할 수도 있습니다.
2. 중복 SID
고유한 SID 발급을 담당하는 두 도메인 컨트롤러가 동일한 상대 ID 풀을 할당받으면 SID가 중복됩니다. 이로 인해 의도하지 않은 주체가 중복 도메인 내 대응 주체에게 부여된 권한에 접근할 수 있어 내부자 위협 및 측면 이동의 심각한 위험이 발생합니다.
Ntdsutil을 사용하여 중복 SID를 찾아 재구성하면 이 문제를 해결할 수 있습니다. 또한 도메인 컨트롤러를 추적하여 동일한 RID 풀이 두 번 할당되지 않도록 할 수도 있습니다.
3. 고아 SID
사용자가 기업을 떠나거나 직무가 변경될 때 고아 계정이 남는 것처럼, 보안 주체가 삭제되거나 다른 도메인으로 이동될 때 고아 SID가 ACL에 남게 됩니다. 오랫동안 발견되지 않은 고아 SID는 고급 지속적 위협(APT)을 수행하는 데 악용될 수 있습니다.
고아 SID를 식별하고 관련된 모든 권한을 제거하기 위해 정기적으로 PowerShell 스크립트를 실행하십시오.
4. 미해결 SID
미해결 SID는 시스템 내 친숙한 이름과 일치하지 않는 SID입니다. 기능 DID(Capability DID)인 경우 다른 SID처럼 해결되지 않으므로 문제가 되지 않을 수 있습니다. 그러나 미해결 SID가 기능 DID가 아닌 경우 중복 SID, 삭제된 계정의 SID 또는 신뢰 관계가 손상된 SID일 수 있습니다.
&근본 원인을 찾고 해결하려면 디버그 로깅을 활성화하거나 Ntdsutil을 사용하여 중복 SID를 수정하십시오.
보안 식별자 관리 모범 사례
적절한 SID 관리는 Windows 네트워크 보안을 위한 핵심입니다. 다음은 SID 관리 팁입니다.
- 가능한 경우 수동 SID보다 시스템 생성 SID를 항상 선택하십시오. 수동 SID는 인적 오류가 발생하기 쉽습니다.
- 최소 권한 원칙(POLP)을 적용하십시오. 사용자에게 업무 수행에 필요한 최소한의 권한만 부여하십시오.
- 개별 사용자가 아닌 그룹 단위로 역할 기반 접근을 허용하거나 거부하십시오. 이는 사용자가 직무나 역할을 변경할 때 이전 역할에서 가져온 권한으로 인해 발생하는 고아 SID의 위험을 제한합니다.
- 고아 SID를 정기적으로 찾아 삭제하고, 관련 권한을 업데이트하여 과도하거나 오래된 권한을 제거하고 접근 권한 확산을 최소화하십시오.
- SID를 비밀 정보로 취급하십시오. 공유하거나 안전하지 않은 장소에 저장하지 마십시오. 항상 다음 희생자를 노리는 공격자가 존재합니다.
- SIEM 도구를 사용하여 사용자 활동, 접근 패턴 및 SID 변경 사항을 기록하십시오. 이는 침해 발생 전에 의심스러운 SID 관련 사건을 탐지하기 위한 모니터링 데이터를 제공합니다.
- 보안 사고나 재해 발생 시 원활한 복구를 위해 ACL, SID 및 관련 권한을 백업하십시오.
- 시스템과 소프트웨어를 정기적으로 패치하십시오. 해커가 시스템의 취약점을 악용하여 SID를 조작하고 민감한 자산에 접근하는 것을 원치 않을 것입니다.
Windows 환경에서 보안 식별자 관리 방법
Windows에서 SID를 효과적으로 관리하려면 다음을 수행해야 합니다:
- SID 및 ACL 백업, 중복 SID 탐지, 고아 SID 삭제와 같은 SID 관리 작업을 자동화하십시오.
- POOP, RBAC 및 JIT(Just-in-Time) 액세스와 같은 핵심 액세스 제어 개념을 고려하여 ACL을 올바르게 정의하십시오.
- 필요한 경우 중앙 집중식 ID 및 액세스(IAM) 관리 솔루션, 모니터링 플랫폼 및 사전 구축된 프로그램을 사용하십시오. IAM 도구는 ID 거버넌스를 간소화하여 과도한 권한 부여 및 기타 ID 위험을 방지합니다. 모니터링 플랫폼은 공격자가 시스템에 침투하기 전에 ID 위협을 탐지하는 데 도움이 됩니다. PowerShell과 같은 내장 프로그램은 SID 확인, SID 구성 변경 및 고아 SID 삭제에 유용합니다.
- SID 및 접근 구성에 대한 무단 접근을 방지하십시오.
결론
보안 식별자(SID)는 Windows 환경에서 민감한 파일, 폴더 및 자산에 대한 안전한 접근을 관리하는 데 핵심적입니다. SID는 개체와 그 권한을 고유하게 식별하여 로그인한 사용자가 액세스 제어 목록(ACL)에 명시된 리소스만 접근할 수 있도록 보장합니다.
무단 접근을 방지하는 것 외에도, 도메인 관리자가 미션 크리티컬 자산과 상호작용하는 주체를 추적하고 침해를 방지할 수 있게 합니다.
그러나 SID는 관련 위험이 해결되고, SID 모범 사례가 구현되며, 적절한 SID 관리 및 모니터링이 시행될 때만 효과적입니다.
FAQs
SID는 Windows 환경에서 트러스티를 식별하기 위한 고유한 영숫자 문자열입니다.
사용자 이름과 해당 SID 값을 변환하려면 Windows 로컬 보안 권한(LSA)을 사용하십시오.
SID를 조회하려면 Windows 명령 프롬프트에서 다음 명령을 실행하세요:
wmic useraccount get domain,name,sid
Windows는 보안 주체를 효과적으로 구분하기 위해 SID를 사용합니다. 예를 들어, 조직 내 두 사람이 동일한 이름(예: Rob Smith)을 가지는 경우, SID는 Rob Smith 1의 권한과 Rob Smith 2의 권한을 구분하는 데 중요합니다. 또한 Windows는 액세스 제어를 용이하게 하고 문제 해결을 지원하기 위해 SID를 사용합니다.
일반적인 SID 예시로는 Word SID(S-1-1-0), Null SID(S-1-0-0), 로컬 계정 SID(S-1-5-113) 등이 있습니다.
SID는 일반적으로 문자 S로 시작하는 긴 숫자열 형태입니다. 예를 들어: S-1-5-21-3632462615-3141105534-30830830-1115.
SID는 자동 생성되므로 일반적으로 수동으로 변경할 필요가 없습니다. 그러나 변경이 필요한 경우 다음을 수행할 수 있습니다:
- 계정을 삭제하고 도메인에 다시 추가하면 새로 자동 생성된 SID가 적용됩니다.
- Windows 명령 프롬프트에서 Sysprep을 사용하세요. 단, 관리자 권한이 필요하며 지나치게 자주 사용하면 계정이 잠길 수 있습니다.

