본문 바로가기

보안기사/보안동향

아파치 톰캣 취약점 발견(고스트 캣)

오프소스 웹 서버인 아파치 톰캣(Apache Tomcat)에서 취약점이 발견, 이를 통해  원격 코드 실행 등 공격도 발생할 수 있다고 한다. 

취약한 톰캣 버전은 7.0, 8,5, 9.0 버전이라고 한다.

문제의 취약점은 CVE-2020-1938로 2월 20일에 이미 공개된 바 있는 취약점이다.

※ CVE-2020-1938 :  Apache Tomcat 서버에 존재하는 파일에 취약점이 포함되어 있어 공격자가 해당 취약점을 악용하여 Tomcat webapp 목록 하위의 있는 모든 임의의 파일 업로드 허용하는 경우, 공격자는 이를 악용하여 jsp 파일 업로드 후 원격코드 실행이 가능하다

깃허브에 공개된 익스플로잇의 이름은 고스트 캣(Ghostcat)이며 서버로부터 정보를 추출할 수 있게 해 주며 성공률 또한 꽤 높다고 한다.

아파치 톰캣은 오픈소스 웹 서버로 여러가지 자바스크립트 기반 기술들을 지원하는데 그중 자바스크립트 기술 중 하나인 AJP(아파치 제이서브 프로토콜)에서 CVE-2020-1938이 발견되었다고 한다.

※ AJP : 바이너리 형태의 데이터를 네트워크로 전송하도록 개발된 프로토콜로 웹 서버의 성능을 증가시켜줌

하지만 AJP는 현재 높은 신뢰를 받고 있기 때문에 만약 AJP가 그대로 노출되는 경우 서버로 가는 길을 열어주는 것이나 다름없다.

AJP 같은 경우에는 인터넷에 연결되지 않은 채, 내부적으로만 활용되도록 만든 프로토콜이지만 WINDOWS 10의 경우 디폴트로 나둘경우 AJP의 포트 8009번이 인터넷에 노출되게 된다.

이를 통해 개념 증명 코드 적용 시 IP주소로 AJP 요청을 만들어 전송할 수 있게 해 주며, 취약한 서버 경우 민감 정보를 공격자에게 return 해줄 수 있다.

만약 이 상황에서 파일 업로드도 허용해 놓으면 공격자는 파일 업로드를 통해 원격 코드 실행 공격도 가능하다.

현재 이 취약점은 패치가 된 상황이어서 8.5.51 버전으로 업그레이드할 경우 취약점을 방지할 수 있다.

또한 AJP를 사용하지 않는 것이 좋지만 만약 사용해야 한다면 신뢰할 수 있는 네트워크에만 연결을 시켜야 한다.

 

3줄 요약

1. 아파치 톰캣에 특정 상황에 한해 원격 코드 실행이 가능한 공격이 등장함

2. 이 공격은 7.0, 8.5, 9.0 버전에 취약하지만 8.5.51 버전 이상에서는 패치가 되었음

3. AJP를 사용하지 않거나 AJP를 잘 관리만 해주면 취약점으로부터 방어 가능