零、绪论:

  水一篇,很小,只是一点思路记录,在工作中经常遇到的一类小问题。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日志匹配。

追踪溯源--抓住隐藏在NAT后面的罪犯的更多相关文章

  1. 网络地址转换NAT的两种模式(概念浅析)& IP溯源

    由于全球IPv4地址越来越少.越来越贵,因此大到一个组织,小到一个家庭一个人都很难获得公网IP地址,所以只能使用内网地址,从而和别人共享一个公网IP地址.在这种情况下,NAT技术诞生. 翻译 NAT( ...

  2. 转发 通过NAT和防火墙特性和TCP穿透的测评(翻译)

    转自 http://blog.csdn.net/sjin_1314/article/details/18178329 原文:Characterization and Measurement of TC ...

  3. pycallgraph 追踪Python函数内部调用

    安装 安装pycallgraph 安装依赖 使用 待测脚本 追踪脚本 追踪结果 高级篇 隐藏私密函数 控制最大追踪深度 总结 GitHub上好代码真的是太多了,名副其实的一个宝藏.但是最近自己也反思了 ...

  4. 黑白之间的FastFlux

    DNS请求 通常我们对一个域名进行DNS请求,尤其是A记录,一般在一段时间内是不变的,其结果的异同也就是可能因地域而得到不同的结果.当然这个结果可能是个集合,也可能是一个IP地址.因为我们要考虑到CD ...

  5. CHIMA网络安全攻防大赛经验分享

    比赛模式 第一轮:20分钟基础知识赛(50道题) 安全运维,法律法规,linux操作系统等 第二轮:50分钟CTF夺旗(5道题) 题目涵盖 密码学 运用多种工具,如ASCII对照,古典密码,凯撒密码, ...

  6. 【ARTS】01_39_左耳听风-201900805~20190811

    ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...

  7. 威胁快报|挖矿团伙8220进化,rootkit挖矿趋势兴起

    近日,阿里云安全团队发现8220挖矿团伙为了更持久的驻留主机以获得最大收益,开始使用rootkit技术来进行自我隐藏.这类隐藏技术的使用在watchdogs等挖矿蠕虫使用后开始出现逐渐扩散和进化的趋势 ...

  8. 【应急响应】Windows应急响应入门手册

    0x01 应急响应概述   首先我们来了解一下两个概念:应急响应和安全建设,这两者的区别就是应急响应是被动响应.安全建设是主动防御.  所谓有因才有果,既然是被动的,那么我们在应急响应的时候就得先了解 ...

  9. 带你读AI论文:NDSS2020 UNICORN: Runtime Provenance-Based Detector

    摘要:这篇文章将详细介绍NDSS2020的<UNICORN: Runtime Provenance-Based Detector for Advanced Persistent Threats& ...

随机推荐

  1. 使用多字节字符集的跨平台(PC、Android、IOS、WP)编码/解码方法

    随着移动端的发展,跨平台已成为通讯架构设计的重要考虑因素,PC.Android.IOS.WP等跨多平台间的数据通讯,必然要解决字符编码/解码的问题. 多字节字符集MBCS不是跨平台的首选字符集,面向跨 ...

  2. 报错 System.ComponentModel.Win32Exception:拒绝访问,如何以管理员身份调试应用程序

    打开程序集的属性窗口,找到“安全性”设置,其中有一个“启用 ClickOnce 安全性设置”,勾选后再反勾选该复选框. 此时在解决方案资源管理器中,就可以找到 app.manifest 文件,勾选“启 ...

  3. apache虚拟主机设置泛域名的方法

    在apache虚拟主机中设置泛域名解析,主要是用到ServerAlias 的配置. 1.支持多域名 例如,让mail.jbxue.org.smtp.jbxue.org.pop3.jbxue.org 都 ...

  4. U3D安卓下OnApplicationQuit不执行的解决方法

    安卓下当你按Home键,程序会进入暂停状态.所以只能改成调用OnApplicationPause. Unity论坛上说实现IDispose接口也可以,似乎IOS可以,但安卓测试了,无效.

  5. docker使用问题总结

    1. docker报[Error response from daemon: Error running DeviceCreate (createSnapDevice) dm_task_run fai ...

  6. mysql5.5和5.6版本间的坑

    mysql 5.5 int类型 设置不为null,无填充,添加新数据会自动填充0 而5.6同样的配置新建数据没值时,不让添加 5.5 datetime 不能设置默认时间(可以通过某些复杂的方式,这里说 ...

  7. Android——UI事件的处理机制(基于监听器)

    1.普通内部类(常用) xml <Button android:hint="reset" android:layout_columnWeight="1" ...

  8. call_usermodehelper内核中运行用户应用程序

    init是用户空间第一个程序,在调用init前程序都运行在内核态,之后运行init时程序运行到用户态. 操作系统上,一些内核线程在内核态运行,它们永远不会进入用户态.它们也根本没有用户态的内存空间.它 ...

  9. CentOS下yum安装PostgreSQL

    关键词:centos install PostgreSQL Configure YUM repository vim /etc/yum.repos.d/CentOS-Base.repo [base] ...

  10. 重新=》easyui DataGrid是否可以动态的改变列显示的顺序

    $.extend($.fn.datagrid.methods,{ columnMoving: function(jq){ return jq.each(function(){ var target = ...