5일 전

디렉터리 탐색 공격이란 무엇인가, 그 예제와 방어 방법

Maria Korolov | CSO
지라(Jira)는 경로 탐색 취약점을 통해 자체 고객을 노출시킨 최근의 업체다. 이런 종류의 위험은 쉽게 피할 수 있지만 개발자는 계속 같은 실수를 한다. 

 

ⓒ Getty Images Bank 


디렉터리 탐색 예제 

지난 9월, 연구원들은 아틀라시안(Atlassian)의 지라 서비스 데스크 서버 및 지라 서비스 데스크 데이터센터에서 보호하고 있는 회사 고객 정보를 공격자에게 노출할 수 있는 디렉터리 탐색 취약점을 발견했다. 테너블 네트워크 시큐리티(Tenable Network Security) 수석 리서치 엔지니어 사트남 나랑은 "이 디렉터리 탐색 취약점은 '매우 심각'한 수준"이라고 말했다.   

나랑은 “그들은 새로운 기능 요청과 같이 버그 보고서와 추적되고 있는 다른 것들을 볼 수 있다”면서, “액세스해서는 안되는 민감한 정보, 잠재적인 영업 비밀 등 조직이 내부적으로 처리하는 모든 문제들이 여기에 포함되어 있었다”고 말했다. 

테너블 연구원들은 간단한 검색만으로도 공개적으로 액세스가 가능한 지라 서비스 테스크 포털을 찾을 수 있었다. 토론토 기반의 사이버보안 소프트웨어업체인 시큐리티 컴패스(Security Compass) 솔루션 엔지니어링 책임자 케빈 델레이니는 공격자들이 소셜 엔지니어링을 통해 얻은 정보를 이용할 수 있다고 말했다. 누군가가 전화를 걸어 피해자의 티켓 번호와 이메일 주소를 갖고 있다면 티켓을 믿기 위해 필요한 모든 것을 보유한 셈이다. 그들은 공격자에게 피해자의 비밀번호를 주거나 돈을 줄 수 있다.  

이런 취약점을 가진 업체는 아틀라시안 이외에도 더 있다. 9월 말, 어도비는 콜드퓨전(ColdFusion) 웹 개발 플랫폼에서 공격자에게 침입을 허용할 수 있는 3개의 핵심 경로 탐색 취약점(path traversal vulnerabilities)에 대한 픽스를 발표했다. 

최근 또 다른 디렉터리 탐색 공격은 6월에 있었는데, 이는 쿠버네티스 클러스터를 제어하기 위한 명령어 인터페이스인 Kubecti와 관련이 있었다. 디지털 섀도우(Digital Shadows)의 포톤 리서치팀 보안 엔지니어 찰스 래그랜드에 따르면, 이 버그는 cp 명령에 있으며 사용자는 쿠버네티스 포드에서 로컬 컴퓨터로 파일을 복사할 수 있다. 쿠버네티스가 파일 전송을 수행한 방식으로 인해 악의적인 사용자가 상대 파일 경로를 복사하고 이를 사용해 코드를 실행하거나 권한을 상승시킬 수 있다. 

디렉터리 탐색 공격에 취약한 것은 웹 애플리케이션만이 아니다. 9월 ISE(Independent Security Evaluators)의 연구원들은 13개의 공유기 및 NAS 가운데 12개가 보안 결함이 있어 원격 루트 수준의 액세스 권한을 얻을 수 있다는 사실을 발견했다. 이 가운데 7개가 경로 탐색 취약점이었다. 


디렉터리 탐색이란 

경로 탐색이라고도 하는 디렉터리 탐색 공격에서 공격자는 웹 양식, URL 주소줄, 액세스할 수 없는 파일이나 디렉터리에 액세스할 수 있도록 다른 입력 방법으로 정보를 입력한다. 예를 들어, 시큐리티 컴패스의 델레이니는 공격자가 마침표, 마침표, 백 슬러시를 입력해 상위 디렉터리로 이동할 수 있다고 말했다. 공격자는 이 취약점을 사용해 웹 서버 또는 다른 장치의 파일에 액세스하거나 악의적인 파일을 업로드할 수 있다. 

콘트라스트 시큐리티(Contrast Security)가 9월에 발표한 연구보고서에 따르면, 경로 탐색 공격은 SQL 인잭션(SQL injection) 및 XSS(cross-site scripting)과 함께 8월 3대 공격 가운데 하나였다. 경로 탐색 공격은 전체 공격의 17%를 차지했으며, 웹 애플리케이션의 69%를 표적으로 했다. 지난 9월 MITRE가 발표한 보고서에 따르면, 지난 2년동안 약 2만 5,000개의 CVE를 기준으로 경로 탐색은 가장 위험한 10가지 소프트웨어 오류 가운데 하나였다.  


디렉터리 탐색 공격을 방지하는 방법

우선 입력을 확인해야 한다. 델레이니는 “입력은 모든 종류의 웹 양식을 작성하기 위한 첫번째 단계다. 가장 일반적인 취약점인 SQL 인잭션 등 이런 유형의 공격을 포함한다. 

보안의 기본처럼 들리지만, 이 범주에 속하는 보고된 취약점의 수가 많기 때문에 개발자는 계속해서 같은 실수를 반복한다. 델레이니는 “개발자들은 사용자 시나리오(user story)를 갖고 있으며, 보안 팀이 보안 문제를 해결하기를 기대한다”고 말했다. 하지만 보안 팀은 기본적인 실수를 해결하기 위해 안전하지 않은 코드를 검사하는데 필요한 전문 지식이나 시간이 없을 수도 있다.  

두 번째 단계는 서버의 모든 파일과 폴더에 적절한 액세스 제어가 있는지 확인하는 것이다. 또한 개발자는 애플리케이션의 웹 루트에 민감한 데이터를 저장해서는 안된다. 


디렉터리 탐색 취약점을 찾는 방법 

디렉터리 탐색 취약점을 찾는 가장 좋은 시점은 코드가 작성되는 동안 소프트웨어 개발 프로세스가 바로 시작한 때다. 그 다음 좋은 시점은 소프트웨어를 배포하기 전에 코드 분석 도구를 사용하는 것이다.  

델레이니는 “그러나 이런 도구들은 일반적으로 모든 취약점의 약 절반을 놓치고 있다”고 말했다. 또한 일반적으로 오탐율도 높기 때문에 취약점 치료 프로세스가 길고 비용이 많이 든다. 
 
마지막으로 소프트웨어가 테스트 환경에서 또는 최악의 경우, 프로덕션에서 실행되면 침투 테스트를 사용해 문제를 찾을 수 있다. 델레이니는 문제를 찾는 또 하나의 방법은 퍼지를 사용해 다른 입력을 시도해 입력 중 하나가 문제를 일으키는 지 확인하는 것이다. 최신 안드로이드 VoIP 취약점을 발견한 연구원들이 이 방법을 사용했다고 말했다.

 
경로 탐색 취약점을 신속하게 패치하라 

어도비 콜드퓨전, 지라 서비스 데스크 및 안드로이드와 같이 널리 사용되는 소프트웨어의 경우, 신속한 패치가 필수적이다. 패치 및 업데이트 프로세스가 번거로운 일부 회사에서는 패치 작업이 어려울 수 있다. 델레이니는 “예를 들어, 일부 회사는 미션 크리티컬 시스템의 패치를 토요일 아침으로 제한할 수 있다. 이 경우, 순간순간이 중요하다고 말했다.  

예를 들어, 공격자는 웹에서 지라 서비스 데스크 포털을 검색해 쉽게 공격을 시도할 수 있다. 버그 바운티 프로그램에 의해 권장되는 경로 탐색 결함을 찾는 연구원이 많을수록 공격자는 점점 더 많은 취약점을 선택할 수 있다. 테너블의 나랑은 쉽게 무언가를 건네 준 것과 같다. 이런 세부 정보를 발표한 연구원들이 있었다. 

경우에 따라, 연구원은 PoC(Proof-of-Concept) 코드를 게시하거나 공격자가 취약점 악용 방법을 알아낼 수 있는 충분한 세부 정보를 제공할 수 있다. 나랑은 “분명 패치가 중요하다. 모든 사람이 죽어라고 패치의 중요성에 대해 설파한다"고 말했다.

패치를 즉시 배포할 수 없는 경우, 회사가 취할 수 있는 다른 완화 조치가 있을 수 있다. 예를 들어, 최신 지라 서비스 데스크 취약점의 경우 회사는 먼저 승인을 받지 않고도 누구나 지원 요청을 제출할 수 있는 설정을 해제할 수 있다.  

나랑은 많은 조직이 사람들이 요청을 쉽게 제출할 수 있기를 원하지만 소프트웨어 업데이트를 즉시 배포할 수 있다면 패치할 때까지 이 설정을 해제해야 한다고 말했다. editor@itworld.co.kr 


5일 전

디렉터리 탐색 공격이란 무엇인가, 그 예제와 방어 방법

Maria Korolov | CSO
지라(Jira)는 경로 탐색 취약점을 통해 자체 고객을 노출시킨 최근의 업체다. 이런 종류의 위험은 쉽게 피할 수 있지만 개발자는 계속 같은 실수를 한다. 

 

ⓒ Getty Images Bank 


디렉터리 탐색 예제 

지난 9월, 연구원들은 아틀라시안(Atlassian)의 지라 서비스 데스크 서버 및 지라 서비스 데스크 데이터센터에서 보호하고 있는 회사 고객 정보를 공격자에게 노출할 수 있는 디렉터리 탐색 취약점을 발견했다. 테너블 네트워크 시큐리티(Tenable Network Security) 수석 리서치 엔지니어 사트남 나랑은 "이 디렉터리 탐색 취약점은 '매우 심각'한 수준"이라고 말했다.   

나랑은 “그들은 새로운 기능 요청과 같이 버그 보고서와 추적되고 있는 다른 것들을 볼 수 있다”면서, “액세스해서는 안되는 민감한 정보, 잠재적인 영업 비밀 등 조직이 내부적으로 처리하는 모든 문제들이 여기에 포함되어 있었다”고 말했다. 

테너블 연구원들은 간단한 검색만으로도 공개적으로 액세스가 가능한 지라 서비스 테스크 포털을 찾을 수 있었다. 토론토 기반의 사이버보안 소프트웨어업체인 시큐리티 컴패스(Security Compass) 솔루션 엔지니어링 책임자 케빈 델레이니는 공격자들이 소셜 엔지니어링을 통해 얻은 정보를 이용할 수 있다고 말했다. 누군가가 전화를 걸어 피해자의 티켓 번호와 이메일 주소를 갖고 있다면 티켓을 믿기 위해 필요한 모든 것을 보유한 셈이다. 그들은 공격자에게 피해자의 비밀번호를 주거나 돈을 줄 수 있다.  

이런 취약점을 가진 업체는 아틀라시안 이외에도 더 있다. 9월 말, 어도비는 콜드퓨전(ColdFusion) 웹 개발 플랫폼에서 공격자에게 침입을 허용할 수 있는 3개의 핵심 경로 탐색 취약점(path traversal vulnerabilities)에 대한 픽스를 발표했다. 

최근 또 다른 디렉터리 탐색 공격은 6월에 있었는데, 이는 쿠버네티스 클러스터를 제어하기 위한 명령어 인터페이스인 Kubecti와 관련이 있었다. 디지털 섀도우(Digital Shadows)의 포톤 리서치팀 보안 엔지니어 찰스 래그랜드에 따르면, 이 버그는 cp 명령에 있으며 사용자는 쿠버네티스 포드에서 로컬 컴퓨터로 파일을 복사할 수 있다. 쿠버네티스가 파일 전송을 수행한 방식으로 인해 악의적인 사용자가 상대 파일 경로를 복사하고 이를 사용해 코드를 실행하거나 권한을 상승시킬 수 있다. 

디렉터리 탐색 공격에 취약한 것은 웹 애플리케이션만이 아니다. 9월 ISE(Independent Security Evaluators)의 연구원들은 13개의 공유기 및 NAS 가운데 12개가 보안 결함이 있어 원격 루트 수준의 액세스 권한을 얻을 수 있다는 사실을 발견했다. 이 가운데 7개가 경로 탐색 취약점이었다. 


디렉터리 탐색이란 

경로 탐색이라고도 하는 디렉터리 탐색 공격에서 공격자는 웹 양식, URL 주소줄, 액세스할 수 없는 파일이나 디렉터리에 액세스할 수 있도록 다른 입력 방법으로 정보를 입력한다. 예를 들어, 시큐리티 컴패스의 델레이니는 공격자가 마침표, 마침표, 백 슬러시를 입력해 상위 디렉터리로 이동할 수 있다고 말했다. 공격자는 이 취약점을 사용해 웹 서버 또는 다른 장치의 파일에 액세스하거나 악의적인 파일을 업로드할 수 있다. 

콘트라스트 시큐리티(Contrast Security)가 9월에 발표한 연구보고서에 따르면, 경로 탐색 공격은 SQL 인잭션(SQL injection) 및 XSS(cross-site scripting)과 함께 8월 3대 공격 가운데 하나였다. 경로 탐색 공격은 전체 공격의 17%를 차지했으며, 웹 애플리케이션의 69%를 표적으로 했다. 지난 9월 MITRE가 발표한 보고서에 따르면, 지난 2년동안 약 2만 5,000개의 CVE를 기준으로 경로 탐색은 가장 위험한 10가지 소프트웨어 오류 가운데 하나였다.  


디렉터리 탐색 공격을 방지하는 방법

우선 입력을 확인해야 한다. 델레이니는 “입력은 모든 종류의 웹 양식을 작성하기 위한 첫번째 단계다. 가장 일반적인 취약점인 SQL 인잭션 등 이런 유형의 공격을 포함한다. 

보안의 기본처럼 들리지만, 이 범주에 속하는 보고된 취약점의 수가 많기 때문에 개발자는 계속해서 같은 실수를 반복한다. 델레이니는 “개발자들은 사용자 시나리오(user story)를 갖고 있으며, 보안 팀이 보안 문제를 해결하기를 기대한다”고 말했다. 하지만 보안 팀은 기본적인 실수를 해결하기 위해 안전하지 않은 코드를 검사하는데 필요한 전문 지식이나 시간이 없을 수도 있다.  

두 번째 단계는 서버의 모든 파일과 폴더에 적절한 액세스 제어가 있는지 확인하는 것이다. 또한 개발자는 애플리케이션의 웹 루트에 민감한 데이터를 저장해서는 안된다. 


디렉터리 탐색 취약점을 찾는 방법 

디렉터리 탐색 취약점을 찾는 가장 좋은 시점은 코드가 작성되는 동안 소프트웨어 개발 프로세스가 바로 시작한 때다. 그 다음 좋은 시점은 소프트웨어를 배포하기 전에 코드 분석 도구를 사용하는 것이다.  

델레이니는 “그러나 이런 도구들은 일반적으로 모든 취약점의 약 절반을 놓치고 있다”고 말했다. 또한 일반적으로 오탐율도 높기 때문에 취약점 치료 프로세스가 길고 비용이 많이 든다. 
 
마지막으로 소프트웨어가 테스트 환경에서 또는 최악의 경우, 프로덕션에서 실행되면 침투 테스트를 사용해 문제를 찾을 수 있다. 델레이니는 문제를 찾는 또 하나의 방법은 퍼지를 사용해 다른 입력을 시도해 입력 중 하나가 문제를 일으키는 지 확인하는 것이다. 최신 안드로이드 VoIP 취약점을 발견한 연구원들이 이 방법을 사용했다고 말했다.

 
경로 탐색 취약점을 신속하게 패치하라 

어도비 콜드퓨전, 지라 서비스 데스크 및 안드로이드와 같이 널리 사용되는 소프트웨어의 경우, 신속한 패치가 필수적이다. 패치 및 업데이트 프로세스가 번거로운 일부 회사에서는 패치 작업이 어려울 수 있다. 델레이니는 “예를 들어, 일부 회사는 미션 크리티컬 시스템의 패치를 토요일 아침으로 제한할 수 있다. 이 경우, 순간순간이 중요하다고 말했다.  

예를 들어, 공격자는 웹에서 지라 서비스 데스크 포털을 검색해 쉽게 공격을 시도할 수 있다. 버그 바운티 프로그램에 의해 권장되는 경로 탐색 결함을 찾는 연구원이 많을수록 공격자는 점점 더 많은 취약점을 선택할 수 있다. 테너블의 나랑은 쉽게 무언가를 건네 준 것과 같다. 이런 세부 정보를 발표한 연구원들이 있었다. 

경우에 따라, 연구원은 PoC(Proof-of-Concept) 코드를 게시하거나 공격자가 취약점 악용 방법을 알아낼 수 있는 충분한 세부 정보를 제공할 수 있다. 나랑은 “분명 패치가 중요하다. 모든 사람이 죽어라고 패치의 중요성에 대해 설파한다"고 말했다.

패치를 즉시 배포할 수 없는 경우, 회사가 취할 수 있는 다른 완화 조치가 있을 수 있다. 예를 들어, 최신 지라 서비스 데스크 취약점의 경우 회사는 먼저 승인을 받지 않고도 누구나 지원 요청을 제출할 수 있는 설정을 해제할 수 있다.  

나랑은 많은 조직이 사람들이 요청을 쉽게 제출할 수 있기를 원하지만 소프트웨어 업데이트를 즉시 배포할 수 있다면 패치할 때까지 이 설정을 해제해야 한다고 말했다. editor@itworld.co.kr 


X