我的网络开发之旅——TCP/IP协议分析

简介:

之前在当地的一期技术沙龙做了一个《网络开发那些事》的技术分享,讲述了自己职业生涯从事的与网络相关的开发工作。在接触这类开发之前一直在从事业务系统或者单机系统的开发,说真的那时感觉自己对程序员这个职业既没有兴趣也没有多大能力,但是接触了网络相关的开发之后,慢慢的激发出了自己对这个行业的热情和潜力,使自己找到了方向。到底这类开发工作有什么神奇的地方?来吧,咱一起来看看。


网络开发究竟有些什么?

从招聘网站上截取典型的几段:

  • 熟悉Socket编程,熟悉Tcp/Ip协议栈;

  • 熟悉TCP/IP协议、UDP协议,有相关的协议开发经验;

  • 熟悉网络编程/多线程编程技术;

我们提取出其中的几个关键词:TCP/IP、Socket、协议、多线程,其实做网络相关的开发也就是以这几个关键词为主线。

我做的第一份与网络有关的工作是与安全有关的:核心是基于TCP/IP 协议的分析,相关的工作与socket编程关系不大,但必须要求熟悉TCP/IP协议的原理,今天这篇文章我就以此为专题。

想必有些朋友曾经遇到过这样的情形:

  • 在公司不敢上无关网站,无聊!

  • 在公司不敢下电影,浪费大好带宽!

  • 在公司甚至都不敢发某些邮件,郁闷了吧!

其实这些都是“基于TCP/IP 协议的分析”惹的祸,这些结果都可以通过协议分析之后很直观的展现出来。大家可以看这么两幅图

wKiom1QYUNbB1J_ZAAJZSiztW6Q817.jpg

wKiom1QYUNbDReTbAAFrY84i6wQ645.jpg

正是TCP/IP协议栈这种良好的分层设计为我们进行协议分析提供了极大的便利,那么我们该如何动手呢?


我们需要站在“巨人"的肩膀之上——pcap,我们截取维基百科上的定义来说明一下他:

In the field of computer network administration, pcap (packet capture) consists of an application programming interface (API) for capturing network traffic. Unix-like systems implement pcap in the libpcap library; Windows uses a port of libpcap known as WinPcap.

所以我们可以利用pcap库来对抓取的网络数据进行剥茧抽丝!

其实还有许多其他的”巨人“供我们继续踩:

  • snort的代码架构清晰,一些数据结构设计的非常巧妙;

  • tcpdump的代码短小精悍,使用方法为大家所熟知;

  • wireshark对各协议的分析最为全面。

从其中我们还可以学习到做协议分析在架构上一定要采用模块化设计,引入插件机制。


只是这么简单吗?当海量的网络数据”喷涌而来“时你会面临下面的困境

  • 作为入侵检测系统:海量数据的实时监测会成为难点(匹配算法——KMP算法)

  • 作为审计系统:大数据存储,挖掘会成为难点(分布式文件系统)


书籍推荐:

做好协议分析我认为只需读好一本书籍就好《TCP/IP详解 卷1:协议》

tip:我们的网络数据有多不安全——MSN消息是明文传输的(逝者已逝,不多说坏话了);曾经的有些邮箱也是明文,我曾经在办公网络中抓取到很多人的邮箱密码;另外现在用假wifi对手机钓个鱼的现象也时有发生......

我工作中利用网络协议分析来干什么?——”抓木马“,因为木马除了本地行为和特征外其实还有很突出的网络行为

  • 反向链接是木马最突出的一个行为特征,主要是为了应付各级防火墙的外出松内进紧的防控策略,但是我们可以利用这一特征来定位可疑的程序。

  • 端口复用:杀毒软件的端口扫描工具总是可以定位某些可疑端口,躲在某些知名端口的数据通道里干坏事就成为某些木马的生存之道。

  • 无端口技术:就如金庸笔下的风清扬一样,只闻其名未见其踪,从未抓到过。

以上各种行为再加上一些应用层协议的分析工作只能确定程序可疑,得靠上层的各种加权分析或者人为干预才能完全定性。但我一很牛的哥们(火星人)专门做木马样本的逆向工作,找出特征值把网络数据用匹配算法一比对一抓一个准。

正是这份与我们现实生活有很多交集的工作勾起了我对开发的兴趣,我记得我曾通过协议分析看哪个同事上***网站,通过木马植入做同事的恶作剧,还被亲戚要求帮忙监控孩子的网上行为......

本文转自永远的朋友博客51CTO博客,原文链接http://blog.51cto.com/yaocoder/1553513如需转载请自行联系原作者

yaocoder
相关文章
|
1月前
|
人工智能 边缘计算 物联网
蜂窝网络未来发展趋势的分析
蜂窝网络未来发展趋势的分析
67 2
|
1月前
|
数据采集 缓存 定位技术
网络延迟对Python爬虫速度的影响分析
网络延迟对Python爬虫速度的影响分析
|
25天前
|
网络协议
网络通信的基石:TCP/IP协议栈的层次结构解析
在现代网络通信中,TCP/IP协议栈是构建互联网的基础。它定义了数据如何在网络中传输,以及如何确保数据的完整性和可靠性。本文将深入探讨TCP/IP协议栈的层次结构,揭示每一层的功能和重要性。
53 5
|
4天前
|
安全 网络协议 网络安全
网络不稳定导致HTTP代理频繁掉线的分析
随着数字化时代的加速发展,网络安全、隐私保护及内容访问自由成为用户核心需求。HTTP代理服务器因其独特技术优势受到青睐,但其掉线问题频发。本文分析了HTTP代理服务器不稳定导致掉线的主要原因,包括网络问题、服务器质量、用户配置错误及IP资源问题等方面。
20 0
|
29天前
|
安全 网络协议 网络安全
【Azure 环境】从网络包中分析出TLS加密套件信息
An TLS 1.2 connection request was received from a remote client application, but non of the cipher suites supported by the client application are supported by the server. The connection request has failed. 从远程客户端应用程序收到 TLS 1.2 连接请求,但服务器不支持客户端应用程序支持的任何密码套件。连接请求失败。
|
1月前
|
网络协议 网络安全 网络虚拟化
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算。通过这些术语的详细解释,帮助读者更好地理解和应用网络技术,应对数字化时代的挑战和机遇。
89 3
|
1月前
|
存储 网络协议 安全
30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场
本文精选了 30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场。
83 2
|
1月前
|
网络协议 安全 Go
Go语言进行网络编程可以通过**使用TCP/IP协议栈、并发模型、HTTP协议等**方式
【10月更文挑战第28天】Go语言进行网络编程可以通过**使用TCP/IP协议栈、并发模型、HTTP协议等**方式
51 13
|
1月前
|
存储 安全 网络安全
网络安全法律框架:全球视角下的合规性分析
网络安全法律框架:全球视角下的合规性分析
46 1
|
1月前
|
网络协议 算法 网络性能优化
计算机网络常见面试题(一):TCP/IP五层模型、TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议
计算机网络常见面试题(一):TCP/IP五层模型、应用层常见的协议、TCP与UDP的区别,TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议、ARP协议