Coders Conquer Security: Share & Learn 시리즈 - 원격 파일 포함

이 블로그 시리즈를 읽다 보면 원격 파일 포함 취약점과 앞서 다룬 로컬 파일 포함 및 경로 탐색 취약점 사이에 많은 유사점이 있다는 것을 알 수 있습니다. 근본 원인과 권장 해결 방법 모두 비슷합니다.
원격 파일 포함 취약점은 여러 면에서 로컬 파일 포함 취약점보다 훨씬 위험하며 악용하기도 쉽습니다. 따라서 가능한 한 빨리 발견하여 해결해야 합니다. 더 좋은 방법은 애초에 이러한 취약점이 발생하지 않도록 웹 애플리케이션을 설계하는 것입니다.
이번 에피소드에서는 다음 내용을 배웁니다.
- 해커가 원격 파일 포함 취약점을 악용하는 방법
- 원격 파일 포함을 허용하는 것이 위험한 이유
- 이 문제를 해결할 수 있는 기술.
공격자는 어떻게 원격 파일 포함을 악용하는가?
원격 파일 포함 취약점은 대부분의 프로그래밍 프레임워크에 존재하는 "동적 파일 포함(dynamic file include)" 명령이나 메커니즘을 악용합니다. 이 기능은 원래 개발자가 보조 서버에 있는 파일을 사용하여 애플리케이션 서버에서 작업을 실행 할 수 있도록 의도된 것입니다. 당연히 악의적인 의도로 사용될 경우 매우 위험할 수 있습니다.
공격자는 HTTP 헤더나 대화형 양식의 입력 영역 등 제어되지 않는 사용자 입력을 허용하는 웹사이트나 애플리케이션을 찾아 이 기능을 악용합니다. 그들은 이를 발판 삼아 파일 포함 명령을 생성합니다.
예를 들어, 사이트가 page = request.getParameter("page'); include page;와 같이 GET 함수를 사용하여 페이지를 로드하는 경우, 공격자는 page 명령을 사용하되 자신이 제어하는 사이트의 URL과 실행하려는 파일 경로를 포함한 쿼리를 보낼 수 있습니다. 그러면 쿼리가 서버로 전달되고 원격 파일이 호스트에서 실행됩니다. 이 작업은 신뢰할 수 있는 앱의 일부로 간주되어 허용됩니다.
원격 파일 포함 취약점이 위험한 이유는 무엇인가?
원격 파일 포함으로 인한 위험 수준은 매우 높습니다. 공격자가 실행하려는 파일이 호스트에 존재해야 하고 시행착오를 거쳐 찾아야 하는 로컬 파일 포함 취약점과 달리, 원격 파일 포함에는 그러한 제한이 없습니다. 공격자는 자신이 악용하려는 파일이 자신의 컴퓨터나 제어하는 사이트에 있을 가능성이 높으므로 해당 파일의 위치를 이미 알고 있습니다. 또한 파일을 직접 선택할 수 있으며, 공격 전에 대상 시스템에 파일이 존재할 필요도 없습니다. 심지어 원격 호스트를 공격하기 위해 특별히 작성된 스크립트로 파일을 구성할 수도 있습니다.
요컨대, 공격자가 원격 파일 포함 취약점을 찾아 악용하는 데 성공하면 애플리케이션이나 전체 사이트에 대한 완전한 제어권을 얻는 것을 막을 방법이 없습니다. 그곳에 저장된 어떤 데이터도 침입으로부터 안전할 수 없습니다.
원격 파일 포함 취약점 제거하기
사용자 입력이 파일 포함 명령으로 직접 전달되어 실행되지 않도록 하십시오. 대신 명령의 간접 참조 맵을 사용하고 해당 맵에 있는 명령만 실행하십시오. 간접 참조 맵은 신뢰할 수 없는 사용자 입력을 서버의 하드코딩된 신뢰할 수 있는 값 세트에 매핑합니다. 사용자가 데이터를 입력할 수 있는 모든 영역을 화이트리스트로 관리하고, HTTP 헤더, 양식 매개변수, 쿠키도 목록에 포함하는 것을 잊지 마십시오. 그렇게 하면 공격자가 파일 포함 명령을 생성하기 위해 사용할 수 있는 모든 경로를 차단할 수 있습니다.
추가로, 사용자 생성 콘텐츠를 적절히 살균 및 검증하고 명령 실행을 위해 참조 맵을 사용하면 원격 파일 포함 취약점뿐만 아니라 이 버그의 위험한 사촌 격인 로컬 파일 포함 및 경로 탐색 공격을 포함한 여러 다른 취약점까지 함께 해결할 수 있습니다.
원격 파일 포함에 대한 추가 정보
더 자세한 내용은 원격 파일 포함 공격에 대한 OWASP 참조 가이드를 확인해 보십시오. 또한 사이버 보안 팀을 최고의 사이버 전사로 훈련시키는 Secure Code Warrior 플랫폼의 무료 데모를 통해 새로 습득한 방어 지식을 테스트해 볼 수 있습니다. 이 취약점과 수많은 다른 위협을 물리치는 방법에 대해 자세히 알아보려면 Secure Code Warrior 블로그를 방문하십시오.
배포 전 AI 기반 개발 거버넌스 확보
AI 기반 위험을 측정하고, 커밋 시점에 보안 코딩 정책을 적용하며, SDLC 전반에 걸쳐 안전한 소프트웨어 제공 속도를 높이세요.
더 많은 블로그 살펴보기
보안 코딩, AI 거버넌스, 소프트웨어 리스크 관리에 관한 전문가 콘텐츠를 확인해 보세요.
%252520%252520(3).avif)
Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Security as culture: How Blue Prism cultivates world-class secure developers
Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed
배포 전 AI 기반 개발 보안 확보
소프트웨어 개발 수명 주기 전반에서 개발자 리스크를 파악하고, 정책을 시행하며, 취약점을 예방하세요.



.avif)