顶象学院首页>文章详情

Feei(止介) | 识破“钓鱼”伪装 邮箱防骗策略详解

2019-08-16|Feei(止介) 10568918

作者

作者|Feei(止介):蚂蚁金服负责安全架构工作,任高级安全专家,原美丽联合集团信息安全总监, Cobra作者,擅长解决方案产品化和项目管理,同时也是一名安全工程师,专注于自动化安全发现与防御,擅长安全架构设计、安全产品解决方案并产品化。

1、邮件伪造实践

1.1 邮件伪造原理

SMTP协议本身的From是可以随便填写的,多见于各种邮件钓鱼。

1.2 常见钓鱼邮件

冒充Apple官方,让你登陆Apple ID,从而盗取你的苹果账号,一般手机丢失后容易收到此类邮件用来骗取你账号密码从而解锁iPhone。 

undefined

 

冒充老板、同事,索要通讯录、让你点击连接修改密码、索要其它信息等。

undefined

冒充各种服务商,让你点击连接骗取账号密码。

undefined

钓鱼邮件手法多种多样,但万变不离其宗,本质上是希望你能:

◆ 打开邮件:不要以为就打开邮件不做其它操作就没风险,打开的这一步可能就触发邮件内的图片等资源加载,对方就能知道你打开的时间和IP等信息,另外也有一些针对邮件服务商的漏洞,打开后也会触发。

◆ 回复邮件:往往冒充各种人,比如你的老板、同事甚至政府机关等以各种名义让你提供账号密码或个人信息等。

◆ 点击连接:会跳到恶意网站,通过一些漏洞使你电脑执行特定程序。

◆ 下载附件:附件可能是个文档或者图标,点击后就会触发可执行程序。目的也各不相同:

◆ 加密电脑所有有用文件并勒索;

◆ 控制电脑作为肉鸡用来攻击或浏览广告;

◆ 恶作剧,删除所有文件,强制死机等;

1.3 邮件伪造实践

我们以马化腾邮箱的名义给自己发一封邮件,只需改动SMTP里的From即可。在腾讯企业邮箱邮件列表页中没有任何异常。 

undefined

在腾讯企业邮箱邮件详情中会提示**真实发送地址和宣称的发件人地址不一致**,并显示了真实的发送地址。 

undefined

在macOS的Mail客户端中无任何异常。 

undefined

在微信小程序的腾讯企业邮箱中无任何异常。 

undefined

 

1.4 邮件伪造代码

2、邮件伪造防范

2.1 限制来信地址(SPF)

发件人策略框架(SPF),简单理解就是告诉所有的邮件服务器收到我这个域名发送的邮件时,以我告诉你的IP地址为准,不是我们IP地址的都算作伪造。

SPF原理

通过给发件域名配置一个TXT类型DNS记录,当其它的DNS Server收到我们域名的邮件时,会查询该域名TXT记录中是否存在SPF记录,如果存在则会获取SPF标记的IP,拿到IP和实际发件IP比对,从而判断是否伪造。

腾讯企业邮箱的SPF记录: 

也就是所有QQ邮箱发出去的邮件,比如网易邮箱收到时会去查询QQ的SPF设置并捞取所有信任IP,根据邮件发件人和信任IP比对来判断是否为伪造邮件。

SPF配置

在域名DNS服务商里面配置**根域名(@)的**TXT记录,**TTL**保留默认或3600,以feei.cn(使用的腾讯企业邮箱)的TXT记录为例。 

v=spf1 include:spf.mail.qq.com -all

 ● v=spf1代表为SPF1版本。

● include:spf.mail.qq.com表示使用spf.mail.qq.com的TXT记录作为信任IP。

● -all表示除开之前配置的信任IP外,其它所有的都拒绝接收。

● 每条内容以空格作为分隔

● 每个修饰符只能出现一次 

 限定符

  • +表示通过,指定允许发送的主机
  • -表示失败,指定拒绝发送的主机
  • ~表示软失败,不允许发送但标记起来
  • ?中性,不确定

all/include描述

  • all一般放在末尾,表示始终匹配
  • include表示多层嵌套

ip4/ip6描述符

  • ip4:ip,比如ip4:1.1.1.1
  • ip4:IP段,比如ip4:1.1.1.1/24
  • ip6:ip,比如ip6:1080::8:800:68.0.3.1/96

a/mx描述符

  • 默认域名的A记录,比如v=spf1 a -all
  • 指定域名的A记录,比如v=spf1 a:feei.cn -all
  • 按照MX记录的优先级,比如v=spf1 mx mx:feei.cn -all

详细的查看官方文档SPF语法。

SPF例子:

 # 域名不会发送邮件"v=spf1 -all"
# 认为SPF无用或无关紧要"v=spf1 +all"
# 只允许1.1.1.1发出来的邮件"v=spf1 ip4:1.1.1.1 -all"
# 只允许腾讯企业邮箱发出来的邮件"v=spf1 ip4:spf.mail.qq.com -all"

SPF枚举邮件服务器地址
根据SPF特性,可以通过递归方式枚举出某个企业的全部邮件服务器地址。 

2.2 防止邮件内容篡改(DKIM)

DKIM作用

使用域名密钥识别邮件 (DKIM) 标准有助于向外发送邮件遭到假冒,包括邮件内容遭到更改、使邮件显示为非真实的来源的发件人或发件地址,这些都是对邮件未授权利用的常见手法。

DKIM原理

使用DKIM,将会加密签名添加到所有外发邮件的Header中,收到此类邮件的邮件服务器会使用DKIM解密邮件Header,并验证邮件发送后是否遭到篡改。

DKIM使用

  • 为域名生成密钥
  • 向域名DNS记录增加公钥,以便于其它邮件服务器使用此密钥读取邮件Header中DKIM
  • 开启DKIM功能,以便于将DKIM签名添加到所有发送的邮件Header中

国内的腾讯企业邮箱和网易企业邮箱都不支持DKIM。

2.3 处理可疑邮件(DMARC)

DMARC(Domain-based Message Authentication, Reporting & Conformance)是一种基于现有的SPF和DKIM协议的可扩展电子邮件认证协议,邮件收发双方建立了邮件反馈机制,便于邮件发送方和邮件接收方共同对域名的管理进行完善和监督。对于未通过前述检查的邮件,接收方则按照发送方指定的策略进行处理,如直接投入垃圾箱或拒收。从而有效识别并拦截欺诈邮件和钓鱼邮件,保障用户个人信息安全。简单讲就是不像之前的SPF的管控策略,只能拦截、通过,而是可以有更多的操作方式,比如扔进垃圾箱甚至讲这些邮件转发给我们。

DMARC配置

检查一个网站的DMARC配置可以查看_dmarc.domain.comTXT记录,比如qq.com的DMARC记录。 

  • v=DMARC1表示使用的是DMARC1版本,必须放在最前面
  • p表示邮件处理策略
  • none表示不采取特定策略,初期观察建议采用此模式
  • quarantine表示邮件接收者将邮件标记为可疑的
  • reject表示邮件接收者拒收该邮件
  • rua表示将一段时间的汇总报告反馈的邮件地址,可用逗号分隔
  • ruf表示当检测到伪造邮件时将伪造信息的报告反馈的邮件地址,可用逗号分隔

详细语法介绍见DMARC文档。例如我希望我域名feei.cn配置DMARC,则在我的DNS服务商管理后台增加一条DNS记录。HOST为_dmarc,类型为TXT,值为v=DMARC1; p=none; rua=mailto:mail-report@feei.cn

DMARC的前提必须已经配置过SPF。

DMARC例子

2.4 IP的反向解析地址(PTR)

PTR(Pointer Record)是将IP解析到域名上,常见的域名解析到IP是通过A(IPv4)或AAAA(IPv6)进行的,可以简单理解为IP的反向域名解析,常用于提升邮箱的发信信誉从而提高到达率。

查询IP的PTR可以通过dig -x ip,比如查看8.8.8.8的PTR记录为google-public-dns-a.google.com.。 

PTR配置

PTR的配置无法在DNS服务商配置,因为IP的归属是运营商(ISP),因此如果是买的云主机需要向运营商提交申请进行配置解析。

3、邮件安全建议

3.1 自身加固

  • 强制开启登陆二次验证(扫码、短信、Google Auth)
  • 关闭企业邮箱中的组织架构信息
  • 去掉企业邮箱中的除姓名、邮箱地址外其它的信息(手机号、职位、部门等)
  • 发送营销邮件时使用二级域名,比如reply@event.feei.cn,当被封禁时不会影响其他业务

3.2 安全意识

  • 勿打开未知人员发送的邮件,尤其是邮件附件
  • 不要回复任何要求提供账号密码或个人信息的邮件
  • 发送敏感数据应进行加密
  • 勿使用公司邮箱作为个人用途
  • 公司邮箱邮件勿转发到个人邮箱中
  • 浏览器中使用HTTPS访问邮箱,客户端中使用SSL/TLS访问邮箱

加入社群

扫码进群领
【业务安全】资料礼包

在线咨询
400-878-6123