LDAP 인젝션이란?
LDAP 인젝션은 웹 애플리케이션이 사용자 입력값을 적절히 정제하지 않고 Lightweight Directory Access Protocol 쿼리에 포함시킬 때 발생하는 서버 측 공격입니다. 애플리케이션이 LDAP 쿼리에 포함되기 전 특수 문자를 제대로 중화하지 않으면, 공격자는 해당 쿼리를 조작하여 인증을 우회하거나, 민감한 디렉터리 데이터를 추출하거나, LDAP 트리 내 항목을 수정할 수 있습니다.
LDAP 디렉터리는 엔터프라이즈 아이덴티티 인프라의 핵심에 위치합니다. 이들은 사용자 자격 증명, 그룹 멤버십, 접근 제어 목록, 조직 구조, 서비스 계정 세부 정보를 저장합니다. 단 한 번의 LDAP 인젝션 공격으로 이 저장소가 노출되어 공격자에게 인증 인프라의 핵심 권한이 넘어갈 수 있습니다.
MITRE는 이 취약점을 MITRE CWE-90: LDAP 쿼리에서 사용되는 특수 요소의 부적절한 중화로 분류합니다. OWASP는 이를 OWASP Injection 및 업데이트된 OWASP Injection 카테고리 아래에 나열합니다. 이 취약점은 SQL 인젝션과 동일한 근본 원인을 공유하지만, 전혀 다른 시스템이자 조직 전체의 접근 권한을 관리하는 디렉터리 서비스를 대상으로 합니다.
LDAP 인젝션이 어떻게 동작하는지 이해하려면 공격자가 악용하는 쿼리 구문을 알아야 합니다.
LDAP 인젝션은 어떻게 동작하는가?
LDAP 검색 필터는 LDAP 구문에서 정의된 특정 문법을 따릅니다. 필터는 폴란드 표기법(접두 표기법)을 사용하며, 간단한 인증 쿼리는 다음과 같습니다:

& 연산자는 불리언 AND를 수행합니다. 괄호는 조건을 그룹화합니다. * 와일드카드는 모든 값을 일치시킵니다. 이러한 메타문자와 | (OR), ! (NOT), =, ~=, >=, <=, () 그룹 연산자는 인젝션 표면을 형성합니다.
개발자가 사용자 입력값을 쿼리 문자열에 직접 연결하여 필터를 구성하면, 이러한 메타문자는 공격 도구가 됩니다. 로그인 폼이 사용자 이름을 (&(uid=INPUT)(userPassword=HASH)),와 같은 필터에 바로 삽입할 경우, 공격자가 조작된 메타문자를 제출하면 필터의 논리를 완전히 변경할 수 있습니다: 인증 우회, 전체 디렉터리 항목 반환, 또는 한 글자씩 데이터 추출 등이 가능합니다.
공격자가 사용하는 구체적인 기법은 LDAP 인젝션의 유형에 따라 다릅니다.
LDAP 인젝션의 유형
LDAP 인젝션은 애플리케이션이 디렉터리와 상호작용하는 방식의 다양한 측면을 노리는 여러 형태로 나타납니다. 공격자가 사용하는 유형은 애플리케이션의 동작, 쿼리 컨텍스트, 공격자가 응답에서 관찰할 수 있는 내용에 따라 달라집니다.
| 유형 | 기법 | 결과 |
| 검색 필터 인젝션 | 와일드카드 또는 OR 기반 필터 조작 | 전체 디렉터리 열거 |
| 인증 우회 | 항상 참 필터 인젝션 | 임의 사용자로 무단 로그인 |
| 블라인드 LDAP 인젝션 | 문자 단위 차등 분석 | 조용한 데이터 추출 |
| DN 조작 | DN 필드에 잘못된 이스케이프 컨텍스트 적용 | 필터 이외 쿼리 구성요소 인젝션 |
검색 필터 인젝션
다음은 취약한 Java 코드 예시입니다:

공격자가 user=*를 제출하면, 결과 필터는 (cn=*)가 되어 cn 속성이 있는 디렉터리의 모든 객체와 일치합니다. 애플리케이션은 단일 레코드가 아닌 전체 사용자 디렉터리를 반환합니다.
인증 우회
LDAP 인증 흐름은 가장 심각한 인젝션 대상입니다. 다음과 같은 취약한 로그인 필터가 있을 때:

이 필터는 사용자 이름에 )(uid=))(|(uid=*를 주입하면 우회할 수 있습니다. 결과 필터는 항상 참으로 평가되어, 공격자에게 LDAP 트리의 첫 번째 사용자(종종 관리자 계정)로 인증된 상태를 부여합니다. 테스트 가이드는 이를 SQL 인젝션 인증 우회 기법의 직접적인 유사 사례로 문서화하고 있습니다.
블라인드 LDAP 인젝션
애플리케이션이 쿼리 결과를 직접 노출하지 않을 때, 공격자는 차등 응답을 이용해 데이터를 추출합니다. (attribute=a*), (attribute=b*)와 같은 필터 조건을 주입하고, 애플리케이션이 결과를 반환하는지 또는 빈 페이지를 반환하는지 관찰하여 속성 값을 한 글자씩 추출합니다. Black Hat 논문에서 발표된 연구는 클라이언트 측 필터가 표시 정보를 제한하더라도 블라인드 인젝션 기법을 막지 못함을 입증했습니다.
Distinguished Name 조작
LDAP는 서로 다른 이스케이프 컨텍스트를 가지며, 이를 혼동하면 인젝션 벡터가 생성됩니다. 검색 필터는 RFC 4515에 따라 이스케이프해야 하며 (*→\2a, (→\28, )→\29)와 같습니다. Distinguished Name(DN)은 RFC 2253에 따라 (\, #, +, <, >, ,, ;, ", =)를 이스케이프해야 합니다. 잘못된 이스케이프 컨텍스트를 잘못된 필드에 적용하면, 문제를 해결했다고 생각해도 여전히 취약점이 남게 됩니다.
이러한 공격 유형은 구문 이상의 공통된 근본 원인을 공유합니다.
LDAP 인젝션의 원인
LDAP 인젝션 취약점은 코딩 관행, 라이브러리 한계, 인프라 오구성의 조합에서 비롯됩니다. 각 근본 원인은 독립적인 악용 경로를 만듭니다.
- 직접 문자열 연결. 거의 모든 LDAP 인젝션 취약점의 직접적인 원인은 사용자 제어 데이터가 애플리케이션 계층에서 LDAP 필터 문자열에 직접 연결되는 것입니다. LDAP 라이브러리는 기본적으로 파라미터화된 쿼리 지원이 부족하여, 개발자가 안전한 쿼리 구성을 위해 수동 가이드를 따라야 했습니다. 파라미터화 인터페이스가 존재하지만, 의도적으로 도입해야 합니다.
- 특수 문자 오관리. 입력값 검증을 시도하는 애플리케이션도 종종 위험한 문자를 놓치는 불완전한 거부 목록을 구현합니다. * 와 ( 만 차단하고 ) 또는 NUL 바이트를 놓치면 여전히 악용 가능한 취약점이 남습니다. MITRE CWE-90은 LDAP 인젝션을 이러한 실패의 결과로 식별하며, 즉 인젝션 취약점은 특수 문자 오관리에서 직접 발생합니다.
- 이스케이프 컨텍스트 혼동. LDAP 치트시트는 검색 필터 이스케이프를 DN 필드에 적용하거나, DN 이스케이프를 검색 필터 필드에 적용하면 잘못된 컨텍스트 선택으로 인젝션 벡터가 생성됨을 문서화합니다. 개발자가 이스케이프가 필요함을 알고도 잘못된 함수를 선택하면, 애플리케이션은 여전히 취약합니다.
- 익명 및 비인증 바인드 구성. 익명 바인드를 허용하도록 구성된 LDAP 서버는 공격자가 바인드 인증을 완전히 우회할 수 있게 합니다.
- LDAP의 인증 용도 광범위 사용. LDAP가 엔터프라이즈 환경의 인증 백본 역할을 하므로, 로그인 흐름에 대한 인젝션은 가장 심각한 결과(엔터프라이즈 전체 리소스에 대한 인증된 접근)를 초래합니다. 공격 표면은 아키텍처적으로 엔터프라이즈 전체에 걸쳐 있습니다.
이러한 원인은 단일 쿼리 손상 이상의 위험을 만듭니다.
LDAP 인젝션의 영향 및 위험
LDAP 인젝션 공격은 여러 범주의 비즈니스 영향을 초래할 수 있으며, 각 범주는 심각도가 점점 높아집니다.
인증 우회
항상 참 필터 인젝션은 즉각적인 인증된 접근을 허용합니다. OpenText Enterprise Server의 CVE-2023-4501은 비밀번호가 올바르지 않아도 유효한 사용자 이름만 있으면 인증이 성공하도록 허용했으며, 잘못된 사용자 이름과 임의의 비밀번호로도 인증이 성공할 수 있습니다. 이는 금융, 보험, 정부에 배포된 엔터프라이즈 COBOL 개발 및 런타임 환경에 영향을 미쳤습니다.
민감 데이터 유출
LDAP 디렉터리에는 사용자 자격 증명, 비밀번호 해시, 이메일 주소, 조직 계층 구조, 그룹 멤버십, ACL, 컴퓨터 계정, 보안 식별자가 포함되어 있습니다. CISA 권고는 단일 LDAP 쿼리로 엔터프라이즈 디렉터리에서 사용자, 컴퓨터, 그룹, ACL, OU, GPO 정보를 조회한 사례를 문서화했습니다.
권한 상승
인젝션이 성공하면 무단 쿼리에 대한 권한이 부여되고, LDAP 트리 내 콘텐츠 수정이 가능해집니다. Parse Server의 CVE-2026-31828은 인증된 저권한 사용자가 LDAP 필터 인젝션을 통해 임의의 제한 그룹으로 권한을 상승시킬 수 있도록 허용했습니다.
서비스 거부(DoS)
CVE-2025-12764 (pgAdmin)은 LDAP 인젝션을 무기로 사용하여 DC/LDAP 서버와 클라이언트가 비정상적으로 많은 데이터를 처리하게 만들어, 디렉터리 인프라에 서비스 거부 및 연쇄적 인증 실패를 유발했습니다.
횡적 이동 지원
LDAP 열거는 Active Directory 정찰에 활용됩니다. CISA 레드팀 권고는 LDAP 데이터가 사용자, 컴퓨터, 그룹, ACL, OU, GPO 매핑에 사용되어 횡적 이동 계획의 입력값이 되었음을 문서화했습니다. 평가된 엔터프라이즈는 이 활동에 대한 가시성이 전혀 없었습니다.
OWASP는 인젝션의 악용 난이도를 3(쉬움), 기술적 영향을 3(심각)으로 평가하며, OWASP 프레임워크에 명시합니다. LDAP 인젝션은 또한 직접적인 컴플라이언스 영향을 가집니다: PCI DSS 6.5.1은 LDAP 인젝션을 SQL, XPath 인젝션과 함께 필수 평가 대상으로 명시합니다.
영향을 이해하면 방어 우선순위를 정할 수 있지만, 공격자가 이러한 취약점을 어떻게 찾고 무기화하는지도 알아야 합니다.
공격자는 LDAP 인젝션을 어떻게 악용하는가?
공격자는 정찰부터 전체 자격 증명 추출까지 LDAP 인젝션 취약점을 찾고 악용하는 구조화된 방법론을 따릅니다.
1단계: LDAP 연동 진입점 식별
공격자는 LDAP 백엔드를 쿼리할 가능성이 높은 애플리케이션 기능을 식별합니다. SANS LDAP 블로그에 따르면, LDAP는 관리, 인증, 디렉터리 데이터베이스 객체 쿼리에 사용될 수 있습니다. 로그인 폼, 사용자 검색 페이지, 비밀번호 재설정, 사내 디렉터리 조회, VPN 게이트웨이 포털 등이 모두 후보 표면입니다.
2단계: 인젝션 포인트 탐색
OWASP LDAP 테스트는 (, |, &, * 문자를 삽입하여 차등 응답을 확인하도록 안내합니다. 에러 메시지, 빈 결과, 애플리케이션 동작 변화는 취약한 파라미터임을 확인시켜줍니다.
3단계: 필터 구조 추론
소스 코드를 알 수 없는 경우, 공격자는 퍼징을 통해 LDAP 필터 구조를 추론합니다. SANS는 "침투 테스트 중에 이러한 구문을 볼 수 있는 소스 코드를 갖고 있을 가능성은 낮다. 이 경우 퍼징과 정찰이 필요할 수 있다"고 언급합니다.
4단계: 인젝션 페이로드 제작
일반적인 페이로드는 다음과 같습니다:
- 와일드카드 인젝션
(*)로 전체 디렉터리 항목 조회 - 항상 참 필터
()(uid=))(|(uid=*)로 인증 우회 - OR 기반 속성 인젝션 ()(department=it)(|(cn=) 등으로 여러 속성에서 자격 증명 수집
- Null 객체 클래스 종료
(*)(objectClass=*))(& (objectClass=void)로 블라인드 추출을 위한 불리언 오라클 구축
구체적인 페이로드는 공격자가 정찰 중에 추론한 필터 구조에 따라 달라집니다.
5단계: 공격 체인 통한 권한 상승
OWASP 및 MITRE ATT&CK 자료에 문서화된 일반적인 공격 체인은 다음과 같습니다:
- 항상 참 필터로 로그인 우회
- OR 기반 인젝션으로 도메인 자격 증명 추출
- ldapmodify로 도메인 계정 생성 (ATT&CK T1136.002)
- NTDS.dit 덤프 후 오프라인 자격 증명 크래킹 (ATT&CK T1003.003)
블라인드 LDAP 인젝션은 (attribute=*) 프로브로 스키마 속성을 열거한 뒤, 비밀번호 해시, 그룹 멤버십, 보안 식별자 등 값을 한 글자씩 추출하는 병렬 체인을 가능하게 합니다.
이러한 악용 패턴은 다양한 조직과 애플리케이션 유형에 영향을 미칩니다.
LDAP 인젝션의 영향 대상
LDAP 기반 인증에 의존하는 모든 조직은 구조적으로 이 취약점에 노출되어 있습니다. OWASP는 인젝션 취약점이 "특히 레거시 코드에서 매우 흔하다"고 언급합니다.
가장 노출도가 높은 애플리케이션 유형:
- LDAP 기반 인증을 사용하는 웹 애플리케이션(로그인 포털, SSO 시스템)
- 문자열 연결 LDAP 쿼리를 사용하는 레거시 엔터프라이즈 애플리케이션
- 셀프서비스 비밀번호 재설정 및 사내 디렉터리 포털
- VPN 게이트웨이 및 원격 접속 포털
- 산업 제어 시스템 관리 플랫폼
- 데스크톱 애플리케이션(OWASP Desktop App Security Top 10은 DA1 인젝션에 LDAP 인젝션 포함)
집중 위험 산업군:
- 헬스케어: LDAP 기반 EHR 및 임상 시스템은 패치되지 않은 취약점에 대해 HIPAA 집행 대상이며, HHS는 HHS 침해 데이터로 2018~2022년 대형 침해 사례를 문서화함.
- 금융 서비스: 이 부문의 엔터프라이즈 시스템에서 인젝션은 여전히 중요한 공격 표면입니다.
- 정부 및 중요 인프라: CISA는 정부 환경 및 ICS 에너지 부문 플랫폼에서의 실제 악용을 문서화했습니다.
- 소프트웨어 및 기술: 오픈소스 백엔드, 데이터베이스 도구, 개발 플랫폼에서 LDAP 인젝션 CVE가 지속적으로 발생합니다.
LDAP 인젝션은 엔터프라이즈 COBOL 환경, 데이터베이스 관리 도구, 에너지 부문 플랫폼, 오픈소스 백엔드 등 광범위한 소프트웨어에 영향을 미칩니다. 이는 가상의 위험이 아니며, 최근 사고가 이를 입증합니다.
LDAP 인젝션 실제 사례
다음 사례는 LDAP 인젝션이 정부 네트워크, 엔터프라이즈 플랫폼, 오픈소스 도구에서 어떻게 발생하는지 보여줍니다.
CISA 레드팀: LDAP 가시성 전무한 엔터프라이즈(2024)
CISA 평가에 따르면, 평가 대상 엔터프라이즈는 "비정상 LDAP 트래픽에 대한 모니터링이 없었습니다." 팀은 LDAPS를 쿼리하여 사용자, 컴퓨터, 그룹, ACL, OU, GPO 정보를 수집했습니다. CISA는 리눅스 도메인 호스트에서 비권한 사용자가 LDAP를 쿼리하는 행위가 "네트워크 방어자에게 경고를 주었어야 한다"고 명시했습니다.
OpenText Enterprise Server: 완전한 인증 우회 (CVE-2023-4501)
이 취약점은 비밀번호와 무관하게 유효한 사용자 이름만 있으면 인증이 성공하도록 허용했으며, 잘못된 사용자 이름으로도 인증이 성공할 수 있었습니다. 이는 금융, 보험, 정부 메인프레임 통합에 배포된 엔터프라이즈 COBOL 개발 및 런타임 환경에 영향을 미쳤습니다.
Ivanti EPMM: 위협 행위자 LDAP 자격 증명 덤프(2025)
2025년 5월 PoC 공개 이후, 위협 행위자가 Ivanti EPMM 서버에 접근하여 LDAP 자격 증명을 덤프했습니다. CISA는 2025년 5월 19일 해당 취약점을 KEV 카탈로그에 추가했습니다.
Redash: LDAP 인젝션 통한 패스워드 스프레이 (CVE-2020-36144)
GitHub Security Lab은 Redash LDAP 인증의 이메일 필드가 이스케이프 없이 LDAP 필터 쿼리 문자열을 구성하여, 인증되지 않은 공격자가 단일 요청으로 모든 사용자의 비밀번호를 무차별 대입할 수 있음을 문서화했습니다.
이러한 사고는 LDAP 보안 문제의 수십 년간의 역사를 보여줍니다.
LDAP 인젝션 타임라인 및 역사
LDAP 인젝션은 20년 이상 알려진 취약점 유형으로, 1990년대 후반부터 현재까지 공식 분류 및 지속적인 CVE 공개가 이어지고 있습니다.
- 프로토콜 기원. X.500 Directory Access Protocol(DAP)은 ITU-T에서 개발되었습니다. LDAP v1은 RFC 1487, v2는 RFC 1777, v3는 RFC 2251에 등장하며, 현재도 엔터프라이즈에서 사용됩니다.
- 최초 문서화 사례. CVE-1999-0895는 Checkpoint FireWall-1 V4.0의 초기 LDAP 인증 보안 문제를 문서화했습니다.
- 공식 분류. OWASP는 LDAP 인젝션을 별도의 공격 유형으로 공식 문서화했습니다. 2007년 OWASP Top 10은 이를 A2, 인젝션 결함으로 분류했습니다.
- 블라인드 인젝션 연구. Alonso 등은 Black Hat Europe에서 블라인드 LDAP 연구를 발표하며 문자 단위 데이터 추출을 입증했습니다.
- OWASP 우선순위 최고점. OWASP Top 10 2017은 인젝션을 A1, 웹 애플리케이션 위험 1위로 선정하며 LDAP 인젝션을 명시했습니다.
- ICS 타깃화. CVE-2018-14805(ABB eSOMS)는 LDAP 인젝션이 에너지 부문 ICS 영역으로 확장됨을 보여줍니다.
- 엔터프라이즈 플랫폼 타깃화. ForgeRock OpenAM, OpenLDAP, OpenText Enterprise Server 등에서 지속적인 엔터프라이즈 영향이 확인되었습니다.
- 최근 공개. 최근 수년간 Apache Druid, WatchGuard Fireware, WeKan, Parse Server, Dell PowerMax, pgAdmin 등에서 신규 CVE가 보고되고 있습니다.
신규 CVE가 계속 등장하므로, 지속적인 모니터링이 실질적으로 필수입니다.
LDAP 인젝션 탐지 방법
애플리케이션, 디렉터리, 네트워크 계층에 걸친 계층적 모니터링이 필요합니다.
애플리케이션 계층 지표
인증 및 검색 파라미터에서 LDAP 메타문자: *, (, ), \, NUL 바이트가 입력되는지 모니터링합니다. 와일드카드 인젝션으로 전체 디렉터리 항목이 반환되는 비정상적으로 큰 LDAP 결과 집합을 주시합니다. 잘못된 쿼리 직후 인증 성공은 인증 우회 패턴을 시사합니다.
LDAP 서버 계층 지표
)( 또는 |( 시퀀스가 포함된 필터 구조를 탐지합니다. (objectClass=*) 또는 (cn=*)로 모든 항목을 반환하는 쿼리는 와일드카드 열거를 시사합니다. 익명 바인드 후 광범위한 검색 작업은 비인증 정찰 시도를 의미합니다.
SIEM 및 이벤트 로그 모니터링
Active Directory 환경에서는 두 가지 Windows 이벤트 ID가 중요합니다:
- 이벤트 ID 4662: AD 객체에 대한 작업. Write Property, Control Access, DELETE, WRITE_DAC, WRITE_OWNER 동작을 모니터링합니다.
- 이벤트 ID 1644: 비용이 많이 들거나 비효율적인 LDAP 쿼리. 인젝션 시도에서 자주 발생합니다.
NCC Group 가이드에 따르면: "로그에서 비정상적인 검색 필터를 찾아야 합니다. 공격자는 종종 특정 필터로 사용자, 그룹, 컴퓨터를 열거합니다."
행위 상관관계 패턴
데이터 소스 전반에서 다음과 같은 인젝션 캠페인을 상관 분석합니다:
- 단일 소스 IP에서 높은 LDAP 쿼리 볼륨(인젝션 도구 사용)
- 순차적 속성 열거:
uid=a*, uid=b*(블라인드 인젝션 추출) - 비밀번호 실패 직후 즉시 로그인 성공(인증 우회 확인)
- 비권한 리눅스 도메인 호스트의 대량 LDAP 쿼리(CISA가 탐지하지 못한 정확한 패턴)
이러한 신호를 소스별로 상관 분석하면 단일 지표보다 더 명확하게 인젝션 캠페인을 파악할 수 있습니다.
WAF 계층 모니터링
OWASP ModSecurity Core Rule Set은 REQUEST-921-PROTOCOL-ATTACK.conf의 Rule ID 921200을 포함하며, LDAP 인젝션을 심각도 CRITICAL 및 Paranoia Level 1(기본 활성화)로 탐지합니다. 이 규칙은 요청 쿠키, 인자명, 인자값, XML 본문에서 LDAP 필터 메타문자 패턴을 검사합니다.
의심스러운 활동을 탐지하는 것만으로는 적절한 예방 통제가 없으면 충분하지 않습니다.
LDAP 인젝션 예방 방법
예방은 코드, 구성, 인프라 계층에 걸친 심층 방어 접근이 필요합니다.
코드 계층 방어
- 파라미터화된 LDAP 쿼리 사용. 가장 효과적인 방어는 사용자 입력값을 필터 문자열에 연결하지 않고 파라미터로 전달하는 것입니다:

- 컨텍스트에 맞는 이스케이프 적용. LDAP 컨텍스트에 맞는 올바른 이스케이프 함수를 사용합니다. 검색 필터(RFC 4515)는 *→
\2a, (→\28, )→\29, \→\5c, NUL→\00을 이스케이프합니다. Distinguished Name(RFC 2253)은\, #, +, <, >, ,, ;, ", =및 선/후행 공백을 이스케이프합니다.
언어별 구현 예시는 다음과 같습니다:
| 언어 | 검색 필터 이스케이프 | DN 이스케이프 |
| Java | OWASP ESAPI encodeForLDAP() | OWASP ESAPI encodeForDN() |
| .NET | Encoder.LdapFilterEncode() | Encoder.LdapDistinguishedNameEncode() |
| Perl | Net::LDAP::Util::escape_filter_value() | RFC 2253에 따라 수동 적용 |
- 허용 목록 검증 구현. LDAP 작업 전 입력값을 예상 패턴에 따라 검증합니다. 필드에 예상되지 않은 메타문자가 포함된 입력은 거부합니다. 입력값은 검증 전(유니코드 정규화) 정규화해야 하며, OWASP 치트시트를 참고합니다.
인프라 강화
- 익명 및 비인증 바인드 비활성화. 이 조치만으로도 여러 치명적 취약점의 근본 원인을 제거할 수 있습니다.
- LDAPS(포트 636) 사용. NIST SP 1800-16에 따라 평문 LDAP(포트 389)는 비활성화합니다.
- LDAP 바인딩 서비스 계정에 최소 권한 ACL 적용. 필요한 작업 및 디렉터리 하위 트리로만 제한합니다.
- LDAP 인프라를 일반 네트워크 접근에서 분리 ( NIST SP 1800-18B 참고).
이러한 통제는 LDAP 인프라에 접근한 공격자의 공격 표면을 줄여줍니다.
CI/CD 파이프라인 통합
정적 분석(SAST) 및 동적 분석(DAST)을 개발 파이프라인에 통합합니다. OWASP Top 10은 SAST, DAST, IAST 도구를 포함하여 인젝션 결함을 프로덕션 배포 전 식별할 것을 권장합니다. Semgrep의 taint 분석 모드는 LDAP 쿼리 구성에 대한 사용자 입력의 미정제 경로를 추적하는 커스텀 규칙을 통해 신뢰할 수 없는 입력을 탐지할 수 있습니다.
이러한 예방 조치는 적절한 도구 지원이 있을 때 가장 효과적입니다.
탐지 및 예방 도구
효과적인 LDAP 인젝션 방어에는 스캐닝, 모니터링, 런타임 보호 도구의 조합이 필요합니다.
- OWASP ZAP은 ZAP Alert 40015(CWE-90, WASC-29)를 통해 LDAP 인젝션에 대한 능동 스캔을 제공합니다. ZAP Marketplace의 Alpha 스캔 규칙을 설치하고, LDAP 연동 애플리케이션에 대해 Protocol / LDAP을 타깃팅하도록 구성합니다.
- OWASP ModSecurity CRS는 WAF 계층에서 CRS Rule 921200을 통해 보호를 제공합니다. 이 규칙은 기본적으로 Paranoia Level 1에서 활성화되며, 쿠키, 인자, XML 페이로드에서 LDAP 필터 조작 시그니처를 검사합니다. CRS Issue 276의 CRS 회귀 테스트 페이로드는 WAF 검증을 위한 퍼징 워드리스트로 활용할 수 있습니다.
- Semgrep은 입력 소스에서 LDAP 쿼리 싱크까지 신뢰할 수 없는 데이터 경로를 추적하는 taint 모드 규칙을 통해 정적 taint 분석을 지원합니다.
- SIEM 플랫폼은 커스텀 식별 규칙으로 Windows 이벤트 ID 4662, 1644를 모니터링하고, 비정상 LDAP 쿼리 패턴을 상관 분석하며, 속성 순차 열거 또는 비권한 호스트의 대량 쿼리 등 행위 지표에 대해 경고할 수 있습니다.
이 도구들은 문제의 각 계층을 개별적으로 다룹니다. 플랫폼 접근은 이를 통합합니다.
관련 취약점
LDAP 인젝션과 유사한 패턴을 공유하는 취약점 유형은 다음과 같습니다:
- SQL 인젝션(CWE-89): 가장 유사한 사례. 둘 다 쿼리 언어에서 미정제 입력값을 악용하며, 인증 우회도 유사한 기법으로 달성할 수 있습니다. 구문과 대상 시스템은 크게 다릅니다.
- OS 명령 인젝션(CWE-78): MITRE 기준 CWE-90과 동일한 소프트웨어 결함 패턴(SFP24, "명령에 오염된 입력")을 공유합니다. 디렉터리 서비스가 아닌 호스트 운영체제를 대상으로 합니다.
- XPath 인젝션(CWE-643): OWASP LDAP 테스트는 XPath 인젝션을 LDAP 인젝션과 함께 XML 기반 데이터 저장소를 노리는 인증 우회 기법으로 분류합니다.
- 특수 요소의 부적절한 중화(CWE-77): MITRE 계층에서 CWE-90의 상위 약점입니다. 모든 인젝션 유형은 해석기에서 의미 있는 문자를 중화하지 못한 일반적 실패에서 비롯됩니다.
- 출력의 부적절한 인코딩 또는 이스케이프(CWE-116): 이스케이프 실패에서 인젝션으로 이어지는 직접적인 연쇄를 문서화합니다. CVE-2021-41232는 Go 애플리케이션의 이스케이프 실패가 LDAP 인젝션을 직접 유발한 CWE-116 → CWE-90 연쇄를 보여줍니다.
- 입력값의 부적절한 검증(CWE-20): 애플리케이션이 LDAP 쿼리 구성 전 입력 형식을 검증하지 않을 때의 근본 원인입니다.
이러한 관련 약점 유형을 검토하면 LDAP 전용 코드 경로뿐 아니라 전체 코드베이스에 동일한 방어 원칙을 적용할 수 있습니다.
관련 CVE
| CVE ID | 설명 | 심각도 | 영향 제품 | 연도 |
| SuiteCRM의 LDAP 인젝션으로 인증되지 않은 공격자가 검색 필터를 조작하여 인증 우회 또는 정보 노출이 가능합니다 | Critical (9.8) | SalesAgility SuiteCRM <7.15.1 / 8.0.0–8.9.2 | 2026 | |
| WeKan은 이스케이프되지 않은 사용자 이름을 LDAP 검색 필터 및 DN 값에 포함시켜, 인증되지 않은 원격 공격자가 인증 중 LDAP 쿼리를 조작할 수 있습니다 | Critical (9.8) | WeKan Project WeKan <8.19 | 2026 | |
| Parse Server가 사용자 제공 authData.id를 LDAP Distinguished Name 및 그룹 검색 필터에 직접 삽입하여 권한 상승이 가능합니다 | High (8.8) | Parse Platform parse-server <8.6.26 | 2026 | |
| WatchGuard Fireware OS의 LDAP 인젝션으로 인증되지 않은 원격 공격자가 연결된 LDAP 서버에서 민감 정보를 조회할 수 있습니다 | High (7.0) | WatchGuard Technologies Fireware OS 12.0–12.11.6 / 12.5–12.5.15 | 2026 | |
| Kanboard는 이스케이프되지 않은 사용자 입력을 LDAP 검색 필터에 직접 삽입하여, 인증되지 않은 공격자가 LDAP 사용자를 열거하고 민감 속성을 조회할 수 있습니다 | Medium (5.3) | Kanboard Kanboard ≤1.2.48 | 2026 | |
| Teedy의 LDAP 활성화 로그인 폼에서 사용자 이름 필드를 통한 인증되지 않은 LDAP 인젝션이 가능하여 임의 계정 생성 및 패스워드 스프레이가 가능합니다 | Critical (9.8) | Sismics Teedy 1.9–1.12 | 2025 | |
| Apache HertzBeat의 LDAP 인젝션으로 인증된 공격자가 임의 스크립트 실행을 유발하는 명령을 제작할 수 있습니다 | High (8.8) | Apache Software Foundation Apache HertzBeat ≤1.7.2 | 2025 | |
| pgAdmin 4의 사용자 이름 필드에 특수 LDAP 문자를 주입하면 LDAP 서버와 클라이언트가 과도한 데이터를 처리하여 서비스 거부가 발생합니다 | High (7.5) | PostgreSQL Global Development Group pgAdmin 4 <9.10 | 2025 | |
| GLPI의 LDAP 인증 폼은 인증되지 않은 공격자가 LDAP 인젝션을 수행할 수 있으며, 10.0.12 버전에서 수정되었습니다 | High (8.1) | GLPI Project GLPI 0.70–<10.0.12 | 2024 | |
| 권한 있는 사용자가 OX App Suite의 선택적 LDAP 연락처 공급자에 LDAP 필터 문자열을 주입하여, 의도된 계층 외부의 디렉터리 콘텐츠에 접근할 수 있습니다 | High (~8.0) | Open-Xchange OX App Suite <7.10.6 | 2024 | |
| NVIDIA DGX A100 BMC는 인접 네트워크의 인증되지 않은 공격자가 악용 가능한 LDAP 사용자 인젝션 취약점이 있어 정보 노출이 발생할 수 있습니다 | Medium (~6.5) | NVIDIA DGX A100 BMC | 2024 | |
| Mastodon의 LDAP 로그인 쿼리가 안전하지 않아, 인증된 공격자가 LDAP 디렉터리에서 임의 속성을 유출할 수 있습니다 | High (7.7) | Mastodon Mastodon 2.5.0–4.1.1 | 2023 | |
| 조작된 사용자 이름으로 Apache Derby의 LDAP 인증을 우회할 수 있으며, 디스크 고갈, 악성코드 실행, 무단 데이터베이스 접근이 가능합니다 | Critical (9.8) | Apache Software Foundation Apache Derby ≤10.16.1.1 | 2022 | |
| SSSD의 libsss_certmap이 LDAP 필터에 사용되는 인증서 데이터를 정제하지 않아, 인증된 공격자가 LDAP 쿼리 요소를 주입하고 무단 접근이 가능합니다 | High (8.8) | Red Hat / SSSD Project SSSD | 2022 | |
| Apache ManifoldCF는 ActiveDirectory authority 커넥터에서 사용자 이름과 도메인 문자열을 검증 없이 LDAP 검색 쿼리에 전달합니다 | Medium (5.3) | Apache Software Foundation Apache ManifoldCF 0–2.23 | 2022 | |
| Thunderdome Planning Poker는 LDAP 인증 활성화 시 사용자 이름을 LDAP 쿼리 전에 이스케이프하지 않아, 인증되지 않은 LDAP 인젝션이 가능합니다 | Critical (9.8) | Thunderdome Planning Poker <1.16.3 | 2021 | |
| IBM Open Liberty의 ldapRegistry-3.0 기능에 LDAP 인젝션 취약점이 존재합니다 | High (7.5) | IBM Open Liberty ldapRegistry-3.0 (v17.0.0.3–22.0.0.1) | 2021 | |
| ForgeRock OpenAM은 Webfinger 프로토콜을 통한 LDAP 인젝션을 허용하여, 인증되지 않은 상태에서 비밀번호 해시 또는 세션 토큰을 문자 단위로 추출할 수 있습니다 | High (est.) | ForgeRock OpenAM <13.5.1 | 2021 |
결론
LDAP 인젝션은 신뢰할 수 없는 입력값을 환경의 인증 및 접근에 의존하는 디렉터리 시스템에 대한 제어로 전환할 수 있는 공격자에게 기회를 제공합니다. 이는 단일 쿼리나 애플리케이션에 국한된 위험이 아님을 의미합니다.
쿼리를 안전하게 작성하고, 값을 올바른 컨텍스트에서 이스케이프하며, 바인드 권한을 제한하고, LDAP 활동을 면밀히 모니터링하면 노출과 공격자의 이동 범위를 모두 줄일 수 있습니다.
자주 묻는 질문
LDAP injection은 신뢰할 수 없는 데이터로부터 LDAP 쿼리를 생성하는 소프트웨어의 입력 처리 결함입니다. 공격자는 쿼리에 대한 디렉터리의 해석 방식을 변경할 수 있으며, 로그인 검사를 항상 참이 되도록 만들거나, 제한된 조회를 전체 디렉터리 열거로 확장하거나, LDAP 트리 내에서 추가 및 수정 작업을 악용할 수 있습니다.
예. LDAP injection은 OWASP의 Injection 범주에 포함되며, 별도의 Top 10 항목으로 분리되어 있지 않습니다. 실제로는 SQL injection과 동일한 엄격함으로 LDAP 기반 코드를 검토해야 하며, 두 취약점 모두 신뢰할 수 없는 입력이 인터프리터에 도달할 때 발생합니다.
예. 웹에 노출된 로그인 폼, 검색 페이지, 포털 또는 관리 인터페이스가 사용자 입력을 LDAP 백엔드로 전달하는 경우, 공격자는 네트워크를 통해 악용을 시작할 수 있습니다.
많은 경우, 유효한 자격 증명 없이도 필터 조작을 탐색할 수 있습니다.
가장 위험도가 높은 애플리케이션은 LDAP를 신원 결정에 사용하는 경우입니다. 로그인 포털 및 SSO 시스템, 비밀번호 재설정 및 디렉터리 검색 도구, VPN 게이트웨이 및 원격 액세스 포털, 그리고 문자열 연결로 LDAP 쿼리를 생성하는 레거시 엔터프라이즈 앱이 이에 해당합니다.
공격자는 일반적으로 간단한 탐색부터 시작합니다. (, |, &, *와 같은 LDAP 메타문자를 입력하고, 응답 변화, 오류, 비정상적인 결과 개수를 관찰합니다.
필터 구조를 유추한 후에는 와일드카드, OR 기반, 블라인드 추출 페이로드로 이동합니다.
초기 징후로는 인증 또는 검색 필드에 메타문자가 포함되거나, 비정상적으로 광범위한 LDAP 결과 집합, 필터 내 )( 또는 |( 패턴, 실패한 로그인 직후의 성공, 권한이 없는 호스트에서의 대량 LDAP 쿼리 등이 있습니다.
LDAP는 단일 앱을 넘어 인증 및 권한 부여를 제어하는 경우가 많기 때문에 심각합니다. 성공적인 인젝션은 디렉터리 데이터를 노출하거나 로그인 제어를 우회하거나, lateral movement 계획에 활용될 수 있습니다.
이로 인해 비즈니스 영향이 많은 애플리케이션 전용 취약점보다 더 광범위해질 수 있습니다.
예, 특히 더 큰 신원 공격 체인의 시작 단계로 사용될 수 있습니다. 공격자는 로그인 우회 또는 디렉터리 열거에서 자격 증명 수집, 계정 생성, NTDS.dit 덤프, 유효 계정을 이용한 지속적 접근으로 이동할 수 있습니다.
Injection은 종종 진입점일 뿐, 최종 목표가 아닙니다.
도구가 도움이 되지만, 문제를 완전히 해결하지는 못합니다. 스캐너와 WAF 규칙은 명백한 사례를 찾을 수 있지만, 블라인드 인젝션과 약한 LDAP 로깅은 탐지가 더 어렵습니다.
LDAP 트래픽과 쿼리 동작에 대한 가시성이 부족하면, 악용이 이미 진행 중이어도 활동을 놓칠 수 있습니다.
중앙 집중식 신원 의존도가 높은 산업군이 가장 높은 위험을 가집니다. 본문에서는 의료, 금융 서비스, 정부, 중요 인프라, 소프트웨어 플랫폼을 강조합니다.
이들의 공통점은 고가치 사용자, 시스템, 관리 워크플로우에 대해 LDAP 기반 인증에 의존한다는 점입니다.


