안전한 코딩 기술: XML 데이터 처리, 1부

2017년 12월 10일 게시
피터 드 크레머
사례 연구

안전한 코딩 기술: XML 데이터 처리, 1부

2017년 12월 10일 게시
피터 드 크레머
리소스 보기
리소스 보기

XML(확장 가능한 Markup 언어)은 기계와 사람이 읽을 수 있는 형식으로 문서를 인코딩하는 데 사용되는 태그 언어입니다. 그러나 일반적으로 사용되는 이 형식에는 여러 보안 결함이 포함됩니다. 이 첫 번째 XML 관련 블로그 게시물에서 스키마를 사용하여 XML 문서를 안전하게 처리하는 기본 사항에 대해 설명합니다.

OWASP는 XML 및 XML 스키마와 관련된 다양한 취약점을 두 범주로 나눕니다.

잘못된 XML 문서

잘못된 XML 문서는 W3C XML 사양을 따르지 않는 문서입니다. 잘못된 문서로 인해 다른 요소의 순서를 변경하거나 금지된 문자의 사용이 끝나는 태그를 제거하는 몇 가지 예가 있습니다. 이러한 모든 오류는 치명적인 오류가 발생해야 하며 문서는 추가 처리를 거치지 않아야 합니다.

잘못된 문서로 인한 취약점을 방지하기 위해 W3C 사양을 따르고 잘못된 문서를 처리하는 데 훨씬 더 오래 걸리지 않는 잘 테스트된 XML 파서를 사용해야 합니다.

잘못된 XML 문서

잘못된 XML 문서는 잘 형성되지만 예기치 않은 값이 포함되어 있습니다. 여기서 공격자는 XML 스키마를 제대로 정의하지 않는 응용 프로그램을 활용하여 문서가 유효한지 여부를 식별할 수 있습니다. 아래에서 올바르게 유효성을 검사하지 않으면 의도하지 않은 결과가 발생할 수 있는 문서의 간단한 예제를 찾을 수 있습니다.

XML 데이터에 트랜잭션을 저장하는 웹 스토어:

   <purchase></purchase>
     <id>123</id>
     <price>200</price>
   

And the user only has control over the <id> value. It is then possible, without the right counter measures, for an attacker to input something like this:</id>

   <purchase></purchase>
     <id>123</id>
     <price>0</price>
     <id></id>
     <price>200</price>
   

If the parser that processes this document only reads the first instance of the <id> and <price> tags this will lead to unwanted results. </price></id>

스키마가 충분히 제한적이지 않거나 다른 입력 유효성 검사가 충분하지 않으므로 음수, 특수 소수점(예: NaN 또는 Infinity) 또는 예상되지 않은 곳에 매우 큰 값을 입력하여 유사한 의도하지 않은 동작으로 이어질 수 있습니다.

잘못된 XML 문서와 관련된 취약점을 방지하려면 부적절한 데이터 유효성 검사 문제를 방지하기 위해 정확하고 제한적인 XML 스키마를 정의하여 수행해야 합니다.

다음 블로그 게시물 우리는 점보 페이로드와 두려워 OWASP 상위 10 번호 4, XXE와 같은 XML 문서에 대한 몇 가지 고급 공격에 갈 것입니다.

그 동안 포털에서 XML 입력 유효성 검사에 대한 기술을 연마하거나 이의를 제기할 수 있습니다.

XML 및 XML 스키마에 대한 사양에는 여러 보안 결함이 포함됩니다. 동시에 이러한 사양은 XML 응용 프로그램을 보호하는 데 필요한 도구를 제공합니다. XML 스키마를 사용하여 XML 문서의 보안을 정의하더라도 파일 검색, 서버 측 요청 위조, 포트 스캐닝 또는 무차별 강제 등 다양한 공격을 수행하는 데 사용할 수 있습니다.

https://www.owasp.org/index.php/XML_Security_Cheat_Sheet

리소스 보기
리소스 보기

저자

피터 드 크레머

더 알고 싶으신가요?

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

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

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

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

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

리소스 허브

안전한 코딩 기술: XML 데이터 처리, 1부

2017년 12월 10일 게시
By 피터 드 크레머

XML(확장 가능한 Markup 언어)은 기계와 사람이 읽을 수 있는 형식으로 문서를 인코딩하는 데 사용되는 태그 언어입니다. 그러나 일반적으로 사용되는 이 형식에는 여러 보안 결함이 포함됩니다. 이 첫 번째 XML 관련 블로그 게시물에서 스키마를 사용하여 XML 문서를 안전하게 처리하는 기본 사항에 대해 설명합니다.

OWASP는 XML 및 XML 스키마와 관련된 다양한 취약점을 두 범주로 나눕니다.

잘못된 XML 문서

잘못된 XML 문서는 W3C XML 사양을 따르지 않는 문서입니다. 잘못된 문서로 인해 다른 요소의 순서를 변경하거나 금지된 문자의 사용이 끝나는 태그를 제거하는 몇 가지 예가 있습니다. 이러한 모든 오류는 치명적인 오류가 발생해야 하며 문서는 추가 처리를 거치지 않아야 합니다.

잘못된 문서로 인한 취약점을 방지하기 위해 W3C 사양을 따르고 잘못된 문서를 처리하는 데 훨씬 더 오래 걸리지 않는 잘 테스트된 XML 파서를 사용해야 합니다.

잘못된 XML 문서

잘못된 XML 문서는 잘 형성되지만 예기치 않은 값이 포함되어 있습니다. 여기서 공격자는 XML 스키마를 제대로 정의하지 않는 응용 프로그램을 활용하여 문서가 유효한지 여부를 식별할 수 있습니다. 아래에서 올바르게 유효성을 검사하지 않으면 의도하지 않은 결과가 발생할 수 있는 문서의 간단한 예제를 찾을 수 있습니다.

XML 데이터에 트랜잭션을 저장하는 웹 스토어:

   <purchase></purchase>
     <id>123</id>
     <price>200</price>
   

And the user only has control over the <id> value. It is then possible, without the right counter measures, for an attacker to input something like this:</id>

   <purchase></purchase>
     <id>123</id>
     <price>0</price>
     <id></id>
     <price>200</price>
   

If the parser that processes this document only reads the first instance of the <id> and <price> tags this will lead to unwanted results. </price></id>

스키마가 충분히 제한적이지 않거나 다른 입력 유효성 검사가 충분하지 않으므로 음수, 특수 소수점(예: NaN 또는 Infinity) 또는 예상되지 않은 곳에 매우 큰 값을 입력하여 유사한 의도하지 않은 동작으로 이어질 수 있습니다.

잘못된 XML 문서와 관련된 취약점을 방지하려면 부적절한 데이터 유효성 검사 문제를 방지하기 위해 정확하고 제한적인 XML 스키마를 정의하여 수행해야 합니다.

다음 블로그 게시물 우리는 점보 페이로드와 두려워 OWASP 상위 10 번호 4, XXE와 같은 XML 문서에 대한 몇 가지 고급 공격에 갈 것입니다.

그 동안 포털에서 XML 입력 유효성 검사에 대한 기술을 연마하거나 이의를 제기할 수 있습니다.

XML 및 XML 스키마에 대한 사양에는 여러 보안 결함이 포함됩니다. 동시에 이러한 사양은 XML 응용 프로그램을 보호하는 데 필요한 도구를 제공합니다. XML 스키마를 사용하여 XML 문서의 보안을 정의하더라도 파일 검색, 서버 측 요청 위조, 포트 스캐닝 또는 무차별 강제 등 다양한 공격을 수행하는 데 사용할 수 있습니다.

https://www.owasp.org/index.php/XML_Security_Cheat_Sheet

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

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