JPANDDR-Implementation of a JAVA based tool for Protocol Analysis, Network Diagnose, and
Download ReportTranscript JPANDDR-Implementation of a JAVA based tool for Protocol Analysis, Network Diagnose, and
JPANDDR-Implementation of a JAVA based tool for Protocol Analysis, Network Diagnose, and Data Reassembly Advisor: Dr. Kai-Wei Ke Speaker: Jaw-Woei Ma Date:2007 07/28 Outline Introduction Protocol JPANDDR Test Result Conclusions Future Work References Demo Introduction JAVA JVM Object-Oriented Mobility (Byte Code) Support Network Programming JPANDD is based on JAVA programming language Introduction JAVA API Application Programming Interface Reuse and Extend Easy and fast to implement JPANDDR uses JMF and JPcap Java 2的三大部份主要的API JMF Java Media Framework enables audio, video and other time-based media to be added to applications and applets built on Java technology JMF API 可分為兩部份 : 單純的 JMF 及架 構在 RTP 上的JMF 。 JMF JMF Process Model 擷取(Capture)媒體 讀取檔案 接收廣播 加入效果 壓縮/解壓縮 多工/反多工 轉換 播放 儲存 網路廣播 Input Process Output JPcap Java Package for Packet Capture allows Java applications to capture and/or send packets to the network based on libpcap/winpcap and Raw Socket API JPcap JPcap Process Model 捕捉/發送 封包 Jpcap (Java API) WinPcap (Windows OS) libpcap (Unix OS) Network Interface Card 捕抓/發送 封包 JPcap Network Interface : represents a network interface Jpcap Captor : capture packets or read packets from a captured file Jpcap Sender : send packets Packet : This is a root class of all the packets captured by Jpcap Protocol TCP Transmission Control Protocol Connection-Oriented Reliable transmission Flow Control and Congestion Control ACK and Retransmission Protocol TCP Header Format 0 Destination Port (16 bits) Source Port (16 bits) 32 Sequence Number (32 bits) 64 Acknowledgment Number (32 bits) 96 Reserved (6 bits) Data Offset (4 bits) Flags (6 bits) Windows (16 bits) 128 Checksum (16 bits) Urgent Pointer (16 bits) 160 Padding (長度不定) Options (長度不定) Flags (6 bits) = Urgent (1 bit) ACK (1 bit) Push (1 bit) Reset (1 bit) Syn (1 bit) Finish (1 bit) Protocol Three-Way Handshake Diagram 用戶端 主動發送連線要求 A 1.隨機取>1024的Port 2.發送TCP Header a.SYN=1,seq=10001 主機端 接收與回應 SYN B 1.有開啟的Port 2.發送TCP Header a.ACK=1,ack=10002 b.SYN=1,seq=20001 D 根據收到的TCP 封包Header確認 所有封包接收 無誤可以開始 準備接收傳送 SYN/ACK 發送TCP Header C a.ACK=1,ack=20002 ACK 時間經過 Protocol FTP File Transfer Protocol 2 TCP connection Port 21 for control Port 20 for data Protocol FTP command 指令與語法 意義 USER <SP> <username> <CR> <LF> USER 傳送使用者名稱 QUIT <CR> <LF> QUIT 結束FTP連線 PORT <SP> <a1,a2,a3,a4,p1,p2> <CR> <LF> PORT設定資料連線的IP位址與連結埠 TYPE <SP> <type-code> <CR> <LF> TYPE設定檔案模式 MODE <SP> <mode-code> <CR> <LF> Transfer MODE 設定傳輸模式 STRU <SP> <structure-code> <CR> <LF> File STRUcture設定檔案結構 RETR <SP> <pathname> <CR> <LF> RETRieve下載檔案 STOR <SP> <pathname> <CR> <LF> STORe上傳檔案 NOOP <CR> <LF> NO OPeration不動作 Protocol SIP Session Initiation Protocol Client/Server Mode Request/Response Message Protocol Session Establishment System Sequence Diagram User Agent Client [email protected] Proxy Server INVITE [email protected] User Agent Server [email protected] INVITE [email protected] 100 Trying 180 Ringing 180 Ringing 200 OK 200 OK ACK conversation BYE 200 OK JPANDDR JAVA for Protocol Analysis, Network Diagnose, and Data Reassembly Network Protocol Analyzer Based on JAVA JPcap and JMF API JPANDDR Function - 1 (1) Capture Packets and Header Analysis (2) Protocol Analysis (3) Packet Handshaking (4) Protocol Statistics and Analysis JPANDDR Function – 2 (5) Data Reassembly and Replay (6) Network Debug and Diagnose (7) Make up Packets (8) Additional Function 系統架構 JPANDDR System Architecture Packet Maker Subsystem 接 收 Protocol Process 封 包 Subsystem Network Diagnosis and Debug Subsystem Additional Function Subsystem 其他功能子系統 (Additional Function Subsystem) 假造封包子系統(Packet Maker Subsystem) 協定處理子系統(Protocol Process Subsystem) 封包 儲存池 (Packet Pool) 統計處理器 (Statistic Processor ) 分析處理器 (Analytic Processor) 網路診斷偵錯子系統(Network Diagnosis and Debug Subsystem) 偵錯器 (Debuger) Ping 程式工具 診斷器 (Diagnostician) 發送ICMP封包 發 出 封 包 JPANDDR Subsystem Protocol Process Subsystem - Analytic Processor 傳輸層協定處理器 (Protocol Processor) 接 收 封 包 協定 分析器 (Protocol Analysis) 分派器 (Dispatch) 應用層TCP協定處理器 (Protocol Processor) 應用層UDP協定處理器 (Protocol Processor) JPANDDR – Data Reassembly and Replay FTP Data Reassembly For Stream Mode Remove Packet Header Packet Reorder and Reassembly JPANDDR - Data Reassembly and Replay pseudo Code JPANDDR Data Reassembly and Replay VoIP Data Reassembly RTP Transmission For PCM encode JPANDDR - Data Reassembly and Replay PCM decode (1/2) JPANDDR Data Reassembly and Replay PCM decode (2/2) JPANDDR - Network Diagnose ICMP Echo Request Parse information in “ICMP Echo Replay” (1) (2) (3) (4) (5) TCP/IP協定測試 – 127.0.0.1 網卡測試 - IP 自動搜索網段鄰居 – xxx.xxx.xxx.1~253 連外路由器(Gateway)測試 – xxx.xxx.xxx.254 (default) DNS伺服器測試 – 168.95.1.1 (default) (6) ping Internet上某一主機的網址 – www.google.com JPANDDR - Network Diagnose Diagnose Call System Ping algorithm Ping algorithm Return parsing info. int step = 0; If No error in parsing info. Then step = (++step)%7 If step = = 1 Then //ping 127.0.0.1 //by calling Ping Function() call Diagnose_Step1() Else If step = = 2 Then //ping self IP address //by calling Ping Function() call Diagnose_Step2() Else If step = = 3 Then //ping IP address near host //by calling Ping Function() call Diagnose_Step3() Else If step = = 4 Then //ping gateway IP address //by calling Ping Function() call Diagnose_Step4() Else If step = = 5 Then //ping DNS Server IP address //by calling Ping Function() call Diagnose_Step5() Else If step = = 6 Then //ping www.Google.com.tw //by calling Ping Function() call Diagnose_Step6() Else If step = = 7 Then //ping www.yahoo.com //by calling Ping Function() call Diagnose_Step7() End If Sent System Ping Request Wait for response Parsing response Information If packet all loss Then Stop next step Update user interface Else Call function Diagnose Update user interface End If Test Result - Network Diagnose Network Diagnose Report Test Result - Network Diagnose Two test Result (1) No IP (2) No gateway Test Result - Data Reassembly and Replay Use LeapFTP Stream Mode 還原檔案格式 還原檔案結果 備註 .jpg 良好 .doc 良好 .ppt 良好 .txt 良好 .exe 良好 .avi 良好 .wav 可 部分時候會失真。 .html 可 網頁內嵌圖片便會失敗。 .rm 良好 .mp3 良好 .rar 良好 傳送之壓縮檔以壓縮最佳方式、加上 密碼均可正確還原。 .zip 良好 傳送之壓縮檔以壓縮最佳方式、加上 密碼均可正確還原。 .bmp 可 Test Result - Data Reassembly and Replay Sample Rate - 8kHZ Sample Bits - 16bits Little Endian .wav file Hub Client A Client B 語音連線 JPANDDR System Compare Sniffer、ClearSight與Ethereal,其中又以 Ethereal最為被廣泛使用 JPANDDR – Network Protocol Analyzer Ethereal – Network Packet Analyzer System Compare 本系統 JPANDDR Ethereal 封包捕捉 標頭解析 目前較少,但可拓展 目前較多 協定分析 相同 相同 封包交握 操作較易 新版本才有此功能 操作不易 協定連線 統計分析 基本功能相同 基本功能相同 訊息重組 檔案還原 有 無 網路偵錯診斷 有且自動偵錯診斷 需使用者自行診斷 自建封包 有,具各式協定封包建立 有 Conclusions This research implements a system that provides not only the basic function such as protocol tracking、monitoring and analyzing network diagnosis capability ,but also information retrieval and recovery from the captured data packets on the networks. Future Work JPANDDR 無線網路協定的擴充 IPv6協定的擴充 還原語音編碼格式的擴充 Goal: The world’s popular network protocol analyzer References http://netresearch.ics.uci.edu/kfujii/jpcap/d oc/index.html http://java.sun.com/products/javamedia/jmf/reference/api/index.html http://www.ethereal.com/ Demo