Results 1 to 2 of 2

Thread: ดิ่งลึกสู่ความมืดทะมึน เพื่อเข้าใจการทำงานของไวรัส

  1. #1


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

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

    หญิงสาวคนหนึ่งที่มุมห้องเดินนวยนาดมาใกล้ ขณะเดียวกันที่หน้าประตูทางเข้า นายตรวจสองนายก็ย่างเท้าเข้ามาในห้องพอดี

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

    "ฉันเห็นคุณนั่งอยู่นานแล้ว คุณเป็นโปรแกรมประเภทไหน" พูดพลางเอื้อมเรียวงามลูบบนหลังมือที่วางบนโต๊ะของผม

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

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

    "คุณเป็นเหมือนกับฉัน"

    ผมพยักหน้าแทนคำตอบ ใช่แล้วผมเป็นไวรัสเหมือนกับเธอ

    ++++++++++++++++++
    ทำไม โปรแกรมแคร็กบางไฟล์จึงถูกมองว่าเป็นไวรัส ทำไมไวรัสบางตัวโปรแกรมจึงตรวจจับไม่ได้ ไวรัสกลายพันธุ์ได้อย่างไร คำตอบนั้นรอให้ท่านอ่านต่อจากนี้ครับ

    เพื่อจะเข้าใจไวรัสยิ่ง ขึ้น เราต้องย้อนกลับไปยังสิ่งที่เป็นพื้นฐานที่สุดของมัน ซึ่งก็คือต้นกำเนิดนั่นเอง เราต้องเข้าใจกันก่อนว่าโดยปกติแล้วตัวไวรัสไม่ได้กำเนิดมาจากเวทย์มนต์ โบราณ หรือคำสาปแช่งภูตผีปีศาจแต่อย่างใด ถึงแม้ว่าหน้าตาของคนเขียนไวรัสบางคนจะหน้าตาเหมือนผุดจากนรกก็ตาม(นี่อาจจะ เป็นความจริงเพียงหนึ่งเดียวก็ได้)

    ไวรัส, สปายแวร์, เวิร์ม, โทรจัน หรือเรียกรวมๆ ว่า มาลแวร์ (malware = malicious-logic software) แม้จะแบ่งแยกกันหลากประเภท แต่สิ่งเดียวที่พวกมันเป็นก็คือ โปรแกรมคอมพิวเตอร์ ซึ่งแน่นอนว่าถูกสร้างจากมนุษย์ด้วยการเขียนชุดคำสั่งจากภาษาคอมพิวเตอร์ นั่นเอง

    ตัวภาษาคอมพิวเตอร์แทบทุกภาษาเราสามารถนำมาเขียนเป็น ไวรัสได้ทั้งนั้น ตรงจุดนี้เองที่สร้างปัญหาให้กับโปรแกรมป้องกันไวรัส เพราะไวรัสถูกสร้างขึ้นมาใหม่ทุกวัน การจะป้องกันไวรัสที่โผล่ออกมาอาละวาดต้องอาศัยระบบ virus signature คือ การตรวจสอบข้อมูลไฟล์ โดยดูจากลักษณะการเรียงลำดับข้อมูลในไฟล์ที่ต้องสงสัย ว่าเป็นไวรัสหรือไม่โดยเทียบจากฐานข้อมูลที่มีอยู่ในโปรแกรม

    เช่น ให้ตรวจดูข้อมูลในไฟล์ถ้ามีข้อมูลเป็น 75 61 56 F7 E1 68 4C 2C 73 7A ตรงครบถ้วนทุกไบต์ให้ถือว่าไฟล์นี้เป็นไวรัสหรือติดไวรัสทันที (บางโปรแกรมจะมีการเช็ค Address มากกว่าหนึ่งตำแหน่งเพื่อป้องกันความผิดพลาด)




    ซึ่งข้อเสียของการตรวจสอบแบบนี้ คือต้องอัปเดท virus signature อยู่เสมอจึงจะรู้จักไวรัสพันธุ์ใหม่ๆ และข้อเสียอย่างยิ่งยวดก็คือ ต้องมีคนรับเคราะห์ติด[hide=5]ไวรัสตัวนั้นเสียก่อนจึงจะมีการอัปเดทข้อมูลไวรัส (ข่าวลือ - บริษัทป้องกันไวรัสแอบสร้างไวรัสเสียเอง แล้วปล่อยไวรัสให้แพร่กระจาย จากนั้นก็อ้างว่าโปรแกรมตัวเองอัปเดทไวรัสนั้นก่อนบริษัทอื่น เพื่อให้คนหันมาซื้อโปรแกรมของบริษัทนั้นๆ)

    อีกวิธีหนึ่งที่ โปรแกรมป้องกันไวรัสใช้ก็คือ heuristic (หรือชื่ออื่นแต่หลักๆ แล้วรูปแบบการทำงานเหมือนกัน) คือการตรวจสอบพฤติกรรมที่น่าสงสัยซึ่งไปกระตุ้นระบบภูมิคุ้มกันให้ทำงาน เช่น ไวรัสชอบเข้าไปตั้งค่าใน Registry ในส่วน Run , ไวรัสแอบเปิดพอร์ตบางพอร์ตในเครื่อง, ไวรัสเข้าไปเขียนข้อมูลในไฟล์ Autorun เหล่านี้จะถูกระบุเป็นพฤติกรรมที่ต้องสงสัย โปรแกรมป้องกันไวรัสเมื่อตรวจพบพฤติกรรมที่ต้องสงสัย ก็จะทำการแสกนโปรแกรมนั้นดูอีกครั้งว่าเป็นไวรัสหรือเปล่า บางโปรแกรมอาจจะแจ้งเตือนให้เรารู้เพื่อตรวจสอบเอง

    อย่างไรก็ตาม ระบบการป้องกันแม้จะซับซ้อนความผิดพลาดย่อมเกิดขึ้นได้ ดูตัวอย่างในรูปด้านล่างนี้นะครับ ไฟล์แคร็กไฟล์หนึ่งถูกมองว่าเป็น Virus/Worm ทั้งที่ความจริงแล้วไม่ใช่ ความผิดพลาดนี้เกิดจากการตรวจ signature ที่ผิดพลาด เพราะไฟล์โปรแกรมดังกล่าวดันมี signature เหมือนกับไวรัส



    ทำไม signature ถึงเหมือนไวรัส ต้นเหตุก็ต้องย้อนกลับไปตรงภาษาคอมพิวเตอร์ที่ใช้งานครับ เมื่อเราเขียนคำสั่งเสร็จแล้ว เราจะทำให้กลายเป็นไฟล์ .exe (executable) ก็ต้องนำไฟล์คำสั่งมา Compile(การแปลคำสั่งในภาษาระดับสูงต่างๆ เป็นภาษาที่เครื่องคอมพิวเตอร์เข้าใจ)

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

    ถ้าท่านอยากจะตรวจว่าไฟล์โปรแกรมที่อยู่ใน เครื่องใช้อะไร Compile มาก็มีวิธีนะครับ โดยใช้โปรแกรม Hash & Crypto Detector ตรวจดู(โปรแกรมนี้เป็นฟรีแวร์หาได้จาก Google) วิธีการตรวจสอบก็แค่ลากไฟล์โปรแกรมมาวางไว้บนหน้าต่างโปรแกรม ตามตัวอย่างดังนี้

    CyberLink PowerDVD 9 ใช้ Compiler คือ Microsoft Visual C++ 8.0 - 9.0





  2. #2
    Junior Member
    Join Date
    Apr 2009
    Posts
    25


    อ่านแล้วเพลินดีจังเลยคับ เขาเขียนให้เข้าใจง่ายดีมากเลยคับ เปรียบเทียบได้ดีมากเลยคับ ถึงกับเห็นภาพเลย ทำให้เข้าใจการทำงานของไวรัสได้ดียิ่งขึ้นเลยคับ

Similar Threads

  1. Replies: 0
    Last Post: 19-08-2009, 02:43 AM

Members who have read this thread : 0

Actions : (View-Readers)

There are no names to display.

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •