본문 바로가기
정보보안/취약점진단

[Web(웹) 보안] LDAP Injection 취약점 진단

by 용오동 2024. 12. 13.
반응형

📌 주요정보통신기반시설  기술적 취약점 분석 및 평가 방법 상세가이드

🔎 LI(상) 3.LDAP 인젝션


[LDAP Injection] 

 

# LDAP의 개념 및 LDAP Injection 공격

- LDAP(Lightweight Directory Access Protocol)는 TCP/IP 위에서 DS(Directory Service)를 조회하고 수정하는 Application Protocol이다. 보통은 인프라에서 사람, 기기등의 인증에서 사용되는 경우가 많다.

- 즉, 네트워크 상에서 조직이나 조직 내 파일, 개인정보, 디바이스 정보 등을 찾아볼 수 있도록 하는 프로토콜이다.

- LDAP는 디렉터리 서비스의 표준인 X.500의 DAP를 기반으로한 Lightweight 버전이다

- LDAP 인젝션 공격은 사용자의 입력값이 LDAP Query에 직접 영향을 끼칠 수 있을 때 이를 통해 비정상적인 LADP 동작을 유도하는 공격 방법이다.

- SQL Injection 방식과 거의 유사하며, 로그인 ID / Password에 많이 사용된다.

 

# 점검대상 및 판단 기준

- 대상 : 웹 애플리케이션 소스코드, 웹 방화벽

- 판단 기준

> 양호 : 임의의 LDAP 쿼리 입력에 대한 검증이 이루어져 변조된 쿼리가 실행되지 않는 경우

> 취약 : 임의의 LDAP 쿼리 입력에 대한 검증이 이루어지지 않아 변조된 쿼리가 실행되는 경우

- 조치 방법 : 지정된 문자열만 입력 허용하고, 임의의 LDAP Query 입력에 대한 검증 로직 구현

 

# 점검 방법

  > 사용자 입력 값에 변조된 LDAP 쿼리 삽입 후 실행되는지 확인한다.

 

# 보안 설정 방법

  > 사용자 입력 값을 화이트 리스트로 지정하여 영문(a-z, A-Z)과 숫자(0-9)만을 허용

  > DN과 필터에 사용되는 사용자 입력 값에는 특수문자가 포함되지 않도록 특수문자를 제거

  > 특수문자를 사용해야 하는 경우 아래와 같은 특수문자에 대해서는 실행 명령이 아닌 일반문자로 인식되도록 처리한다.

      1. 특수문자(DN)에 사용되는 특수문자 ‘\’

      2. 필터에 사용되는 특수문자 =, +, <, >, #, ;, \ 등

      * 필터링 대상

-- # ( )
= */ /* +
user_tables user_table_columns table_name column_name Syscolumns
union select insert drop update and
or If join substring from where
declare substr openrowset wp_ sysobject %
* ; & |    

  > 웹 방화벽에 LDAP 관련 특수문자를 필터링하도록 룰셋 적용


※ 참고링크


 

반응형