個人網絡開發之旅——TCP/IP協議分析

以前在當地的一期技術沙龍作了一個《網絡開發那些事》的技術分享,講述了本身職業生涯從事的與網絡相關的開發工做。在接觸這類開發以前一直在從事業務系統或者單機系統的開發,說真的那時感受本身對程序員這個職業既沒有興趣也沒有多大能力,可是接觸了網絡相關的開發以後,慢慢的激發出了本身對這個行業的熱情和潛力,使本身找到了方向。到底這類開發工做有什麼神奇的地方?來吧,咱一塊兒來看看。html


網絡開發究竟有些什麼?

從招聘網站上截取典型的幾段:程序員

  • 熟悉Socket編程,熟悉Tcp/Ip協議棧;算法

  • 熟悉TCP/IP協議、UDP協議,有相關的協議開發經驗;編程

  • 熟悉網絡編程/多線程編程技術;安全

咱們提取出其中的幾個關鍵詞:TCP/IP、Socket、協議、多線程,其實作網絡相關的開發也就是以這幾個關鍵詞爲主線。網絡

我作的第一份與網絡有關的工做是與安全有關的:核心是基於TCP/IP 協議的分析,相關的工做與socket編程關係不大,但必需要求熟悉TCP/IP協議的原理,今天這篇文章我就以此爲專題。數據結構

想必有些朋友曾經遇到過這樣的情形:多線程

  • 在公司不敢上無關網站,無聊!架構

  • 在公司不敢下電影,浪費大好帶寬!app

  • 在公司甚至都不敢發某些郵件,鬱悶了吧!

其實這些都是「基於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對手機釣個魚的現象也時有發生......

我工做中利用網絡協議分析來幹什麼?——」抓***「,由於***除了本地行爲和特徵外其實還有很突出的網絡行爲

  • 反向連接是***最突出的一個行爲特徵,主要是爲了應付各級防火牆的外出鬆內進緊的防控策略,可是咱們能夠利用這一特徵來定位可疑的程序。

  • 端口複用:殺毒軟件的端口掃描工具老是能夠定位某些可疑端口,躲在某些知名端口的數據通道里幹壞事就成爲某些***的生存之道。

  • 無故口技術:就如金庸筆下的風清揚同樣,只聞其名未見其蹤,從未抓到過。

以上各類行爲再加上一些應用層協議的分析工做只能肯定程序可疑,得靠上層的各類加權分析或者人爲干預才能徹底定性。但我一很牛的哥們(火星人)專門作***樣本的逆向工做,找出特徵值把網絡數據用匹配算法一比對一抓一個準。

正是這份與咱們現實生活有不少交集的工做勾起了我對開發的興趣,我記得我曾經過協議分析看哪一個同事上***網站,經過***植入作同事的惡做劇,還被親戚要求幫忙監控孩子的網上行爲......

相關文章
相關標籤/搜索