
블랙박스 취약점 스캐너 및 침해 지표 분석기로, SAP NetWeaver Java 애플리케이션의 CVE-2020-6287 (RECON)에 대한 신속한 노출 평가와 로그 기반 포렌식 조사를 가능하게 합니다.
RECON(Remotely Exploitable Code On NetWeaver)은 SAP NetWeaver Java 스택 위에서 실행되는 여러 SAP 비즈니스 및 기술 애플리케이션에 영향을 미치는 심각한(CVSSv3 10) 취약점입니다. 이 취약점은 Onapsis Research Labs에서 발견되었으며, SAP와 긴밀히 협력하여 2020년 7월 14일에 패치를 개발 및 출시했습니다. 이 문제의 심각성을 고려하여 미국 DHS CISA, BSI CERT-Bund 및 여러 다른 정부 기관은 SAP 고객이 취약한 애플리케이션(특히 인터넷에 노출된 애플리케이션)을 보호하도록 촉구하는 경고를 발표했습니다.
야생에서 RECON을 대상으로 하는 상당한 악성 활동을 관찰하고, 취약한 인터넷 노출 SAP 애플리케이션의 수와 이러한 시스템이 일반적으로 지원하는 데이터 및 프로세스의 민감성을 고려하여 Onapsis는 이 오픈 소스 도구를 가능한 한 빨리 개발 및 출시하기로 결정했습니다. 목표는 모든 SAP 고객의 정보 보안 및 관리 팀이 노출 정도를 평가하고 SAP 시스템이 손상되었을 가능성이 있는지 평가할 수 있도록 하여 중요 업무 애플리케이션을 보호하도록 돕는 것입니다. 당사는 제품, 연구 팀 및 더 넓은 커뮤니티에서 새로운 위협 인텔리전스 및 포렌식 데이터가 수집됨에 따라 이 도구를 더욱 개선할 계획입니다.
이 도구는 다음을 수행할 수 있습니다.
이 도구는 다음을 수행할 수 없습니다.
하지만 이 도구에는 몇 가지 알려진 제한 사항이 있으며, 이 도구를 사용한다고 해서 SAP 애플리케이션이 RECON(및 기타 취약점)에 노출되지 않았거나 애플리케이션이 손상되지 않았다고 보장할 수 없습니다. 여러 조건이 평가된 애플리케이션 및/또는 로그 파일의 상태에 영향을 미쳐 오탐(false positive) 및/또는 미탐(false negative)이 발생할 수 있습니다.
IoC가 식별된 경우, 잠재적 침해의 범위와 정도를 확인하기 위해 평가된 시스템(및 상호 연결된 시스템)에 대한 심층 포렌식 조사를 수행하는 것이 강력히 권장됩니다.
이 도구는 '있는 그대로' 제공되며 어떠한 보증도 없습니다.
대체 온라인 버전
인터넷 노출 시스템에 대한 RECON 신속 평가를 지원하기 위해 두 가지 사용 사례를 모두 지원하는 무료 온라인 버전도 개발했습니다. 원하는 경우 이 서비스를 https://recon.onapsis.com에서 사용할 수 있습니다.
스크립트는 Python 3로 개발되었으며 다음 종속성을 설치해야 합니다.
# python3 -m venv .venv
# . .venv/bin/activate
# pip install -r requirements.txt
종속성을 설치하면 Python을 사용하여 두 스크립트를 모두 실행하고 명령줄에서 도움말을 볼 수 있습니다.
취약점 탐지를 위해 다음 스크립트를 실행하세요:
# python3 RECON_CVE-2020-6287_vuln_scanner.py -h
스크립트는 분석 중인 대상 SAP 애플리케이션과 네트워크 연결이 있는 시스템에서 실행해야 합니다. SAP NetWeaver JAVA 애플리케이션 서버의 HTTP(s) 포트에 접근 가능해야 합니다(예: 인스턴스 00의 경우 HTTP는 50000이지만 프록시/로드 밸런서를 통해 노출되거나 80 또는 443과 같은 다른 TCP 포트를 통해 접근 가능할 수 있음).
RECON 취약점 테스트를 위해 -u 매개변수를 사용하여 유효한 URL을 포함해야 합니다:
# python3 RECON_CVE-2020-6287_vuln_scanner.py -u http://myinternalportal.mycompany.com:50000/
-f 매개변수를 사용하여 분석할 모든 URL이 포함된 파일을 제공함으로써 여러 URL을 평가할 수도 있습니다:
# python3 RECON_CVE-2020-6287_vuln_scanner.py -f file_with_urls
평가 결과는 stdout으로 전송됩니다. 다음과 같이 파일로 덤프할 수 있습니다:
# python3 RECON_CVE-2020-6287_vuln_scanner.py -f file_with_urls >> results
침해 지표 탐지를 위해 다음 스크립트를 실행하세요:
python3 RECON_CVE-2020-6287_ioc_scanner.py -h
스크립트는 파일 이름을 입력받아 LM CTC 애플리케이션 사용을 기반으로 IoC를 찾기 위해 파일을 파싱합니다. 다음 유형의 파일이 허용됩니다:
필요한 파일은 다음 폴더에 있습니다:
Linux: /usr/sap/<SID>/<INSTANCE>/j2ee/cluster/server<X>/log/
Windows: \usr\sap\<SID>\<INSTANCE>\j2ee\cluster\server<X>\log\
기본 형식 구성을 사용합니다. 표준 로그 형식 구성이 변경된 경우 파싱이 실패할 수 있습니다. 이 경우 내부 정규식을 수동으로 조정하여 새 형식을 반영해야 합니다. 필요한 파일은 다음 폴더에 있습니다:
Linux: /usr/sap/<SID>/<INSTANCE>/j2ee/cluster/server<X>/log/system/httpaccess/
Windows: \usr\sap\<SID>\<INSTANCE>\j2ee\cluster\server<X>\log\system\httpaccess\
-f 매개변수를 사용하여 특정 파일을 분석하는 스크립트를 실행할 수 있습니다:
python3 RECON_CVE-2020-6287_ioc_scanner.py -f path_to_logfile
bash 스크립트를 사용하여 여러 파일에 대해 동시에 스크립트를 실행할 수 있습니다. 예를 들어, 여러 로그가 포함된 디렉터리가 /tmp/sap_RECON_logs/에 있는 경우 실행은 다음과 같습니다:
path_to_log_folder="/tmp/sap_RECON_logs/";for log_file in `ls $path_to_log_folder`; do python RECON_CVE-2020-6287_ioc_scanner.py -f $path_to_log_folder/$log_file -o csv; done
Onapsis의 사이버 보안 전문가 팀은 후속 질문에 답변하거나 식별된 지표에 대한 가시성을 확보하는 데 추가로 도움을 드릴 수 있습니다. [email protected]으로 Onapsis에 문의하실 수 있습니다.