帮助开发者排查 Pysa 漏报污点问题,比较输出并定位污点流丢失位置。
该技能材料显示其本质是开源仓库中的提示型调试工作流说明,系统检查项也标明为 prompt-only,未声明需要密钥或远程端点。整体风险较低,但文档中包含本地命令与内部 URL/目录示例,实际使用时仍应注意不要在不适用环境中执行或暴露内部数据。
材料明确标注无需密钥或环境变量,README 也未要求 API token、账号凭证或持久化认证信息;未见直接的凭证收集或滥用设计。
未声明任何远程端点,系统检查项也未显示联网行为。README 中提到 internalfb issue URL 主要作为用户提供的输入示例,未见将数据主动发送到第三方服务的说明。
系统已判定为 prompt-only;尽管 README 展示了 `db`、`buck run` 等命令作为人工调试步骤,但从材料看这是文档/提示词而非自带可执行工具,不构成其本身自动执行代码的证据。
技能说明涉及比较两个 Pysa 输出目录和解析 issue 信息,但作为 prompt-only 材料本身未声明具备自动读写文件、数据库或系统资源的权限;未见过度授权迹象。
来源指向 GitHub 上的开源仓库 `facebook/pyre-check`,源码可审计,这是明显的降风险因素。虽 star 为 0、许可证未声明、维护状态未知,带来一定可持续性不确定性,但不足以单独升为高风险。
复制安装指令,让 AI 自动完成配置 · 推荐新手
请帮我安装 askskill 上的 "pysa-false-negative-debugger" 技能: 1. 下载 https://raw.githubusercontent.com/facebook/pyre-check/main/.llms/skills/pysa-false-negative-debugger/SKILL.md 2. 保存为 ~/.claude/skills/pysa-false-negative-debugger/SKILL.md 3. 装好后重载技能,告诉我可以用了
请帮我调试一个 Pysa 漏报问题。我预期这个入口参数会传播到危险汇点,但结果中没有告警。请分析可能在哪个调用链、模型或特性处理环节丢失了污点流,并给出排查步骤。
给出污点流可能中断的位置、关键排查节点,以及后续验证建议。
我有两个 Pysa 输出目录,一次是旧版本,一次是新版本。请比较它们的差异,找出为什么新版本少了一条预期的污点告警,并指出可能受影响的规则、模型或调用关系。
输出差异摘要,并解释导致告警消失的潜在原因与定位线索。
请根据这段代码和 Pysa 分析结果,追踪从 source 到 sink 的污点传播路径,精确指出污点在哪个函数、返回值、参数传递或模型定义处被截断。
返回清晰的传播路径说明,并标出污点丢失的具体位置。
Systematic workflow that identifies exactly where and why taint flow is lost by comparing two Pysa result directories. Accepts static analysis issue URLs (e.g., https://www.internalfb.com/security/static_analysis/issue/<issue_instance_id>?database=<database>).
REQUIRED BACKGROUND: Load the pysa-json-models skill to understand trace element syntax (ports, call info, kinds).
The user must provide:
https://www.internalfb.com/security/static_analysis/issue/<issue_instance_id>?database=<database>From the URL, extract:
216172782209137158)database query parameter (e.g., xdb.pysa-instagram-sharded.1)Get the issue handle:
db <database> -e "SELECT handle FROM issues WHERE id=(SELECT issue_id FROM issue_instances WHERE id=<issue_instance_id>);"
If the query fails, ask the user for help.
Example handle:
accounts.service.Service.async_is_phone_suspicious:5120:0:Call|accounts.service.Service._async_helper|0|f:ec82abb59a9d0e207fe4f5acc361f0ad
Extract:
: (e.g., accounts.service.Service.async_is_phone_suspicious): (e.g., 5120)All commands below use buck run to invoke the explorer. The shorthand <explorer> means:
buck run fbcode//tools/pyre/tools/pysa_model_explorer_cli:pysa_model_explorer --
Run <explorer> --help for usage details.
Suppressing build noise: Always append 2>/dev/null to explorer commands to suppress buck build output that clutters the results. Only retry without 2>/dev/null if the command produces empty or unexpected output, so you can see the actual error message from buck.
Confirm the issue exists in FOUND:
<explorer> /tmp/FOUND get-issues <root-callable> --handle <handle>
If not found, ask the user for help.
Confirm it does NOT exist (or is very different) in NOT-FOUND:
<explorer> /tmp/NOT-FOUND get-issues <root-callable> --code <code>
The result should be empty or contain very different issues (different locations).
Check these options in order: A → B → C.
In the issue from FOUND, examine "traces" → entries with "name": "forward".
Each root (trace element) may have multiple kinds with different "length" values. Pick the root whose minimum "length" across its kinds is smallest (missing length = 0, which is always shortest).
If it's an origin: the source comes from a user-annotated function. Check if at least one of the leaves have a model in NOT-FOUND:
<explorer> /tmp/NOT-FOUND get-model <leaf-callable> --show sources --kind <kind>
If none of the leaves have source taint in NOT-FOUND, taint is lost at one of these leaf callables. If at least one does, the source trace is intact — move to Option B.
If it's a call with "resolves_to": [<callee-callable>, ...]: check if those callables have source taint in NOT-FOUND. If there are multiple entries (overrides), check all of them — taint is lost only if ALL are missing:
<explorer> /tmp/NOT-FOUND get-model <callee-callable> --show sources --kind <kind>
Interpret the results:
…
用于运行、调试与更新 Pysa 污点分析端到端集成测试及期望结果
帮助你快速理解 Pyre/Pysa 代码架构并定位关键实现位置
帮助开发者在提交代码或生成 diff 时套用正确的提交前缀、审阅人和测试计划。
帮助开发者读取、编写并调试 Pysa 的 JSON 污点模型与 .models 输出
帮助开发者提取并核对 React 错误信息与错误码映射,排查未知错误码警告。
用于运行 Flow 类型检查并定位修复 React 代码中的类型错误。
分析报错、堆栈或代码片段,定位根因并给出历史修复建议与置信度。
让 AI 读取运行时堆栈、日志与参数证据,定位并修复问题根因。
帮助你系统复现、定位并修复代码或环境中的复杂故障问题。
解析 Playwright 跟踪文件,定位测试失败原因并提供调试修复建议。
可对 Python 代码做静态污点分析,追踪数据流并发现安全漏洞。
帮助分析内存转储并运行取证插件,快速定位安全事件线索