
Configuración de seguridad incorrecta
보안 구성 오류는 잘못된 코드가 아니라 애플리케이션의 구성 설정으로 인해 발생하는 일반적인 취약점을 포괄하는 포괄적인 용어입니다.이는 광범위한 주제이며 기술 스택과 같은 요소에 크게 좌우됩니다.
이러한 문제를 해결하는 것은 구성 파일이나 코드 한 줄을 변경하는 것과 같이 간단해 보이지만 이러한 취약점의 영향과 결과는 심각할 수 있습니다.
아래에서 몇 가지 범주를 살펴보겠습니다.
카테고리
웹서버
웹 서버의 전형적인 잘못된 구성 중 하나는 디렉터리 목록을 활성화하는 것입니다.
디렉터리 리스팅을 활성화해도 직접적인 영향은 거의 또는 전혀 없는 경우가 많지만 공격자는 존재할 수 있는 다른 실수를 쉽게 발견할 수 있습니다.의도적으로 숨긴 페이지, 백업 파일, 기타 유사한 항목 등이 이러한 것일 수 있습니다.
이 모든 것 자체도 본질적으로 잘못된 관행이며 모호함으로 인해 보안으로 간주된다는 점은 주목할 가치가 있습니다.
디렉터리 리스팅은 쉽게 비활성화할 수 있으며 공격자가 호스트에 대한 잠재적 공격 벡터를 찾기 위해 호스트를 열거하는 데 더 많은 비용이 들기 때문에 심층적인 방어 기능을 제공합니다.
프레임워크
디버그 모드
대부분의 프레임워크는 개발자를 위한 “디버그” 모드를 제공합니다.무엇보다도 이 모드에서는 처리되지 않은 예외가 발생할 경우 일반적으로 스택트레이스 세부 정보를 표시합니다.일부 프레임워크는 스택 트레이스와 함께 코드 스니펫을 표시하기도 합니다.이는 개발 과정에서 매우 유용할 수 있지만 공격자에게 실제로 액세스해서는 안 되는 많은 정보를 제공할 수도 있습니다.
모니터링 엔드포인트
또한 많은 프레임워크에는 프로덕션 환경이든 테스트/개발 환경이든 관계없이 애플리케이션을 모니터링할 수 있는 엔드포인트 세트가 있습니다.
여기에는 다음이 포함될 수 있습니다.
- 메트릭스 (프로메테우스)
- 로그
- 환경 정보
- 경로/URL 매핑
이 정보는 아니지만 보통 민감하지만 잠재적 공격자가 애플리케이션을 더 잘 이해하는 데 도움이 되는 세부 정보를 계속 제공할 수 있습니다.물론 사용자 환경이나 로그가 있을 수 있습니다. 실제로 민감한 정보가 포함되어 있으므로 감시 대상이 될 경우 어떤 정보를 볼 수 있고 활용할 수 있는지 염두에 두는 것이 중요합니다.
프로덕션 환경과 비프로덕션 환경 간의 차이점
개발/테스트 환경에서 디렉터리 목록, 디버그 모드, 디버그 엔드포인트 비활성화와 같은 가이드라인을 따르지 않는 실수를 저지르는 경우가 많으며, 프로덕션 환경에서만 그렇게 합니다.이유는 이러한 비프로덕션 시스템은 테스트용이므로 이러한 기능에서 제공하는 정보를 얻는 것이 중요하기 때문입니다.
그러나 이러한 사고방식은 잘못된 것입니다.공격자는 여전히 제품이 아닌 시스템에서 정보를 조사하고 공개한 다음 테스트 시스템에서 수집한 정보를 활용하여 프로덕션 시스템을 공격할 수 있습니다.또한 테스트 시스템에서 운영 데이터베이스의 복제본을 사용하는 기업도 드물지 않으며, 이로 인해 위험이 더욱 커집니다.
XXE
매우 심각한 보안 구성 오류 유형 중 하나는 XML 외부 엔티티 (XXE) 입니다.
이는 이전에도 그랬듯이 엔티티 확인이 활성화된 상태에서 신뢰할 수 없는 출처에서 파싱할 때 발생합니다.XXE는 무엇보다도 임의 파일 읽기, 서버 측 요청 위조 등으로 이어질 수 있습니다.
자세한 내용과 특히 이에 대한 간단한 예를 보려면 아래 예제를 확인하세요.