feat(sec): 签名鉴权 2B (agent-221) — meow_verify 多公钥数组+v2签名块(含ts,未来宽限,兼容v1)+meow_sign verify子命令+产签README; svc_power 面板身份精确路径绑定(删启发式,3反例验证)
meow_verify→6c2e8ed2; svc_power→306df962; qemu+宿主全过
This commit is contained in:
1 parent
249b6224ab
commit
05a19a9ea3
13 files changed
+497
-78
No files matched your search
@@ -45,9 +45,22 @@ int main(void)
|
||||
classify_exe("/usr/bin/meow_svc_power", &c);
|
||||
CHECK(c.kind == CALL_SYS); /* /usr/bin/meow_* 前缀批准 */
|
||||
|
||||
/* 2B 精确绑定:仅精确命中登记路径(meowpanel.conf 的 exec)才予 os.meow.panel。
|
||||
* 旧启发式(路径含 /MeowPanel/ 或 meowpanel 子串)会被过宽放行,今已收紧为精确路径登记。 */
|
||||
memset(&c, 0, sizeof c);
|
||||
classify_exe("/usr/data/mnt/sd_0/MeowOS/opt/MeowPanel/meowpanel", &c);
|
||||
CHECK(c.kind == CALL_SYS && strcmp(c.pkg, "os.meow.panel") == 0);
|
||||
|
||||
/* 反例:路径含 /MeowPanel/ 或 meowpanel 子串但并非精确登记路径 → 不再放行(CALL_OTHER) */
|
||||
memset(&c, 0, sizeof c);
|
||||
classify_exe("/usr/data/mnt/sd_0/MeowOS/opt/MeowPanel/backend/meowpanel", &c);
|
||||
CHECK(c.kind == CALL_SYS && strcmp(c.pkg, "os.meow.panel") == 0);
|
||||
CHECK(c.kind == CALL_OTHER);
|
||||
memset(&c, 0, sizeof c);
|
||||
classify_exe("/usr/data/mnt/sd_0/MeowOS/opt/MeowPanel/evil", &c);
|
||||
CHECK(c.kind == CALL_OTHER);
|
||||
memset(&c, 0, sizeof c);
|
||||
classify_exe("/usr/bin/meowpanel_fake", &c);
|
||||
CHECK(c.kind == CALL_OTHER); /* 含 "meowpanel" 但非 /usr/bin/meow_* 精确前缀、非登记路径 */
|
||||
|
||||
memset(&c, 0, sizeof c);
|
||||
classify_exe("/usr/data/meow/settings_tool", &c);
|
||||
|
||||
Reference in new issue
Block a user