Monthly archives "กรกฎาคม 2017"

มาทลายกำแพงของ Wireshark เพื่อนำไปใช้งานกันเถอะ

สวัสดีครับ

กลับมาอีกครั้งในรอบครึ่งปี หลังจากเริ่มเข้าที่เข้าทางกลับที่ทำงานใหม่ ตามที่แจ้งไว้เมื่อช่วงต้นเดือนวันนี้จะมาเขียนบทความเพื่อก้าวข้ามกำแพงของ Wireshark GUI กัน

ก่อนอื่นก็ต้องตั้งคำถามกับตัวเองกันก่อนว่าขอ้มูลที่เราเอามาใส้ให้กับ Wireshark นั้นเราสามารถหามาได้กันทุกคนแน่ๆ ตั้งแต่ Network admin, Server admin, Firewall admin ทุกๆคนน่าจะเคยเปิดโปรแกรม Wireshark เพื่อเอามาเปิดไฟล์ PCAP ขึ้นมาดูอย่างแน่นอน แต่คำถามคือหลายๆคนเปิดข้อมูลขึ้นมาแล้วเอามาทำอะไรต่อ? น่าจะมีอาการดังต่อไปนี้เกิดขึ้นไม่มากก็น้อยแน่นอน

  1. เปิดขึ้นมาเจอข้อมูลที่เป็น Packet หลายหมื่นหลายพันบรรทัดแล้วนั่งดูสักพัก แล้วก็ไม่รู้ว่าจะเริ่มยังไงแล้วก็ถอดใจปิดโปรแกรมไป
  2. เปิดขึ้นมาแล้วก็ลองหาสิ่งที่คิดว่าน่าจะเป็นสิ่งที่ต้องการอย่าง Protocol แล้วก็ใส่ลงไป ถ้าโชคดีใช้ได้ก็จะสามารถลดปริมาณของข้อมูลลงมาได้ แต่ก็ยังไม่รู้อยู่ดีกว่าปัญหามันอยู่ตรงไหน แล้วจะไปเริ่มหาสาเหตุยังไง
  3. ขั้นนี้เริ่มหาข้อมูลเพื่อ filter ข้อมูลที่ไม่ต้องการทิ้งออกไปได้ ทำให้สามารถเลือกข้อมูลที่ต้องการมาแสดงผลได้ดีขึ้นและตรงประเด็น
  4. ขั้นต่อมาก็เรียกว่าอึดขึ้นมาหน่อยคือหลังจากเริ่มตัดให้เหลือแต่ข้อมูลที่คิดว่าถูกต้องขึ้นมาได้แล้ว เริ่มต้นจากเวลาที่เกิดปัญหาขึ้นและลงมือไล่ไปทีละ Packet จนกว่าจะเจอสิ่งที่น่าสนใจใน Packet ที่ดูอยู่โดยใช้ filter ช่วย
  5. ต่อมาก็จะเป็นกลุ่มที่เริ่มมองหาเครื่องมือในโปรแกรมมาช่วยหาข้อมูลที่สนใจบ้างแล้ว เช่น Statistics อย่าง Endpoint, Conversations, Flow graph, TCP stream graph กลุ่มนี้ก็จะสามารถหาและเชื่อมโยงความสัมพันธ์ของ Packet และสามารถ Scope ปัญหาได้อย่างช่ำชองแล้ว
  6. กลุ่มที่เริ่มเข้าสู่การหาและวิเคราะห์สาเหตุจะเริ่มที่กลุ่มนี้ เนื่องจากงานที่ต้องใช้ Packet จะมีความซับซ้อนมากและยังจะต้องนำไปเสนอให้คนอื่นเข้าใจสิ่งที่เราจะต้องการสื่อออกไปด้วย ดังนั้นเครื่องมือที่ใช้ก็จะต้องเริ่มเป็นกราฟที่มีสีสัน และมีการฝึกใช้งาน command filter ที่ค่อนข้างแม่นยำแล้ว เพื่อให้ได้ผลตามที่ต้องการ และสามารถนำผลการวิเคราะห์ไปนำเสนอให้คนอื่นเข้าใจได้ด้วย ว่าเกิดอะไรขึ้นใน Packet ที่มีปัญหานั้นๆ

ทั้งหมดด้านบนที่กล่าวมาเกิดขึ้นกับตัวผมเองมาแล้วทั้งสิ้น จนถึงในเวลานี้เองก็ยังต้องเรียนรู้การใช้งานโปรแกรม Wireshark ในด้านต่างๆ เพื่อหาสาเหตุของปัญหาที่เจออยู่เรื่อยๆ เพราะงานที่เราเจอนั้นจะมีปัญหาหรือสิ่งใหม่ๆเข้ามาให้เราเรียนรู้อยู่เสมอ ดังนั้นเมื่อเคยเจอปัญหานี้มาก่อนทำให้เราเองรู้ว่าคนอื่นๆก็จะต้องเจอปัญหานี้เหมือนกัน และปัญหาการใช้งานโปรแกรม Wireshark นี้ก็เป็นกำแพงที่สูงมากทีเดียวสำหรับการเรียนรู้ด้วยตนเอง ดังนั้นก็เลยมีความคิดที่จะมาเขียนบทความชุดนี้ขึ้นมา อย่างไรก็ตามการที่ผมเองก็มีงานประจำที่ค่อนข้างวุ่นวายอยู่สักหน่อยดังนั้นบทความก็อาจจะไม่ได้มาแบบต่อเนื่องดังนั้นก็ขอให้อดใจรอกันสักหน่อยนะครับ

จากเหตุการณ์ต่างๆที่เกิดขึ้นทั้ง 6 ข้อที่เขียนมาก็พอจะสรุปลำดับการใช้งานโปรแกรม Wireshark ได้เป็นกลุ่มๆดังนี้

  1. การใช้งาน Filter เพื่อช่วยให้เราหาข้อมูลที่เราต้องการให้ง่ายขึ้น เช่น การหา sync, fin packet เพื่อเริ่มต้นการวิเคราะห์การทำงาน หรือจะเป็นการแยกเฉพาะโปรโตคอลที่เราสนใจออกมาจาก Packet ที่มีเป็นล้านบรรทัด เช่น RADIUS protocol เพื่อใช้ authentication
  2. การใช้งานเครื่องมือเพื่อแสดงสถิติหรือกราฟเพื่อแสดงพฤติกรรมของ Packet ในรูปแบบต่างๆ เช่น การหาค่า MAC address ที่ใช้สื่อสารกันทั้งหมดใน Packet ที่มี การหาหรือแสดงการเกิด TCP retransmission โดยใช้กราฟ
  3. การนำข้อมูลที่ได้มาทำการเปรียบเทียบปัญหาที่เกิดขึ้น หรือนำมาแสดงให้เห็นเป็นพฤติกรรมที่เกิดขึ้นในลักษณะของกราฟ เช่น แสดง LCP message interval ของ CPE ย่อห้อต่างๆเปรียบเทียบกันเพื่อหาอุปกรณ์ที่ดีที่สุดในการใช้งาน หรือพฤติกรรมที่ผิดปกติในระดับ Protocol เพื่อหาสาเหตุและแก้ไขจุดที่ Software ทำงานผิดพลาด

ทั้ง 3 หัวข้อนี้คือหัวข้อหลักในบทความที่จะเขียนต่อๆไป รูปแบบการยกตัวอย่างเพื่อช่วยให้หลายๆคนที่ติดตามเพจนี้สามารถทลายกำแพงของ Wireshark ลงและนำโปรแกรมนี้ไปใช้งานได้ตามที่หวังกันครับ