Instance Security 是 serac-labs/serac 中面向 ServiceNow 实例的安全加固技能,主题为认证、授权与安全配置。
用途 该技能用于对 ServiceNow 实例进行安全加固与检查,涵盖密码复杂度、会话超时、MFA 强制、针对 XSS 与注入的输入净化、安全属性以及 syslog 安全事件等。
安全层次 资料给出的安全层次自上而下为:网络安全 → 认证(SSO、MFA)→ 会话管理 → 授权(ACL、角色)→ 数据保护 → 审计与日志。
关键表
- sys_user:用户账户
- sys_user_role:角色
- sys_security_acl:访问控制
- sysevent_log:安全事件
- sys_properties:安全设置
主要能力
- 认证安全:提供密码强度校验函数 validatePasswordStrength,依据 glide.security.password.min_length 等属性检查最小长度、大小写字母、数字与特殊字符。
- 会话安全:提供 isSessionSecure 检查会话年龄与客户端 IP 变化(防会话固定),以及 requireReauthentication 强制重新认证并跳转登录。
- MFA:提供 hasMFAEnabled 检查用户是否启用 MFA(查询 sys_user_mfa),以及 requireMFA 对敏感操作强制 MFA,未验证时通过事件触发 MFA 挑战。
- 输入校验:提供 sanitizeInput 进行 HTML 实体编码,validateUserInput 依据 sys_dictionary 字段类型校验并拦截 script 标签与事件处理器。
- 防注入:强调不要拼接用户输入,使用 GlideRecord 的 addQuery 参数化查询;对编码查询提供 safeEncodedQuery,通过字段白名单过滤。
- 安全属性:提供 getSecuritySettings 读取会话、密码、登录、CSRF、XSS 等属性,setSecurityProperty 更新属性并记录变更事件。
- 安全审计:提供 logSecurityEvent 写入 syslog 并排队安全事件,trackFailedLogin 跟踪失败登录并在超过阈值时锁定账户。
- 健康检查:securityHealthCheck 检查默认 admin 密码、会话超时、密码最小长度、安全 Cookie 等并返回问题列表与严重级别。
使用方式 技能中的脚本均标注“ES5 ONLY”,需在 ServiceNow 的 ES5 环境中运行。可通过 MCP 工具集成调用:snow_property_manage(action=get)检查安全属性,snow_execute_script 测试安全脚本,snow_query_table 审查 ACL。示例工作流包括:检查 glide.security.session.timeout 属性、运行 securityHealthCheck、查询 sys_security_acl 中 active=true^admin_overrides=true 的记录。资料特别说明:查询 ACL 时 truncate_output 为必需,否则 script 字段会被截断为前 200 字符;若需完整读取单个 ACL 脚本,可使用 snow_get_by_sysid,它不应用截断规则。
适用场景 适用于需要对 ServiceNow 实例进行安全配置检查、认证与会话加固、输入净化、安全审计与健康评估的管理员或开发者。
限制 所有脚本仅限 ES5,不使用现代 JavaScript 语法。资料未提供该技能的收费、价格、平台支持范围或具体效果数据。