
请始终尽快应用供应商补丁
用于执行 Check Point Trusted Access 审查的本地 Web 应用程序,使用受信任的 Check Point Management API 命令。大多数检查仅用于审查。任何可用的补救操作都需要操作员明确批准。
此扫描器专为检查围绕 CVE-2026-16232 (https://support.checkpoint.com/results/sk/sk185169)、CVE-2026-62144 (https://support.checkpoint.com/results/sk/sk185152) 和 CVE-2026-62145 (https://support.checkpoint.com/results/sk/sk185153) 的配置问题而构建。
它将允许您扫描和修复任何 ANY 的使用,以及扫描日志以寻找潜在的不良行为者。
此工具并非由 Check Point 创建或支持,使用风险自负。
对于不想安装 Node.js、npm、Git 或源代码的用户,可在 dist/ 下找到预构建版本:
dist/windows-x64/ 包含独立的 .exe 文件及匹配的 ZIP 压缩包。dist/macos-apple-silicon/ 包含可分发的 .app ZIP 压缩包、已解压的应用程序及独立的 arm64 可执行文件。自包含发布版本包含 Node.js 运行时、Web 界面、后端和直接 PDF 报告生成器。它们仅绑定到 127.0.0.1,优先使用端口 4000,必要时自动尝试 4001、4002 及更高端口,并在默认浏览器中打开选定的本地 URL。
对于 GitHub,请将平台 ZIP 压缩包(以及可选的 Windows .exe)作为 GitHub 发布资产 发布。用户不应仅为了运行自包含发布版本而下载 node_modules 或源代码树。有关工件布局,请参阅 dist/README.md。
当前应用程序与 Check Point 网关和管理加固管理指南保持一致。
此工具并非由 Check Point 创建或支持,使用风险自负。
该应用程序在本地运行,登录到 Check Point 安全管理服务器或 MDS,扫描可用的管理 API 证据,并呈现符合指南的加固检查。大多数检查仅用于审查;仅在明确实施且需要操作员批准时才提供特定的补救操作。需要网络设计审查、Gaia 门户、Gaia API、SSH/Clish、身份提供者设置或带外管理检查的检查将被标记为手动验证。
该扫描器目前涵盖以下加固指南领域:
对于 MDS 环境,请在登录表单上启用 MDS 扫描。这将显示两个重要字段:
run-script 检查的实际 MDS 对象。当登录主机是 MDS IP 但所选 API 域是 CMA/域时,此字段为必填项,因为 run-script 等命令必须针对 MDS 对象名称,而不是 MDS IP 或 CMA/域 IP。当启用 MDS 扫描 时,应用程序会创建两个 Check Point 管理 API 会话:
run-script 命令。这对于检查 MDS 服务器操作系统本身(如管理服务器接口/默认路由发现、Gaia 管理员设置、Gaia 密码策略、SNMP 和管理服务器 syslog 转发)是必需的。在 mgmt_cli 术语中,域检查的行为类似于包含 --domain "<域>" 的命令,而 MDS 主机检查的行为类似于在全局 MDS 上下文中执行的 mgmt_cli -r true run-script targets.1 "<全局 MDS 对象名称>" ...。
某些 MDS 检查会故意评估多个管理平面。例如,限制管理源 IP 地址 会评估 MDS/全局管理主机 IP 和所选域/CMA IP。对于每个 IP,它会尝试在所选域中解析匹配的对象,检查包含该 IP 的网络对象和地址范围,跟踪包含这些对象的组,然后收集引用它们的访问规则。如果匹配的域规则位于全局父策略层下,应用程序会读取全局访问规则库直到“域规则占位符”,并将这些全局规则以 全局规则 标记包含在同一策略包证据表中。
对于 Smart-1 Cloud,请在登录表单上启用 Smart-1 Cloud 上下文 URL,并输入带有其上下文路径的管理主机,例如:```text tenant-name.maas.checkpoint.com/context-id/web_api
应用程序保留该路径并发送 API 请求至:```text
https://tenant-name.maas.checkpoint.com/context-id/web_api/<command>
这与 mgmt_cli Smart-1 Cloud 上下文结构相匹配:```bash
mgmt_cli -m tenant-name.maas.checkpoint.com --session-id --context context-id/web_api <cli_command>
当启用了 **Smart-1 Cloud context URL** 时,需要直接访问客户自有管理服务器 Gaia 对象的检查将被跳过。实际上,这会移除 **Management Plane Protection** 检查,例如 **Protect Management Server Behind A Firewall** 和 **Restrict Administrative Source IP Addresses**,因为管理服务器由 Check Point 托管,在租户域中不作为正常的客户管理 Gaia 对象存在。
扫描摘要显示当前扫描时间和本地应用程序记录的上次扫描,包括运行扫描的管理 API 用户名。此历史记录保存在内存中,并在本地 Node 进程重启时重置。
### Large Environment Mode
登录表单包含用于 MDS 或大型多网关环境的 **Large environment mode**。此模式不会跳过检查或更改证据收集。它通过限制全扫描期间的并发 API 请求和 Gaia `run-script` 任务来降低对管理 API 的扫描压力。
默认标准扫描行为:
- 管理 API 收集命令以本地 Node 进程调度它们的速度运行。
- Gaia `run-script` 收集受 `RUN_SCRIPT_CONCURRENCY` 限制,默认值为 `8`。
- 管理员上次登录审计查询使用 `show-logs`,并通过 `SHOW_LOGS_CONCURRENCY` 序列化,默认值为 `1`。
- `show-task` 轮询在每次轮询尝试之间等待 `750 ms`。
大型环境模式行为:
- 管理 API 扫描调用受 `LARGE_ENV_API_CONCURRENCY` 限制,默认值为 `10`。
- Gaia `run-script` 收集受 `LARGE_ENV_RUN_SCRIPT_CONCURRENCY` 限制,默认值为 `3`。
- `show-logs` 管理员上次登录查找仍通过 `SHOW_LOGS_CONCURRENCY` 序列化,以避免并行审计搜索压力。
- `show-task` 轮询等待 `LARGE_ENV_TASK_POLL_INTERVAL_MS`,默认值为 `1250 ms`。
- Gaia `run-script` 任务输出轮询使用 `TASK_POLL_ATTEMPTS`,默认值为 `20`。当 Smart-1 Cloud 或远程网关在解码后的 `show-task details-level full` 输出就绪之前接受 `run-script` 请求时,这很有帮助。
- 安全网关 Stealth Rule 检查在大型环境模式和 Smart-1 Cloud 模式下首先使用 `show-access-rulebase`。这避免了每个网关一次 `where-used details-level full` 调用,在大型/MDS/Smart-1 Cloud 环境中这可能成本高昂或超时。
这些值可以在启动本地后端之前通过环境变量进行调整:```sh
LARGE_ENV_API_CONCURRENCY=8 LARGE_ENV_RUN_SCRIPT_CONCURRENCY=2 LARGE_ENV_TASK_POLL_INTERVAL_MS=1500 TASK_POLL_ATTEMPTS=20 TASK_POLL_INTERVAL_MS=1000 SHOW_LOGS_CONCURRENCY=1 CP_LOG_API_TIMEOUT_MS=120000 CP_VPN_API_TIMEOUT_MS=120000 VPN_COMMUNITY_PAGE_LIMIT=50 npm start
管理员最后登录检查查询SmartConsole审计日志,过滤条件等价于administrator:<name> AND SmartConsole AND "Log In"。CP_LOG_API_TIMEOUT_MS控制这些show-logs请求的超时时间,与普通管理API调用分开设置。
CVE IKE VPN社区检查分页查询show-vpn-communities-star和show-vpn-communities-meshed,使用VPN_COMMUNITY_PAGE_LIMIT(默认50)和CP_VPN_API_TIMEOUT_MS(默认120000 ms)。这可以防止Smart-1 Cloud和MDS扫描在一次调用中请求非常大的details-level full VPN社区负载。
在扫描生产MDS环境、繁忙的管理服务器或具有数十个网关的部署时使用此模式,此时保护fwm/管理API响应速度比绝对最快的扫描时间更重要。
某些检查需要在操作员审查后方可进行,即使自动化高风险条件不存在。SmartConsole可信客户端、管理员账户、管理员密码/空闲超时/过期/锁定策略检查可以标记为已审查。在同一登录会话中,状态变为已审查。新登录会话会将状态恢复为需审查,同时最后审查的批准信息仍可见,并包含登录的管理API用户名和时间戳。
对于管理员密码/空闲超时/过期/锁定策略检查,操作员可以在状态为需补救时将其标记为已审查。应用程序会警告操作员正在接受Check Point不推荐的设置,然后记录该审查。
顶部摘要将需补救和建议补救的结果合并为一个需补救计数。
http://...;这会将Check Point API登录通过明文HTTP发送。http://127.0.0.1:4000或下一个可用本地端口与本地后端通信。后端代理了以下Check Point管理API命令:
loginlogoutshow-trusted-clientsdelete-trusted-clientshow-api-settingsset-api-settingspublishdiscardshow-administratorsdelete-administratorshow-default-administrator-settingsset-default-administrator-settingsshow-smart-console-idle-timeout安全功能使用检查在每个受管网关目标上运行Gaia run-script:```sh
mgmt_cli run-script script-name "show license" targets.1 "GATEWAY_OBJECT_NAME" script "clish -c 'show license status'" --format json
mgmt_cli show-task task-id "" details-level full --format json
该应用解码 `task-details[].responseMessage`,从许可功能/日期行中提取已知的刀片代码,如 `FW`、`VPN`、`IPS` 和 `URLF`,并且还包括来自顶部功能行的永久内置刀片代码(`FW`、`VPN`、`IA`)。设备/型号/期限后缀(如 `3950-2Y`)被忽略,已知的刀片代码被转换为人类可读的刀片名称,如 `IPS`、`URL Filtering` 或 `Anti-Bot`。证据按网关分组,包含紧凑的 `License Feature`、`Expiration Date` 和 `Enabled/Disabled` 表格。启用状态从 `show gateways-and-servers details-level full` 下的 `network-security-blades` 中读取;缺失的刀片键被视为禁用。高级 DNS 安全被标记为在分配的威胁配置文件中手动确认,因为它不会作为普通的网关刀片标志暴露。
SmartConsole 可信客户端检查运行等效于:```sh
mgmt_cli -r true show trusted-clients --domain "System Data" details-level full --format json
该Web应用程序登录管理API域System Data,拉取受信任客户端的name、type以及特定于类型的IP数据,并将其显示在证据表中。当返回的对象将type设置为any时,它将检查标记为需要修复。
当受信任客户端对象的type设置为any时,应用程序提供第一个修复操作。它会查询该对象的实际uid并运行相当于以下命令的内容:```sh
mgmt_cli delete trusted-client uid "" --domain "System Data"
mgmt_cli publish --domain "System Data"
如果在删除命令后发布失败,应用会在同一个 `System Data` 会话中尝试 `discard`,以防止对象因未发布的更改而被锁定。
受信任客户端证据表还允许操作员选择一个或多个返回的受信任客户端对象并将其从 Web 应用中删除。应用会根据当前 `show-trusted-clients` 的输出验证所选 `uid` 值,然后执行等效操作:```sh
mgmt_cli delete trusted-client uid "<selected-trusted-client-uid>" --domain "System Data"
mgmt_cli publish --domain "System Data"
对于多个选定的客户端,每个选定的 uid 运行一次删除命令,然后进行一次发布。如果在更改开始后删除或发布失败,应用程序将在同一个 System Data 会话中尝试 discard。
隐式规则日志检查运行等效于:```sh mgmt_cli -r true show global-properties details-level full --format json
The webapp pulls every key/value pair inside the returned `firewall` object and displays it in a table. If `log-implied-rules` is `false`, the check is marked **需要修复** and the row offers an inline remediation button that runs the equivalent of:```sh
mgmt_cli set global-properties firewall.log-implied-rules true
mgmt_cli publish
管理API访问检查运行相当于:```sh mgmt_cli -r true show api-settings --domain "System Data" --format json
该webapp显示`accepted-api-calls-from`的值。如果它是`all ip addresses`,则该检查被标记为**需要补救**,并提供等效于:```sh
mgmt_cli set api-settings accepted-api-calls-from "all ip addresses that can be used for gui clients" --domain "System Data" --format json
mgmt_cli publish --domain "System Data"
如果API访问已限制为仅GUI客户端,则该检查会显示受信任客户端证据表以供审查。
Policy Insights 检查运行只读的 Access Control Insights 调用:```sh mgmt_cli insights/v3.0/show-suggestions-summary --method POST --format json mgmt_cli insights/v3.0/show-suggestions --method POST --format json
详细建议请求会过滤 `unused-objects`、`tighten-rule`、`delete-disabled-rule` 和 `zero-hits-rule`,且第一页限制为 50 条建议。
管理员账户审查运行等效于:```sh
mgmt_cli -r true show-administrators --domain "System Data" details-level full --format json
webapp 在此收集步骤中登录管理 API 域 System Data,然后显示一个包含 Name、Permission Profile Name、Authentication-Method 和 expiration-date 的证据表。过期值从 iso-8601 转换为人类可读的日期和时间。没有 expiration-date 键的管理员显示为 Never。
MFA 和身份提供商集成检查使用 show default-administrator-settings 来显示默认的 authentication-method,然后使用 show-administrators 列出其 authentication-method 为 check point password 或 os password 的管理员。如果默认方法或任何管理员使用基于密码的认证,则该检查标记为 需要修复。操作员可以标记该部分为已审阅,并显示相同的审阅者历史记录模式。该检查包含一个设置帮助按钮,提供 SmartConsole 和外部 IdP SAML 配置指南。
管理员账户表允许操作员选择返回的一个或多个管理员对象,并从 webapp 中删除它们。应用会依据当前的 show-administrators 输出验证所选 uid 值,然后执行等效于以下内容的操作:```sh
mgmt_cli delete administrator uid "" --domain "System Data"
mgmt_cli publish --domain "System Data"
对于多个选定的管理员,删除命令会针对每个选定的 `uid` 执行一次,然后进行一次发布。如果在更改开始后删除或发布失败,应用程序会尝试在同一 `System Data` 会话中执行 `discard`。
管理员密码、空闲超时、过期时间和锁定策略检查会运行以下等效命令:```sh
mgmt_cli show default-administrator-settings --domain "System Data" --format json
mgmt_cli show smart-console-idle-timeout --domain "System Data" --format json
mgmt_cli show login-restrictions --domain "System Data" --format json
mgmt_cli show cp-password-requirements --domain "System Data" --format json
该 Web 应用程序在 Setting、Value 和 State 表格中显示返回的设置。默认管理员到期时间设置为 never、禁用了 SmartConsole 空闲超时、禁用了管理员账户锁定、禁用了自动解锁或 min-password-length 小于 10 的情况被标记为需要修复。
当默认管理员认证方式为 check point password 时,State 列建议使用支持 MFA 或外部 Identity Provider 的认证方法。
对于默认管理员到期时间,State 列显示返回的到期详情:格式化的 expiration-date 值,或者当类型为 expiration-period 时的 expiration-period 加上 expiration-period-time-units 值。
当默认管理员到期时间设置为 never 时,应用程序会提供推荐的修复操作。它运行的内容相当于:```sh
mgmt_cli set default-administrator-settings expiration-type "expiration period" expiration-period "4" expiration-period-time-units "months" --domain "System Data" --format json
mgmt_cli publish --domain "System Data"
如果设置更改后发布失败,应用会在同一个 `System Data` 会话中尝试 `discard`,以使设置不会因未发布的更改而保持锁定。
当 SmartConsole 空闲超时被禁用时,应用会提供推荐的补救措施。它运行相当于:```sh
mgmt_cli set smart-console-idle-timeout enabled true timeout-duration "10" --domain "System Data" --format json
mgmt_cli publish --domain "System Data"
如果发布在空闲超时更改后失败,应用会在同一个 System Data 会话中尝试 discard。
当最小密码长度小于 10 时,应用会提供推荐的修复操作。它运行相当于:```sh
mgmt_cli set cp-password-requirements min-password-length "10" --domain "System Data" --format json
mgmt_cli publish --domain "System Data"
如果在更改密码要求后发布失败,应用程序会在相同的 `System Data` 会话中尝试 `discard`。
## 安装与运行
从源码运行需要 Node.js 18 或更高版本,以及 `package.json` 中声明的 npm 依赖。自包含版本的用户不需要 Node.js、npm 或 Git。
### macOS 从源码运行
1. 从 [nodejs.org](https://nodejs.org/) 或 Homebrew 安装 Node.js 18 或更高版本。 ```sh
brew install node
从 nodejs.org 安装 Node.js 18 或更新版本。
下载并解压项目 ZIP 文件,或使用 Git for Windows 克隆仓库。 ```powershell git clone cd "Check Point Trusted Access Review"
安装依赖并启动本地应用程序。 ```powershell npm install npm start
在浏览器中打开应用。 ```text http://127.0.0.1:4000
默认情况下,应用程序优先使用 127.0.0.1:4000,如果端口被占用,则会自动向上移动。若要指定特定端口:
macOS:```sh PORT=4500 npm start
Windows PowerShell:```powershell
$env:PORT = "4500"
npm start
然后打开:```text http://127.0.0.1:4500
## 故障排除
服务器会将请求诊断信息打印到终端。一次成功的登录尝试将显示类似以下的行:```text
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。
set-smart-console-idle-timeoutshow-login-restrictionsshow-cp-password-requirementsset-cp-password-requirementsshow-simple-gatewaysshow-global-propertiesset-global-propertiesrun-scriptshow-taskinsights/v3.0/show-suggestions-summaryinsights/v3.0/show-suggestions