側錄.NET程式網路傳輸內容

前幾天偵查NuGet Server無法上傳問題時,我用了個有趣的小技巧觀察nuget.exe程式與Server間的網路傳輸內容。

一般來說,提到監聽網路傳輸,大多人想到的是Microsoft Network MonitorWireshark之類的Sniffer工具,但.NET有個網路追蹤(Network Tracing)功能,就鮮為人知了。

MSDN文章上對於網路追蹤的各參數解說得很清楚,而且,即便不是自己寫的.NET程式,只要加上*.exe.config就可開啟追蹤記錄功能。於是在nuget.exe的茶包實例中,就順道演練了這個特殊偵錯技巧,做法是新增一個nuget.exe.config放在nuget.exe所在目錄:

<?xml version="1.0" encoding="utf-8" ?>
 <configuration>
 <system.diagnostics>
    <sources>
      <source name="System.Net">
        <listeners>
          <add name="MyNetTrace"/>
        </listeners>
      </source>
      <source name="System.Net.HttpListener">
        <listeners>
          <add name="MyNetTrace"/>
        </listeners>
      </source>
      <source name="System.Net.Sockets">
        <listeners>
          <add name="MyNetTrace"/>
        </listeners>
      </source>
      <source name="System.Net.Cache">
        <listeners>
          <add name="MyNetTrace"/>
        </listeners>
      </source>
    </sources>
    <sharedListeners>
      <add name="MyNetTrace" 
           type="System.Diagnostics.TextWriterTraceListener"
           initializeData ="D:\SocketEx.log" />
    </sharedListeners>
    <switches>
      <add name="System.Net" value="Verbose" />
      <add name="System.Net.Sockets" value="Information" />
      <add name="System.Net.Cache" value="Information" />
      <add name="System.Net.HttpListener" value="Information" />
    </switches>
  </system.diagnostics>  
 </configuration>

加入config檔後,nuget.exe執行時會將網路傳輸過程的記錄資訊(甚至包含傳輸內容)寫入D:\SocketEx.log檔案。重新執行nuget.exe push將程式包上傳至NuGet Server 1.7版,在SocketEx.log中可以看到詳盡的傳送歷程,包含了nuget.exe利用HTTP PUT Request將程式包內容(連.nupkg的二進位內容也被一併記錄下來)傳送到網站。

上傳後Web Server回應HTTP Status 201, Created。(新增資料後傳回HTTP 201符合Restful API風格) 由來往封包判讀一切正常,但Server端就是沒有寫入程式包,ProcMon也抓不到任何嘗試寫入.nupkg的行為,直到換成NuGet Server 1.9版後問題才消失。

展示完畢,順便也在此叮嚀,若程式必須透過網路傳送敏感資訊,請務必SSL或加密演算法加上保護。除了.NET的網路追蹤功能,有心人士還有很多手段可以偷取傳輸內容(也不限定.NET程式,任何語言的程式都有風險)。藉由加密,才能在被竊聽時,提高破解難度,提供最基本的資安防護。

歡迎推文分享:
Published 28 April 2012 11:25 PM 由 Jeffrey
Filed under: ,
Views: 9,131



意見

# 貓咪圓滾滾 said on 28 May, 2012 02:37 PM

請黑大參考

Flame: Massive cyber-attack discovered, researchers say

www.bbc.co.uk/.../technology-18238326

Web War II: What a future cyberwar will look like

www.bbc.co.uk/.../magazine-17868789

你的看法呢?

(必要的) 
(必要的) 
(選擇性的)
(必要的) 
(提醒: 因快取機制,您的留言幾分鐘後才會顯示在網站,請耐心稍候)

5 + 3 =

搜尋

Go

<April 2012>
SunMonTueWedThuFriSat
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345
 
RSS
創用 CC 授權條款
【廣告】
twMVC
最新回應

Tags 分類檢視
關於作者

一個醉心技術又酷愛分享的Coding魔人,十年的IT職場生涯,寫過系統、管過專案, 也帶過團隊,最後還是無怨無悔地選擇了技術鑽研這條路,近年來則以做一個"有為的中年人"自許。

文章典藏
其他功能

這個部落格


Syndication