LDAP 인젝션
(LDAP Injection)
개념
사용자 입력 값에 LDAP 구문을 입력하였을 떄 웹 기반 응용 프로그램을 악용하는데 사용되는 공격입니다.
LDAP : Lightweight Directory Access Protocol의 약자로, 디렉토리 서비스를 제공하기 위한 프로토콜입니다. 이전 디렉토리 서비스 표준인 X.500의 DAP과 다르게 OSI 계층 전체가 아닌 TCP/IP위에서 운용됩니다.
발생 원인
사용자 입력 값에 대한 적절한 필터링 및 유효성 검증을 하지 않아 발생하는 취약점입니다. 공격 성공 시 승인되지 않은 쿼리에 권한을 부여하고, LDAP 트리 내의 내용 수정이나 임의의 명령 실행이 가능해집니다.
위험한 이유
공격자가 LDAP 인젝션 공격에 성공하게 된다면 LDAP 서버내의 있는 정보를 유출할 수 있습니다. 명령어 사용으로 권한을 얻을 수 있고, 얻은 권한으로 서버내의 정보탈취나 삭제, 수정이 가능해집니다.
조치 방법
- 사용자 입력 값을 화이트 리스트로 지정하여 영문과 숫자만을 허용합니다.
- DN과 필터에 사용되는 사용자 입력 값에는 특수문자가 포함되지 않도록 특수문자를 제거합니다.
- 특수문자를 사용해야 하는 경우 특수문자(DN에 사용되는 특수문자는 '\', 필터에 사용되는 특수문자는 =, +, <, >, #, ', \등에 대해서는 실행 명령이 아닌 일반문자로 인식되도록 처리합니다.
- 웹 방화벽에 LDAP 관련 특수문자를 필터링하도록 룰셋을 적용합니다.
추가 정보
DN : LDAP 트리 구조에서 항목의 위치를 나타내며 각 항목을 고유하게 식별합니다. 대표적으로 cn, ou, dc, com과 같은 속성이 있습니다.
'주요정보통신기반 시설 가이드' 카테고리의 다른 글
SSI 인젝션이란? (0) | 2024.03.17 |
---|---|
SQL 인젝션이란? (0) | 2024.03.17 |
운영체제 명령 실행 공격이란? (0) | 2024.03.17 |
포맷 스트링이란? (0) | 2024.03.17 |
버퍼 오버플로우 공격이란? (0) | 2024.03.17 |