一、OpenDLP简介
OpenDLP项目创建于2010年4月,托管于Google( http://code.google.com/p/opendlp/),GPL V3发布,项目比较活跃。但目前产品还比较简陋,支持的文档格式也很有限。
二、OpenDLP详述
OpenDLP的功能包括:
1、Web控制端(管理Windows终端,并发起对Windows、Unix、数据库的敏感数据扫描),后端是MySQL,前端开发语言是Perl,功能如下:
通过Netbios/SMB分发部署终端程序;
通过Netbios/SMB开始、停止、卸载终端程序;
通过SSL接收终端高并发传回的日志;
使用Perl兼容正则表达式(PCREs)从文档中过滤敏感字串;
能创建可重用的扫描条件(包括目录、后缀的黑白名单);
找到的数据可审核确认并标记误报;
将结果导出为XML。
2、Windows终端程序,开发语言C,可运行在win2000以后的系统上,功能如下:
以低优先级的服务运行,用户干扰小;
扫描到一半如果系统重启,会自动断点扫描,无需用户操作;
SSL传输日志到服务端;
使用PCREs正则过滤敏感文件;
能从zip格式的文档(Office 2007和OpenOffice都是zip压缩的XML)中读取数据;
限制使用的最大物理内存,避免扫描大文件时性能波动。
3、数据库扫描
可以支持对数据库内容的扫描,识别数据库中是否有敏感信息,目前支持MySQL与MsSQL。
4、文件系统/文件共享扫描
可以支持通过SMB或sshfs,对Windows或Unix系统中的文件进行扫描。
三、作者对OpenDLP的研发计划
更多数据库支持;
Web界面的增强与完善;
让误报标记更易用;
更多的导出选项——支持word与OpenOffice格式的导出;
对多次扫描做趋势分析;
四、部署需求
- Apache 2.x (tested with 2.2.10)
- MySQL (tested with 5.0.70)
- Samba (tested with 3.0.33)
- winexe ( http://eol.ovh.org/winexe/) somewhere in $PATH
- Perl (tested with 5.8.8)
- Additional Perl modules (see under “Perl Configuration”)
- 32-bit “sc.exe” from a Windows 2000/XP system (not Vista/7)
- FreeTDS
- For agentless scans, an “unzip” binary somewhere in $PATH.
五、其它
安装配置比较复杂,建议下载VM,参考其README: http://opendlp.googlecode.com/files/README-VM.txt
程序下载: http://code.google.com/p/opendlp/downloads/list
部份对信用卡等资料防护的正则:
Credit_Card_Track_1:(\D|^)\%?[Bb]\d{13,19}\^[\-\/\.\w\s]{2,26}\^[0-9][0-9][01][0-9][0-9]{3}
Credit_Card_Track_2:(\D|^)\;\d{13,19}\=(\d{3}|)(\d{4}|\=)
Credit_Card_Track_Data:[1-9][0-9]{2}\-[0-9]{2}\-[0-9]{4}\^\d
Mastercard:(\D|^)5[1-5][0-9]{2}(\ |\-|)[0-9]{4}(\ |\-|)[0-9]{4}(\ |\-|)[0-9]{4}(\D|$)
Visa:(\D|^)4[0-9]{3}(\ |\-|)[0-9]{4}(\ |\-|)[0-9]{4}(\ |\-|)[0-9]{4}(\D|$)
AMEX:(\D|^)(34|37)[0-9]{2}(\ |\-|)[0-9]{6}(\ |\-|)[0-9]{5}(\D|$)
Diners_Club_1:(\D|^)30[0-5][0-9](\ |\-|)[0-9]{6}(\ |\-|)[0-9]{4}(\D|$)
Diners_Club_2:(\D|^)(36|38)[0-9]{2}(\ |\-|)[0-9]{6}(\ |\-|)[0-9]{4}(\D|$)
Discover:(\D|^)6011(\ |\-|)[0-9]{4}(\ |\-|)[0-9]{4}(\ |\-|)[0-9]{4}(\D|$)
JCB_1:(\D|^)3[0-9]{3}(\ |\-|)[0-9]{4}(\ |\-|)[0-9]{4}(\ |\-|)[0-9]{4}(\D|$)
JCB_2:(\D|^)(2131|1800)[0-9]{11}(\D|$)
Social_Security_Number_dashes:(\D|^)[0-9]{3}\-[0-9]{2}\-[0-9]{4}(\D|$)
Social_Security_Number_spaces:(\D|^)[0-9]{3}\ [0-9]{2}\ [0-9]{4}(\D|$)
截图:
六、参考资料
OpenDLP里的正则表达式: http://code.google.com/p/opendlp/wiki/RegularExpressions
PCRE:http://en.wikipedia.org/wiki/PCRE
对DLP(Data Loss Prevention)感兴趣的客户越来越多。商业DLP产品,国内做得最专业的,王婆卖瓜一下,自然是大成天下(http://www.unnoo.com)。但还是有不少用户暂时没有DLP方面的预算,想找免费或开源的替代品——所以我们就对开源DLP产品做些整理,希望能为有DLP需求的企业提供有价值的信息。
一、Djigzo的邮件加密产品
Djigzo邮件加密网关是开源产品,能够对进出网关的电子邮件进行加解密操作,保障邮件不会在传输过程中被人恶意拦截与阅读。该网关在部署时,能与组织当前的邮件系统配合使用(支持Exchange、Lotes和Unix系列的邮件服务器,这种情况下仅提供临时存储与转发功能),也可以作为单独的邮件服务器安装。
加密方式有两种:S/MIME和PDF。S/MIME使用了PKI技术,PDF加密更轻量易于配置;
部署方式:可以部署在实体机器上,支持Ubuntu、Debian、Redhat和CentOS,也可以下载虚拟机镜像,以虚拟应用的方式部署;
开发语言:Java。
二、Djigzo的邮件DLP插件
今年Djigzo新增了DLP(Data Leak Prevention)功能——赶一把目前DLP正火的潮流。能够对邮件头、正文、邮件附件甚至压缩附件中的文本内容进行过滤。
触发拦截:通过xml文件定义关键词,一旦触发,邮件可设置为直接拦截,或存档待处理;
管理功能:管理员在触发拦截后会得到通知,并能够对存档邮件做处理;
支持格式:pdf、doc、xls等类型的文件和txt、html等文本,也能处理zip压缩文件。
三、其它
支持手机:有BlackBerry与Android版本客户端
一些关键词定义:http://www.djigzo.com/patterns.html
官网:http://www.djigzo.com/
了解S/MIME:http://technet.microsoft.com/zh- ... %28EXCHG.65%29.aspx
Snort和ClamAV
Snort:http://www.snort.org,最著名的开源IDS,东家是sourcefire,NASDAQ上市公司。
ClamAV:http://www.clamav.net,开源杀毒引擎,被sourcefire收获,参见:http://www.clamav.net/lang/en/faq/faq-sf/
Snort用于DLP
1、作为IDS,Snort检查网络中的过往流量。因此通过HTTP、SMTP等方式外流的数据,Snort都可过滤;
2、stream5引擎、SMTP引擎和HTTP引擎均可用于发现特定协议中的敏感信息;
3、如果想实时阻断,可以配合netfilter,用类似命令将数据包送入QUEUE序列后,再由SNORT规则处理:iptables -I FORWARD -j QUEUE;
4、有个叫snortdlp的开源半成品:http://code.google.com/p/snortdlp/;
5、无法处理附件中的数据;
ClamAV的DLP模块
1、作为杀毒引擎,功能中很重要的一部份就是文件扫描,因此具备“全文检索”能力;
2、ClamAV中本身内置DLP模块,详见libclamav/dlp.c;
3、DLP相关配置详见etc/clamd.conf,默认是未开启开模块;
# Enable the DLP module
# Default: No
#StructuredDataDetection yes
# This option sets the lowest number of Credit Card numbers found in a file
# to generate a detect.
# Default: 3
#StructuredMinCreditCardCount 5
# This option sets the lowest number of Social Security Numbers found
# in a file to generate a detect.
# Default: 3
#StructuredMinSSNCount 5
# With this option enabled the DLP module will search for valid
# SSNs formatted as xxx-yy-zzzz
# Default: yes
#StructuredSSNFormatNormal yes
# With this option enabled the DLP module will search for valid
# SSNs formatted as xxxyyzzzz
# Default: no
#StructuredSSNFormatStripped yes
好用吗?
我认为开源软件最大的问题是:用户必须自己动手,才能丰衣足食。
而多数商业用户希望厂商能一揽子解决掉他们的全部需求。
Snort和ClamAV都只具备了基础功能,想真正应用,需在此基础上进一步开发。