0Pricing
Cloud & IT Cert Prep · 강의

디렉터리 서비스: LDAP와 Active Directory

LDAP 디렉터리와 Active Directory가 사용자, 그룹, 컴퓨터를 구성하는 방식과 그룹 정책이 대규모 환경에서 보안 설정을 적용하는 방식을 이해합니다.

디렉터리 서비스: LDAP와 Active Directory은(는) CoddyKit의 무료 Cloud & IT Cert Prep 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Cloud & IT Cert Prep 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Cloud & IT Cert Prep 강의에는 총 4개의 강의가 포함되어 있습니다.

Directory Service란 무엇인가

Directory Service는 User, Group, Computer, 프린터, Policy 등 네트워크 Resource에 관한 Information을 저장하고 구성하는 중앙 Repository입니다. 조직은 각 System에 별도의 User 데이터베이스를 유지하는 대신 Directory Service를 Identity Information의 단일 기준으로 사용합니다. 모든 Authentication Request는 Directory를 기준으로 검증되며, Access Policy는 조직 전체에 일관되게 적용됩니다.

LDAP: 경량 Directory Access Protocol

LDAP(경량 Directory Access Protocol)는 Directory Service를 조회하고 수정하기 위한 업계 표준 Protocol입니다. LDAP는 항목을 Directory Information Tree(DIT)라는 계층형 Tree로 구성하며, 각 항목은 Distinguished Name(DN)으로 식별됩니다. LDAP는 포트 389(평문)와 포트 636(LDAPS — TLS를 통한 LDAP)에서 실행됩니다. LDAP는 Protocol이며 Directory 자체는 별도의 Product입니다.

# LDAP Distinguished Name structure
cn=John Smith,ou=Engineers,dc=corp,dc=example,dc=com

# cn  = Common Name (user's name)
# ou  = Organizational Unit
# dc  = Domain Component

# LDAP search query example
ldapsearch -H ldap://dc.corp.example.com \
  -b 'dc=corp,dc=example,dc=com' \
  '(sAMAccountName=jsmith)' mail memberOf

Active Directory 아키텍처

Active Directory(AD)는 LDAP와 Kerberos를 기반으로 구축된 Microsoft의 기업용 Directory Service입니다. Resource를 Domain으로 구성하고, Domain은 Tree로 묶이며, Tree는 Forest로 묶입니다. Domain 컨트롤러(DC)는 AD 데이터베이스(NTDS.dit)를 호스팅하고 Authentication을 처리합니다. AD는 대부분의 Windows 기업 환경에서 Identity 관리의 중추입니다.

# Active Directory hierarchy
# Forest: corp.example.com (trust boundary)
#   Tree: corp.example.com
#     Domain: corp.example.com
#       OU: Engineering
#         User: jsmith
#         Group: Dev-Team
#       OU: Finance
#         Computer: FIN-PC-01

Active Directory의 Kerberos Authentication

Active Directory는 기본 Authentication Protocol로 Kerberos를 사용합니다. 이 과정은 Ticket 발급 방식으로 진행됩니다. Client가 Key Distribution Center(KDC)에 Authentication하고 Ticket-Granting Ticket(TGT)를 받습니다. User가 Resource에 접근해야 할 때는 TGT를 제시하여 해당 Resource에 대한 Service Ticket을 받습니다. Password는 네트워크를 통해 전송되지 않고 암호화된 Ticket만 전송됩니다. 이러한 설계는 Kerberoasting과 같은 공격을 이해하는 데 핵심입니다.

# Kerberos authentication flow (simplified)
# 1. Client -> KDC: Authentication Request (AS-REQ)
# 2. KDC  -> Client: Ticket-Granting Ticket (AS-REP)
# 3. Client -> KDC: Service Ticket Request (TGS-REQ) + TGT
# 4. KDC  -> Client: Service Ticket (TGS-REP)
# 5. Client -> Server: Access Request + Service Ticket
# 6. Server validates ticket -> Access granted

Group Policy Object(GPO)

Group Policy Object(GPO)는 수천 대의 Machine에 보안 Settings를 동시에 적용하기 위한 AD의 메커니즘입니다. GPO는 Password 복잡성 요구 사항, 화면 잠금 시간 제한, 소프트웨어 설치, 방화벽 규칙, 레지스트리 Settings를 구성할 수 있습니다. GPO는 AD Container(site, Domain, OU)에 연결되며 해당 Container 내의 모든 User와 Computer에 적용됩니다. GPO Settings는 기본적으로 90분마다 갱신되므로 Policy에서 벗어난 Machine에서도 규정 준수가 유지됩니다.

# Common GPO security settings
# Computer Configuration -> Windows Settings -> Security Settings:
#   Password Policy:
#     - Minimum password length: 14
#     - Password complexity: Enabled
#     - Maximum password age: 90 days
#   Account Lockout Policy:
#     - Lockout threshold: 5 attempts
#     - Lockout duration: 30 minutes

AD Security Group과 최소 권한

Active Directory는 Security Group을 사용하여 Access Permission을 집합적으로 관리합니다. 관리자는 개별 User에게 Permission을 할당하는 대신 Group에 Permission을 부여하고 적절한 Group에 User를 추가합니다. Security+에서 이해해야 할 주요 기본 Group은 다음과 같습니다. Domain Admins(Domain 전체 제어), Enterprise Admins(Forest 전체 제어), Schema Admins(AD 스키마 수정), Administrators(로컬 Machine 관리자)입니다. 이러한 높은 권한의 Group Membership은 엄격하게 통제해야 합니다.

LDAP 삽입 공격

LDAP 삽입은 Directory Service에서 SQL 삽입에 해당하는 공격입니다. Attacker는 LDAP filter에 직접 연결되는 User input에 특수 문자(*, (, ), \, NUL)를 삽입하여 LDAP query를 조작합니다. 공격에 성공하면 Authentication을 우회하거나 모든 Directory 항목을 추출하거나 Directory Object를 수정할 수 있습니다. 방지하려면 input 검증을 수행하고 문자열 연결 대신 매개변수화된 LDAP API를 사용해야 합니다.

# Vulnerable LDAP filter (DO NOT use)
filter = '(uid=' + user_input + ')'
# Attacker input: *)(&
# Result: (uid=*)(&) -- returns ALL users

# Defense: escape special chars before including in filter
# LDAP special chars: ( ) * \ NUL
# Use LDAP library escaping functions

AD Replication과 Domain 컨트롤러

기업은 이중화와 지리적 분산을 위해 여러 Domain 컨트롤러를 배포합니다. AD Replication은 Directory Replication Service(DRS)를 사용하여 모든 DC를 동기화합니다. Attacker는 DCSync 공격을 위해 Replication을 악용합니다. 즉, 실제로 DC에 로그인하지 않고도 Replication Permission을 사용하여 DC에 모든 Password 해시를 Request합니다. Replication Permission을 보호하는 것은 중요한 AD 강화 조치입니다.

# DCSync attack detection query (PowerShell)
# Detect accounts with dangerous replication permissions:
Get-ObjectAcl -DistinguishedName 'DC=corp,DC=example,DC=com' |
  Where-Object { $_.ActiveDirectoryRights -match 'DS-Replication' } |
  Select-Object IdentityReference, ActiveDirectoryRights

LDAP 보안 강화: LDAPS 및 서명

포트 389의 일반 LDAP는 바인드 자격 증명을 포함한 데이터를 평문으로 전송하므로 가로채기에 취약합니다. 조직은 모든 디렉터리 트래픽을 암호화하기 위해 포트 636에서 LDAPS(LDAP over TLS)를 적용해야 합니다. 또한 공격자가 LDAP 인증 메시지를 가로채 재전송하여 권한 없는 액세스 권한을 얻는 릴레이 공격을 방지하려면 LDAP 서명 및 채널 바인딩을 필수로 설정해야 합니다.

# Verify LDAP signing requirement (Windows)
# Registry key:
# HKLM\SYSTEM\CurrentControlSet\Services\NTDS\Parameters
# LDAPServerIntegrity = 2 (Require signing)

# Or via GPO:
# Security Settings -> Local Policies -> Security Options
# 'Domain controller: LDAP server signing requirements' = Require signing

AD 공격 표면: 일반적인 잘못된 구성

Active Directory 환경에는 수년간 운영되는 동안 잘못된 구성이 누적됩니다. 일반적인 AD 보안 취약점은 다음과 같습니다. 제한 없는 위임(모든 사용자를 가장할 수 있음), 취약한 비밀번호를 사용하는 Kerberoastable 서비스 계정, AS-REP 로스팅 대상(사전 인증이 비활성화된 계정), 과도한 Domain Admin 구성원, 그리고 숨겨진 상승 권한을 부여하는 AdminSDHolder 잘못된 구성입니다. BloodHound와 같은 도구를 사용한 정기적인 AD 보안 평가를 통해 이러한 경로를 식별할 수 있습니다.

LDAP와 Active Directory 요약

관계를 명확히 정리하면 다음과 같습니다. LDAP는 디렉터리와 통신하는 데 사용하는 프로토콜입니다(HTTP가 웹 서버와 통신하는 데 사용되는 것과 같습니다). Active Directory는 LDAP를 액세스 프로토콜로 사용하는 Microsoft의 디렉터리 서비스 제품입니다. LDAP 호환 디렉터리로는 OpenLDAP(오픈 소스), Oracle Directory Server, Red Hat Directory Server 등이 있습니다. 모두 LDAP 쿼리를 사용하지만 관리 인터페이스와 추가 독점 기능은 서로 다릅니다.

빠른 확인

이 레슨에서 다룬 CompTIA Security+(SY0-701) 개념을 이해했는지 확인해 보세요.

레슨 요약

이 레슨에서는 다음을 배웠습니다. LDAP는 계층적 트리에서 Distinguished Name을 사용하여 디렉터리 서비스를 조회하는 프로토콜입니다. Active Directory는 인증에 Kerberos를 사용하고 도메인 전체에 보안 설정을 적용하는 데 GPO를 사용합니다. 또한 가로채기 및 릴레이 공격을 방지하려면 포트 636의 LDAPS와 LDAP 서명을 필수로 설정해야 합니다. 다음으로는 Privileged Access Management(PAM)을 살펴보겠습니다.

자주 묻는 질문

“디렉터리 서비스: LDAP와 Active Directory” 강의는 무료인가요?

네 — “디렉터리 서비스: LDAP와 Active Directory” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Cloud & IT Cert Prep 강의 전체를 잠금 해제할 수 있습니다. Cloud & IT Cert Prep 강의에는 총 4개의 강의가 포함되어 있습니다.

“디렉터리 서비스: LDAP와 Active Directory”에서 뭘 배우나요?

LDAP 디렉터리와 Active Directory가 사용자, 그룹, 컴퓨터를 구성하는 방식과 그룹 정책이 대규모 환경에서 보안 설정을 적용하는 방식을 이해합니다. 브라우저에서 직접 실행하는 실습 코드로 Cloud & IT Cert Prep을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Cloud & IT Cert Prep을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Cloud & IT Cert Prep은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.

“디렉터리 서비스: LDAP와 Active Directory” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Cloud & IT Cert Prep 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Cloud & IT Cert Prep 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 디렉터리 서비스: LDAP와 Active Directory
  2. 특권 접근 관리(PAM)
  3. ID 거버넌스와 프로비저닝
  4. Just-in-Time 접근과 조건부 접근 정책
← Cloud & IT Cert Prep(으)로 돌아가기