docs: DLP 环境特征调研记录与判定/写入逻辑说明
- docs/DLP_ENVIRONMENT_NOTES.md: 白名单矩阵/密文样本/属性不可区分等实测结论与探索过程 - README: DLP 程序化特征与 is_encrypted/写入通道实现逻辑摘要
This commit is contained in:
@@ -2,7 +2,30 @@
|
||||
|
||||
io-compatible file reads through an approved Python helper on Windows DLP hosts.
|
||||
|
||||
完整文档见 [docs/DLP_IO_LIBRARY.md](docs/DLP_IO_LIBRARY.md)。
|
||||
完整文档见 [docs/DLP_IO_LIBRARY.md](docs/DLP_IO_LIBRARY.md);DLP 环境实测特征与判定/写入逻辑推导见 [docs/DLP_ENVIRONMENT_NOTES.md](docs/DLP_ENVIRONMENT_NOTES.md)。
|
||||
|
||||
## DLP 程序化特征与实现逻辑
|
||||
|
||||
在透明加密 DLP 环境下实测到的关键事实(详见上面的特征文档):
|
||||
|
||||
- **文件属性不可区分**:加密/未加密文件的 attrib、ADS、大小完全一致,只有内容可判。
|
||||
- **同尺寸流式加密**:密文无附加头尾、无静态 magic,且进程按身份分白名单——
|
||||
`python.exe`/`cmd.exe`/`powershell.exe` 读加密文件得到明文(透明解密),
|
||||
`certutil.exe` 等非白名单工具得到磁盘密文。
|
||||
- **白名单读透明 ≠ 写加密**:写入是否被加密因机器策略而异,必须运行时探测。
|
||||
|
||||
对应的实现逻辑:
|
||||
|
||||
- **读取始终明文**:打包 EXE(非白名单)经 stdin 注入 helper 源码拉起白名单
|
||||
`python.exe`,由它读明文、经认证 Named Pipe 回传(python 按身份白名单,
|
||||
任何父进程拉起都有效)。
|
||||
- **`is_encrypted(path)` 加密判定**:先比 certutil 原始哈希与当前进程视图哈希,
|
||||
不等即加密;相等时存在歧义(未加密,或 EXE 读加密文件),再比 helper 视图与
|
||||
本地视图的前 64 KiB 定案——Python/pyd/EXE 三种环境都正确。
|
||||
- **写入始终未加密**:按文件后缀探测直写是否落盘明文(写探针文件后用 certutil
|
||||
原始哈希校验);若直写会被加密,自动切换到 PowerShell stdin 管道中转写盘,
|
||||
字节不落地任何临时文件;两通道均不可用则抛 `DlpWriteError`,绝不静默写密文。
|
||||
可用 `DLP_IO_WRITE_CHANNEL=direct|powershell` 强制指定通道。
|
||||
|
||||
## 安装
|
||||
|
||||
|
||||
Reference in New Issue
Block a user