如何使用MaskerLogger防止敏感数据发生泄露

科技   2025-01-16 18:49   上海  

关于MaskerLogger


MaskerLogger是一款功能强大的记录工具,该工具可以有效防止敏感数据泄露的发生。



MaskerLogger旨在保护目标系统的日子安全,此格式化程序可确保你的日志安全并防止敏感数据泄露。例如使用此格式化程序,打印下列数据:

logger.info(f'Dont Give Your {secrets} away')


输出结果如下所示:

Dont Give Your ****** away

功能介绍


此格式化程序使用标准logging.Formatter模块。


在将每条记录打印到任何目标(文件、标准输出等)之前,它会确保敏感数据用星号屏蔽,以防止泄露。


工具要求


Python3


工具安装


由于该工具基于Python 3开发,因此我们首先需要在本地设备上安装并配置好最新版本的Python 3环境。


源码获取


广大研究人员可以直接使用下列命令将该项目源码克隆至本地:

git clone https://github.com/oxsecurity/MaskerLogger.git


pip安装


pip install maskerlogger


工具使用


与任何格式化程序一样 - 只需使用 MaskerLogger 格式化程序初始化你的记录器处理程序即可:

from maskerlogger import MaskerFormatter
logger = logging.getLogger('logger')
logger.setLevel(logging.DEBUG)
handler = logging.StreamHandler()
handler.setFormatter(
MaskerFormatter("%(asctime)s %(name)s %(levelname)s %(message)s"))
logger.addHandler(handler)


如果由于某种原因,你想要禁用特定日志行上的屏蔽,请使用该SKIP_MASK(“隐蔽跳过”)机制:

from masker_formatter import MaskerFormatter, SKIP_MASK
...
...
logger.info('Line you want to skip', extra=SKIP_MASK)

如果你希望仅屏蔽敏感数据的其中一部分(而不是其全部长度),则可以在格式化程序中设置redact参数,该redact参数可以指定要屏蔽的机密的百分比。


以下是如何使用它的示例:

handler.setFormatter(
MaskerFormatter("%(asctime)s %(name)s %(levelname)s %(message)s",
redact=30))


在此示例中,30% 的敏感数据将被屏蔽。请根据需要调整redact的值以满足你的要求。


使用自定义配置文件


要创建和使用自己的配置文件,请在初始化格式化程序时设置路径:

handler.setFormatter(
MaskerFormatter("%(asctime)s %(name)s %(levelname)s %(message)s",
                    regex_config_path="your/config/gitleaks.toml"))

许可证协议


本项目的开发与发布遵循MIT开源许可协议。


项目地址


MaskerLogger

https://github.com/oxsecurity/MaskerLogger


FreeBuf粉丝交流群招新啦!
在这里,拓宽网安边界
甲方安全建设干货;
乙方最新技术理念;
全球最新的网络安全资讯;
群内不定期开启各种抽奖活动;
FreeBuf盲盒、大象公仔......
扫码添加小蜜蜂微信回复「加群」,申请加入群聊】





FreeBuf
中国网络安全行业门户
 最新文章