NGINX LDAP 참조 구현의 보안 취약점 해결

관리자
조회수 304


2022년 4월 9일, NGINX LDAP 참조 구현 의 보안 취약성이 공개적으로 공유되었습니다. 참조 구현만 영향을 받는 것으로 확인되었습니다. NGINX Open Source와 NGINX Plus 자체는 영향을 받지 않으며 참조 구현을 사용하지 않는 경우 시정 조치가 필요하지 않습니다.

NGINX LDAP 참조 구현은 LDAP(Lightweight Directory Access Protocol)를 사용하여 NGINX에서 프록시되는 애플리케이션의 사용자를 인증합니다. https://github.com/nginxinc/nginx-ldap-auth 에서 Python 데몬 및 관련 NGINX 구성으로 게시되었으며 , 그 목적과 구성은 블로그에서 자세히 설명합니다 .

다음 조건 중 하나라도 해당되면 LDAP 참조 구현의 배포가 취약성의 영향을 받습니다. 아래에서는 조건과 이를 완화하는 방법에 대해 자세히 설명합니다.

  1. 명령줄 매개변수는 Python 데몬을 구성하는 데 사용됩니다.
  2. 사용되지 않는 선택적 구성 매개변수가 있습니다.
  3. LDAP 인증은 특정 그룹 멤버십에 따라 달라집니다.

참고: LDAP 참조 구현은 참조 구현으로 게시되며 통합이 작동하는 방식과 통합을 확인하는 데 필요한 모든 구성 요소를 설명합니다. 프로덕션 등급 LDAP 솔루션이 아닙니다. 예를 들어, 샘플 로그인 페이지에 사용된 사용자 이름과 비밀번호는 암호화되지 않으며 보안 공지에서 이를 알려줍니다.


완화 조건 1: 명령줄 매개변수는 Python 데몬을 구성하는 데 사용됩니다.

LDAP 참조 구현을 구성하는 기본 방법은 샘플 구성 및 설명서proxy_set_header 에 자세히 설명된 대로 여러 가지 지시문을 사용하는 것입니다 . 그러나 구성 매개변수는 Python 데몬( nginx-ldap-auth-daemon.py ) 을 초기화하는 명령줄에서도 설정할 수 있습니다 .

명령줄에 구성 매개변수가 지정되면 공격자는 특별히 제작된 HTTP 요청 헤더를 전달하여 일부 또는 전부를 재정의할 수 있습니다. 이를 방지하려면 location = /auth-proxyNGINX 구성( repo의 nginx-ldap-auth.conf )의 블록에 다음 구성을 추가하여 인증 중에 외부 요청 헤더가 무시되도록 합니다.

location = /auth-proxy {
    # ...
    proxy_pass_request_headers off;
    proxy_set_header Authorization $http_authorization; # If using Basic auth
    # ...
}


완화 조건 2: 사용되지 않는 선택적 구성 매개변수

조건 1에서와 같이, 공격자는 구성에 설정되지 않은 경우 특정 구성 매개변수를 재정의하기 위해 특별히 제작된 HTTP 요청 헤더를 전달할 수 있습니다. 예를 들어, LDAP 검색 템플릿은 구성에 명시적으로 설정되지 않은 경우 재정의될 수 있습니다. 이는 조건 1과 동일한 방식으로 방어되며, location = /auth-proxyNGINX 구성의 블록에 다음 구성을 추가합니다.

location = /auth-proxy {
    # ...
    proxy_pass_request_headers off;
    proxy_set_header Authorization $http_authorization; # If using Basic auth
    # ...
}


완화 조건 3: LDAP 그룹 멤버십이 필요합니다.

Python 데몬은 입력을 살균하지 않습니다. 따라서 공격자는 특별히 제작된 요청 헤더를 사용하여 그룹 멤버십( memberOf) 검사를 우회하고 인증되는 사용자가 필요한 그룹에 속하지 않더라도 LDAP 인증이 성공하도록 강제할 수 있습니다.

이를 완화하려면 로그인 양식을 제공하는 백엔드 데몬이 사용자 이름 필드에서 특수 문자를 제거하도록 해야 합니다. 특히, LDAP 서버에서 특별한 의미를 갖는 여는 괄호 문자와 닫는 괄호 문자(-- ( ) ) 및 등호( =)를 제거해야 합니다. LDAP 참조 구현의 백엔드 데몬은 적절한 시기에 이런 방식으로 업데이트될 것입니다.



위 내용과 같이 NGINX Plus 를 활용하여 Demo 가 필요하시면 하단의 전문가에게 상담받기 버튼을 클릭해주세요



전문가에게 상담받기