零、绪论:
水一篇,很小,只是一点思路记录,在工作中经常遇到的一类小问题。NAT后面的地址如何追查下去,推动网络整改不现实,总还要有一些手段来确认。
一、背景:
全球IPv4地址越来越少,也越来越贵,因此大到一个组织,小到一个家庭一个人都很难获得公网IP地址,所以只能使用内网地址,从而和别人共享一个公网IP地址。在这种情况下,NAT技术诞生,传统NAT将内网发其的请求报文原地址转换成自己发往远端服务器,对回来的响应报文做反向处理,看起来有点类似于一个网络层的代理。当然也有把内网服务端口映射在公网出口地址上的,称作DNAT。这类技术在方便我们使用,节约成本,网络互联互通方面做了很多贡献。但是也带来一个严重的问题,就是追踪溯源难度变大,一旦藏在NAT后面,就是一个大的黑洞。
二、追踪溯源:
一般的溯源思路是,收到了监控告警或设备服务异常引发应急排查。首先确定攻击IP,一般Linux系统日志和WEB日志都能查到尝试攻击的IP。如果日志没有,也可以通过netstat或者抓包异常进程连接,确定对端IP(当然这个IP很可能经过多次NAT)。以上内容一般属于应急响应的范畴,主要目的是保障业务损失最小(定损止损),保留证据以便于后续进一步溯源。根据IP、域名等信息查询对端物理地址或具体攻击者、攻击组织是溯源的目标。除了使用威胁情报、DNS记录等手段做安全分析之外,对IP追踪就是一个大的问题。这里主要讲解如何查询NAT后面的真实IP。
三、技术手段:
1、直接证据类:
这个没办法,唯一的直接证据就是可信的NAT网络设备的日志,例如cisco的NAT映射关系:
#show ip nat translation
图片引自互联网
这是铁证,五元组齐全标明一条会话,源地址、源端口、目的地址、目的端口、协议。有了这个证据查询到转换的原始IP,继续追踪就可以了。
2、间接证据:
没有如此详细的日志记录,没有直接证据怎么办。还是有一些其他办法找到一些关联证据:
(1)例如看他还访问过其他的内部服务没有,是否有记录个人特征指纹数据的,例如同一时间段访问过QQ、邮箱、或其他带有身份验证的系统,去取下相关的身份信息。当然这需要内部其他多种安全防护和审计设备的配合与支持。这类主要针对内网或者内部人员发起的攻击比较有效,因为他的其他访问行为也可以被监控记录下来。
(2)观察时间段和频率,虽然没有对应映射关系,但是网络设备可能记录了类似一些日志信息。根据频率时间点吻合或相似的都具有较大的嫌疑。例如通过13:43:21.137发起了6次请求,同样的虽然NAT设备没有具体记录,但是在这个时间点前后,只有一个原始IP连续在极短时间内发起六次请求,那这个原始IP就有重大嫌疑。
(3)反向证据链:分析攻击手法,例如access-log显示user-agent或者其他一些cookie的值、或者扫描器、样本、域名特征啊等等。也可以帮助追查,缩小嫌疑人范围,反推攻击流程,再和仅有的NAT日志匹配。