시스템 · 서버핵심 · 18분 읽기

Windows 권한·공유와 원격 관리

Windows는 사용자와 그룹의 SID, 접근 토큰, 객체의 ACL을 이용해 권한을 판단합니다. 원격 연결 허용과 파일 접근 권한은 따로 확인합니다.

개념부터 찾아보기

정의·역할·동작 원리를 독립 페이지에서 확인하세요. 본문의 밑줄 용어에도 설명이 있습니다.

이 노트에서 설명할 수 있게 되는 것

  1. 접근 토큰의 SID와 DACL ACE가 권한 판정에 쓰이는 과정을 설명한다.
  2. 공유 권한·NTFS 권한·원격 세션 권한을 구분한다.
  3. RDP·WinRM 장애를 연결·인증·권한·실행 단계로 나눈다.

01SID·액세스 토큰·보안 설명자로 권한을 표현한다

  • 계정과 그룹은 라는 식별자로 구별한다.
  • 로그인 후 만들어진 은 사용자 , 그룹 , 권한 등의 정보를 담고 가 객체에 접근할 때 사용된다.
  • 파일·폴더·레지스트리 같은 객체의 는 소유자와 /SACL 등을 가질 수 있다.
  • 은 허용·거부 ACE의 목록이고 SACL은 감사 등과 관련된다.
  • 같은 표시 이름의 계정을 지웠다가 새로 만들면 이전과 다른 가 될 수 있으므로 이름만 같다고 옛 파일 권한이 자동 이어지지는 않는다.
  • 보안 그룹에 추가된 뒤 기존 토큰이 즉시 전부 갱신되는 것도 아니다.
  • 파일 소유자, 관리자 그룹 소속, 현재 가 실제 가진 토큰과 활성 권한을 구분해야 UAC 승격과 접근 결과를 설명할 수 있다.

02DACL 평가와 상속, 공유 권한의 조합

  • 접근 검사는 요청한 읽기·쓰기·삭제 같은 권한을 토큰의 들과 ACE 목록에 대입한다.
  • ACE 순서와 상속 여부가 중요하며 일반적인 정규 순서에서는 명시적 거부·허용, 상속된 항목들이 규칙에 따라 배열된다.
  • 모든 상황을 단순히 deny가 항상 이긴다는 한 문장으로 대체하면 요청 비트와 평가 순서를 놓친다.
  • 빈 은 아무 허용 항목이 없지만 자체가 없는 상태와는 다르다.
  • 부모 폴더의 ACE가 자식 파일·폴더에 어떻게 이어질지는 상속 플래그와 보호 상태에 달려 있다.
  • SMB 공유로 파일에 접근하면 공유 수준 권한과 NTFS 객체 권한을 모두 만족해야 한다.
  • 로컬 파일 접근과 네트워크 공유 접근은 거치는 조건이 다르므로 한 화면에서 Full Control을 주었다는 사실만으로 모든 경로를 설명할 수 없다.
powershell
whoami /user
whoami /groups
icacls C:\Study
Get-Acl -LiteralPath C:\Study | Format-List

교육용 예시. 실제 요청·발송·설정 변경을 실행한 결과가 아니다.

원리 심화

03DACL이 요청 권한 집합을 순서대로 처리한다

  • 단순 판정의 입력은 요청한 권한 집합, 실제 주체의 토큰, 순서가 있는 ACE 목록이다. 소유권·특권·다른 보안 계층이 관여하는 특수 경우와 구분한다.
  • 사용자 와 토큰에서 해당 검사에 적용되는 그룹 를 ACE의 대상과 비교한다. 이름이 비슷하거나 그룹 목록에 표시된다는 이유만으로 모든 ACE가 동일하게 적용되지는 않는다.
  • 적용되는 허용 ACE는 아직 필요한 권한을 채운다. 서로 다른 ACE가 읽기와 쓰기를 나누어 허용할 수도 있으며 요청한 권한이 모두 충족되면 성공으로 판정할 수 있다.
  • 평가 중 아직 충족되지 않은 을 적용 가능한 거부 ACE가 막으면 실패한다. 끝까지 필요한 권한을 다 허용하지 못해도 암묵적으로 거부된다.
  • 앞에서 전체 을 이미 허용해 검사가 끝났다면 뒤 ACE를 계속 읽어 결과를 뒤집는 모형이 아니다. 가 선호하는 ACE 정렬과 실제 목록 순서를 함께 봐야 한다.
예제로 추적

04읽기는 성공하고 읽기·쓰기는 거부되는 예

  • 가상 사용자 learner가 Editors 그룹의 적용 가능한 를 가진다고 가정한다. 여기서 R·W는 읽기·쓰기를 뜻하는 설명용 기호이며 의 실제 비트값을 대신하는 숫자가 아니다.
  • 첫 ACE는 Editors의 W를 거부하고 둘째 ACE는 learner의 R을 허용한다. 다른 ACE나 특권에 의한 허용은 없는 단순 이다.
  • 첫 ACE의 W는 요청한 R과 겹치지 않는다. 둘째 ACE에서 R이 허용되어 읽기 요청은 성공한다.
  • 첫 ACE가 중 W를 거부하므로 전체 접근 요청이 실패한다. 운영체제가 자동으로 쓰기만 빼고 같은 핸들을 읽기 전용으로 열어준다고 가정하지 않는다.
  • 두 프로그램이 같은 파일을 연다고 해도 하나는 R만, 다른 하나는 R과 W를 요청할 수 있다. 계정이 같아도 결과가 다른 이유를 실제 에서 찾을 수 있다.
요청첫 ACE둘째 ACE결과
RW 거부는 요청과 무관R 허용성공
R+WW 거부에 해당검사 종료실패
검증·예외

05토큰·객체·접근 경로를 따로 대조하기

  • 새 그룹 가입 이후 새 로그인과 기존 의 결과가 다르면 토큰에 반영된 ·활성 상태를 비교한다. 계정 관리 화면만으로 실행 중 의 권한을 판정하지 않는다.
  • 파일 한 개만 실패한다면 부모 폴더와 대상 파일의 상속 상태·명시 ACE·소유자를 나누어 본다. 상위 폴더 권한 표시가 자식 파일의 최종 과 반드시 같지는 않다.
  • 로컬 읽기가 되지만 SMB에서 실패하면 네트워크에서 인증된 주체와 공유 권한을 추가로 조사한다. NTFS 에 허용 ACE 하나를 더하는 것으로 모든 실패를 해결하지 않는다.
  • RDP의 성공은 원격 대화형 로그온 권리와 이후 파일 작업 권한을 한꺼번에 허용한 결과가 아니다. 인증·로그온·객체 접근의 실패 이벤트를 단계별로 연결한다.
  • 읽기 기능이 불필요한 쓰기 권한까지 요청하여 실패한다면 프로그램의 접근 모드를 줄일 수 있다. 원인을 확인하지 않고 사용자에게 광범위한 Full Control을 주는 방식은 문제를 가린다.

06RDP 연결 허용과 NLA·로그온 권리

  • RDP는 세션을 제공한다.
  • 서버의 RDP 기능과 리스너·방화벽, 계정 인증, 원격 대화형 로그온 권리가 함께 맞아야 한다.
  • 그룹 S-1-5-32-555를 사용하면 운영체제 언어별 그룹 이름 차이를 피할 수 있다.
  • 일반 RDP 사용자에게 항상 Administrators 가입이 필요한 것은 아니다.
  • 는 전체 세션을 만들기 전에 인증을 요구하는 기능이다. UserAuthentication=1이 요구 설정이며 SecurityLayer=0/1/2는 각각 RDP 보안·협상· 계층 선택이라 같은 값이 아니다.
  • 그룹 멤버여도 Deny log on through Remote Desktop Services 같은 정책, 계정 만료, 도메인 인증 조건으로 거부될 수 있다.
  • 웹 포털의 로그인 계정과 대상 의 RDP 계정도 별개다.
powershell
$rdpGroup = Get-LocalGroup -SID 'S-1-5-32-555'
Get-LocalGroupMember -Group $rdpGroup.Name
$rdpPath = 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp'
Get-ItemProperty -Path $rdpPath -Name UserAuthentication,SecurityLayer

교육용 예시. 실제 요청·발송·설정 변경을 실행한 결과가 아니다.

LEARN THROUGH PRACTICE

RDP 서비스·리스너·방화벽·계정의 네 경계 확인하기

접속의 전제 조건을 서비스 화면과 리슨·그룹 조회 결과로 나누어 읽는다.

실습 구성과 전제

  • 서비스와 방화벽 화면, PowerShell 조회는 여러 실습 환경의 사례다. 한 컴퓨터에서 모두 확인한 연속 증거로 취급하지 않는다.
  • 지원되는 호스트와 허용된 관리 계정을 가정한다. 명령은 상태 조회이며 공개망으로 포트를 개방하지 않는다.
  1. 서비스 실행과 시작 유형을 구분한다

    • Remote Desktop Services의 Running은 현재 실행 상태이고 Automatic은 시작 설정이다. 둘이 보인다고 RDP 포트의 실제 수신이나 사용자 로그온 권한까지 확인된 것은 아니다.
    • 클라이언트 접속 전에는 해당 서비스와 소켓의 관계를 확인한다. 서비스 이름은 표시 언어와 실제 서비스 식별자가 다를 수 있다.
    powershell
    Get-Service -Name TermService
    Get-NetTCPConnection -LocalPort 3389 -State Listen

    호스트에서 서비스와 리스너를 조회하는 예시다.

    9/8 - guacamole, RDP BF · 설정·관리 화면 5원본 크기로 보기 ↗
    • Remote Desktop Services 행이 Running으로 표시된다.
    • Startup Type은 Automatic으로 표시되어 현재 상태와 시작 방식이 별도 열에 있다.
    확인 기준

    서비스 상태 다음에는 실제 리슨 포트와 주소를 확인한다.

  2. 방화벽 규칙의 프로토콜과 적용 범위를 읽는다

    • RDP의 3389 수신 허용 규칙이 활성화되어 있다. 규칙의 사용 여부만 보지 말고 적용 프로필·원격 주소 범위·상충하는 차단 정책을 함께 확인해야 한다.
    • 현재 네트워크 프로필이 규칙 적용 프로필과 다르면 목록에 Enabled가 보여도 기대한 경로가 열리지 않을 수 있다.
    9/8 - guacamole, RDP BF · 설정·관리 화면 3원본 크기로 보기 ↗
    • 원격 데스크톱 사용자 모드 TCP 수신 규칙이 Allow와 Enabled 상태로 보인다.
    • 프로토콜은 TCP, 로컬 포트는 3389로 표시되어 어떤 연결을 다루는지 알 수 있다.
    확인 기준

    규칙이나 다른 포트의 허용을 3389의 증거로 대신하지 않는다. 실제 클라이언트 경로에서 확인한다.

  3. 리스너와 사용자 자격을 연결하되 로그온 성공은 따로 본다

    • 별도 PowerShell 화면은 · 리슨, 활성 로컬 사용자, 그룹을 조회한다. 각 출력은 의 일부를 확인한다.
    • 그룹 소속 외에도 원격 로그온 허용·거부 권리, 인증, 계정 제한이 작용한다. 을 경유하면 브라우저→게이트웨이와 게이트웨이→RDP 연결도 따로 확인해야 한다.
    powershell
    Get-LocalUser -Name labuser
    Get-LocalGroupMember -SID "S-1-5-32-555"

    labuser는 재구성 계정이다. 는 기본 그룹을 언어와 무관하게 지정한다.

    Windows RDP 연결 설정원본 크기로 보기 ↗
    • 3389에 대해 IPv4와 IPv6 Listen 행이 보인다.
    • 테스트 사용자의 Enabled=True와 Remote Desktop Users 그룹 구성원 조회 결과가 함께 표시된다.
    확인 기준

    계정 활성화나 그룹 조회만으로 실제 RDP 로그인 성공을 선언하지 않는다. 실패 시 인증과 로그온 권리의 사건을 같은 시각으로 추적한다.

실습에서 확인한 동작 원리

  • 서비스 실행·포트 리슨·방화벽 허용·로그온 권한은 각각 독립된 필요 조건이다.
  • 게이트웨이를 쓸 때에는 사용자 브라우저의 성공 화면과 실제 RDP 세션 수립을 구분한다.

설정·출력 추가로 확인하기 27장

아래 화면을 펼쳐 위 실습의 설정값, 명령과 확인 기준을 비교해 보세요. 각 묶음은 별도 실습 기록입니다.

실습 화면 묶음 01 1장
4/17 - 네트워크 첫 수업 · 실습·개념 참고 화면 2원본 크기로 보기 ↗
  • 문서 문맥에 삽입된 원본 실습·개념 참고 화면이다. Windows 권한·공유와 원격 관리 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
실습 화면 묶음 02 1장
5/21 - DNS · 실습·개념 참고 화면 1원본 크기로 보기 ↗
  • 에 삽입된 원본 학습 화면이다. Windows 보안 화면 문제를 다루는 원문에서 레지스트리의 SecurityHealthService 서비스 항목을 조회한 화면이다.
실습 화면 묶음 03 4장
9/8 - guacamole, RDP BF · 설정·관리 화면 1원본 크기로 보기 ↗
  • 「3. window 10 - RDP 방어」 문맥에 삽입된 원본 설정·관리 화면이다. Windows 권한·공유와 원격 관리 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
9/8 - guacamole, RDP BF · 설정·관리 화면 2원본 크기로 보기 ↗
  • 「3. window 10 - RDP 방어」 문맥에 삽입된 원본 설정·관리 화면이다. Windows 권한·공유와 원격 관리 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
9/8 - guacamole, RDP BF · 설정·관리 화면 4원본 크기로 보기 ↗
  • 문서 문맥에 삽입된 원본 설정·관리 화면이다. Windows 권한·공유와 원격 관리 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
9/8 - guacamole, RDP BF · 설정·관리 화면 6원본 크기로 보기 ↗
  • 문서 문맥에 삽입된 원본 설정·관리 화면이다. Windows 권한·공유와 원격 관리 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
실습 화면 묶음 04 11장
Guacamole SSH·RDP 연결 목록원본 크기로 보기 ↗
  • 수업 원본 자료 · 브라우저에서 원격 데스크톱·SSH에 접속하기 위한 구성과 서비스 상태.
Guacamole 로그인 화면원본 크기로 보기 ↗
  • 수업 원본 자료 · 브라우저에서 원격 데스크톱·SSH에 접속하기 위한 구성과 서비스 상태.
Guacamole 빌드의 프로토콜 지원 결과원본 크기로 보기 ↗
  • 수업 원본 자료 · 브라우저에서 원격 데스크톱·SSH에 접속하기 위한 구성과 서비스 상태.
Guacamole 웹 게이트웨이 구성도원본 크기로 보기 ↗
  • 수업 원본 자료 · 브라우저에서 원격 데스크톱·SSH에 접속하기 위한 구성과 서비스 상태.
Guacamole 최근 연결 화면원본 크기로 보기 ↗
  • 수업 원본 자료 · 브라우저에서 원격 데스크톱·SSH에 접속하기 위한 구성과 서비스 상태.
Guacamole의 FreeRDP 관련 설명원본 크기로 보기 ↗
  • 수업 원본 자료 · 브라우저에서 원격 데스크톱·SSH에 접속하기 위한 구성과 서비스 상태.
Tomcat 8080 포트 확인원본 크기로 보기 ↗
  • 수업 원본 자료 · 브라우저에서 원격 데스크톱·SSH에 접속하기 위한 구성과 서비스 상태.
guacd 4822 포트 리스닝원본 크기로 보기 ↗
  • 수업 원본 자료 · 브라우저에서 원격 데스크톱·SSH에 접속하기 위한 구성과 서비스 상태.
guacd 서비스 실행 상태원본 크기로 보기 ↗
  • 수업 원본 자료 · 브라우저에서 원격 데스크톱·SSH에 접속하기 위한 구성과 서비스 상태.
systemd 서비스 설정 덮어쓰기 설명원본 크기로 보기 ↗
  • 수업 원본 자료 · 브라우저에서 원격 데스크톱·SSH에 접속하기 위한 구성과 서비스 상태.
직접 원격 접속과 웹 게이트웨이 비교원본 크기로 보기 ↗
  • 수업 원본 자료 · 브라우저에서 원격 데스크톱·SSH에 접속하기 위한 구성과 서비스 상태.
실습 화면 묶음 05 1장
Guacamole 웹 원격 접속 환경 · 과카몰리원본 크기로 보기 ↗
  • 학습 원본 · Guacamole 웹 원격 접속 환경의 과카몰리에 수록된 화면·도식이다.
실습 화면 묶음 06 1장
Windows 원격 접속 설정·오류 · MobaXterm 연결원본 크기로 보기 ↗
  • 학습 원본 · Windows 원격 접속 설정·오류의 MobaXterm 연결에 수록된 화면·도식이다.
실습 화면 묶음 07 1장
Windows 원격 접속 설정·오류 · MobaXterm 연결원본 크기로 보기 ↗
  • 학습 원본 · Windows 원격 접속 설정·오류의 MobaXterm 연결에 수록된 화면·도식이다.
실습 화면 묶음 08 1장
Windows 원격 접속 설정·오류 · 원격 데스크톱 ip 설정원본 크기로 보기 ↗
  • 학습 원본 · Windows 원격 접속 설정·오류의 원격 데스크톱 ip 설정에 수록된 화면·도식이다.
실습 화면 묶음 09 1장
Windows 원격 접속 설정·오류 · 원격 데스크톱 ip 설정원본 크기로 보기 ↗
  • 학습 원본 · Windows 원격 접속 설정·오류의 원격 데스크톱 ip 설정에 수록된 화면·도식이다.
실습 화면 묶음 10 5장
window · 설정·관리 화면 1원본 크기로 보기 ↗
  • 에 삽입된 원본 학습 화면이다. Windows 컴퓨터 관리에서 로컬 사용자와 그룹을 조회하고 Administrators 그룹에 추가할 계정을 선택하는 화면이다.
window · 설정·관리 화면 2원본 크기로 보기 ↗
  • 문서 문맥에 삽입된 원본 설정·관리 화면이다. Windows 권한·공유와 원격 관리 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
window · 설정·관리 화면 3원본 크기로 보기 ↗
  • 문서 문맥에 삽입된 원본 설정·관리 화면이다. Windows 권한·공유와 원격 관리 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
window · 실습·개념 참고 화면 2원본 크기로 보기 ↗
  • 문서 문맥에 삽입된 원본 실습·개념 참고 화면이다. Windows 권한·공유와 원격 관리 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
window · 실습·개념 참고 화면 6원본 크기로 보기 ↗
  • 문서 문맥에 삽입된 원본 실습·개념 참고 화면이다. Windows 권한·공유와 원격 관리 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
동작·명령 참고 문서

07WinRM의 리스너·인증·PowerShell endpoint

  • WinRM은 WS-Management 기반 원격 관리 경로이며 HTTP 5985와 HTTPS 5986 리스너가 일반적으로 사용된다.
  • HTTPS 리스너의 인증서는 접속 이름과 용도·신뢰 체인이 맞아야 한다.
  • Enable-PSRemoting은 서비스 시작 하나만 하는 작업이 아니라 세션 구성과 리스너·방화벽 등에도 영향을 줄 수 있다.
  • HTTPS 리스너를 추가했다고 기존 HTTP가 자동으로 제거되는 것은 아니다.
  • 인증은 도메인··SPN·시간 조건에 의존하고 NTLM··인증서 매핑·는 각기 다른 인증·위임 특성을 가진다.
  • 은 자체적으로 자격 증명을 암호화하지 않으므로 가 필요하다.
  • 는 자격 증명 위임을 수반하므로 두 번째 호스트로 접근하는 double-hop 요구와 함께 이해한다.
  • 설정은 인증서 검증을 대신하는 전역 신뢰 저장소가 아니며 접속 성공과 endpoint에서 허용되는 작업 권한도 별개다.
powershell
Get-Service WinRM
winrm enumerate winrm/config/Listener
Get-ChildItem WSMan:\localhost\Service\Auth
Get-PSSessionConfiguration

교육용 예시. 실제 요청·발송·설정 변경을 실행한 결과가 아니다.

08로컬 보안 정책과 도메인 정책의 실제 적용

  • 계정 정책, 사용자 권리, 서비스 보안과 은 서로 다른 정책 영역이다.
  • secedit /export는 로컬 보안 데이터베이스의 정책을 INF로 내보내며 의 모든 설정이나 도메인 GPO 전체를 백업하는 명령은 아니다.
  • gpresult와 Resultant Set of Policy는 도메인·로컬 정책이 합쳐져 실제 적용된 출처를 파악하는 관점을 제공한다.
  • 로컬에서 바꾼 값이 나중의 GPO 갱신으로 다시 바뀔 수 있으므로 레지스트리 숫자만 고정해서 관리하면 적용 주체를 잃는다.
  • /export는 읽어 내보내는 작업이고 /configure는 해당 영역의 권한과 정책을 변경할 수 있는 작업이라 결과가 다르다.
  • 아래 예시는 사용자 권리 영역만 내보내는 교육용 명령이며 출력에는 계정 등이 포함될 수 있어 공개 게시용 파일과는 분리한다.
powershell
secedit /export /cfg C:\SecurityBackup\user-rights.inf /areas USER_RIGHTS
gpresult /r
# 출력 경로는 미리 준비된 관리용 디렉터리를 가정한다.

교육용 예시. 실제 요청·발송·설정 변경을 실행한 결과가 아니다.

09WinRM과 관리 경계

  • 는 명령 기반 관리에 사용되며 데스크톱 화면을 제공하는 RDP와 목적이 다르다.
  • 인증 방식, 연결 대상의 신뢰, 전송 보호와 실행 계정의 권한을 함께 구성해야 한다.
  • 연결 문제를 해결하기 위해 광범위한 신뢰 대상이나 암호화되지 않은 인증을 허용하면 관리 경계가 약해진다.
  • 원격 관리 접근은 필요한 관리망과 주체로 제한하고 성공·실패 기록을 확인한다.

10토큰과 DACL로 요청 권한을 확인하기

  • 의 스레드가 파일 읽기를 요청하면 시스템은 요청 주체의 접근 토큰과 객체의 접근 통제 정보를 사용한다. 일반적으로 의 토큰을 사용하지만 다른 사용자를 가장하는 경우에는 해당 스레드의 가장 토큰이 관련된다.
  • 토큰에는 사용자와 그룹 등이 있고 의 ACE는 어느 에 어떤 접근을 허용하거나 거부할지 표현한다.
    • 로그인 화면에 보이는 이름만으로 현재 작업의 실제 보안 주체를 확정하지 않는다.
  • 판정에서는 적용되는 ACE를 순서대로 조사하며 필요한 권한이 허용됐는지, 거부됐는지, 끝까지 허용되지 않았는지를 판단한다.
  • 명시적 설정과 상속, 권장 ACE 정렬이 실제 결과에 영향을 주므로 거부가 언제나 무조건 모든 허용을 뒤집는다고만 외우면 부정확하다.
  • 이 없는 경우와 존재하지만 항목이 없는 경우도 다르다. 일반 파일 작업에서도 소유권·특권 등 추가 조건이 관계할 수 있으므로 도식은 기본적인 읽기 요청의 판정만 보여 준다.
  1. 읽기 등 실제 요청한 권한을 확인한다.
  2. 또는 가장 토큰의 를 사용한다.
  3. 적용되는 허용·거부 항목을 순서대로 조사한다.
  4. 필요한 권한이 허용됐는지, 거부됐는지 또는 허용되지 않았는지 판단한다.

설명과 함께 보는 보조 도식

처리 과정

사용자 이름이 아닌 토큰으로 권한 판정

특수 권한·소유자 예외를 제외한 일반 객체 읽기 요청의 개념도다.

전체 단계를 한 번에 읽기
  1. 01

    요청 범위 결정

    읽기 등 실제 요청한 권한을 확인한다.

    요청
    일반 파일 읽기
  2. 02

    실제 주체 확인

    프로세스 또는 가장 토큰의 SID를 사용한다.

    구분
    화면의 계정 이름과 토큰
  3. 03

    ACE 순서 검사

    적용되는 허용·거부 항목을 순서대로 조사한다.

    중요 요소
    항목 순서와 적용 SID
  4. 04

    결과 결정

    필요한 권한이 허용됐는지, 거부됐는지 또는 허용되지 않았는지 판단한다.

    끝까지 미허용
    암묵적 거부
학습 모식도. 표시된 사례의 객체·상태를 단계별로 표현하며 세부 구현과 다른 분기는 생략한다.

11원격 연결 성공과 파일 접근 성공 분리하기

  • SMB 공유에서는 네트워크 공유 권한과 NTFS 권한이 함께 제한한다.
  • 공유에서 읽기를 허용해도 NTFS가 읽기를 허용하지 않으면 파일을 읽을 수 없다.
    • 반대로 로컬 접근은 그 네트워크 공유 경로를 거치지 않으므로 같은 사용자의 로컬 결과와 원격 결과가 다를 수 있다.
  • 그룹을 통해 받은 권한과 상속을 포함한 유효 권한을 확인하고, 원격 요청이 기대한 계정으로 인증됐는지도 대조한다.
  • RDP에서는 포트 접근· 인증·로그온 허용·세션 생성·세션 안의 작업 권한을 분리한다.
  • 바탕화면이 열려도 관리자 권한 작업이 자동 허용되는 것은 아니다.
  • WinRM도 연결 과 원격 실행 권한, 전송 보호를 따로 확인해야 한다.
  • 연결 오류를 없애기 위해 신뢰 대상을 무제한으로 넓히거나 인증 보호를 끄면 잘못된 대상을 신뢰할 수 있다.
  • 오류 시각과 실제 보안 주체, 거부된 작업을 기록하고 관련 이벤트를 단계별로 대조한다.
구성·관찰 대상확인 정보판단할 차이
토큰사용자·그룹 ·가장현재 작업의 실제 주체
ACE·상속·정렬표시 권한과 유효 권한
공유와 NTFS네트워크·파일 제한로컬과 원격 결과 차이
RDP·WinRM연결·인증·로그온·작업세션 성공과 관리자 작업 성공
READ · OBSERVE · CONNECT

함께 보는 학습 자료

아래 공식 자료를 본문의 개념·예제와 함께 읽어 보세요. 자료별로 확인할 위치와 관찰할 내용을 적었습니다.

도해

Windows AccessCheck의 ACE 순서 도해

DACLs 절의 Thread A·Thread B 그림에 을 각각 대입한다. 검사 종료 조건을 따라가면 ‘deny는 항상 이긴다’라는 요약만으로 설명할 수 없는 ACE 순서를 이해할 수 있다.

읽으면서 확인할 것
  • 토큰 와 ACE의 주체가 일치하는지
  • 모든 요청 비트를 허용했을 때 검사가 끝나는 시점
  • 같은 ACE 목록도 요청자에 따라 달라지는 결과
학습 확인

이해했는지 확인하기

  • 사용자 이름·SID·그룹과 유효 권한을 연결한다.
  • 공유 권한과 NTFS 권한을 각각 확인한다.
  • RDP와 WinRM의 목적·인증·허용 대상을 구분한다.

함께 확인할 공식 자료