#SECPR002. SEC-PR-002 实操二 权限与导出审计
SEC-PR-002 实操二 权限与导出审计
SEC-PR-002 · 数据安全技术人员 · 综合 · 满分 25 分 · 基础进阶综合
可提交 C、C++、Java、Python 3 和 Node.js。评测机没有安装 Kotlin、PyPy,也没有支持大整数的 GNU awk,因此不开放 Kotlin、PyPy 和 Bash。
业务与规则
1. 授权表给出允许的user-object组合,无匹配授权的日志标记U,包括READ或EXPORT操作。
2. 所有日志按时间非递减排列,时间相同时按输入顺序。每条EXPORT日志按同用户最近60秒闭区间[t-60,t]累计导出行数,包含当前行及此前已出现行。
3. 无论该日志是否有权限,EXPORT行都计入该用户的窗口累计。当前行为EXPORT且累计行数>K时,标记B;恰等于K不标记。READ行不参与导出累计,也不标记B。
4. 同时满足时输出UB;只满足其一输出U或B;均不满足输出OK。
输入
第一行p K;随后p行user object,为授权对,可能重复。下一行n;随后n行log_id t user object op rows。log_id唯一,op为READ或EXPORT;READ的rows=0。
输出
每条日志一行:log_id flag,保持日志输入顺序。
范围
0≤p,n≤100000;0≤K≤1e12;0≤t≤1e9;0≤rows≤1e9;时间非递减。建议3秒、256MB,按语言校准;累计用64位整数。
样例输入
1 100
A X
4
L1 0 A X EXPORT 60
L2 60 A Y EXPORT 50
L3 61 A X EXPORT 40
L4 61 B X READ 0
样例输出
L1 OK
L2 UB
L3 OK
L4 U
附件中的 sample.in、sample.out 与上面样例一致,不计入 25 分。计分点见测试配置,按点给分。
整数和文本按空白分隔后的 token 精确比较;小数允许绝对误差或相对误差 1e-6。时限 2 秒、内存 256MB;Java、Python 3 和 Node.js 时限按 2 倍,Java 内存按 2 倍。
题族:SEC-PR-002。状态:公开样题。组卷:否。公开:是。