เดิมทีมีโปรเจ็กต์คงค้างที่ จะเขียนเนื้อหา เกี่ยวกับเรื่อง Infrastructure พอดีมีโปรเจ็กต์  ที่สืบทอดมาจากความคิดที่ว่าอยากจะ Visualize network analysis  ไล่ลองหาโปรแกรมที่ใช้งาน ดูท่าจะขนาดใหญ่เกินไป  สำหรับโปรเจ็กต์ ที่เราต้องการที่จะทำ  อีกทั้งตัวผมเองช่วงปีใหม่ไม่ได้ไหน จึงมานั่งเล่นกับโปรแกรมนี้ดู ที่จริงแล้วผมควรจะนำเอาข้อมูลกราฟ Network มาแสดง เช่น Facebook หรือ Twitter แต่เนื่องจากว่าผมพบปัญหาเรื่องการ generate friends data จาก facebook และ เรื่องเวลาที่ไม่ค่อยมีประกอบกับต้องนั่งดูระบบ Network อยู่พอดีเลยเกิดความคิดที่ว่าเราจะ Analyze network data ออกมาเป็นกราฟได้ไหมจึงเป็นที่มาให้เขียนบทความนี้ เลยจะขอเขียนสั้นๆ แทน พอให้เห็นเป็น Idea

ก่อนอื่นในมาแนะนำ Gephi กันนิดนึง  Gephi  เป็น ซอฟต์แวร์ที่ใช้สำหรับ แสดงผล ความเชื่อมโยงของ ข้อมูลแบบกราฟ (graph network) เป็นซอฟต์แวร์โอเพ่นซอร์ส พัฒนาโดยอาศัย Netbeans เป็นฐานในการพัฒนา (build on top Netbeans)  ซึ่งซอฟต์แวร์ที่ทำงานคล้ายๆ กัน จะมีดังนี้  ซึ่งผมจะอิงตามที่ผม เคยใช้งานนะครับ

ตัว Maltego หลายคนอาจจะเคยรู้จัก หรือ เคยใช้งานซึ่งอาจะเคยใช้วิเคราะห์การเชื่อมโยงข้อมูลของ Social Network  ส่วน Cytoscape จะเหมาะสำหรับ ข้อมูลการเชื่อมโยงขนาดใหญ่ และ ซับซ้อน เช่น โมเลกูล เป็นต้น

การที่มีเรานำเอา Gephi มาใช้งานทำให้เราสามาราถวิเคราะห์ความเชื่อมโยงของข้อมูลตามที่เราต้องการได้ (Graph network analysis) โดย Gephi มีความยืดหยุ่นตรงที่สนับสนุน plugin และ สามารถแสดงผลรูปแบบ graph หรือ Layout ออกมาได้แตกต่างกันทำให้เราเข้ใจ ข้อมูลนั้นๆ ได้มากยิ่งขึ้น เช่น จากเดิมข้อมูลการเชื่อมต่อของเครือข่าย LAN หรือ WLAN เป็นแบบ Text ทำให้เราไม่สามารถมองเห็น ภาพการเชื่อมต่อได้ชัดเจน แต่หากเราลองดูข้อมูลการเชื่อมต่อนั้น ดีๆ จะพบว่าเป็นการเชื่อมต่อแบบ Graph ถ้าเราทำการแปลงการแสดงผลจาก raw-data ซึ่งเป็น Text มาแสดงผลแบบกราฟฟิกแล้ว จะทำให้เรามองภาพรวมของระบบได้ชัดเจนมากยิ่งขึ้น (Data visualization)

บทความนี้จะนำเสนอขั้นตอนที่จะพอเป็นทางชี้นำว่า ข้อมูลแบบกราฟคืออะไร และ มีเครื่องมือใดบ้างที่เราสามารถนำมาวิเคราะห์ข้อมูลเหล่านี้ได้ อย่างไรก็ตาม นอกจาก Network graph แล้วเรายังสามารถนำเอาข้อมูลการเชื่อมต่อของ social network มาวิเคราะห์ได้ เช่น Facebook หรือ Twitter เป็นต้นทำให้เราสามาถเข้าถึง และ วิเคราะห์ กลุ่มเป้าหมายของสินค้า หรือ ข้อมูล เฉพาะจุดได้ชัดเจน เช่น Trending ในแบบ Visualization ฝ่ายการตลาด หรือ แม้แต่ผู้บริหารสามารถทำเข้าความเข้าใจในข้อมูลนั้นได้ดี และ เร็วยิ่งขึ้น โดยไม่จำเป็นต้องมีความรู้ทางด้านเทคนิค นับเป็นประโยชน์ต่อธุรกิจทีเดียว

ซอฟต์แวร์ที่เกี่ยวข้องที่ผมใช้ในการทำงานนั้น

  • gephi สำหรับแสดงผล Graph  สนับสนุน realtime graph display
  • tshark เป็น Network capture แบบ command-line ใช้หน่วยความจำน้อย ทำงานเร็ว และ Output ออกมาเป็น Text ตามทีผมต้องการได้ทันที

โดยผมใช้คำสั่ง tshark ให้ทำการ capture network โดยระบุออปชั่น การใช้งาน ตามข้างล่างนี้

tshark -Tfields -e ip.src -e ip.dst -e ip.dport -e ip.len -e ip.proto  -E separator=, |tee sample1.csv

Output  ของผลลัพธ์ก็จะได้เป็น

  • IP ต้นทาง ( ip.src )
  • IP ปลายทาง ( ip.dst )
  • IP พอร์ทปลายทาง ( ip.dport )
  • IP โปรโตคอล

โดยแบ่งแยกฟิลด์ ด้วยเครื่องหมาย “,”  และ Mirror output ไปยังไฟล์ sample2.csv  แปลงข้อมูลจากไฟล์ CSV ที่ได้ให้เป็น dot file format ซึ่งจะนำไปใช้ parsing ใน Gephi  อีกที ลักษณะของข้อมูลที่จะนำไปใช้งาน เป็น format CSV  โดยจะมีข้อมูลออกมาเป็นลักษณะดังนี้ ( network connection )

 
216.34.181.96,192.168.1.175,,52,6
216.34.181.96,192.168.1.175,,52,6
192.168.1.175,216.34.181.96,,52,6
216.34.181.96,192.168.1.175,,52,6
216.34.181.96,192.168.1.175,,52,6
…. …

ดาวน์โหลดโปรแกรม Afterglow เพื่อใช้ในการแปลง ข้อมูลจาก Tshark ที่เรา Output ออกมาให้เป็น format dot file ( Directgraph ) โดยดาวน์โหลดได้จาก link นี้

Ubuntu บางเวอร์ชั่นหา file csv class ไม่เจอให้ทำการติดตั้ง ด้วยคำสั่งนี้ครับ

sudo apt-get install libtext-csv-perl

extract ไฟล์เก็บไว้สักที่นึง  ถ้าให้ดีควรทำการเพิ่ม path executable ให้กับระบบด้วย จากนั้นทำการแปลงไฟล์  tshark ที่เรา capture มาให้เป็น dot ไฟล์ด้วยคำสั่ง
cat sample1.csv | perl afterglow.pl -t , |tee mynetwork.dot

ดาวน์โหลดโปรแกรม Gephi มาติดตั้ง ( Linux )

https://launchpad.net/gephi/0.8/0.8.2beta/+download/gephi-0.8.2-beta.tar.gz

extract ไฟล์ภายในออกมาแยกเก็บเอาไว้สักที่นึง

tar xvfz gephi-0.8.2-beta.tar.gz

เปิดโปรแกรม  Gephi ขึ้นมา

cd gephi/bin/ &&  ./gephi

จะได้หน้าตาโปรแกรมเป็นแบบนี้

ตรวจสอบไฟล์  dot file ที่ถูก generate มาให้ดี ถ้าพบว่า ไม่มี Node “”  (Gephi version 0.8.2) จะ error Null point exception เมื่อโหลดเข้ามาจะพบว่า ไม่ปรากฏรูปภาพ ใดๆ แสดงเลย เราสามารถทำการปรับเปลี่ยนรูปแบบการแสดงผลได้  โดยไปที่ เมนู Layout (ซ้ายมือ ตรงกลาง) กรณี ผู้อ่านทดสอบ capture network ทำการแปลงข้อมูลแล้วแต่ยังไม่สามารถเปิดด้วยโปรแกรม Gephi ได้สามารถดาวน์โหลดข้อมูลทดสอบได้จากที่ link นี้

ไปตรง Tab Preview ด้านบนโดยทำการเปลี่ยน Properties ทางด้านซ้ายมือ  ให้เหมาะสม

จะได้ผลลัพธ์ออกมาเป็นแบบภาพนี้ครับ

Howto นี้พอให้เป็น Idea ในการใช้ Gephi ทำการแสดงผล  Network graph data (Direct and Undirect graph) ออกมาแสดงผลเป็นกราฟฟิก ตามทีเราต้องการได้ นอกจากนั้น ตัว Gephi เองยังสนับสนุนการแสดงผล แบบ Real-time  สำหรับการใช้งานอื่นสามารถนำเอา Gephi  มาวิเคราะห์ข้อมูล  การเชื่อมโยงของเครือข่ายโซเชียลมีเดีย ได้ด้วยเช่นกัน

Comments are closed.