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

게시일: 2019년 8월 1일
으로
사례 연구

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

게시일: 2019년 8월 1일
으로
리소스 보기
리소스 보기

XML 외부 엔터티 주입 공격, 때로는 단순히 단순히 XXE 주입으로 축약, 여전히 그들의 시작 후 라운드를 만드는 고전적인 취약점의 일부에 비해 상대적으로 새로운. 하지만 지금은 해킹 커뮤니티에서 매우 인기가 있으며 성공을 거두면서 더욱 성장하고 있습니다.

사실, OWASP는 이제 사이트가 조심하고 적극적으로 방어해야 하는 상위 10가지 취약점 중 하나로 XXE 주입을 나열합니다. 그러나 걱정하지 마세요, XXE 주입사이버 공격에 배포되는 다른 악용보다 더 강력하지 않습니다. 그것은 단지 조금 새롭고 조금 덜 이해. 그것은 방지 할 수 있습니다, 그리고 사실, 완전히 중단.

이 에피소드에서 우리는 배울 것입니다 :

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

공격자는 어떻게 XXE 주입을 트리거합니까?

XXE 사출 취약점은 악의적인 사용자가 XML 코드를 제출할 수 있는 기능을 부여받을 때 발생할 수 있습니다. 이 기능을 사용하여 외부 엔터티에 대한 참조를 만듭니다. 외부 참조 및 코드는 기본 설정이 있는 XML 파서 또는 약하게 구성된 설정이 있는 XML 파서를 지나도록 설계되었습니다.

공격자는 XML 표준이 엔터티의 개념을 일부 유형의 저장소 단위로 정의하지만 해당 저장소가 외부 또는 내부일 수 있다는 사실을 악용합니다. 제대로 사용하면 XML 프로세서가 원격 리소스에 액세스할 수 있습니다. 공격자는 이 기능을 사용하여 웹 사이트의 내부 구조를 검색하거나, 원격 리소스에 액세스하려는 대규모 시스템 프로세스를 트리거하여 서비스 거부 공격을 시작하거나, 로컬 호스트에서 원격 호스트로 데이터를 덤프하는 등의 작업을 수행하는 데 이 기능을 사용하여 XML 데이터베이스에 포함된 암호 나 개인 정보와 같은 중요한 데이터를 유출하는 좋은 기술입니다.

공격에 관련된 실제 코드는 엔터티 기능을 악용하기만 하면 상당히 단순합니다. 예를 들어 해커가 마스터 암호 파일에 액세스할 수 있습니다.

<!ENTITY hackwithxxe SYSTEM file:///etc/password>

왜 XXE 주입 위험?

XXE 주입 공격이 너무 위험하고 널리 퍼진 몇 가지 이유가 있습니다. 하나에 대 한, 그것은 지금 덜 이해 취약점. 그리고 공격자가 악용하여 얻을 수있는 이익은 상당합니다. 하나는 영구 공격자가 내부 네트워크의 모든 경로를 천천히 매핑하거나 포트를 스캔할 수 있도록 허용할 수 있습니다. 이 작업은 상당한 시간이 걸릴 수 있지만 신뢰할 수 있는 XML 파서에 의해 지워지는 서버로 XML 코드를 보내는 것만으로는 대상 네트워크의 활성 방어에 의해 해커의 활동이 발견될 가능성은 거의 없습니다.

매핑되면 공격자는 동일한 XXE 주입 기술을 사용하여 정보를 직접 도용하거나 유효한 사용자 자격 증명을 손상시키고 보조 공격에 사용하여 필요한 파일을 캡처할 수 있습니다. 마지막으로, 소음을 만들고 악의적으로 행동하려는 공격자는 서비스 거부 공격을 트리거하고, 응용 프로그램을 시도하고 시스템을 수렁에 이게 하도록 설계된 먼 리소스에 액세스하도록 명령하는 등의 작업을 수행할 수 있습니다.  

XXE 주입 취약점 제거

XXE 사출 공격이 급격히 증가하기 때문에 많은 XML 파스터는 기본적으로 완전히 DTD라고도 하는 외부 엔터티를 비활성화하기 시작했습니다. 그 에 대 한, 키는 단순히 해당 기능을 사용 하지 않습니다.

그러나 DTD를 허용하는 파수기조차도 해당 기능을 비활성화할 수 있습니다. 일반적으로 다음과 같은 문은 완전히 차단해야 하지만 로컬 프레임워크 설명서를 확인하여 필요한 정확한 코드를 확인합니다.

factory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", 사실);

보안 원칙에 따라 모든 사용자 입력은 응용 프로그램 전체 필터를 사용하여 소독하고 유효성을 검사해야 합니다. GET 및 POST 매개 변수, HTTP 헤더 및 쿠키를 포함하는 것을 잊지 마십시오. 파서가 처리하려는 특정 DD 및 명령의 화이트리스트를 만들고 다른 모든 것을 허용하지 않을 수도 있습니다.

화이트리스팅 및 필터링은 XXE 주입 공격의 수가 증가하기 때문에 작동하지만 기능이 필요하지 않은 경우에도 DTD 지원을 완전히 사용하지 않도록 하는 것이 좋습니다.

XXE 주사에 대한 자세한 정보

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

리소스 보기
리소스 보기

저자

더 알고 싶으신가요?

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

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

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

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

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

리소스 허브

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

게시일: 2019년 8월 1일
으로

XML 외부 엔터티 주입 공격, 때로는 단순히 단순히 XXE 주입으로 축약, 여전히 그들의 시작 후 라운드를 만드는 고전적인 취약점의 일부에 비해 상대적으로 새로운. 하지만 지금은 해킹 커뮤니티에서 매우 인기가 있으며 성공을 거두면서 더욱 성장하고 있습니다.

사실, OWASP는 이제 사이트가 조심하고 적극적으로 방어해야 하는 상위 10가지 취약점 중 하나로 XXE 주입을 나열합니다. 그러나 걱정하지 마세요, XXE 주입사이버 공격에 배포되는 다른 악용보다 더 강력하지 않습니다. 그것은 단지 조금 새롭고 조금 덜 이해. 그것은 방지 할 수 있습니다, 그리고 사실, 완전히 중단.

이 에피소드에서 우리는 배울 것입니다 :

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

공격자는 어떻게 XXE 주입을 트리거합니까?

XXE 사출 취약점은 악의적인 사용자가 XML 코드를 제출할 수 있는 기능을 부여받을 때 발생할 수 있습니다. 이 기능을 사용하여 외부 엔터티에 대한 참조를 만듭니다. 외부 참조 및 코드는 기본 설정이 있는 XML 파서 또는 약하게 구성된 설정이 있는 XML 파서를 지나도록 설계되었습니다.

공격자는 XML 표준이 엔터티의 개념을 일부 유형의 저장소 단위로 정의하지만 해당 저장소가 외부 또는 내부일 수 있다는 사실을 악용합니다. 제대로 사용하면 XML 프로세서가 원격 리소스에 액세스할 수 있습니다. 공격자는 이 기능을 사용하여 웹 사이트의 내부 구조를 검색하거나, 원격 리소스에 액세스하려는 대규모 시스템 프로세스를 트리거하여 서비스 거부 공격을 시작하거나, 로컬 호스트에서 원격 호스트로 데이터를 덤프하는 등의 작업을 수행하는 데 이 기능을 사용하여 XML 데이터베이스에 포함된 암호 나 개인 정보와 같은 중요한 데이터를 유출하는 좋은 기술입니다.

공격에 관련된 실제 코드는 엔터티 기능을 악용하기만 하면 상당히 단순합니다. 예를 들어 해커가 마스터 암호 파일에 액세스할 수 있습니다.

<!ENTITY hackwithxxe SYSTEM file:///etc/password>

왜 XXE 주입 위험?

XXE 주입 공격이 너무 위험하고 널리 퍼진 몇 가지 이유가 있습니다. 하나에 대 한, 그것은 지금 덜 이해 취약점. 그리고 공격자가 악용하여 얻을 수있는 이익은 상당합니다. 하나는 영구 공격자가 내부 네트워크의 모든 경로를 천천히 매핑하거나 포트를 스캔할 수 있도록 허용할 수 있습니다. 이 작업은 상당한 시간이 걸릴 수 있지만 신뢰할 수 있는 XML 파서에 의해 지워지는 서버로 XML 코드를 보내는 것만으로는 대상 네트워크의 활성 방어에 의해 해커의 활동이 발견될 가능성은 거의 없습니다.

매핑되면 공격자는 동일한 XXE 주입 기술을 사용하여 정보를 직접 도용하거나 유효한 사용자 자격 증명을 손상시키고 보조 공격에 사용하여 필요한 파일을 캡처할 수 있습니다. 마지막으로, 소음을 만들고 악의적으로 행동하려는 공격자는 서비스 거부 공격을 트리거하고, 응용 프로그램을 시도하고 시스템을 수렁에 이게 하도록 설계된 먼 리소스에 액세스하도록 명령하는 등의 작업을 수행할 수 있습니다.  

XXE 주입 취약점 제거

XXE 사출 공격이 급격히 증가하기 때문에 많은 XML 파스터는 기본적으로 완전히 DTD라고도 하는 외부 엔터티를 비활성화하기 시작했습니다. 그 에 대 한, 키는 단순히 해당 기능을 사용 하지 않습니다.

그러나 DTD를 허용하는 파수기조차도 해당 기능을 비활성화할 수 있습니다. 일반적으로 다음과 같은 문은 완전히 차단해야 하지만 로컬 프레임워크 설명서를 확인하여 필요한 정확한 코드를 확인합니다.

factory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", 사실);

보안 원칙에 따라 모든 사용자 입력은 응용 프로그램 전체 필터를 사용하여 소독하고 유효성을 검사해야 합니다. GET 및 POST 매개 변수, HTTP 헤더 및 쿠키를 포함하는 것을 잊지 마십시오. 파서가 처리하려는 특정 DD 및 명령의 화이트리스트를 만들고 다른 모든 것을 허용하지 않을 수도 있습니다.

화이트리스팅 및 필터링은 XXE 주입 공격의 수가 증가하기 때문에 작동하지만 기능이 필요하지 않은 경우에도 DTD 지원을 완전히 사용하지 않도록 하는 것이 좋습니다.

XXE 주사에 대한 자세한 정보

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

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

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