주요 콘텐츠로 건너뛰기
RSA 컨퍼런스 2024에서 NetWitness를 만나보세요!
#254 부스를 방문하거나 전문가와의 미팅을 예약하세요. 지금 예약하세요!
제품 및 솔루션

넷위트니스 네트워크의 CVE-2024-24919

  • by 알버트 프리에고 브라보와 마시밀리아노 파우다롤, 넷위트니스의 자문 컨설턴트

경영진 요약

2024-05-26에 Check Point는 임의의 파일 읽기로 이어지는 심각도가 높은 취약점으로 분류된 새로운 CVE-2024-24919에 대한 기사12를 게시하고 이에 대한 예방 핫픽스를 만들었습니다.

그 후 5월 30일, 워치타워 팀은 취약점 분석을 수행한 블로그 게시물3을 게시하여 독자들이 너무 많은 노력이나 기술 지식 없이도 익스플로잇의 다양한 PoC를 생성할 수 있도록 했습니다. 2024년 5월 31일, 체크포인트는 이 CVE를 사용한 첫 번째 익스플로잇 시도가 2024년 4월 7일에 시작되었다고 밝혔습니다.

그 시점부터 사이버 커뮤니티에서 많은 활동이 나타나기 시작했습니다. 익스플로잇 PoC가 크게 증가했으며 전 세계적으로 Check Point 제품이 익스플로잇되기 시작했습니다.

 

취약성

이 취약점을 성공적으로 익스플로잇하면 공격자는 인터넷에 연결되고 원격 액세스 VPN 또는 모바일 액세스 소프트웨어 블레이드로 활성화된 Check Point 보안 게이트웨이의 특정 정보를 읽을 수 있습니다.

즉, 이 취약점이 악용될 경우 직접 액세스 권한을 얻는 것이 아니라 공격자가 임의의 파일에 액세스하여 읽을 수 있다는 점에서 심각성이 높습니다.

 

영향

CVE-2024-4956을 성공적으로 익스플로잇하면 보호를 위해 Check Point 어플라이언스에 의존하는 조직에 심각한 결과를 초래할 수 있습니다. 공격자가 할 수 있습니다:

그림 0: 영향

 

 

체크 포인트 적용 제품

취약점의 영향을 받는 제품은 다음 표에 나와 있습니다:

제품 버전
클라우드가드 네트워크, 퀀텀 마에스트로, 퀀텀 스케일러블 섀시, 퀀텀 보안 게이트웨이, 퀀텀 스파크 어플라이언스.

다음 설정 중 하나가 있는 모든 보안 게이트웨이 및 클러스터:

  • IPSec VPN 소프트웨어 블레이드는 사용 가능하지만 원격 액세스 VPN 커뮤니티에 포함된 경우에만 사용할 수 있습니다.
  • 모바일 액세스 소프트웨어 소프트웨어 블레이드가 활성화되었습니다.
R77.20(EOL), R77.30(EOL), R80.10(EOL), R80.20(EOL), R80.20.x, R80.20SP(EOL), R80.30(EOL), R80.30SP(EOL), R80.40(EOL), R81, R81.10, R81.10.x, R81.20.

 

Check Point는 취약한 보안 게이트웨이를 식별하는 스크립트를 공개했으며, 이 링크에서 확인할 수 있습니다:

 

익스플로잇 제작

익스플로잇된 취약점은 취약한 시스템 내의 모든 파일을 읽을 수 있는 경로 탐색4 취약점입니다.

익스플로잇 기법은 다음 경로 내의 데이터를 대상으로 합니다:

/clients/MyCRL/

체크 포인트 게이트웨이에서 정적 파일 전송에 사용됩니다.

그림 1: 공격 다이어그램

 

 

By requesting a file with a as a parameter, pointing to the reported path, we can activate the exploitation mechanism. The prerequisite for the delivery of the is that it must be in a list of hardcoded strings of the binary.

그림 2: ELF의 하드코딩된 문자열

 

 

취약점은 크게 두 가지 요인에 있습니다:

  • 문자열 비교,
  • 문자열 테이블 내부의 폴더 경로입니다.

 

문자열 비교

파일이 내부 문자열 중 하나여야 한다는 요구 사항을 구현하면 버그가 발생합니다. 비교를 하는 대신 strstr 함수가 사용되는데, 이 함수는 C언어에서 한 문자열이 다른 문자열 안에 있는지 여부를 확인합니다. 비교로 이해될 수 있는 이 방법도 이 경우처럼 오류와 취약성을 증가시킬 수 있습니다.

 

strstr 함수 예제:

문자 s1 = "random_dir/";
문자 s2 = "random_dir/Iamthebadguy/file.exe";
p = strstr(s1,s2)

if (p) {
printf("문자열 s1 내부 s2!\n");
}
else{
printf("문자열 s1 NOT inside s2!\n");
}

 

p(strstr의 결과)의 값을 확인하는데, 값이 null이면 문자열 s1이 s2 안에 있지 않음을 의미하지만 취약점을 악용하는 데 사용되는 문자열에 더 많은 문자가 포함되어 있다는 것을 의미하지는 않습니다. 위의 예에서 결과는 "문자열 s1이 s2 안에 있습니다!"가 됩니다.

그림 3: strstr 호출

문자열 테이블 내부의 폴더 경로

유효한 문자열 중 하나는 파일이 아닌 디렉터리를 참조하므로 경로 취약점이 경로를 따라 이동하여 읽으려는 임의의 파일로 액세스를 리디렉션하는 초기 디렉터리로 앵커로 사용할 수 있습니다.

  • 이를 허용하는 문자열은 'CSHELL/'

 

그림 4: 경로 통과 취약성

 

파일을 얻을 수 있는 엔드포인트가 있고 'CSHELL' 디렉토리에서 익스플로잇할 수 있는 경로 탐색 취약점이 존재하기 때문에 시스템 내에서 원하는 파일로 피벗하여 읽을 수 있습니다.

 

익스플로잇의 구현은 CSHELL 인수를 사용하여 엔드포인트에 요청하고 경로를 통과하는 것을 기반으로 하기 때문에 매우 간단합니다.

 

익스플로잇은 아래 예시와 같이 요청을 통해 이루어집니다.

그림 5: 실험실 PoC

대부분의 공개 PoC는 POST 요청을 사용하여 구현되지만, 앞서 살펴본 바와 같이 GET/HEAD/PUT 메서드와 같은 다른 유형의 요청(그 안에서 일반적인 동작은 아니지만)과 읽을 파일의 인수를 전달하는 경우에도 성공적으로 악용될 수 있습니다.

 

이 취약점의 특성상 파이썬이나 다른 언어로 스크립트를 작성하여 이 취약점을 악용하는 것은 매우 간단하기 때문에 '그들의 버전'을 코딩하는 수많은 공개 리포지토리가 존재합니다.

 

야생 착취

앞서 언급했듯이 이 취약점은 야생에서 악용되었지만, 매우 간단하고 복제 가능한 취약점이라는 사실 때문에 수십 개의 공개 PoC와 함께 쇼단 또는 기타 네트워크 스캐너를 사용하여 새로운 CVE의 취약한 대상을 탐지하는 방법을 설명하는 스캐너 및 튜토리얼이 등장했습니다.

 

쇼단(또는 유사한 도구)을 사용하면 많은 잠재적 취약 대상을 확보할 수 있습니다. 빠른 테스트를 통해 기업, 공공 기관 및 수많은 인프라 사이에 있는 20,000개 이상의 표적을 확보했습니다.

 

그림 6: CVE-2024-24919에 대한 쇼단 결과

 

현재 CVE-2024-24919를 악용하는 위협 행위자들은 주로 인프라에 대한 초기 진입 경로를 확보하거나 시스템 계정/사용자에 대한 액세스 권한을 확보하여 측면 이동을 계속하려고 합니다.

예를 들면 다음과 같습니다:

  • "root/.ssh/id_rsa"를 읽고 SSH를 통해 액세스하여 대상 머신에 액세스할 수 있는 SSH 키를 얻습니다.
  • 해시된 자격 증명을 획득하여 로컬에서 해독한 후 시스템에 액세스하거나 공격자가 네트워크를 통해 측면 이동을 수행할 수 있도록 합니다.

 

NetWitness 네트워크 위협 탐지

현재 진행 중인 여러 IR에서 다양한 공격자 및 그룹이 CVE-2024-24919를 악용하고 있는 것으로 확인되었습니다. 저희는 이 취약점을 악용하려는 시도를 빠르고 간결하게 탐지할 수 있는 내부 규칙과 쿼리를 만들었습니다.

 

아래에서 이 취약점을 악용하려는 시도를 탐지하는 데 사용할 수 있는 넷위트니스 XDR 기술의 쿼리를 확인하세요.

 

쿼리

direction = ‘inbound’ && directory = ‘/clients/’ && filename = ‘MyCRL’

 

그림 7: 익스플로잇 시도 시 넷위트니스 네트워크 보기 예시


 

로그 모니터링 - 비밀번호 인증을 통한 원격 액세스

It is highly recommended reviewing the connection logs of remote authentication with password access. To do that, In SmartConsole, go to the Logs & Monitor > Logs tab.

 

상단 검색 필드에 이 검색어를 입력합니다:

blade:"모바일 액세스" AND action:"로그인" AND auth_method:비밀번호

 

모든 식별 필드(OS, IP, 클라이언트 이름, 애플리케이션 등)와 함께 연결이 합법적인지 확인합니다.

 

위협 행위자가 사용하는 것으로 의심되는 IP

  • 5.188.218[.]0/23
  • 23.227.196[.]88
  • 23.227.203[.]36
  • 31.134.0[.]0/20
  • 37.9.40[.]0/21
  • 37.19.205[.]180
  • 38.180.54[.]104
  • 38.180.54[.]168
  • 45.135.1[.]0/24
  • 45.135.2[.]0/23
  • 45.155.166[.]0/23
  • 46.59.10[.]72
  • 46.183.221[.]194
  • 46.183.221[.]197
  • 61.92.2[.]219
  • 64.176.196[.]84
  • 68.183.56[.]130
  • 82.180.133[.]120
  • 85.239.42[.]0/23
  • 87.206.110[.]89
  • 88.218.44[.]0/24
  • 91.132.198[.]0/24
  • 91.218.122[.]0/23
  • 91.245.236[.]0/24
  • 103.61.139[.]226
  • 104.207.149[.]95
  • 109.134.69[.]241
  • 112.163.100[.]151
  • 132.147.86[.]201
  • 146.70.205[.]62
  • 146.70.205[.]188
  • 146.185.207[.]0/24
  • 149.88.22[.]67
  • 154.47.23[.]111
  • 156.146.56[.]136
  • 158.62.16[.]45
  • 162.158.162[.]254
  • 167.61.244[.]201
  • 167.99.112[.]236
  • 178.236.234[.]123
  • 183.96.10[.]14
  • 185.213.20[.]20
  • 185.217.0[.]242
  • 192.71.26[.]106
  • 193.233.128[.]0/22
  • 193.233.216[.]0/21
  • 195.14.123[.]132
  • 198.44.211[.]76
  • 203.160.68[.]12
  • 217.145.225[.]0/24
  • 221.154.174[.]74