Coders Conquer Security: Share & Learn 시리즈 - 로컬 파일 포함 및 경로 탐색

많은 취약점과 달리, 로컬 파일 포함 및 경로 탐색 프로세스를 악용하여 악의적인 목적을 달성하려면 상당한 기술을 갖춘 공격자와 충분한 시간, 그리고 약간의 운이 필요합니다. 그렇다고 해서 이 취약점을 무시해도 된다는 뜻은 아닙니다. 숙련된 공격자는 이를 이용해 내부 파일을 조직에 불리하게 활용하거나, 디렉터리 구조를 파악하거나, 심지어 위험한 2차 공격에 사용할 수 있는 비밀번호 및 사용자 정보를 탈취할 수도 있습니다.
이번 에피소드에서는 다음 내용을 배웁니다.
- 해커가 로컬 파일 포함 및 경로 탐색 취약점을 악용하는 방법
- 제한 없는 로컬 파일 포함 및 경로 탐색 허용이 위험한 이유
- 이 문제를 발견하고 해결하기 위해 적용할 수 있는 정책 및 기술.
공격자는 어떻게 로컬 파일 포함 및 경로 탐색을 악용하는가?
고전 TV 드라마의 형사 콜롬보는 사건을 해결할 결정적인 정보를 말하기 직전에 항상 "아, 한 가지 더"라고 말하곤 했습니다. 당시에는 사소해 보였고 용의자들도 거의 무시했지만, 결국 그 한마디가 그들의 몰락을 가져왔죠. 로컬 파일 포함 및 경로 탐색 취약점도 이와 매우 비슷합니다.
로컬 파일 포함 및 경로 탐색 취약점은 ASP, JSP, PHP 스크립트와 같은 대부분의 프로그래밍 프레임워크에 존재하는 동적 파일 포함 메커니즘을 사용합니다. 로컬 파일 포함의 경우, 공격자는 웹 애플리케이션의 헤더나 폼 입력 영역 등에 로컬 서버에 존재하는 파일 이름을 삽입합니다. 애플리케이션은 일반적인 입력값을 처리하면서 동시에 include(page)와 같은 명령어도 함께 처리하게 됩니다. 경로 탐색의 경우, 공격자는 일반적으로 점, 점, 슬래시(../) 문자를 변수로 사용하여 의심되는 파일의 경로를 정의합니다. 해커는 앞부분의 인수에는 관심이 없으며, 단지 마지막에 "한 가지 더"를 추가하기 위한 수단으로 활용한다는 점에서 콜롬보의 방식과 매우 흡사합니다.
어떤 경우든 공격자는 일반적으로 상당한 시행착오를 거쳐야 합니다. 사이트 구조를 잘 알지 못한다면 경로 구성과 파일 이름을 추측하는 데 오랜 시간이 걸릴 수 있습니다. 하지만 대부분의 사이트는 특정 패턴을 따르며 디렉터리와 파일 이름이 어느 정도 비슷하기 때문에 생각보다 오래 걸리지 않을 수도 있습니다. 게다가 그 대가가 매우 클 수 있기 때문에, 일단 취약점이 발견되면 해커들이 이를 악용하려는 유혹은 매우 큽니다.
로컬 파일 포함 및 경로 탐색 취약점이 위험한 이유는 무엇인가?
로컬 파일 포함 및 경로 탐색 취약점은 공격자가 민감하거나 중요한 파일에 접근할 수 있게 하므로 위험합니다. 데이터 파일의 경우, 해커가 사용자 비밀번호나 기타 개인정보와 같은 가치 있는 정보를 탈취할 수 있다는 것이 위험 요소입니다. 주요 타깃은 종종 비밀번호나 사용자 구성 파일인데, 이를 통해 사이트 전체에 대한 접근 권한을 얻을 수 있기 때문입니다. 데이터베이스 또한 주요 타깃입니다. 최악의 경우, 로컬 파일 포함 및 경로 탐색 취약점을 통해 공격자가 데이터베이스의 전체 내용을 탈취할 수도 있습니다.
실행 파일의 경우, 이에 접근하면 공격자가 사이트 일부를 파괴하거나 시스템 자원을 낭비하게 하여 내부 서비스 거부 공격을 수행하는 등 악의적인 활동을 할 수 있다는 점이 위험합니다. 하지만 이러한 위험의 범위는 공격자의 독창성과 기술, 그리고 타깃 서버에 이미 존재하는 접근 가능한 파일에 따라 달라집니다.
로컬 파일 포함 및 경로 탐색으로 인한 위협 제거
로컬 파일 포함 및 경로 탐색 취약점으로 인한 위험은 올바른 사이버 보안 관행을 통해 제거할 수 있습니다. 가장 중요한 점은 "파일 포함"이나 유사한 기능을 수행하는 명령어에 사용자 입력을 절대 허용하지 않는 것입니다. 애플리케이션에서 반드시 허용해야 한다면, 입력값을 직접 전달하지 마십시오. 대신 간접 참조 맵을 사용하십시오. 간접 참조 맵은 사용자 입력을 받아 하드코딩된 신뢰할 수 있는 값 세트로 매핑하므로 안전하게 사용할 수 있습니다.
다른 많은 취약점과 마찬가지로 쿠키, 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)