| [카드뉴스] 인증 우회 취약점 악용한 공격 과정 분석해보니 | 2024.08.14 |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ‘인증 우회 취약점’이란 무엇일까? 이는 악의적인 공격자가 보안 메커니즘을 우회하고 시스템의 인증 절차를 회피해 권한을 획득할 수 있는 경로를 제공하는 취약점을 말한다. 이러한 취약점은 API 오용, 인증 및 접근 제어 결함, 보안 설정 미흡 등의 결함으로 인해 발생한다. 공격자는 이를 악용해 초기 액세스 권한을 얻거나 민감 정보 탈취 등의 공격을 수행할 수 있다. 제트브레인이 개발한 CI/CD 서버 솔루션 팀시티(TeamCity)에서 2023년에 취약점(CVE-2023-42793)이 발견됐다. ‘CVE-2023-42793’ 공격 사례를 살펴보면 라자루스(Lazarus) 계열 APT 그룹인 히든 코브라(Hidden Cobra)가 있다. 북한발 APT 공격그룹 히든 코브라는 지난해 10월에 CVE-2023-42793 취약점으로 서버에 접근한 후 파워셸(Powershell)을 통해 Forest64.exe와 4800-84DC-063A6A41C5C 페이로드를 다운로드하고, 라자루스에서 수행하는 DeathNote 캠페인의 포레스트타이거(ForestTiger) 백도어를 사용해 LSASS 프로세스에 대한 메모리 자격 증명을 덤프해 데이터를 유출한다. CVE-2023-42793 이후 올해 발견된 CVE-2024-27198의 취약점을 분석해봤다. CVE-2024-27198은 시스템 리소스에 제한 없이 접근이 가능한 RCE(원격코드 실행) 공격이 가능하기 때문에 고위험 취약점에 속한다. 1차 공격의 PoC 코드를 확인해 보면 GetTeamCityVersion() 함수에서 요청 URL에 존재하지 않는 임의의 경로(/hax)를 사용해 /app/rest/server로 접근을 시도하고 있다. 요청 라인의 URL을 PoC 코드와 같이 존재하지 않는 경로(/hax)로 변경하게 되면 /app/rest/server 페이지에 접근이 가능해 서버의 버전 정보가 노출된다. PoC 코드를 통한 2차 공격을 단계별로 살펴봤다. 첫 번째 단계는 ‘관리자 계정 생성’이다. 이 취약점은 존재하지 않는 경로로 접근했을 때 인증이 우회된다는 점을 악용해 REST API 엔드포인트를 대상으로 공격자의 제어가 가능한 관리자 계정을 생성한다. 이는 GetToken() 함수로 사용자의 토큰을 생성할 때 사용된다. 두 번째 단계는 ‘악성 플러그인 제작’이다. GetEvilPluginZipFile() 함수는 Faker 라이브러리를 사용해 가짜 정보를 생성하기 위한 객체를 초기화 및 cmd 파라미터를 갖는 jsp 웹쉘 코드를 생성해 임의의 .jar 파일을 제작한다. 세 번째 단계는 ‘악성 플러그인 업로드’다. 관리자만 접근 가능한 플러그인 업로드 페이지에 관리자 계정의 토큰 값을 이용, 웹 쉘이 포함된 악성 플러그인 업로드가 가능하다. 네 번째 단계는 ‘원격 코드 실행(RCE) 발현’이다. 악성 플러그인 업로드 흐름도에서 관리자 계정의 토큰을 이용, 플러그인 업로드 후 플러그인의 경로에 접근해 RCE가 가능하게 된다. PoC 코드에서 확인해 보면 ExecuteCommandByEvilPlugin()에서는 메인 함수에 있는 shell_url과 command를 이용, POST 요청을 생성하고 cmd 파라미터에 명령어를 인코딩 및 전달해 원격 명령어 실행이 가능하게 된다. ‘CVE-2023-42793’ 및 ‘CVE-2024-27198’ 취약점에 대응할 수 있는 방법은 무엇일까? 첫 번째로 업데이트가 중요하다. 모든 소프트웨어에 대한 최신 버전 및 보안 업데이트를 적용하는 것이 가장 중요하기에 최신 버전인 2023.11.4.로 업데이트 진행을 권고한다. 두 번째로 보안 패치 플러그인 적용이다. 플러그인은 ZIP 플러그인 패키지를 [TeamCity 설치 디렉터리]/plugins 경로에 복사해 설치 후 로드를 선택해 활성화하는 것으로 수동 설치를 할 수 있다. [제작=서울여자대학교 정보보호학과 제21대 학생회 플래그] <저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지> |
|
|
|