robots.txt란?
robots.txt는 로봇 배제 표준(robots exclusion protocol)으로 알려진 규약으로서 해당 웹사이트에 대한 크롤링 지침을 전달하기 위한 용도로 사용된다. 쉽게 말해 접근 가능/불가능한 페이지, 디렉토리, 크롤러를 명시함으로서 크롤러를 제어 할 수있는 파일이다. 하지만 robots.txt 파일에 페이지, 디렉토리, 크롤러를 명시한다고 해도 접근이 불가능한 것은 아니다. 파일에 명시한 내용은 단순 '규약' 일뿐, 이를 어긴다고 문제가 될 건 없기 때문이다. 또한, 일반적인 웹 브라우저를 통해서 접근하는 클라이언트는 제어 할 수 없다.
해커관점의 robots.txt
민감한 정보를 포함하고 있는 '/wp-admin'라는 페이지가 존재하고, 이 페이지의 경로는 관리자만 알고 있다고 가정해보자. 그럼 무차별 대입(Brute force)과 추측(Guessing) 방법 이외에는 이 페이지의 존재여부를 알 수 없을 것이다. 하지만 악의적 목적을 가진 해커가 robots.txt 파일에 접근하여 '/wp-admin'페이지가 Disallow로 설정 된 것을 확인한다면, '/wp-admin' 페이지에 흥미로운 정보가 있다고 추측 할 것이고, 해당 페이지에 접근하여 민감한 정보를 획득하려고 할 것이다. 하지만 접근제어 설정이 적용되어 있어서 '/wp-admin' 페이지에 접근하지 못해도, 해커가 정보를 취할 수 있는 여지는 남아있다. 서버 운영자의 접근제어 설정 실수를 노리고 해당 페이지에 매일 접근 시도를 할 수도 있고, Disallow 설정이 되 있지만, 접근 제어 설정은 되 있지 않은 다른 페이지에 접근해서 주석처리 된 id/password를 운 좋게 획득할 수도 있다. 또한 robots.txt 파일의 내용을 통해 해당 서버의 디렉토리 구조도 어느 정도 파악하는 등 해커에게 정보를 제공할 수 있다. 이러한 이유 때문에 일부 취약점 스캐너들은 robots.txt 파일을 점검 항목에 포함한다.
보안관점에서의 robots.txt
침해사고를 예방하기 위해 취약점 점검을 받으면 robots.txt 파일이 없기 때문에, 대형검색엔진의 크롤러 봇들에 의해 개인정보가 노출될 가능성이 있다는 진단 결과를 받을 수도 있다. 하지만 앞서 살펴 봤듯이 robots.txt는 누구나 접근가능하고, 해커에게 정보를 제공할 수도 있는 파일이므로 접근제어 설정과의 적절한 조화가 필요하다. 먼저 로봇 배제 표준보다 접근제어 설정이 우선시 되어야하며, 클라이언트에게 [403]Forbidden 페이지보다는 [404]Not Found 페이지를 보여주도록 함으로써, 해커에게 정보를 주지 않도록 한다. 또한, 로봇 배제 표준은 크롤러의 접근을 제어하는 것이 목적이므로, Disallow 설정보다 User-agent 설정을 우선시하여, Disallow 설정으로 보여지는 디렉토리와 페이지 정보를 최소화 해야한다.
'잡다한 IT관련 지식' 카테고리의 다른 글
DLL(Dynamic Link Library) (0) | 2020.03.27 |
---|---|
크리덴셜 스터핑(credential stuffing) (0) | 2019.12.14 |
Statement와 PreparedStatement의 차이점 (2) | 2019.10.27 |
캐시(cache) (0) | 2019.10.27 |
메모리 계층 구조 (0) | 2019.10.27 |
댓글