2015年7月10日 星期五

網路安全防護 - 公開Wifi的危險性

        免費通常都是最貴的,這句話一直廣為流傳,在路上我們常常可以看到免費的Wifi,但是其實都有潛藏著一定的危機(其實我也滿常使用),所以本篇我就實際來架一個免費的Wifi並透過Wireshark來側錄並分析說明。

為了完整收集並可以透過Wireshark進行側錄,所以我先將我無線網路透過 "Virtual Router"的軟體進行公開分享,也就是當成分享熱點使用,然後再讓其他使用者連線,此套軟體使用後,說實在真的簡單又好用,只需設定SSID與密碼,再點選啟動,其他的使用者即可透過此台分享的無線進行連線,非常的方便。



Virtual Router - Wifi Hot Spot for Windows 8, Windows 7 and 2008 R2:
https://virtualrouter.codeplex.com/


啟動此軟體後,我們即可透過Wireshark在熱點的電腦上進行所有封包的 "收集",在此案例中,我透過平版電腦連接到此公開的Wifi進行上網,並透過Telnet的方式連線到PTT(批踢踢)進行瀏覽,在這邊主要會透過Telnet進行瀏覽也是因為一般常見的如Telnet、HTTP等協定,在進行傳輸都是不加密的,所以當你在傳輸的過程中被攔截到時,傳輸的資料就會一覽無遺,所以大家如果在不得已使用公開的Wifi時,也儘量注意在傳輸機敏資料時,使用的協定為何。

Wireshark Download:
https://www.wireshark.org/download.html

捉好封包後,可能封包檔案會比較大,但由於我們已有特定的目標,所以可以針對未加密的封包進行過濾,所以我們在打開封包後,可以直接在過濾視窗上輸入Telnet進行過濾。


過濾後,你會發現封包已少掉非常多,我們希望可以找出登入到PTT的帳號密碼,由於資訊是從Client端傳送到Server端,所以我們可以再過濾資料,條件更改如下。




再次過濾後,很幸運的,你就會發現我們找到我們的目標,也就是我登入的帳號(圖一)與密碼(圖二),以此類推,你要找出HTTP的資料也可以利用上述的方式來進行,相信透過上述的方式,大家可以再深入的了解其重要性,也希望大家可以再注意公開熱點的使用。


關鍵字:SnifferWiresharkVirtual RouterWifi Hot Spot

2015年7月3日 星期五

使用SQL Nexus進行SQL Server完整效能資訊收集與分析

        所謂工欲善其事、必先利其器,當系統發生問題時,如何完整的收集系統問題,並且可以將資料提供給其他的專家進行分析,其實當微軟的SQL Server專家在進行資訊收集時也會透過此工具進行,並進行分析,所以 "非常強烈" 的建議大家使用此工具進行,一來可以盡可能的收集完整的資訊於問題發生的過程中,二來又可以進行自動分析,而且此軟體完全免費,所以此篇我們就來詳細的介紹如何進行。

工具下載:
SQL Nexus Tool
http://sqlnexus.codeplex.com/releases/view/119562

下載後,你會發現有二個主要的資料夾,分別是 DataCollectors 與 SqlNexus4.0.0.64兩個資料夾,DataCollectors主要進行收集,而SqlNexus則是進行資料分析用,首先我們就先進行資料收集的動作。

收集主機資訊:
主機名稱:SQL2012-MAIN
版本:SQL Server 2012
是否為Cluster:否

資料收集:
在DataCollectors目錄中有從SQL 2005 ~ 2014中各個版本的收集腳本,由於我們目前要收集的版本為SQL Server 2012,所以我們先將DataCollectors目錄中的PerfStatsScript2012.zip的壓縮檔解壓縮並放置到SQL Server主機上,然後開啟一個DOS視窗後, 輸入 "StartSQLDiagTrace2012.cmd" 後即可進行收集,如下圖所示。

重點提示:
1、路徑中不要包含有中文名稱。
2、路徑最好不要過長。
3、收集的過程中會稍為的影響系統的運作,可能約5~10%左右,所以進行時請特別注意。
4、收集時最好在問題發生的區段間進行,且最好收集30分鐘。
5、收集完成後,會將檔案輸出在相同目錄中名為 "SQLDiagOutput" 的資料夾。
6、如果要進行結束時,請直接按Ctrl + C即可進行結束。


資料分析:
在使用SQLNexus的程式進行分析前,請先安裝並確認下列的項目是否符合。

先行需求項目:
1、.NET framework 4.0 is required.
2、If you are on SQL 2008 or 2008 R2, you must install report viewer control 2010. If you are on SQL Server 2012, you can skip this step
3、You must install a ReportViewer.exe hotfix. Otherwise, drill-through link won't work.
4、You must install RML Utilities.

接下來我們要將收集到的資料匯入到資料庫後,並透過SQL Nexus進行分析,首先我們先進入SqlNexus的目錄中,然後請一定要以 "Run as Administrator" 的方式啟動sqlnexus.exe的程式

啟動程式後,需選擇你的資料要匯入到那一台的資料庫上,匯入的資料庫與收集的資料庫可以是不同台。

如果你遇到下列的錯誤訊息時,代表你沒有安裝RML Utilities.的套件,請再執行一次並重啟程式。

錯誤訊息:
[sqlnexus.fmNexus.fmNexus.Load] Unable to locate readtrace. Nexus wan't be able to load or analyze profiler trace data.


程式啟動後,請選選擇右上角要匯入的資料庫名稱,預設為 "sqlnexus" ,由於匯入後會進行覆寫,所以請選擇一個資料庫進行匯入,然後再選擇 "Import" 進行匯入。


匯入完成後即會如同下列的畫面。

匯入後,請選擇左上角的 "SQL Perf Main" ,即可發現此工具已完成資料剖析的動作,接下來我們來逐一看看所有的功能。

第一個 "ReadTrace Reports" 此報表會顯示收集的區間中SQL語法執行的活動量。


再點選 "Unique Batches" 後,你可以看到主要有四個區塊,分別是CPU、執行時間、讀取、寫入的統計,而下方也可以看到分別是排行的SQL語法。

Blocking and Resource Wait Statistics的分析。

SQL Server瓶頸分析

其中我覺得非常好用的是此程式可以幫你找出Missing Indexes的部份,並且直接的幫你產生語法,你只需要將語法貼到SQL Server上,即可立即產生相對應的語法。

最後在匯入的過程中可能會有某個檔案造成匯入失敗,你可以將此檔案先行移走,即可匯入完成,此時這個檔案你就必須透過人工的方式進行分析,我將重要的檔案說明整理如下,再請參考。

檔案介紹:
1、SQL Server Log、系統資訊、效能收集
xxx__sp_sqldiag_Shutdown.OUT
xxx__SQL_2012_Perf_Stats_Snapshot_Shutdown.OUT
xxx__SQL_2012_Perf_Stats_Snapshot_Startup.OUT
xxx__SQL_2012_Perf_Stats_Startup.OUT

2、事件檢示記錄
xxx_application_Shutdown.CSV
xxx_security_Shutdown.CSV
xxx_system_Shutdown.CSV

3、SQL語法收集
xxx_SQLDIAG__sp_trace.trc
xxx_SQLDIAG__sp_trace_blk.trc

4、OS系統效能收集
SQLDIAG.BLG

5、程式收集過程記錄
Internal -> ##console.log  

上述中xxx代表你的主機名稱

關鍵字:SQL ServerSQL NexusData CollectorPerformance Tuning