디렉터리순회 (Directory Traversal)
쉽게 풀면
웹사이트가 파일 이름을 입력받아 그 파일을 보여주는 기능이 있다고 생각해보세요. 만약 입력값에 별다른 검증 없이 "상위 폴더로 이동"을 뜻하는 경로 표현을 넣을 수 있다면, 원래 보여주려던 폴더를 벗어나 서버 안의 다른 파일까지 열람할 수 있게 됩니다. 마치 아파트 관리실이 특정 층만 보여주는 엘리베이터를 운영해야 하는데, 버튼 조작으로 지하 서버실까지 들어갈 수 있게 되는 상황과 비슷합니다. 이런 방식으로 공격자는 비밀번호 파일이나 설정 파일처럼 민감한 정보를 열어볼 수 있습니다.
왜 중요한가
디렉터리순회는 오래된 취약점 유형이지만 여전히 실제 서비스에서 반복적으로 발견되는 문제입니다. 정보보안학 연구에서는 입력값 검증, 경로 정규화, 접근제어 설계의 실패 사례로 자주 다뤄지며, 자동화된 취약점 탐지 도구의 성능을 평가하는 대표적 시험 케이스로도 활용됩니다.
논문에서는 이렇게 쓰입니다
파일 경로를 입력받는 기능을 대상으로 취약점 탐지 도구들의 성능을 비교한 연구 사례입니다.
공격 우회 기법이 보안 솔루션에서 얼마나 잘 탐지되는지를 분석한 사례입니다.
조금 더 깊게 보면
디렉터리순회는 흔히 상위 디렉터리 이동 표현을 반복 사용하는 방식으로 이루어지며, URL 인코딩이나 이중 인코딩을 통해 필터를 우회하려는 시도가 함께 나타나기도 합니다. 방어 방법으로는 입력값을 화이트리스트 기반으로 검증하거나, 파일 경로를 절대경로로 정규화한 뒤 허용된 기본 디렉터리 안에 있는지 확인하는 방식이 일반적으로 권장됩니다.
주의할 점
단순히 특수 문자를 필터링하는 것만으로는 다양한 인코딩 우회 기법을 모두 막기 어렵기 때문에, 경로 정규화와 접근제어를 함께 적용하는 것이 중요합니다.