比赛一共三题主要是对伪造邮件识别、垃圾邮件分类和高威胁邮件识别。
第一题:伪造邮件识别:
在5000份去除subjec、content的邮件原文(.eml)中识别伪造邮件,如下图:
其中比较重要的字段:Received(代表从发件人到收件人经过的邮箱服务器跳数)、From(邮箱中显示的发送者)、Sender(不一定有,真正的发送者)、X-Originating-IP(发送者IP)、Authentication-Results(SPF、SKIM、DMARC校验结果https://blog.csdn.net/qq_34101364/article/details/108062913)
我们得了100分总结特征如下:
1.存在多个FROM的情况
2.sender和from后缀不同
3.SPF检查不是PASS
4.存在punycode (xn--)(Punycode(译为:域名代码)是一种表示Unicode码和ASCII码的有限的字符集。例如:“münchen”(德国慕尼黑)会被编码为“mnchen-3ya”。
)
5.服务器域名中存在sendgrid(这是一个代发服务器)
6.From
邮件可以见维基百科讲的很全([https://zh.wikipedia.org/wiki/%E9%9B%BB%E5%AD%90%E9%83%B5%E4%BB%B6%E5%9C%B0%E5%9D%80]https://zh.wikipedia.org/wiki/%E9%9B%BB%E5%AD%90%E9%83%B5%E4%BB%B6%E5%9C%B0%E5%9D%80))
第二题:对垃圾邮件进行分类
内部有黄色、广告、开发票、钓鱼、会议通知、代写论文
所以我们一直不知道该分几类(违法还是合法?对于用户有没有用?),就用关键词匹配了一下简单的分类。效果还不错44.5分。
第三题:提取威胁程度较高的软件
不想多说题目太坑了,提供个思路吧:
1.白名单过滤:有交互的可以先删掉(3万份)提取可信IP网段,可以将发送者在这个网段的过滤掉。然后分为两类 存在URL和不存在URL的。
2.存在URL的利用机器学习进行分类,通过调参保证最终的数量;不存在URL的,没进行处理(可以交一下看看分,应该不会太高),可以利用伪造识别一下。
3.可以筛选一个Blacklist(保证具有威胁的(1000左右)),然后上一步的去打榜,看覆盖程度。