我的网络开发之旅——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
相关文章
|
2月前
|
网络协议 安全 网络安全
网络编程:基于socket的TCP/IP通信。
网络编程:基于socket的TCP/IP通信。
145 0
|
9天前
|
安全 网络安全 云计算
云计算与网络安全:技术融合与挑战分析
【9月更文挑战第31天】本文将深入探讨云计算和网络安全之间的关系,包括云服务、网络安全、信息安全等技术领域。我们将从云计算的基本概念和特性出发,分析其在网络安全方面的优势和挑战,并探讨如何通过技术和策略来提高云计算的安全性。同时,我们也将讨论网络安全在云计算环境下的重要性,以及如何通过有效的安全措施来保护云服务的安全。最后,我们将通过代码示例来展示如何在云计算环境中实现网络安全。
21 3
|
14天前
|
缓存 网络协议 网络架构
网络抓包分析【IP,ICMP,ARP】以及 IP数据报,MAC帧,ICMP报和ARP报的数据报格式
本文详细介绍了如何使用网络抓包工具Wireshark进行网络抓包分析,包括以太网v2 MAC帧、IP数据报、ICMP报文和ARP报文的格式,以及不同网络通信的过程。文章通过抓包分析展示了IP数据报、ICMP数据报和ARP数据报的具体信息,包括MAC地址、IP地址、ICMP类型和代码、以及ARP的硬件类型、协议类型、操作类型等。通过这些分析,可以更好地理解网络协议的工作机制和数据传输过程。
网络抓包分析【IP,ICMP,ARP】以及 IP数据报,MAC帧,ICMP报和ARP报的数据报格式
|
1天前
|
网络协议 Java 程序员
【网络】TCP/IP
【网络】TCP/IP
9 0
|
28天前
|
网络协议 网络架构 数据格式
TCP/IP基础:工作原理、协议栈与网络层
TCP/IP(传输控制协议/互联网协议)是互联网通信的基础协议,支持数据传输和网络连接。本文详细阐述了其工作原理、协议栈构成及网络层功能。TCP/IP采用客户端/服务器模型,通过四个层次——应用层、传输层、网络层和数据链路层,确保数据可靠传输。网络层负责IP寻址、路由选择、分片重组及数据包传输,是TCP/IP的核心部分。理解TCP/IP有助于深入掌握互联网底层机制。
159 2
|
1月前
|
网络协议 Java
谈谈TCP/IP网络编程
【9月更文挑战第1天】在当今数字化的世界中,网络通信是连接各种设备和系统的关键。TCP/IP协议作为互联网通信的基石,被广泛应用于各种网络场景。了解TCP/IP网络编程的概念,并掌握如何在Java中实现TCP/IP通讯,对于开发人员来说是非常重要的。
46 4
|
27天前
|
云安全 安全 网络安全
探索云计算与网络安全的共生之道在数字化浪潮席卷全球的今天,云计算作为信息技术的一大革新,正重塑着企业的运营模式与服务交付。然而,随着云服务的普及,网络安全与信息安全的挑战也日益凸显,成为制约其发展的关键因素。本文旨在深入探讨云计算环境下的网络安全问题,分析云服务、网络安全及信息安全之间的相互关系,并提出相应的解决策略,以期为构建一个更安全、可靠的云计算生态系统提供参考。
本文聚焦于云计算环境中的网络安全议题,首先界定了云服务的基本概念及其广泛应用领域,随后剖析了当前网络安全面临的主要威胁,如数据泄露、身份盗用等,并强调了信息安全在维护网络空间秩序中的核心地位。通过对现有安全技术和策略的评估,包括加密技术、访问控制、安全审计等,文章指出了这些措施在应对复杂网络攻击时的局限性。最后,提出了一系列加强云计算安全的建议,如采用零信任架构、实施持续的安全监控与自动化响应机制、提升员工的安全意识教育以及制定严格的合规性标准等,旨在为云计算的安全可持续发展提供实践指南。
60 0
|
2月前
|
云安全 SQL 安全
盘点分析2024上半年网络攻击趋势
2024年上半年,随着数字化进程加速,网络安全问题愈发凸显。网络攻击频发,影响广泛。APT攻击持续,境外团伙重点针对广东等地的信息技术、政府及科研机构;勒索软件采用“双重勒索”策略,危害加剧;DDoS攻击与Web攻击频次显著提升。互联网服务、政府及科研机构为主要受害对象,其他行业亦受影响。相较2023年,攻击更加多样与频繁。企业需强化密码安全、网络防护,及时更新软件补丁,并定期备份数据,以抵御不断演进的网络安全威胁。
|
2月前
|
网络协议 Linux
在Linux中,如何分析网络连接和端口占用情况?
在Linux中,如何分析网络连接和端口占用情况?
|
2月前
|
网络协议 网络架构
【网络工程师配置篇】BGP联盟配置案例及分析(超级干货)
【网络工程师配置篇】BGP联盟配置案例及分析(超级干货)
126 2