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

게시일: 2019년 2월 28일
by Jaap Karan Singh
사례 연구

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

게시일: 2019년 2월 28일
by Jaap Karan Singh
리소스 보기
리소스 보기

XQuery 주입 공격은 때때로 더 널리 퍼진 SQL 주입 공격에동생처럼 생각된다. 비슷한 근본 원인을 가지고 있으며 공격자가 이 두 가지 를 트리거하기 위해 악용하는 명령도 매우 가깝습니다. XQuery 주입 공격은 XML 데이터에 대한 XPath 쿼리 중에만 발생할 수 있습니다. 이 때문에 XPath 주입 또는 XPath 공격이라고도 합니다.

대부분의 웹 사이트는 XML 데이터베이스를 사용하여 사용자 로그인 자격 증명, 고객 정보, 개인 ID 정보 및 기밀 또는 민감한 데이터를 보유하는 것과 같은 중요한 기능을 수행하므로 XQuery 공격은 다소 큰 공격 공간을 제공합니다.

이 에피소드에서는 다음을 배우게 됩니다.

  • 공격자가 XQuery 주사를 사용하는 방법
  • XQuery 주사가 위험한 이유
  • 이 취약점을 해결할 수 있는 기술입니다.

공격자는 XQuery 주입을 트리거하는 방법은 무엇입니까?

대부분의 컴퓨터 언어와 마찬가지로 XPath용 코드는 단순하게 설계되었습니다. 실제로 XPath는 표준 언어이며 모든 표기법 및 구문 문은 응용 프로그램을 사용하는 응용 프로그램에 관계없이 변경되지 않습니다. 즉, XPath 쿼리를 조작하는 데 사용되는 명령은 잘 알려져 있으며 자동화될 수도 있습니다.

핵심XPath 쿼리는 XML 데이터베이스에 조회할 정보를 알려주는 간단한 문입니다. 가장 간단한 예제 중 하나에서 사용자 레코드가 있는지 확인한 다음 로그인 자격 증명을 검색하는 데 사용됩니다. 문제는 XPath 쿼리에 사용자 입력이 포함되어 있으므로 해커가 쿼리를 조작하여 보호해야 하는 정보를 반환할 수 있다는 것입니다.

예를 들어 로그인 보안을 우회하려고 할 때 공격자는 전체 프로세스를 우회하는 XPath 쿼리 끝에 변수를 추가할 수 있습니다. 예제는 다음과 같이 보일 수 있습니다.

//Employee[UserName/text()=anyone or 1=1 or a=a And Password/text()=doesnotmatter]

여기서 사용자 이름 필드는 1=1 또는 a=문 으로 인해 모든 사용자와 일치하도록 합니다. 쿼리의 첫 번째 부분만 사실이어야 하기 때문에 암호 필드는 중요하지 않습니다.

XQuery 주입이 위험한 이유는 무엇입니까?

XQuery 주입 공격이 매우 위험한 주된 이유는 공격자가 로그인 및 계정 보안을 우회할 수 있기 때문입니다. 또한 응용 프로그램에 따라 달라지지 않는 표준 언어를 사용하여 자동화된 방식으로 수행할 수 있습니다. 공격자는 이 취약점에 대해 웹 사이트 및 응용 프로그램을 자동으로 스캔하고 발견되는 즉시 조치를 할 수 있습니다. 앱이 취약한 경우 공격자가 앱이 손상됩니다. 계정 보안을 손상시키는 것 외에도 XQuery 공격을 데이터 유출에 사용할 수도 있습니다. 예를 들어 공격자는 XML 데이터베이스에서 모든 레코드를 전송할 수 있습니다.

XQuery 주입 공격 제거

유사한 취약점과 마찬가지로 한 가지 핵심 방어는 단순히 사용자 입력을 신뢰하지 않는 것입니다. 사용자가 데이터베이스 쿼리를 만들든 그렇지 않든 정보를 입력할 수 있는 경우 프로세스를 면밀히 조사해야 합니다. 그것은 물리적 건물의 창문과 문을 확보하는 것과 다르지 않다, 그 사람들이 액세스 할 수있는 주요 방법이기 때문에.

XQuery 사출 보호의 경우 필터링을 통해 사용자 입력을 소독하거나 사용자 입력의 화이트리스트 입력 유효성 검사를 사용하여 수행됩니다. SQL 쿼리에 대해 준비된 문과 유사한 매개 변수XPath 인터페이스를 사용할 수도 있습니다.

마지막으로 모든 응용 프로그램에 최소 권한을 적용해야 합니다. 즉, 모든 응용 프로그램 쿼리를 수행할 수 있는 읽기 전용 권한이 있는 사용자를 만드는 것을 의미할 수 있습니다.

이러한 기술을 사용하면 웹 사이트 또는 응용 프로그램에 대해 모든 XQuery 주입 시도를 중지할 수 있습니다.

XQuery 주사에 대한 자세한 정보

추가 읽기에 대 한, OWASP XQuery 주입에 대 한 무슨 말을 봐 수 있습니다. 또한 새로운 방어 지식을 테스트에 넣을 수 있습니다. Secure Code Warrior 사이버 보안 팀이 궁극적인 사이버 전사가 될 수 있도록 하는 플랫폼. 이 취약점을 물리 치고 다른 위협의 도적 갤러리에 대해 자세히 알아보려면 보안 코드 전사 블로그를 방문하십시오.

리소스 보기
리소스 보기

저자

야프 카란 싱

더 알고 싶으신가요?

블로그에서 최신 보안 코딩 인사이트에 대해 자세히 알아보세요.

Atlassian의 광범위한 리소스 라이브러리는 안전한 코딩 숙련도를 확보하기 위한 인적 접근 방식을 강화하는 것을 목표로 합니다.

블로그 보기
더 알고 싶으신가요?

개발자 중심 보안에 대한 최신 연구 보기

광범위한 리소스 라이브러리에는 개발자 중심의 보안 코딩을 시작하는 데 도움이 되는 백서부터 웨비나까지 유용한 리소스가 가득합니다. 지금 살펴보세요.

리소스 허브

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

게시일: 2019년 2월 28일
Jaap Karan Singh

XQuery 주입 공격은 때때로 더 널리 퍼진 SQL 주입 공격에동생처럼 생각된다. 비슷한 근본 원인을 가지고 있으며 공격자가 이 두 가지 를 트리거하기 위해 악용하는 명령도 매우 가깝습니다. XQuery 주입 공격은 XML 데이터에 대한 XPath 쿼리 중에만 발생할 수 있습니다. 이 때문에 XPath 주입 또는 XPath 공격이라고도 합니다.

대부분의 웹 사이트는 XML 데이터베이스를 사용하여 사용자 로그인 자격 증명, 고객 정보, 개인 ID 정보 및 기밀 또는 민감한 데이터를 보유하는 것과 같은 중요한 기능을 수행하므로 XQuery 공격은 다소 큰 공격 공간을 제공합니다.

이 에피소드에서는 다음을 배우게 됩니다.

  • 공격자가 XQuery 주사를 사용하는 방법
  • XQuery 주사가 위험한 이유
  • 이 취약점을 해결할 수 있는 기술입니다.

공격자는 XQuery 주입을 트리거하는 방법은 무엇입니까?

대부분의 컴퓨터 언어와 마찬가지로 XPath용 코드는 단순하게 설계되었습니다. 실제로 XPath는 표준 언어이며 모든 표기법 및 구문 문은 응용 프로그램을 사용하는 응용 프로그램에 관계없이 변경되지 않습니다. 즉, XPath 쿼리를 조작하는 데 사용되는 명령은 잘 알려져 있으며 자동화될 수도 있습니다.

핵심XPath 쿼리는 XML 데이터베이스에 조회할 정보를 알려주는 간단한 문입니다. 가장 간단한 예제 중 하나에서 사용자 레코드가 있는지 확인한 다음 로그인 자격 증명을 검색하는 데 사용됩니다. 문제는 XPath 쿼리에 사용자 입력이 포함되어 있으므로 해커가 쿼리를 조작하여 보호해야 하는 정보를 반환할 수 있다는 것입니다.

예를 들어 로그인 보안을 우회하려고 할 때 공격자는 전체 프로세스를 우회하는 XPath 쿼리 끝에 변수를 추가할 수 있습니다. 예제는 다음과 같이 보일 수 있습니다.

//Employee[UserName/text()=anyone or 1=1 or a=a And Password/text()=doesnotmatter]

여기서 사용자 이름 필드는 1=1 또는 a=문 으로 인해 모든 사용자와 일치하도록 합니다. 쿼리의 첫 번째 부분만 사실이어야 하기 때문에 암호 필드는 중요하지 않습니다.

XQuery 주입이 위험한 이유는 무엇입니까?

XQuery 주입 공격이 매우 위험한 주된 이유는 공격자가 로그인 및 계정 보안을 우회할 수 있기 때문입니다. 또한 응용 프로그램에 따라 달라지지 않는 표준 언어를 사용하여 자동화된 방식으로 수행할 수 있습니다. 공격자는 이 취약점에 대해 웹 사이트 및 응용 프로그램을 자동으로 스캔하고 발견되는 즉시 조치를 할 수 있습니다. 앱이 취약한 경우 공격자가 앱이 손상됩니다. 계정 보안을 손상시키는 것 외에도 XQuery 공격을 데이터 유출에 사용할 수도 있습니다. 예를 들어 공격자는 XML 데이터베이스에서 모든 레코드를 전송할 수 있습니다.

XQuery 주입 공격 제거

유사한 취약점과 마찬가지로 한 가지 핵심 방어는 단순히 사용자 입력을 신뢰하지 않는 것입니다. 사용자가 데이터베이스 쿼리를 만들든 그렇지 않든 정보를 입력할 수 있는 경우 프로세스를 면밀히 조사해야 합니다. 그것은 물리적 건물의 창문과 문을 확보하는 것과 다르지 않다, 그 사람들이 액세스 할 수있는 주요 방법이기 때문에.

XQuery 사출 보호의 경우 필터링을 통해 사용자 입력을 소독하거나 사용자 입력의 화이트리스트 입력 유효성 검사를 사용하여 수행됩니다. SQL 쿼리에 대해 준비된 문과 유사한 매개 변수XPath 인터페이스를 사용할 수도 있습니다.

마지막으로 모든 응용 프로그램에 최소 권한을 적용해야 합니다. 즉, 모든 응용 프로그램 쿼리를 수행할 수 있는 읽기 전용 권한이 있는 사용자를 만드는 것을 의미할 수 있습니다.

이러한 기술을 사용하면 웹 사이트 또는 응용 프로그램에 대해 모든 XQuery 주입 시도를 중지할 수 있습니다.

XQuery 주사에 대한 자세한 정보

추가 읽기에 대 한, OWASP XQuery 주입에 대 한 무슨 말을 봐 수 있습니다. 또한 새로운 방어 지식을 테스트에 넣을 수 있습니다. Secure Code Warrior 사이버 보안 팀이 궁극적인 사이버 전사가 될 수 있도록 하는 플랫폼. 이 취약점을 물리 치고 다른 위협의 도적 갤러리에 대해 자세히 알아보려면 보안 코드 전사 블로그를 방문하십시오.

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

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