블로그

코더는 보안을 정복 : 공유 및 학습 시리즈 - LDAP 주사

야프 카란 싱
게시일: 2019년 1월 17일

대부분의 컴퓨터 시스템은 LDAP(경량 디렉터리 액세스 프로토콜)를 사용합니다. IP(인터넷 프로토콜) 네트워크를 통해 분산 디렉터리 정보 서비스를 유지하는 데 사용됩니다. 그래서 기본적으로, 그것은 사용자를 추적 하는 방법으로 작동.

LDAP는 사용자가 다양한 작업을 수행할 수 있는 권한이 있는지, 특히 조직 내에서 정의된 역할과 관련된지 확인하기 위해 앱의 인증 원본으로 자주 사용됩니다. 예를 들어 회계에 있는 사람만 회사 회계 소프트웨어를 사용할 수 있습니다. 사용자가 설정된 권한 내에서 행동하도록 LDAP 테이블을 확인하도록 응용 프로그램이 프로그래밍되는 경우가 많습니다.

악의적인 사용자가 LDAP 쿼리를 조작할 수 있는 경우에 문제가 발생할 수 있습니다. 이렇게 하면 수신 서버가 일반적으로 허용되지 않는 잘못된 쿼리를 실행하거나 암호 없이 무효 또는 보안이 낮은 사용자에게 높은 수준 또는 관리자 액세스를 부여하도록 속일 수 있습니다.  

LDAP 주사는 까다로울 수 있지만,이 에피소드에서, 우리는 배울 것이다 :

  • 작동 방식
  • 왜 그렇게 위험합니까?
  • 방어를 막기 위해 어떻게 방어할 수 있을까요?

공격자는 LDAP 주입을 어떻게 사용합니까?

LDAP 기반 공격이 수년 동안 인기를 끌고 있는 이유 중 하나는 거의 모든 컴퓨터 시스템이 이를 사용하기 때문에 있습니다. LDAP는 오픈 소스이며 매우 잘 작동하므로 많은 대안이 만들어지지 않았습니다.

LDAP의 핵심은 IP 기반 컴퓨터 시스템 또는 네트워크 내에서 유효한 사용자를 추적하는 데이터베이스입니다. 사용자가 시스템, 네트워크, 서버, 응용 프로그램 및 동일한 네트워크의 다른 사용자에 대한 정보를 공유할 수 있습니다.

정보는 DN으로 축약되는 고유 이름이라고 하는 데이터베이스 라인 또는 레코드와 동등한 LDAP에 의해 저장됩니다. 각 DN은 고유합니다. 예를 들어, 이것은 대기업의 시카고 회계 사무소에서 일하는 사용자에게 DN이 어떻게 보일 수 있는지입니다.

cn=제임스 스미스, ou=기업 계정, dc=시카고, do=Parkview  

각 DN이 고유하도록 하려면 "+", "/", "=" 및 몇 가지 다른 코드와 같은 다양한 코드를 레코드에 추가할 수 있습니다. 시카고 파크뷰 오피스의 기업 계좌에서 일하는 제임스 스미스가 두 명 있더라도 레코드 이전이나 이후에 공백을 삽입하여 각각 개별 DN을 가질 수 있습니다.

응용 프로그램은 일반적으로 LDAP를 사용하여 사용자가 급여 부서에서 올바른 연락처를 찾아 검사에서 실수에 대해 이야기할 때와 같은 특정 DN에 대한 쿼리를 보낼 수 있도록 합니다. LDAP 주사는 검색 쿼리에서 사용자가 제공한 매개 변수에 대한 유효성 검사가 없을 때 발생할 수 있습니다. 이 경우 해커는 양성 검색을 조작하여 인증 메커니즘을 우회하거나 추가 임의 쿼리를 실행할 수 있습니다. 이렇게 하면 서버가 사용자 암호와 같이 허용되지 않아야 하는 결과를 표시하도록 속이거나 유효한 암호 가 있거나 없는 네트워크 내의 보안이 높은 영역에 대한 액세스 권한을 응용 프로그램을 부여할 수도 있습니다.

LDAP 주사가 왜 그렇게 위험한가요?

LDAP 주사의 가장 큰 위험은 전 세계 IP 컴퓨터 네트워크의 대부분에 걸쳐 프로토콜의 확산 가능성이 높습니다. 그것은 정보를 훔치려는 해커를위한 쉬운 디딤돌, 또는 네트워크에서 자신의 권한을 높이기 위해 합니다. LDAP 주사가 가능한지 확인하지 않으므로 보안 팀은 해당 구멍이 항상 닫혀 있는지 확인해야 합니다.

특히 유효한 사용자가 조직 내의 사용자 및 그룹 또는 DN에 포함된 기타 정보에 대한 제한된 정보를 찾을 수 있도록 많은 응용 프로그램이 프로그래밍됩니다. 예를 들어, 앱을 통해 누군가가 LDAP를 사용하여 시카고에서 일하는 기업 회계사의 연락처 정보를 검색할 수 있으며, 이는 위의 예에서 친구 제임스 스미스를 반환합니다. 사용 권한에 따라 LDAP 쿼리를 완벽하게 사용할 수 있습니다.

악의적인 사용자가 쿼리를 필터링하지 않은 매개 변수를 추가하여 검색의 특성을 변경하고 서버를 속여 일반적으로 제공해서는 안 되는 정보를 제공할 수 있습니다. 예를 들어 사용자=* 문자열을 추가하면 공격자는 전체 조직의 모든 단일 사용자에 대한 정보를 얻을 수 있으며, 이는 허용되지 않을 수 있습니다.

인증에 LDAP를 사용하는 응용 프로그램의 경우 문제가 더욱 악화될 수 있습니다. 예를 들어 공격자는 LDAP 쿼리 끝에 있는 (&) 문자열을 사용하여 서버를 속여 인수가 사실이라고 생각할 수 있습니다. 앱이 LDAP를 사용하여 암호의 유효성을 검사하는 경우 LDAP 주입을 통해 True 인수를 강제로 사용하면 권한이 없는 사용자가 암호 없이도 관리자로 네트워크에 로그인할 수 있습니다.

LDAP 주입을 네트워크에 L-DON't 만들기

LDAP 주사를 방지 하는 가장 좋은 방법 중 하나는 LINQtoAD 또는 그것을 저항 하기 위해 특별히 설계 된 다른 프레임 워크 같은 것을 구현 하는. 네트워크에 LDAP 쿼리를 활용하는 응용 프로그램이 이미 있는 경우 이 작업을 불가능할 수 있습니다. 그러나, 이 경우에도, 그것은 여전히 앞으로 주입 저항 하는 프레임 워크를 사용 하는 모든 새로운 응용 프로그램에 대 한 좋은 생각.

LDAP를 사용하는 기존 응용 프로그램은 화이트리스트 유효성 검사 및 입력 소독을 사용하여 주사에 대해 강화할 수도 있습니다. 가능한 경우 사용자 입력을 제한된 신뢰할 수 있는 값 집합으로 제한합니다. 그렇지 않으면 LDAP 쿼리의 일부인 사용자 입력은 먼저 소독되어야 하며 GET 및 POST 매개 변수, 쿠키 및 HTTP 헤더를 공격 벡터로 사용할 수 있으므로 포함시키는 것을 잊지 마세요. 입력 소독을 수행하기 위해 자신의 함수를 작성하지 마십시오. 신뢰할 수 있는 타사 보안 포커스 라이브러리 또는 기본 제공 프레임워크 API를 대신 사용합니다.

대상 수정 프로그램 외에도 LDAP 쿼리 응용 프로그램에 할당하는 것과 같은 좋은 컴퓨팅 관행도 네트워크에서 필요한 최소한의 권한을 도움이 될 수 있습니다. 그런 식으로, 최악의 일이 발생하고 LDAP 주입을 통해 얻을 경우, 피해는 완화 될 것이다.

LDAP 주사에 대한 자세한 정보

추가 읽기에 대 한, LDAP 주사에 OWASP 쓰기를 살펴 볼 수 있습니다., 또는 주사 방지 치트 시트. 또한 새로운 방어 지식을 테스트에 넣을 수 있습니다. Secure Code Warrior 사이버 보안 팀이 궁극적인 사이버 전사가 될 수 있도록 하는 플랫폼. 이 취약점을 물리치는 것에 대해 자세히 알아보려면 Secure Code Warrior 블로그.

리소스 보기
리소스 보기

악의적인 사용자가 LDAP 쿼리를 조작할 수 있는 경우에 문제가 발생할 수 있습니다. 이렇게 하면 수신 서버가 일반적으로 허용되지 않는 잘못된 쿼리를 실행하거나 암호 없이 무효 또는 보안이 낮은 사용자에게 높은 수준 또는 관리자 액세스를 부여하도록 속일 수 있습니다.

더 알고 싶으신가요?

야프 카란 싱은 보안 코딩 전도자, 수석 싱 및 공동 설립자입니다 Secure Code Warrior .

Secure Code Warrior 는 전체 소프트웨어 개발 수명 주기에서 코드를 보호하고 사이버 보안을 최우선으로 생각하는 문화를 조성할 수 있도록 도와드립니다. 앱 보안 관리자, 개발자, CISO 등 보안과 관련된 모든 사람이 안전하지 않은 코드와 관련된 위험을 줄일 수 있도록 도와드릴 수 있습니다.

데모 예약
공유하세요:
저자
야프 카란 싱
게시일: 2019년 1월 17일

야프 카란 싱은 보안 코딩 전도자, 수석 싱 및 공동 설립자입니다 Secure Code Warrior .

공유하세요:

대부분의 컴퓨터 시스템은 LDAP(경량 디렉터리 액세스 프로토콜)를 사용합니다. IP(인터넷 프로토콜) 네트워크를 통해 분산 디렉터리 정보 서비스를 유지하는 데 사용됩니다. 그래서 기본적으로, 그것은 사용자를 추적 하는 방법으로 작동.

LDAP는 사용자가 다양한 작업을 수행할 수 있는 권한이 있는지, 특히 조직 내에서 정의된 역할과 관련된지 확인하기 위해 앱의 인증 원본으로 자주 사용됩니다. 예를 들어 회계에 있는 사람만 회사 회계 소프트웨어를 사용할 수 있습니다. 사용자가 설정된 권한 내에서 행동하도록 LDAP 테이블을 확인하도록 응용 프로그램이 프로그래밍되는 경우가 많습니다.

악의적인 사용자가 LDAP 쿼리를 조작할 수 있는 경우에 문제가 발생할 수 있습니다. 이렇게 하면 수신 서버가 일반적으로 허용되지 않는 잘못된 쿼리를 실행하거나 암호 없이 무효 또는 보안이 낮은 사용자에게 높은 수준 또는 관리자 액세스를 부여하도록 속일 수 있습니다.  

LDAP 주사는 까다로울 수 있지만,이 에피소드에서, 우리는 배울 것이다 :

  • 작동 방식
  • 왜 그렇게 위험합니까?
  • 방어를 막기 위해 어떻게 방어할 수 있을까요?

공격자는 LDAP 주입을 어떻게 사용합니까?

LDAP 기반 공격이 수년 동안 인기를 끌고 있는 이유 중 하나는 거의 모든 컴퓨터 시스템이 이를 사용하기 때문에 있습니다. LDAP는 오픈 소스이며 매우 잘 작동하므로 많은 대안이 만들어지지 않았습니다.

LDAP의 핵심은 IP 기반 컴퓨터 시스템 또는 네트워크 내에서 유효한 사용자를 추적하는 데이터베이스입니다. 사용자가 시스템, 네트워크, 서버, 응용 프로그램 및 동일한 네트워크의 다른 사용자에 대한 정보를 공유할 수 있습니다.

정보는 DN으로 축약되는 고유 이름이라고 하는 데이터베이스 라인 또는 레코드와 동등한 LDAP에 의해 저장됩니다. 각 DN은 고유합니다. 예를 들어, 이것은 대기업의 시카고 회계 사무소에서 일하는 사용자에게 DN이 어떻게 보일 수 있는지입니다.

cn=제임스 스미스, ou=기업 계정, dc=시카고, do=Parkview  

각 DN이 고유하도록 하려면 "+", "/", "=" 및 몇 가지 다른 코드와 같은 다양한 코드를 레코드에 추가할 수 있습니다. 시카고 파크뷰 오피스의 기업 계좌에서 일하는 제임스 스미스가 두 명 있더라도 레코드 이전이나 이후에 공백을 삽입하여 각각 개별 DN을 가질 수 있습니다.

응용 프로그램은 일반적으로 LDAP를 사용하여 사용자가 급여 부서에서 올바른 연락처를 찾아 검사에서 실수에 대해 이야기할 때와 같은 특정 DN에 대한 쿼리를 보낼 수 있도록 합니다. LDAP 주사는 검색 쿼리에서 사용자가 제공한 매개 변수에 대한 유효성 검사가 없을 때 발생할 수 있습니다. 이 경우 해커는 양성 검색을 조작하여 인증 메커니즘을 우회하거나 추가 임의 쿼리를 실행할 수 있습니다. 이렇게 하면 서버가 사용자 암호와 같이 허용되지 않아야 하는 결과를 표시하도록 속이거나 유효한 암호 가 있거나 없는 네트워크 내의 보안이 높은 영역에 대한 액세스 권한을 응용 프로그램을 부여할 수도 있습니다.

LDAP 주사가 왜 그렇게 위험한가요?

LDAP 주사의 가장 큰 위험은 전 세계 IP 컴퓨터 네트워크의 대부분에 걸쳐 프로토콜의 확산 가능성이 높습니다. 그것은 정보를 훔치려는 해커를위한 쉬운 디딤돌, 또는 네트워크에서 자신의 권한을 높이기 위해 합니다. LDAP 주사가 가능한지 확인하지 않으므로 보안 팀은 해당 구멍이 항상 닫혀 있는지 확인해야 합니다.

특히 유효한 사용자가 조직 내의 사용자 및 그룹 또는 DN에 포함된 기타 정보에 대한 제한된 정보를 찾을 수 있도록 많은 응용 프로그램이 프로그래밍됩니다. 예를 들어, 앱을 통해 누군가가 LDAP를 사용하여 시카고에서 일하는 기업 회계사의 연락처 정보를 검색할 수 있으며, 이는 위의 예에서 친구 제임스 스미스를 반환합니다. 사용 권한에 따라 LDAP 쿼리를 완벽하게 사용할 수 있습니다.

악의적인 사용자가 쿼리를 필터링하지 않은 매개 변수를 추가하여 검색의 특성을 변경하고 서버를 속여 일반적으로 제공해서는 안 되는 정보를 제공할 수 있습니다. 예를 들어 사용자=* 문자열을 추가하면 공격자는 전체 조직의 모든 단일 사용자에 대한 정보를 얻을 수 있으며, 이는 허용되지 않을 수 있습니다.

인증에 LDAP를 사용하는 응용 프로그램의 경우 문제가 더욱 악화될 수 있습니다. 예를 들어 공격자는 LDAP 쿼리 끝에 있는 (&) 문자열을 사용하여 서버를 속여 인수가 사실이라고 생각할 수 있습니다. 앱이 LDAP를 사용하여 암호의 유효성을 검사하는 경우 LDAP 주입을 통해 True 인수를 강제로 사용하면 권한이 없는 사용자가 암호 없이도 관리자로 네트워크에 로그인할 수 있습니다.

LDAP 주입을 네트워크에 L-DON't 만들기

LDAP 주사를 방지 하는 가장 좋은 방법 중 하나는 LINQtoAD 또는 그것을 저항 하기 위해 특별히 설계 된 다른 프레임 워크 같은 것을 구현 하는. 네트워크에 LDAP 쿼리를 활용하는 응용 프로그램이 이미 있는 경우 이 작업을 불가능할 수 있습니다. 그러나, 이 경우에도, 그것은 여전히 앞으로 주입 저항 하는 프레임 워크를 사용 하는 모든 새로운 응용 프로그램에 대 한 좋은 생각.

LDAP를 사용하는 기존 응용 프로그램은 화이트리스트 유효성 검사 및 입력 소독을 사용하여 주사에 대해 강화할 수도 있습니다. 가능한 경우 사용자 입력을 제한된 신뢰할 수 있는 값 집합으로 제한합니다. 그렇지 않으면 LDAP 쿼리의 일부인 사용자 입력은 먼저 소독되어야 하며 GET 및 POST 매개 변수, 쿠키 및 HTTP 헤더를 공격 벡터로 사용할 수 있으므로 포함시키는 것을 잊지 마세요. 입력 소독을 수행하기 위해 자신의 함수를 작성하지 마십시오. 신뢰할 수 있는 타사 보안 포커스 라이브러리 또는 기본 제공 프레임워크 API를 대신 사용합니다.

대상 수정 프로그램 외에도 LDAP 쿼리 응용 프로그램에 할당하는 것과 같은 좋은 컴퓨팅 관행도 네트워크에서 필요한 최소한의 권한을 도움이 될 수 있습니다. 그런 식으로, 최악의 일이 발생하고 LDAP 주입을 통해 얻을 경우, 피해는 완화 될 것이다.

LDAP 주사에 대한 자세한 정보

추가 읽기에 대 한, LDAP 주사에 OWASP 쓰기를 살펴 볼 수 있습니다., 또는 주사 방지 치트 시트. 또한 새로운 방어 지식을 테스트에 넣을 수 있습니다. Secure Code Warrior 사이버 보안 팀이 궁극적인 사이버 전사가 될 수 있도록 하는 플랫폼. 이 취약점을 물리치는 것에 대해 자세히 알아보려면 Secure Code Warrior 블로그.

리소스 보기
리소스 보기

아래 양식을 작성하여 보고서를 다운로드하세요.

우리는 당신에게 우리의 제품 및 / 또는 관련 보안 코딩 주제에 대한 정보를 보낼 수있는 귀하의 허가를 바랍니다. 우리는 항상 최대한의주의를 기울여 귀하의 개인 정보를 취급 할 것이며 마케팅 목적으로 다른 회사에 판매하지 않을 것입니다.

전송
양식을 제출하려면 '분석' 쿠키를 활성화하세요. 완료되면 언제든지 다시 비활성화할 수 있습니다.

대부분의 컴퓨터 시스템은 LDAP(경량 디렉터리 액세스 프로토콜)를 사용합니다. IP(인터넷 프로토콜) 네트워크를 통해 분산 디렉터리 정보 서비스를 유지하는 데 사용됩니다. 그래서 기본적으로, 그것은 사용자를 추적 하는 방법으로 작동.

LDAP는 사용자가 다양한 작업을 수행할 수 있는 권한이 있는지, 특히 조직 내에서 정의된 역할과 관련된지 확인하기 위해 앱의 인증 원본으로 자주 사용됩니다. 예를 들어 회계에 있는 사람만 회사 회계 소프트웨어를 사용할 수 있습니다. 사용자가 설정된 권한 내에서 행동하도록 LDAP 테이블을 확인하도록 응용 프로그램이 프로그래밍되는 경우가 많습니다.

악의적인 사용자가 LDAP 쿼리를 조작할 수 있는 경우에 문제가 발생할 수 있습니다. 이렇게 하면 수신 서버가 일반적으로 허용되지 않는 잘못된 쿼리를 실행하거나 암호 없이 무효 또는 보안이 낮은 사용자에게 높은 수준 또는 관리자 액세스를 부여하도록 속일 수 있습니다.  

LDAP 주사는 까다로울 수 있지만,이 에피소드에서, 우리는 배울 것이다 :

  • 작동 방식
  • 왜 그렇게 위험합니까?
  • 방어를 막기 위해 어떻게 방어할 수 있을까요?

공격자는 LDAP 주입을 어떻게 사용합니까?

LDAP 기반 공격이 수년 동안 인기를 끌고 있는 이유 중 하나는 거의 모든 컴퓨터 시스템이 이를 사용하기 때문에 있습니다. LDAP는 오픈 소스이며 매우 잘 작동하므로 많은 대안이 만들어지지 않았습니다.

LDAP의 핵심은 IP 기반 컴퓨터 시스템 또는 네트워크 내에서 유효한 사용자를 추적하는 데이터베이스입니다. 사용자가 시스템, 네트워크, 서버, 응용 프로그램 및 동일한 네트워크의 다른 사용자에 대한 정보를 공유할 수 있습니다.

정보는 DN으로 축약되는 고유 이름이라고 하는 데이터베이스 라인 또는 레코드와 동등한 LDAP에 의해 저장됩니다. 각 DN은 고유합니다. 예를 들어, 이것은 대기업의 시카고 회계 사무소에서 일하는 사용자에게 DN이 어떻게 보일 수 있는지입니다.

cn=제임스 스미스, ou=기업 계정, dc=시카고, do=Parkview  

각 DN이 고유하도록 하려면 "+", "/", "=" 및 몇 가지 다른 코드와 같은 다양한 코드를 레코드에 추가할 수 있습니다. 시카고 파크뷰 오피스의 기업 계좌에서 일하는 제임스 스미스가 두 명 있더라도 레코드 이전이나 이후에 공백을 삽입하여 각각 개별 DN을 가질 수 있습니다.

응용 프로그램은 일반적으로 LDAP를 사용하여 사용자가 급여 부서에서 올바른 연락처를 찾아 검사에서 실수에 대해 이야기할 때와 같은 특정 DN에 대한 쿼리를 보낼 수 있도록 합니다. LDAP 주사는 검색 쿼리에서 사용자가 제공한 매개 변수에 대한 유효성 검사가 없을 때 발생할 수 있습니다. 이 경우 해커는 양성 검색을 조작하여 인증 메커니즘을 우회하거나 추가 임의 쿼리를 실행할 수 있습니다. 이렇게 하면 서버가 사용자 암호와 같이 허용되지 않아야 하는 결과를 표시하도록 속이거나 유효한 암호 가 있거나 없는 네트워크 내의 보안이 높은 영역에 대한 액세스 권한을 응용 프로그램을 부여할 수도 있습니다.

LDAP 주사가 왜 그렇게 위험한가요?

LDAP 주사의 가장 큰 위험은 전 세계 IP 컴퓨터 네트워크의 대부분에 걸쳐 프로토콜의 확산 가능성이 높습니다. 그것은 정보를 훔치려는 해커를위한 쉬운 디딤돌, 또는 네트워크에서 자신의 권한을 높이기 위해 합니다. LDAP 주사가 가능한지 확인하지 않으므로 보안 팀은 해당 구멍이 항상 닫혀 있는지 확인해야 합니다.

특히 유효한 사용자가 조직 내의 사용자 및 그룹 또는 DN에 포함된 기타 정보에 대한 제한된 정보를 찾을 수 있도록 많은 응용 프로그램이 프로그래밍됩니다. 예를 들어, 앱을 통해 누군가가 LDAP를 사용하여 시카고에서 일하는 기업 회계사의 연락처 정보를 검색할 수 있으며, 이는 위의 예에서 친구 제임스 스미스를 반환합니다. 사용 권한에 따라 LDAP 쿼리를 완벽하게 사용할 수 있습니다.

악의적인 사용자가 쿼리를 필터링하지 않은 매개 변수를 추가하여 검색의 특성을 변경하고 서버를 속여 일반적으로 제공해서는 안 되는 정보를 제공할 수 있습니다. 예를 들어 사용자=* 문자열을 추가하면 공격자는 전체 조직의 모든 단일 사용자에 대한 정보를 얻을 수 있으며, 이는 허용되지 않을 수 있습니다.

인증에 LDAP를 사용하는 응용 프로그램의 경우 문제가 더욱 악화될 수 있습니다. 예를 들어 공격자는 LDAP 쿼리 끝에 있는 (&) 문자열을 사용하여 서버를 속여 인수가 사실이라고 생각할 수 있습니다. 앱이 LDAP를 사용하여 암호의 유효성을 검사하는 경우 LDAP 주입을 통해 True 인수를 강제로 사용하면 권한이 없는 사용자가 암호 없이도 관리자로 네트워크에 로그인할 수 있습니다.

LDAP 주입을 네트워크에 L-DON't 만들기

LDAP 주사를 방지 하는 가장 좋은 방법 중 하나는 LINQtoAD 또는 그것을 저항 하기 위해 특별히 설계 된 다른 프레임 워크 같은 것을 구현 하는. 네트워크에 LDAP 쿼리를 활용하는 응용 프로그램이 이미 있는 경우 이 작업을 불가능할 수 있습니다. 그러나, 이 경우에도, 그것은 여전히 앞으로 주입 저항 하는 프레임 워크를 사용 하는 모든 새로운 응용 프로그램에 대 한 좋은 생각.

LDAP를 사용하는 기존 응용 프로그램은 화이트리스트 유효성 검사 및 입력 소독을 사용하여 주사에 대해 강화할 수도 있습니다. 가능한 경우 사용자 입력을 제한된 신뢰할 수 있는 값 집합으로 제한합니다. 그렇지 않으면 LDAP 쿼리의 일부인 사용자 입력은 먼저 소독되어야 하며 GET 및 POST 매개 변수, 쿠키 및 HTTP 헤더를 공격 벡터로 사용할 수 있으므로 포함시키는 것을 잊지 마세요. 입력 소독을 수행하기 위해 자신의 함수를 작성하지 마십시오. 신뢰할 수 있는 타사 보안 포커스 라이브러리 또는 기본 제공 프레임워크 API를 대신 사용합니다.

대상 수정 프로그램 외에도 LDAP 쿼리 응용 프로그램에 할당하는 것과 같은 좋은 컴퓨팅 관행도 네트워크에서 필요한 최소한의 권한을 도움이 될 수 있습니다. 그런 식으로, 최악의 일이 발생하고 LDAP 주입을 통해 얻을 경우, 피해는 완화 될 것이다.

LDAP 주사에 대한 자세한 정보

추가 읽기에 대 한, LDAP 주사에 OWASP 쓰기를 살펴 볼 수 있습니다., 또는 주사 방지 치트 시트. 또한 새로운 방어 지식을 테스트에 넣을 수 있습니다. Secure Code Warrior 사이버 보안 팀이 궁극적인 사이버 전사가 될 수 있도록 하는 플랫폼. 이 취약점을 물리치는 것에 대해 자세히 알아보려면 Secure Code Warrior 블로그.

리소스에 접근

아래 링크를 클릭하여 이 자료의 PDF를 다운로드하세요.

Secure Code Warrior 는 전체 소프트웨어 개발 수명 주기에서 코드를 보호하고 사이버 보안을 최우선으로 생각하는 문화를 조성할 수 있도록 도와드립니다. 앱 보안 관리자, 개발자, CISO 등 보안과 관련된 모든 사람이 안전하지 않은 코드와 관련된 위험을 줄일 수 있도록 도와드릴 수 있습니다.

보고서 보기데모 예약
PDF 다운로드
리소스 보기
공유하세요:
더 알고 싶으신가요?

공유하세요:
저자
야프 카란 싱
게시일: 2019년 1월 17일

야프 카란 싱은 보안 코딩 전도자, 수석 싱 및 공동 설립자입니다 Secure Code Warrior .

공유하세요:

대부분의 컴퓨터 시스템은 LDAP(경량 디렉터리 액세스 프로토콜)를 사용합니다. IP(인터넷 프로토콜) 네트워크를 통해 분산 디렉터리 정보 서비스를 유지하는 데 사용됩니다. 그래서 기본적으로, 그것은 사용자를 추적 하는 방법으로 작동.

LDAP는 사용자가 다양한 작업을 수행할 수 있는 권한이 있는지, 특히 조직 내에서 정의된 역할과 관련된지 확인하기 위해 앱의 인증 원본으로 자주 사용됩니다. 예를 들어 회계에 있는 사람만 회사 회계 소프트웨어를 사용할 수 있습니다. 사용자가 설정된 권한 내에서 행동하도록 LDAP 테이블을 확인하도록 응용 프로그램이 프로그래밍되는 경우가 많습니다.

악의적인 사용자가 LDAP 쿼리를 조작할 수 있는 경우에 문제가 발생할 수 있습니다. 이렇게 하면 수신 서버가 일반적으로 허용되지 않는 잘못된 쿼리를 실행하거나 암호 없이 무효 또는 보안이 낮은 사용자에게 높은 수준 또는 관리자 액세스를 부여하도록 속일 수 있습니다.  

LDAP 주사는 까다로울 수 있지만,이 에피소드에서, 우리는 배울 것이다 :

  • 작동 방식
  • 왜 그렇게 위험합니까?
  • 방어를 막기 위해 어떻게 방어할 수 있을까요?

공격자는 LDAP 주입을 어떻게 사용합니까?

LDAP 기반 공격이 수년 동안 인기를 끌고 있는 이유 중 하나는 거의 모든 컴퓨터 시스템이 이를 사용하기 때문에 있습니다. LDAP는 오픈 소스이며 매우 잘 작동하므로 많은 대안이 만들어지지 않았습니다.

LDAP의 핵심은 IP 기반 컴퓨터 시스템 또는 네트워크 내에서 유효한 사용자를 추적하는 데이터베이스입니다. 사용자가 시스템, 네트워크, 서버, 응용 프로그램 및 동일한 네트워크의 다른 사용자에 대한 정보를 공유할 수 있습니다.

정보는 DN으로 축약되는 고유 이름이라고 하는 데이터베이스 라인 또는 레코드와 동등한 LDAP에 의해 저장됩니다. 각 DN은 고유합니다. 예를 들어, 이것은 대기업의 시카고 회계 사무소에서 일하는 사용자에게 DN이 어떻게 보일 수 있는지입니다.

cn=제임스 스미스, ou=기업 계정, dc=시카고, do=Parkview  

각 DN이 고유하도록 하려면 "+", "/", "=" 및 몇 가지 다른 코드와 같은 다양한 코드를 레코드에 추가할 수 있습니다. 시카고 파크뷰 오피스의 기업 계좌에서 일하는 제임스 스미스가 두 명 있더라도 레코드 이전이나 이후에 공백을 삽입하여 각각 개별 DN을 가질 수 있습니다.

응용 프로그램은 일반적으로 LDAP를 사용하여 사용자가 급여 부서에서 올바른 연락처를 찾아 검사에서 실수에 대해 이야기할 때와 같은 특정 DN에 대한 쿼리를 보낼 수 있도록 합니다. LDAP 주사는 검색 쿼리에서 사용자가 제공한 매개 변수에 대한 유효성 검사가 없을 때 발생할 수 있습니다. 이 경우 해커는 양성 검색을 조작하여 인증 메커니즘을 우회하거나 추가 임의 쿼리를 실행할 수 있습니다. 이렇게 하면 서버가 사용자 암호와 같이 허용되지 않아야 하는 결과를 표시하도록 속이거나 유효한 암호 가 있거나 없는 네트워크 내의 보안이 높은 영역에 대한 액세스 권한을 응용 프로그램을 부여할 수도 있습니다.

LDAP 주사가 왜 그렇게 위험한가요?

LDAP 주사의 가장 큰 위험은 전 세계 IP 컴퓨터 네트워크의 대부분에 걸쳐 프로토콜의 확산 가능성이 높습니다. 그것은 정보를 훔치려는 해커를위한 쉬운 디딤돌, 또는 네트워크에서 자신의 권한을 높이기 위해 합니다. LDAP 주사가 가능한지 확인하지 않으므로 보안 팀은 해당 구멍이 항상 닫혀 있는지 확인해야 합니다.

특히 유효한 사용자가 조직 내의 사용자 및 그룹 또는 DN에 포함된 기타 정보에 대한 제한된 정보를 찾을 수 있도록 많은 응용 프로그램이 프로그래밍됩니다. 예를 들어, 앱을 통해 누군가가 LDAP를 사용하여 시카고에서 일하는 기업 회계사의 연락처 정보를 검색할 수 있으며, 이는 위의 예에서 친구 제임스 스미스를 반환합니다. 사용 권한에 따라 LDAP 쿼리를 완벽하게 사용할 수 있습니다.

악의적인 사용자가 쿼리를 필터링하지 않은 매개 변수를 추가하여 검색의 특성을 변경하고 서버를 속여 일반적으로 제공해서는 안 되는 정보를 제공할 수 있습니다. 예를 들어 사용자=* 문자열을 추가하면 공격자는 전체 조직의 모든 단일 사용자에 대한 정보를 얻을 수 있으며, 이는 허용되지 않을 수 있습니다.

인증에 LDAP를 사용하는 응용 프로그램의 경우 문제가 더욱 악화될 수 있습니다. 예를 들어 공격자는 LDAP 쿼리 끝에 있는 (&) 문자열을 사용하여 서버를 속여 인수가 사실이라고 생각할 수 있습니다. 앱이 LDAP를 사용하여 암호의 유효성을 검사하는 경우 LDAP 주입을 통해 True 인수를 강제로 사용하면 권한이 없는 사용자가 암호 없이도 관리자로 네트워크에 로그인할 수 있습니다.

LDAP 주입을 네트워크에 L-DON't 만들기

LDAP 주사를 방지 하는 가장 좋은 방법 중 하나는 LINQtoAD 또는 그것을 저항 하기 위해 특별히 설계 된 다른 프레임 워크 같은 것을 구현 하는. 네트워크에 LDAP 쿼리를 활용하는 응용 프로그램이 이미 있는 경우 이 작업을 불가능할 수 있습니다. 그러나, 이 경우에도, 그것은 여전히 앞으로 주입 저항 하는 프레임 워크를 사용 하는 모든 새로운 응용 프로그램에 대 한 좋은 생각.

LDAP를 사용하는 기존 응용 프로그램은 화이트리스트 유효성 검사 및 입력 소독을 사용하여 주사에 대해 강화할 수도 있습니다. 가능한 경우 사용자 입력을 제한된 신뢰할 수 있는 값 집합으로 제한합니다. 그렇지 않으면 LDAP 쿼리의 일부인 사용자 입력은 먼저 소독되어야 하며 GET 및 POST 매개 변수, 쿠키 및 HTTP 헤더를 공격 벡터로 사용할 수 있으므로 포함시키는 것을 잊지 마세요. 입력 소독을 수행하기 위해 자신의 함수를 작성하지 마십시오. 신뢰할 수 있는 타사 보안 포커스 라이브러리 또는 기본 제공 프레임워크 API를 대신 사용합니다.

대상 수정 프로그램 외에도 LDAP 쿼리 응용 프로그램에 할당하는 것과 같은 좋은 컴퓨팅 관행도 네트워크에서 필요한 최소한의 권한을 도움이 될 수 있습니다. 그런 식으로, 최악의 일이 발생하고 LDAP 주입을 통해 얻을 경우, 피해는 완화 될 것이다.

LDAP 주사에 대한 자세한 정보

추가 읽기에 대 한, LDAP 주사에 OWASP 쓰기를 살펴 볼 수 있습니다., 또는 주사 방지 치트 시트. 또한 새로운 방어 지식을 테스트에 넣을 수 있습니다. Secure Code Warrior 사이버 보안 팀이 궁극적인 사이버 전사가 될 수 있도록 하는 플랫폼. 이 취약점을 물리치는 것에 대해 자세히 알아보려면 Secure Code Warrior 블로그.

목차

PDF 다운로드
리소스 보기
더 알고 싶으신가요?

야프 카란 싱은 보안 코딩 전도자, 수석 싱 및 공동 설립자입니다 Secure Code Warrior .

Secure Code Warrior 는 전체 소프트웨어 개발 수명 주기에서 코드를 보호하고 사이버 보안을 최우선으로 생각하는 문화를 조성할 수 있도록 도와드립니다. 앱 보안 관리자, 개발자, CISO 등 보안과 관련된 모든 사람이 안전하지 않은 코드와 관련된 위험을 줄일 수 있도록 도와드릴 수 있습니다.

데모 예약다운로드
공유하세요:
리소스 허브

시작할 수 있는 리소스

더 많은 게시물
리소스 허브

시작할 수 있는 리소스

더 많은 게시물