
Check Point CVE-2026-50751 및 CVE-2026-50752를 위해 작성된 bash 스크립트의 웹 버전입니다. 이 도구는 로컬 서버를 사용하여 Check Point Web API를 통해 스캔 및 변경을 수행합니다.
Check Point CVE-2026-50751, CVE-2026-50752, CVE-2026-85102, CVE-2026-85103과 관련된 구성 마커를 스캔하고, Check Point Management API 명령을 통해 선택된 완화 조치를 적용하기 위한 승인 기반 로컬 웹앱입니다.
이 도구는 Check Point에서 만들거나 지원하지 않으며, 사용에 따른 책임은 사용자에게 있습니다. 완화 조치는 임시적입니다. Check Point는 Check Point Security Advisories에 각 CVE별로 제공된 패치를 사용하여 신속하게 패치할 것을 권장합니다.
앱은 로컬에서 실행되며, 관련 VPN 구성을 스캔하고, 완화가 필요한 위치를 보여주며, 운영자가 변경 사항을 승인할 수 있게 하고, 관리 세션을 게시할 수 있습니다. 변경 사항이 게이트웨이에 적용되려면 게시 후에도 정책을 설치해야 합니다. 구성 검색 결과만으로는 게이트웨이가 패치되었는지 또는 악용 가능한지 여부를 확정할 수 없습니다.
로그인은 사용자 이름/비밀번호 또는 API 키 인증을 지원합니다. 스캔 결과는 SMS 관리 객체 이름 또는 사용 가능한 경우 반환된 Smart-1 Cloud/MDS 도메인 이름을 사용합니다. 승인된 변경 사항은 해당 도메인 세션을 사용합니다.
SMS 전역 Remote Access VPN 속성을 스캔합니다:
remote-access.vpn-authentication-and-encryption.encryption-method
현재 값이 ike_v2_only가 아니면, 앱은 속성을 다음으로 설정하는 변경을 승인하고 적용할 수 있습니다:
ike_v2_only
이 스캔은 VPN Remote Access 및 Mobile Access에 대해 더 이상 사용되지 않는 IKEv1 키 교환이 여전히 전역적으로 허용되는 노출을 식별하기 위한 것입니다. IKEv1은 더 이상 사용되지 않으며 더 이상 업계 모범 사례가 아닙니다. 이 변경은 구형 VPN 클라이언트에 영향을 줄 수 있습니다. 추가 Check Point 지침은 SK166415를 검토하십시오.
단순 게이트웨이를 스캔하고, 각 게이트웨이 일반 객체에서 다음 내부의 VPN realm을 확인합니다:
realmsForBlades
앱은 레거시 클라이언트가 지원되는지 또는 비활성화되었는지 보고합니다. 완화가 승인되면, VPN realm 소유 객체의 disabled 값을 true로 설정합니다.
사용자 대상 결과 텍스트:
Legacy clients are disabledLegacy Clients are Supported레거시 클라이언트를 허용하면 더 이상 업계 모범 사례가 아닌 IKEv1에 대한 지원이 유지될 수 있습니다. 레거시 클라이언트가 여전히 필요한 경우가 아니라면 이 설정을 비활성화할 것을 권장합니다. 레거시 클라이언트가 필요하다면, 더 안전한 최신 VPN 클라이언트로 마이그레이션할 계획을 세우십시오.
이 검사는 앱에 설명된 인증서 검증 문제의 구성 마커로서 개인 인증서 인증을 찾습니다: VPN 협상 중 인증서 데이터의 부적절한 검증으로 인해 인증되지 않은 원격 공격자가 게이트웨이에서 임의 코드를 실행할 수 있습니다.
스캔된 관리 도메인에서 반환된 각 단순 게이트웨이에 대해, 앱은 show-simple-gateway를 사용하여 전체 세부 정보를 요청합니다. 동등한 CLI 검사는 다음과 같습니다:
mgmt_cli -r true show simple-gateway name "YOUR_GATEWAY_NAME" details-level full --format json
다음에 대해 vpn-settings.authentication.authentication-clients를 검사하며, 각 클라이언트의 중첩된 authentication-methods 배열을 포함합니다:
{
"name": "Personal_Certificate",
"display-name": "Personal Certificate",
"authentication-methods": [
{ "authentication-factor": "personal-certificate" }
]
}
탐지는 하드코딩된 클라이언트 이름이 아닌 인증 팩터를 사용합니다. 증거 테이블에는 게이트웨이, 도메인, UID, 현재 상태, 일치하는 클라이언트 표시 이름 및 상태가 표시됩니다. 세부 정보가 누락되거나 불완전한 경우 Unknown으로 표시되고, API 실패는 Scan error로 표시됩니다. 어느 것도 정상 결과로 간주되지 않습니다. 이 검사는 현재 클러스터 객체가 아닌 단순 게이트웨이를 열거합니다.
업데이트할 각 게이트웨이의 체크박스를 선택한 다음 Remove User Certificate를 클릭합니다. 앱은 선택된 게이트웨이를 다시 검사하고, 탐지된 개인 인증서 로그인 옵션을 실제 객체 이름으로 제거합니다. Personal_Certificate라는 클라이언트의 경우 동등한 명령은 다음과 같습니다:
mgmt_cli -r true set simple-gateway name "YOUR_GATEWAY_NAME" vpn-settings.authentication.authentication-clients.remove "Personal_Certificate"
다른 인증 클라이언트 항목은 그대로 유지됩니다. 로그인 옵션을 제거하면 해당 옵션 전체가 제거되며, 여기에는 포함된 추가 메서드도 포함됩니다. 인증서 객체는 삭제되지 않습니다. 제거된 옵션에 의존하는 클라이언트는 정책 설치 후 다른 인증 방법이 필요합니다.
Publish after successful apply는 기본적으로 선택되어 있습니다. 앱은 개별 게이트웨이의 성공 및 실패를 보고하고 이후 스캔을 새로 고칩니다. 게이트웨이 업데이트가 실패하면, 이 작업은 성공한 변경 사항을 자동으로 게시하지 않습니다. 수동으로 게시하기 전에 검토하십시오. 게시 오류는 별도로 보고됩니다. 게시 후 정책을 설치하십시오.
두 가지 Check Point 사이트 간 VPN 커뮤니티 유형을 모두 스캔합니다:
앱은 다음이 모두 관찰될 때만 VPN 커뮤니티를 플래그합니다:
Star 커뮤니티의 경우, 앱은 센터 게이트웨이와 위성 게이트웨이를 별도로 표시합니다. API 데이터가 충분한 객체 유형 정보를 제공하면 게이트웨이 이름은 로컬 관리 또는 외부 관리로 태그됩니다.
Mesh 커뮤니티의 경우, 앱은 커뮤니티 gateways 목록에서 게이트웨이 이름을 가져옵니다. Mesh 커뮤니티는 이 도구에서 외부 관리 게이트웨이 처리를 포함하지 않으므로 해당 필드는 해당 없음으로 표시됩니다.
완화가 승인되면, 앱은 VPN 커뮤니티 암호화 방법을 IKEv2 전용으로 설정하려고 시도합니다. Star 커뮤니티는 다음을 사용합니다:
set-vpn-community-star
Mesh 커뮤니티는 다음을 사용합니다:
set-vpn-community-meshed
선택된 Star 커뮤니티에 외부 관리 게이트웨이가 포함되어 있으면, 앱은 변경을 적용하기 전에 경고합니다. 외부 관리 게이트웨이 측에서도 일치하는 IKEv2 전용 변경을 수행해야 합니다.
details-level: full과 함께 show-global-properties에서 firewall.accept-control-connections를 읽습니다. 테이블에는 관리/도메인 레이블 및 API 증거와 함께 Enabled, Disabled, Unknown 또는 Scan error가 표시됩니다.
이것은 읽기 전용 검사입니다. SK179346에 따라 높은 보안 환경에서만 암시적 규칙을 명시적 Access Control 규칙으로 대체하십시오. 잘못된 규칙은 정책 설치 및 관리/로그 연결을 중단시킬 수 있습니다. 설정이 비활성화되어 있다는 것만으로는 필요한 명시적 규칙이 존재하는지 확인할 수 없습니다.
작업이 실행되는 동안 하단에 실시간 상태 표시줄이 나타납니다. 로그인 후에는 백엔드에 최신 API 명령, 도메인 및 시작된 명령 수를 폴링하고 경과 시간을 표시합니다. 활동 표시기는 완료율 추정치가 아닙니다.
http://...로 입력하지 마십시오. 그러면 Check Point API 로그인이 평문 HTTP로 전송됩니다.http://127.0.0.1:3000을 통해 로컬 백엔드와 통신합니다.백엔드는 다음 Check Point Management API 명령을 프록시합니다:
loginlogoutpublishshow-sessionshow-domainsshow-gateways-and-serversshow-simple-gatewaysshow-simple-gatewayset-simple-gatewayshow-generic-objectset-generic-objectshow-global-propertiesset-global-propertiesshow-vpn-communities-starshow-vpn-communities-meshedset-vpn-community-starset-vpn-community-meshed이 프로젝트는 서드파티 npm 종속성이 없습니다. 소스에서 실행할 때는 Node.js 18 이상만 필요합니다.
nodejs.org 또는 Homebrew에서 Node.js 18 이상을 설치합니다.
brew install node
이 프로젝트를 다운로드하거나 복제합니다.
git clone <repo-url>
cd CVE-Web-Check
로컬 앱을 시작합니다.
npm start
npm 종속성이 없으므로 다음도 작동합니다:
node server.js
앱을 엽니다.
http://127.0.0.1:3000
nodejs.org에서 Node.js 18 이상을 설치합니다.
프로젝트 ZIP을 다운로드하여 압축을 풀거나, Git for Windows로 저장소를 복제합니다.
git clone <repo-url>
cd CVE-Web-Check
로컬 앱을 시작합니다.
npm start
npm 종속성이 없으므로 다음도 작동합니다:
node server.js
브라우저에서 앱을 엽니다.
http://127.0.0.1:3000
기본적으로 앱은 127.0.0.1:3000에서 수신 대기합니다. 다른 포트를 사용하려면:
macOS:
PORT=3100 npm start
Windows PowerShell:
$env:PORT = "3100"
npm start
그런 다음 엽니다:
http://127.0.0.1:3100
public/index.html을 로컬 파일로 여는 것이 아니라 http://127.0.0.1:3000에서 실행 중인 앱을 여십시오. API 호출 및 실시간 상태 표시줄에는 Node 백엔드가 필요합니다. 백엔드 재시작 후에는 다시 로그인하고 새 스캔을 실행하십시오.
서버는 요청 진단 정보를 터미널에 출력합니다. 성공적인 로그인 시도는 다음과 유사한 줄을 표시합니다:
Local API request requestId=abc12345 route=/api/login
Login request received target=https://mgmt.example.com/web_api/login user=admin
Check Point API request starting command=login target=https://mgmt.example.com/web_api/login
브라우저에 요청 ID와 함께 로그인 오류가 표시되지만 패킷 캡처에 관리 서버로의 아웃바운드 시도가 표시되지 않으면, 터미널의 target= 값을 패킷 캡처 필터와 비교하십시오.
Local API request 줄이 전혀 없으면 브라우저가 로컬 백엔드에 도달하지 못하는 것입니다. 앱이 실행 중인지, 올바른 로컬 URL을 열었는지 확인하십시오.