ดนตรีเริ่มบรรเลงภายในห้องอีกครั้ง หากเงี่ยหูฟังอย่างตั้งใจเราจะได้ยินเสียงคุยตอบโต้กันระหว่างโปรแกรมแต่ละตัว ชั่วขณะหนึ่งที่ผมมองโปรแกรมต่างๆ ผ่านนัยน์ตาไวรัส คำถามก็ผุดพรายขึ้นมาเหมือนฟองอากาศโผล่พ้นผิวน้ำ อะไรที่ทำให้เราเป็นมนุษย์ ใช่เพราะเราคิดได้อย่างนั้นหรือ โปรแกรมเหล่านี้ก็คิดได้เช่นกัน แล้วอะไรคือความแตกต่างระหว่างเรากับพวกมัน
ที่สุดแล้วข้อสรุปของความเป็นมนุษย์ อาจเพราะเรามีอารมณ์ หัวเราะได้เมื่อได้ยินเรื่องตลก โศกเศร้าเมื่อเจอเรื่องกระทบจิตใจ และพร้อมกับการกระทำที่ส่วนมากจะไร้ตรรกะเหตุผลรองรับอยู่เสมอ มันน่าขันสิ่งที่แยกระหว่างเรากับโปรแกรมกลับเป็นสิ่งที่ดูสามัญที่สุดสำหรับเรา
หญิงสาวคนหนึ่งที่มุมห้องเดินนวยนาดมาใกล้ ขณะเดียวกันที่หน้าประตูทางเข้า นายตรวจสองนายก็ย่างเท้าเข้ามาในห้องพอดี
"สวัสดีตอนดึก" เธอกล่าวอย่างแช่มช้า ส่งสายตาหยาดเยิ้มเชื้อเชิญ เสียงพูดแทบจะเป็นจังหวะเดียวกับดนตรีที่อ้อยอิ่ง ช่วงนั้นเองที่นายตรวจกวดตามองผ่านกลุ่มโปรแกรมที่นั่งทำงานอยู่ บางโปรแกรมชะงักครู่หนึ่งก่อนจะก้มหน้าทำงานต่อ
"ฉันเห็นคุณนั่งอยู่นานแล้ว คุณเป็นโปรแกรมประเภทไหน" พูดพลางเอื้อมเรียวงามลูบบนหลังมือที่วางบนโต๊ะของผม
เสียงเอะอะดังขึ้นที่ใกล้ประตู นายตรวจดึงเอาร่างโปรแกรมที่นั่งคุดคู้ออกมากลางลานห้อง เสียงเพลงเริ่มเร่งระดับขึ้น นายตรวจอีกคนจ้องข:-)พูดเสียงขึงขัง "มันเป็นไวรัส" จากนั้นก็ทาบฝ่ามือลงบนตัวโปรแกรม เพียงชั่วอึดใจเดียวร่างนั้นก็ลุกไหม้เหลือเพียงเถ้าถ่านหย่อมหนึ่งกองบนพื้น เพียงมองปราดผมก็รู้ทันทีการตรวจผิดพลาด เพราะนั่นแค่โปรแกรมแคร็กไม่ใช่ไวรัส
ในช่วงจังหวะเศษเสี้ยววินาทีของเหตุการณ์นั้น มีสิ่งผิดปกติบังเกิดขึ้น ปลายนิ้วมือของหญิงสาวซึ่งอยู่ตรงหน้าได้ปล่อยกลุ่มโค้ดเข้าคำสั่งบางอย่างแฝงแทรกลงบนมือผม มันเป็นการรับรู้ที่แปลกประหลาดยิ่ง ไม่ว่าเสียงดนตรีที่เร่งเร้าขึ้นตามจังหวะ เปลวไฟลุกไหม้จากการทำลายโปรแกรมของนายตรวจ โปรแกรมอื่นที่กำลังรับส่งข้อมูลกัน ทุกอย่างผ่านเข้ามาในการตระหนักรู้ทางร่างสถิตที่ผมสร้าง แต่ไม่ทันจะเกิดอะไรขึ้นเธอแทบจะชักมือกลับไปทันที จากนั้นเอียงหน้าเข้ามาพูดกระซิบใกล้ๆ
"คุณเป็นเหมือนกับฉัน"
ผมพยักหน้าแทนคำตอบ ใช่แล้วผมเป็นไวรัสเหมือนกับเธอ
++++++++++++++++++
ทำไมโปรแกรมแคร็กบางไฟล์จึงถูกมองว่าเป็นไวรัส ทำไมไวรัสบางตัวโปรแกรมจึงตรวจจับไม่ได้ ไวรัสกลายพันธุ์ได้อย่างไร คำตอบนั้นรอให้ท่านอ่านต่อจากนี้ครับ
เพื่อจะเข้าใจไวรัสยิ่งขึ้น เราต้องย้อนกลับไปยังสิ่งที่เป็นพื้นฐานที่สุดของมัน ซึ่งก็คือต้นกำเนิดนั่นเอง เราต้องเข้าใจกันก่อนว่าโดยปกติแล้วตัวไวรัสไม่ได้กำเนิดมาจากเวทย์มนต์โบราณ หรือคำสาปแช่งภูตผีปีศาจแต่อย่างใด ถึงแม้ว่าหน้าตาของคนเขียนไวรัสบางคนจะหน้าตาเหมือนผุดจากนรกก็ตาม(นี่อาจจะเป็นความจริงเพียงหนึ่งเดียวก็ได้)
ไวรัส, สปายแวร์, เวิร์ม, โทรจัน หรือเรียกรวมๆ ว่า มาลแวร์ (malware = malicious-logic software) แม้จะแบ่งแยกกันหลากประเภท แต่สิ่งเดียวที่พวกมันเป็นก็คือ โปรแกรมคอมพิวเตอร์ ซึ่งแน่นอนว่าถูกสร้างจากมนุษย์ด้วยการเขียนชุดคำสั่งจากภาษาคอมพิวเตอร์นั่นเอง
ตัวภาษาคอมพิวเตอร์แทบทุกภาษาเราสามารถนำมาเขียนเป็นไวรัสได้ทั้งนั้น ตรงจุดนี้เองที่สร้างปัญหาให้กับโปรแกรมป้องกันไวรัส เพราะไวรัสถูกสร้างขึ้นมาใหม่ทุกวัน การจะป้องกันไวรัสที่โผล่ออกมาอาละวาดต้องอาศัยระบบ virus signature คือ การตรวจสอบข้อมูลไฟล์ โดยดูจากลักษณะการเรียงลำดับข้อมูลในไฟล์ที่ต้องสงสัย ว่าเป็นไวรัสหรือไม่โดยเทียบจากฐานข้อมูลที่มีอยู่ในโปรแกรม
เช่น ให้ตรวจดูข้อมูลในไฟล์ถ้ามีข้อมูลเป็น 75 61 56 F7 E1 68 4C 2C 73 7A ตรงครบถ้วนทุกไบต์ให้ถือว่าไฟล์นี้เป็นไวรัสหรือติดไวรัสทันที (บางโปรแกรมจะมีการเช็ค Address มากกว่าหนึ่งตำแหน่งเพื่อป้องกันความผิดพลาด)
ซึ่งข้อเสียของการตรวจสอบแบบนี้ คือต้องอัปเดท virus signature อยู่เสมอจึงจะรู้จักไวรัสพันธุ์ใหม่ๆ และข้อเสียอย่างยิ่งยวดก็คือ ต้องมีคนรับเคราะห์ติดไวรัสตัวนั้นเสียก่อนจึงจะมีการอัปเดทข้อมูลไวรัส (ข่าวลือ - บริษัทป้องกันไวรัสแอบสร้างไวรัสเสียเอง แล้วปล่อยไวรัสให้แพร่กระจาย จากนั้นก็อ้างว่าโปรแกรมตัวเองอัปเดทไวรัสนั้นก่อนบริษัทอื่น เพื่อให้คนหันมาซื้อโปรแกรมของบริษัทนั้นๆ)
อีกวิธีหนึ่งที่โปรแกรมป้องกันไวรัสใช้ก็คือ 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
µTorrent ใช้ Compiler คือ UPX
KMPlayer ใช้ Compiler คือ Borland Delphi
แล้วไวรัสบางตัวทำไมถึงหลบโปรแกรมป้องกันไวรัสได้ คำตอบก็คือ คนสร้างไวรัสจะมีวิธีการทำลาย signature ดั้งเดิมของไวรัส เช่น
- จัดเรียงตำแหน่งโค้ดไวรัสตัวนั้นใหม่ หรือใส่คำสั่งอื่นๆ แทรกเพื่อให้ข้อมูลภายในไฟล์ไวรัสเปลี่ยนไป
- ใช้ตัว Compiler อื่น เช่น ไวรัสที่มีโค้ดคำสั่งภายเหมือนกันแต่ใช้ Compiler คนละตัว ข้อมูลในไฟล์ก็จะต่างกันไปด้วย
- แก้ไขข้อมูลในตัวไฟล์เลย เช่น ใช้โปรแกรม Hex editor ทำการแก้ไขข้อมูลบางส่วนที่ไม่กระทบต่อการทำงานของไวรัส
- หาตัว Packer มาเข้ารหัสไฟล์ .exe อีกชั้น
ฯลฯ
ที่เกี่ยวเนื่องกันต่อมาก็คือ การกลายพันธุ์ของไวรัส ท่านอาจจะเห็นไวรัสชื่อขึ้นต้นเหมือนกันแต่รหัสต่อท้ายไม่เหมือนกัน กลับมาอาละวาดเป็นระยะ ก็เนื่องมาจากตัวโค้ดของไวรัสบางตัวถูกนักเขียนไวรัส คนอื่นแกะโค้ดออกมาและทำการปรับปรุง (คือ ไวรัสไม่ใช่เชื้อโรคตามธรรมชาติที่ปล่อยไว้นานๆ จะวิวัฒน์กลายพันธุ์เองนะครับ) เทคนิคการแกะโค้ดนี้ ส่วนหนึ่งก็อาศัยการตรวจดู Compiler ของไวรัสต้นฉบับ จากนั้นก็หาเครื่องมือมา DeCompile เพื่อดูโค้ดคำสั่งภายในตัวไวรัส
เขียนไปเหมือนจะง่าย แต่ทำจริงๆ ท่านต้องมีความรู้ของภาษาที่ใช้เขียนไวรัส เช่น จะแก้ไขไวรัสที่เขียนมาจาก VB เมื่อได้โค้ดมาแล้ว ก็ต้องรู้ว่าคำสั่งแต่ละบรรทัดมีความหมายอย่างไร สามารถแก้ไขปรับปรุงตรงจุดไหนได้บ้าง ซึ่งในสภาพความเป็นจริง ไวรัสที่แพร่กระจายอยู่ทั่วโลกก็เขียนมาจากหลากหลายภาษา เทคนิคการเขียนก็ไม่ใช่เทคนิคปกติที่ใช้งานกันทั่วไป บางคำสั่งเมื่อเราไม่ถนัดภาษานั้นๆ เอามาศึกษาดูก็มีแต่ 'มึนแตก' แต่ถึงอย่างไรการแก้ไขก็ง่ายกว่าการสร้างใหม่ เราจึงเห็นไวรัสกลายพันธุ์อยู่เยอะแยะ
ว่าไปมันก็เหมือนดาบสองคม ถ้าท่านจะศึกษาการทำงานของไวรัสในระดับลึกๆ เพื่อหาวิธีปราบมัน ท่านก็ต้องเรียนรู้วิธีผ่าเครื่องในออกมาดู บางครั้งอาจจำเป็นต้องสร้างไวรัสเลียนแบบขึ้นมา เพื่อดูผลการทำงานของคำสั่ง หากจิตใจไม่แน่วแน่พอ ก็จะถูกครอบงำกลายเป็นมารได้ง่ายๆ เหมือนกัน
+++++++++++++++++++++++++++
ที่ตรอกนั้น ผมละจากริมผิวปากอวบอิ่มของเธอ มือข้างหนึ่งประคองหลังคอมองดูร่างที่ถูกแช่แข็ง ดวงตาเคยดำขลับบัดนี้กลายเป็นสีขาวขุ่นเพราะมีเปลือกน้ำแข็งบางๆ เคลือบทับอยู่อีกชั้นหนึ่ง ภายในห้องผมตรวจพบว่ามีแพ็คเก็จข้อมูลขนาดเล็กถูกแอบส่งออกมาจากร่างไวรัสสาว เพื่อให้ง่ายขึ้นจึงแสร้งชวนเธอออกมาข้างนอก หลังจากตรวจดูก็รู้ว่าเป็นข้อความสั้นๆ ว่า "ไม่พบ" พร้อมกับข้อมูลขยะจำนวนหนึ่งที่ถูกส่งออกไปต่อเนื่องเป็นระยะ อะไรคือไม่พบ คำตอบนั้นไม่สำคัญ คำถามสำคัญกว่า 'ไม่พบอะไร'
เมื่อย้อนเข้าไปดูโค้ดภายในไวรัสที่จับเอาไว้ ผมพบลำดับการทำงานคำสั่งให้ค้นหาสิ่งที่ไม่มี เพียงแค่นี้เท่านั้นไม่มีนัยยะสำคัญ คาดว่าเป็นแค่คำสั่งที่ไม่สมบูรณ์หรือบักระหว่างการสร้างไวรัส ไร้ประโยชน์ที่จะใส่ใจ ผมใช้มืออีกข้างแตะไปที่หน้าผากเธอหยุดการแช่แข็ง เพราะเราไม่สามารถลบโปรแกรมที่ยังค้างอยู่ในหน่วยความจำได้ การรับรู้ของเธอคืนมาอีกครั้ง สายตาที่มองมานั้นเหมือนจะเจือไปด้วยความตื่นตระหนก สับสน เหมือนเธอรู้ว่าจะเกิดอะไรขึ้น คงเป็นแค่จิตผมที่หลอนไปเองโปรแกรมพวกนี้ไม่ได้มีอารมณ์ความรู้สึกเฉกมนุษย์
"ฉันชื่อ เธไมด้า " เธอพูดด้วยน้ำเสียงสั่นเทิ้ม จ้องผมตาไม่กระพริบไม่มีเค้าความกลัวหลงเหลืออยู่ในแววตานั้นอีก แม้อยู่ต่อหน้า ก็รู้สึกเวิ้งว้างอย่างบอกไม่ถูก
ผมยิ้มให้เธอและพูดว่า "Delete" เพลิงกาฬได้เผาผลาญร่างนั้นเป็นจุลในพริบตา
ทุกอย่างควรจะจบลงตรงนี้ แต่ความผิดพลาดของผมละเลยข้อมูลขยะที่อ่านไม่ออก เพราะคิดว่าไม่สำคัญ แม้ตอนหลังจะพบว่าข้อมูลเหล่านี้คือกุญแจสำคัญของเรื่องราวทั้งหมด ข้อมูลดังกล่าวแท้จริงแล้วถูกเข้ารหัสแบบ RC4 เอาไว้ มีเพียงผู้ที่เก็บคีย์เท่านั้นถึงจะไขแปลอ่านข้อความได้ ซึ่งกว่าจะรู้ทุกอย่างก็ได้อุบัติไปแล้ว
+++++++++++++++++++++++++
RC4 เป็นการเข้ารหัสข้อมูลที่ใช้สมการทางคณิตศาสตร์แบบสมมาตร(เป็นรูปแบบหนึ่งที่นิยมใช้ในการเข้ารหัสข้อมูลของ wireless LAN ) โดยจะแบ่งส่วนของข้อมูที่จะนำมาเข้ารหัสออกเป็น 2 ส่วนด้วยกันคือ
ข้อมูลตั้งต้น = ข้อมูลที่ยังไม่ได้เข้ารหัส
รหัส = ใช้เป็นกุญแจในการผสมเข้าไปในข้อมูลตั้งต้นโดยใช้สมการทางคณิตศาสตร์ช่วย
โปรแกรมเข้ารหัส RC4 ดาวน์โหลดได้จากลิ้งนี้
http://www.tempf.com/getfile.php?id=66070&key=4a76a238ef2a8
ตัวอย่างเข้ารหัสแบบ RC4
ข้อมูลตั้งต้น = เลขเด็ดงวดนี้คือ 26
รหัส = แมวบิน
ข้อมูลที่เข้ารหัสแบบ RC4 เรียบร้อยแล้ว = 8A6963350311913268165BE5767617A0A6E3A770
ตัวอย่างการถอดรหัสแบบ RC4
นำข้อความที่เข้ารหัสเรียบร้อยแล้วคือ = 8A6963350311913268165BE5767617A0A6E3A770
มาถอดรหัสโดยใช้กุญแจคือ = แมวบิน
ผลที่ได้จากการถอดรหัสคือ = เลขเด็ดงวดนี้คือ 26
จะเห็นได้ว่าส่วนที่สำคัญที่สุดคือ กุญแจรหัสที่ใช้ในการเข้าและถอด(ตัวอย่างนี้คือ แมวบิน) ดังนั้นหากท่านจะใช้การเข้ารหัสแบบนี้ส่งข้อมูลสำคัญให้คนอื่น รหัสที่ใช้ถอดต้องแยกส่งไปอีกทางเพื่อความปลอดภัย เช่น ส่งเมลคนละตัว ป้องกันคนไม่พึงประสงค์ได้ข้อมูลทั้งสองส่วนครบ แล้วนำเอามาถอดรหัส
หรือถ้าจะเอาประยุกต์ใช้ในบอร์ด ก็เอาแค่ข้อมูลที่เข้ารหัสแล้ววางลงบนบอร์ด จากนั้นก็ส่งรหัสลับให้แก่ผู้ที่ต้องการจะถอดทางเมล เป็นต้น
การเข้ารหัสแบบนี้แทบจะเป็นการเข้ารหัสที่ไม่มีใครถอดได้ในสำหรับการส่งข้อความสั้นๆ ให้กัน แต่ถ้าข้อมูลที่ใช้เข้ารหัสเป็นข้อมูลที่บรรจุข้อความมากๆ (ระดับล้านไบต์ขึ้นไป) ก็มีโอกาสถูกถอดรหัสได้เช่นกัน ดังจะเห็นได้ว่าการใช้งาน wireless LAN นั้นแม้จะเข้ารหัสแบบ RC4 ก็ถูกแฮ็คได้
อธิบายแบบให้เห็นภาพก็คือ ข้อมูลที่เข้ารหัสนั้นจะถูกส่งออกมาจากต่อเนื่อง หากข้อมูลมีจำนวนน้อยเหมือนมองภาพระยะใกล้ เราก็จะไม่รู้ว่าภาพรวมทั้งหมดคืออะไร
ถ้าเมื่อใดก็ตามจำนวนข้อมูลมีจำนวนมากพอ ลวดลายรูปแบบการเข้ารหัสจะปรากฏให้เห็นชัดเจนขึ้นทันที เหมือนการมองภาพจากระยะไกล
แต่อย่ากลัวไปเลยเพื่อนเอ๋ย การเข้ารหัสแบบนี้หากส่งข้อความสั้นๆ ในระดับไม่ถึงล้านไบต์ ไม่มีทางที่ใครจะแฮ็คหากุญแจได้ ยิ่งการส่งข้อมูลแล้วเปลี่ยนกุญแจรหัสทุกครั้ง ปีนป่ายขึ้นสวรรค์ยังจะง่ายกว่าเสียอีก
+++++++++++++++++++++
คล้อยหลังไม่นาน ลึกลงไปที่ซอกอิฐสีหม่นในตรอก บางสิ่งเริ่มเคลื่อนไหว บางสิ่งที่มีขนาดเล็กจนไม่มีใครสังเกตเห็น การปรากฏกายของมันจึงคล้ายกับผุดออกมาจากความว่างเปล่า สิ่งนั้นไต่คลานเรื่อยๆ จากเงามืดของซอกหลืบจนมาถึงเศษเถ้าธุลีที่ครั้งหนึ่งเคยเป็นร่างไวรัส ตอนนี้เองที่แสงไฟในตรอกตกกระทบร่างมัน จนมิอาจปิดบังรูปลักษณ์ได้อีกต่อไป
มันคือ 'หนอน'
เจ้าหนอนใช้หัวเล็กกระจิดริดแตะไปบนขี้เถ้าแล้วส่ายหัวไปมาคล้ายอาการของสุนัขที่กำลังดมกลิ่น เพียงครู่เดียวก็แหงนหัวขึ้น เขี้ยวคู่วาววับบนหน้าของมันขยับรัวส่งเสียงร้องหวีดแหลมดังสลับไม่เป็นจังหวะ และก็ดังขึ้นเรื่อยๆ จนกระทั่งกลายเป็นเสียงกรีดแหลมลึกเสียดแทงไปยังบรรยากาศโดยรอบ เสียงนั้นส่งแรงสั่นสะเทือนกระทบถึงอณูฝุ่นผงที่กองอยู่จนพากันไหลเกาะกลุ่มรวมเป็นร่างที่เคยถูกลบอีกครั้ง
ณ กลางตรอก เธอก้มมองร่างที่ประกอบขึ้นมาใหม่ ดวงตาส่องประกายพราวคล้ายสะเก็ดไฟที่เต็มไปด้วยพลังแห่งชีวิต ขัดแย้งกับรูปหน้าอันเรียบเฉยจนเกือบจะเป็นใบหน้าของรูปสลักที่ไร้ความรู้สึก จู่ๆ ชั่ววูบเกิดลมกรรโชกโพยพัดเศษขยะบนทางเดินสีหม่นปลิวคละคลุ้งไปทั่วตรอก มองเผินๆ ดูราวกับผีเสื้อราตรีที่บินร่อนเล่นไฟ เธอเริ่มย่างเท้าออกไปอย่างช้าๆ เสียงย่ำเดินดังสะท้อนกึกก้องอย่างเป็นจังหวะ ก่อนจะแผ่วจางลงและเลือนหายไปในม่านความมืดดำแห่งรัตติกาล คงเหลือไว้แต่ความเงียบงันปราศจากชีวิต
แล้วเสียงดนตรีก็เริ่มบรรเลงอีกครั้ง
++++++++++++
ดิ่งลึกสู่ความมืดทะมึน เพื่อเข้าใจกำงานของไวรัส(2)
ที่สุดแล้วข้อสรุปของความเป็นมนุษย์ อาจเพราะเรามีอารมณ์ หัวเราะได้เมื่อได้ยินเรื่องตลก โศกเศร้าเมื่อเจอเรื่องกระทบจิตใจ และพร้อมกับการกระทำที่ส่วนมากจะไร้ตรรกะเหตุผลรองรับอยู่เสมอ มันน่าขันสิ่งที่แยกระหว่างเรากับโปรแกรมกลับเป็นสิ่งที่ดูสามัญที่สุดสำหรับเรา
หญิงสาวคนหนึ่งที่มุมห้องเดินนวยนาดมาใกล้ ขณะเดียวกันที่หน้าประตูทางเข้า นายตรวจสองนายก็ย่างเท้าเข้ามาในห้องพอดี
"สวัสดีตอนดึก" เธอกล่าวอย่างแช่มช้า ส่งสายตาหยาดเยิ้มเชื้อเชิญ เสียงพูดแทบจะเป็นจังหวะเดียวกับดนตรีที่อ้อยอิ่ง ช่วงนั้นเองที่นายตรวจกวดตามองผ่านกลุ่มโปรแกรมที่นั่งทำงานอยู่ บางโปรแกรมชะงักครู่หนึ่งก่อนจะก้มหน้าทำงานต่อ
"ฉันเห็นคุณนั่งอยู่นานแล้ว คุณเป็นโปรแกรมประเภทไหน" พูดพลางเอื้อมเรียวงามลูบบนหลังมือที่วางบนโต๊ะของผม
เสียงเอะอะดังขึ้นที่ใกล้ประตู นายตรวจดึงเอาร่างโปรแกรมที่นั่งคุดคู้ออกมากลางลานห้อง เสียงเพลงเริ่มเร่งระดับขึ้น นายตรวจอีกคนจ้องข:-)พูดเสียงขึงขัง "มันเป็นไวรัส" จากนั้นก็ทาบฝ่ามือลงบนตัวโปรแกรม เพียงชั่วอึดใจเดียวร่างนั้นก็ลุกไหม้เหลือเพียงเถ้าถ่านหย่อมหนึ่งกองบนพื้น เพียงมองปราดผมก็รู้ทันทีการตรวจผิดพลาด เพราะนั่นแค่โปรแกรมแคร็กไม่ใช่ไวรัส
ในช่วงจังหวะเศษเสี้ยววินาทีของเหตุการณ์นั้น มีสิ่งผิดปกติบังเกิดขึ้น ปลายนิ้วมือของหญิงสาวซึ่งอยู่ตรงหน้าได้ปล่อยกลุ่มโค้ดเข้าคำสั่งบางอย่างแฝงแทรกลงบนมือผม มันเป็นการรับรู้ที่แปลกประหลาดยิ่ง ไม่ว่าเสียงดนตรีที่เร่งเร้าขึ้นตามจังหวะ เปลวไฟลุกไหม้จากการทำลายโปรแกรมของนายตรวจ โปรแกรมอื่นที่กำลังรับส่งข้อมูลกัน ทุกอย่างผ่านเข้ามาในการตระหนักรู้ทางร่างสถิตที่ผมสร้าง แต่ไม่ทันจะเกิดอะไรขึ้นเธอแทบจะชักมือกลับไปทันที จากนั้นเอียงหน้าเข้ามาพูดกระซิบใกล้ๆ
"คุณเป็นเหมือนกับฉัน"
ผมพยักหน้าแทนคำตอบ ใช่แล้วผมเป็นไวรัสเหมือนกับเธอ
++++++++++++++++++
ทำไมโปรแกรมแคร็กบางไฟล์จึงถูกมองว่าเป็นไวรัส ทำไมไวรัสบางตัวโปรแกรมจึงตรวจจับไม่ได้ ไวรัสกลายพันธุ์ได้อย่างไร คำตอบนั้นรอให้ท่านอ่านต่อจากนี้ครับ
เพื่อจะเข้าใจไวรัสยิ่งขึ้น เราต้องย้อนกลับไปยังสิ่งที่เป็นพื้นฐานที่สุดของมัน ซึ่งก็คือต้นกำเนิดนั่นเอง เราต้องเข้าใจกันก่อนว่าโดยปกติแล้วตัวไวรัสไม่ได้กำเนิดมาจากเวทย์มนต์โบราณ หรือคำสาปแช่งภูตผีปีศาจแต่อย่างใด ถึงแม้ว่าหน้าตาของคนเขียนไวรัสบางคนจะหน้าตาเหมือนผุดจากนรกก็ตาม(นี่อาจจะเป็นความจริงเพียงหนึ่งเดียวก็ได้)
ไวรัส, สปายแวร์, เวิร์ม, โทรจัน หรือเรียกรวมๆ ว่า มาลแวร์ (malware = malicious-logic software) แม้จะแบ่งแยกกันหลากประเภท แต่สิ่งเดียวที่พวกมันเป็นก็คือ โปรแกรมคอมพิวเตอร์ ซึ่งแน่นอนว่าถูกสร้างจากมนุษย์ด้วยการเขียนชุดคำสั่งจากภาษาคอมพิวเตอร์นั่นเอง
ตัวภาษาคอมพิวเตอร์แทบทุกภาษาเราสามารถนำมาเขียนเป็นไวรัสได้ทั้งนั้น ตรงจุดนี้เองที่สร้างปัญหาให้กับโปรแกรมป้องกันไวรัส เพราะไวรัสถูกสร้างขึ้นมาใหม่ทุกวัน การจะป้องกันไวรัสที่โผล่ออกมาอาละวาดต้องอาศัยระบบ virus signature คือ การตรวจสอบข้อมูลไฟล์ โดยดูจากลักษณะการเรียงลำดับข้อมูลในไฟล์ที่ต้องสงสัย ว่าเป็นไวรัสหรือไม่โดยเทียบจากฐานข้อมูลที่มีอยู่ในโปรแกรม
เช่น ให้ตรวจดูข้อมูลในไฟล์ถ้ามีข้อมูลเป็น 75 61 56 F7 E1 68 4C 2C 73 7A ตรงครบถ้วนทุกไบต์ให้ถือว่าไฟล์นี้เป็นไวรัสหรือติดไวรัสทันที (บางโปรแกรมจะมีการเช็ค Address มากกว่าหนึ่งตำแหน่งเพื่อป้องกันความผิดพลาด)
ซึ่งข้อเสียของการตรวจสอบแบบนี้ คือต้องอัปเดท virus signature อยู่เสมอจึงจะรู้จักไวรัสพันธุ์ใหม่ๆ และข้อเสียอย่างยิ่งยวดก็คือ ต้องมีคนรับเคราะห์ติดไวรัสตัวนั้นเสียก่อนจึงจะมีการอัปเดทข้อมูลไวรัส (ข่าวลือ - บริษัทป้องกันไวรัสแอบสร้างไวรัสเสียเอง แล้วปล่อยไวรัสให้แพร่กระจาย จากนั้นก็อ้างว่าโปรแกรมตัวเองอัปเดทไวรัสนั้นก่อนบริษัทอื่น เพื่อให้คนหันมาซื้อโปรแกรมของบริษัทนั้นๆ)
อีกวิธีหนึ่งที่โปรแกรมป้องกันไวรัสใช้ก็คือ 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
µTorrent ใช้ Compiler คือ UPX
KMPlayer ใช้ Compiler คือ Borland Delphi
แล้วไวรัสบางตัวทำไมถึงหลบโปรแกรมป้องกันไวรัสได้ คำตอบก็คือ คนสร้างไวรัสจะมีวิธีการทำลาย signature ดั้งเดิมของไวรัส เช่น
- จัดเรียงตำแหน่งโค้ดไวรัสตัวนั้นใหม่ หรือใส่คำสั่งอื่นๆ แทรกเพื่อให้ข้อมูลภายในไฟล์ไวรัสเปลี่ยนไป
- ใช้ตัว Compiler อื่น เช่น ไวรัสที่มีโค้ดคำสั่งภายเหมือนกันแต่ใช้ Compiler คนละตัว ข้อมูลในไฟล์ก็จะต่างกันไปด้วย
- แก้ไขข้อมูลในตัวไฟล์เลย เช่น ใช้โปรแกรม Hex editor ทำการแก้ไขข้อมูลบางส่วนที่ไม่กระทบต่อการทำงานของไวรัส
- หาตัว Packer มาเข้ารหัสไฟล์ .exe อีกชั้น
ฯลฯ
ที่เกี่ยวเนื่องกันต่อมาก็คือ การกลายพันธุ์ของไวรัส ท่านอาจจะเห็นไวรัสชื่อขึ้นต้นเหมือนกันแต่รหัสต่อท้ายไม่เหมือนกัน กลับมาอาละวาดเป็นระยะ ก็เนื่องมาจากตัวโค้ดของไวรัสบางตัวถูกนักเขียนไวรัส คนอื่นแกะโค้ดออกมาและทำการปรับปรุง (คือ ไวรัสไม่ใช่เชื้อโรคตามธรรมชาติที่ปล่อยไว้นานๆ จะวิวัฒน์กลายพันธุ์เองนะครับ) เทคนิคการแกะโค้ดนี้ ส่วนหนึ่งก็อาศัยการตรวจดู Compiler ของไวรัสต้นฉบับ จากนั้นก็หาเครื่องมือมา DeCompile เพื่อดูโค้ดคำสั่งภายในตัวไวรัส
เขียนไปเหมือนจะง่าย แต่ทำจริงๆ ท่านต้องมีความรู้ของภาษาที่ใช้เขียนไวรัส เช่น จะแก้ไขไวรัสที่เขียนมาจาก VB เมื่อได้โค้ดมาแล้ว ก็ต้องรู้ว่าคำสั่งแต่ละบรรทัดมีความหมายอย่างไร สามารถแก้ไขปรับปรุงตรงจุดไหนได้บ้าง ซึ่งในสภาพความเป็นจริง ไวรัสที่แพร่กระจายอยู่ทั่วโลกก็เขียนมาจากหลากหลายภาษา เทคนิคการเขียนก็ไม่ใช่เทคนิคปกติที่ใช้งานกันทั่วไป บางคำสั่งเมื่อเราไม่ถนัดภาษานั้นๆ เอามาศึกษาดูก็มีแต่ 'มึนแตก' แต่ถึงอย่างไรการแก้ไขก็ง่ายกว่าการสร้างใหม่ เราจึงเห็นไวรัสกลายพันธุ์อยู่เยอะแยะ
ว่าไปมันก็เหมือนดาบสองคม ถ้าท่านจะศึกษาการทำงานของไวรัสในระดับลึกๆ เพื่อหาวิธีปราบมัน ท่านก็ต้องเรียนรู้วิธีผ่าเครื่องในออกมาดู บางครั้งอาจจำเป็นต้องสร้างไวรัสเลียนแบบขึ้นมา เพื่อดูผลการทำงานของคำสั่ง หากจิตใจไม่แน่วแน่พอ ก็จะถูกครอบงำกลายเป็นมารได้ง่ายๆ เหมือนกัน
+++++++++++++++++++++++++++
ที่ตรอกนั้น ผมละจากริมผิวปากอวบอิ่มของเธอ มือข้างหนึ่งประคองหลังคอมองดูร่างที่ถูกแช่แข็ง ดวงตาเคยดำขลับบัดนี้กลายเป็นสีขาวขุ่นเพราะมีเปลือกน้ำแข็งบางๆ เคลือบทับอยู่อีกชั้นหนึ่ง ภายในห้องผมตรวจพบว่ามีแพ็คเก็จข้อมูลขนาดเล็กถูกแอบส่งออกมาจากร่างไวรัสสาว เพื่อให้ง่ายขึ้นจึงแสร้งชวนเธอออกมาข้างนอก หลังจากตรวจดูก็รู้ว่าเป็นข้อความสั้นๆ ว่า "ไม่พบ" พร้อมกับข้อมูลขยะจำนวนหนึ่งที่ถูกส่งออกไปต่อเนื่องเป็นระยะ อะไรคือไม่พบ คำตอบนั้นไม่สำคัญ คำถามสำคัญกว่า 'ไม่พบอะไร'
เมื่อย้อนเข้าไปดูโค้ดภายในไวรัสที่จับเอาไว้ ผมพบลำดับการทำงานคำสั่งให้ค้นหาสิ่งที่ไม่มี เพียงแค่นี้เท่านั้นไม่มีนัยยะสำคัญ คาดว่าเป็นแค่คำสั่งที่ไม่สมบูรณ์หรือบักระหว่างการสร้างไวรัส ไร้ประโยชน์ที่จะใส่ใจ ผมใช้มืออีกข้างแตะไปที่หน้าผากเธอหยุดการแช่แข็ง เพราะเราไม่สามารถลบโปรแกรมที่ยังค้างอยู่ในหน่วยความจำได้ การรับรู้ของเธอคืนมาอีกครั้ง สายตาที่มองมานั้นเหมือนจะเจือไปด้วยความตื่นตระหนก สับสน เหมือนเธอรู้ว่าจะเกิดอะไรขึ้น คงเป็นแค่จิตผมที่หลอนไปเองโปรแกรมพวกนี้ไม่ได้มีอารมณ์ความรู้สึกเฉกมนุษย์
"ฉันชื่อ เธไมด้า " เธอพูดด้วยน้ำเสียงสั่นเทิ้ม จ้องผมตาไม่กระพริบไม่มีเค้าความกลัวหลงเหลืออยู่ในแววตานั้นอีก แม้อยู่ต่อหน้า ก็รู้สึกเวิ้งว้างอย่างบอกไม่ถูก
ผมยิ้มให้เธอและพูดว่า "Delete" เพลิงกาฬได้เผาผลาญร่างนั้นเป็นจุลในพริบตา
ทุกอย่างควรจะจบลงตรงนี้ แต่ความผิดพลาดของผมละเลยข้อมูลขยะที่อ่านไม่ออก เพราะคิดว่าไม่สำคัญ แม้ตอนหลังจะพบว่าข้อมูลเหล่านี้คือกุญแจสำคัญของเรื่องราวทั้งหมด ข้อมูลดังกล่าวแท้จริงแล้วถูกเข้ารหัสแบบ RC4 เอาไว้ มีเพียงผู้ที่เก็บคีย์เท่านั้นถึงจะไขแปลอ่านข้อความได้ ซึ่งกว่าจะรู้ทุกอย่างก็ได้อุบัติไปแล้ว
+++++++++++++++++++++++++
RC4 เป็นการเข้ารหัสข้อมูลที่ใช้สมการทางคณิตศาสตร์แบบสมมาตร(เป็นรูปแบบหนึ่งที่นิยมใช้ในการเข้ารหัสข้อมูลของ wireless LAN ) โดยจะแบ่งส่วนของข้อมูที่จะนำมาเข้ารหัสออกเป็น 2 ส่วนด้วยกันคือ
ข้อมูลตั้งต้น = ข้อมูลที่ยังไม่ได้เข้ารหัส
รหัส = ใช้เป็นกุญแจในการผสมเข้าไปในข้อมูลตั้งต้นโดยใช้สมการทางคณิตศาสตร์ช่วย
โปรแกรมเข้ารหัส RC4 ดาวน์โหลดได้จากลิ้งนี้
http://www.tempf.com/getfile.php?id=66070&key=4a76a238ef2a8
ตัวอย่างเข้ารหัสแบบ RC4
ข้อมูลตั้งต้น = เลขเด็ดงวดนี้คือ 26
รหัส = แมวบิน
ข้อมูลที่เข้ารหัสแบบ RC4 เรียบร้อยแล้ว = 8A6963350311913268165BE5767617A0A6E3A770
ตัวอย่างการถอดรหัสแบบ RC4
นำข้อความที่เข้ารหัสเรียบร้อยแล้วคือ = 8A6963350311913268165BE5767617A0A6E3A770
มาถอดรหัสโดยใช้กุญแจคือ = แมวบิน
ผลที่ได้จากการถอดรหัสคือ = เลขเด็ดงวดนี้คือ 26
จะเห็นได้ว่าส่วนที่สำคัญที่สุดคือ กุญแจรหัสที่ใช้ในการเข้าและถอด(ตัวอย่างนี้คือ แมวบิน) ดังนั้นหากท่านจะใช้การเข้ารหัสแบบนี้ส่งข้อมูลสำคัญให้คนอื่น รหัสที่ใช้ถอดต้องแยกส่งไปอีกทางเพื่อความปลอดภัย เช่น ส่งเมลคนละตัว ป้องกันคนไม่พึงประสงค์ได้ข้อมูลทั้งสองส่วนครบ แล้วนำเอามาถอดรหัส
หรือถ้าจะเอาประยุกต์ใช้ในบอร์ด ก็เอาแค่ข้อมูลที่เข้ารหัสแล้ววางลงบนบอร์ด จากนั้นก็ส่งรหัสลับให้แก่ผู้ที่ต้องการจะถอดทางเมล เป็นต้น
การเข้ารหัสแบบนี้แทบจะเป็นการเข้ารหัสที่ไม่มีใครถอดได้ในสำหรับการส่งข้อความสั้นๆ ให้กัน แต่ถ้าข้อมูลที่ใช้เข้ารหัสเป็นข้อมูลที่บรรจุข้อความมากๆ (ระดับล้านไบต์ขึ้นไป) ก็มีโอกาสถูกถอดรหัสได้เช่นกัน ดังจะเห็นได้ว่าการใช้งาน wireless LAN นั้นแม้จะเข้ารหัสแบบ RC4 ก็ถูกแฮ็คได้
อธิบายแบบให้เห็นภาพก็คือ ข้อมูลที่เข้ารหัสนั้นจะถูกส่งออกมาจากต่อเนื่อง หากข้อมูลมีจำนวนน้อยเหมือนมองภาพระยะใกล้ เราก็จะไม่รู้ว่าภาพรวมทั้งหมดคืออะไร
ถ้าเมื่อใดก็ตามจำนวนข้อมูลมีจำนวนมากพอ ลวดลายรูปแบบการเข้ารหัสจะปรากฏให้เห็นชัดเจนขึ้นทันที เหมือนการมองภาพจากระยะไกล
แต่อย่ากลัวไปเลยเพื่อนเอ๋ย การเข้ารหัสแบบนี้หากส่งข้อความสั้นๆ ในระดับไม่ถึงล้านไบต์ ไม่มีทางที่ใครจะแฮ็คหากุญแจได้ ยิ่งการส่งข้อมูลแล้วเปลี่ยนกุญแจรหัสทุกครั้ง ปีนป่ายขึ้นสวรรค์ยังจะง่ายกว่าเสียอีก
+++++++++++++++++++++
คล้อยหลังไม่นาน ลึกลงไปที่ซอกอิฐสีหม่นในตรอก บางสิ่งเริ่มเคลื่อนไหว บางสิ่งที่มีขนาดเล็กจนไม่มีใครสังเกตเห็น การปรากฏกายของมันจึงคล้ายกับผุดออกมาจากความว่างเปล่า สิ่งนั้นไต่คลานเรื่อยๆ จากเงามืดของซอกหลืบจนมาถึงเศษเถ้าธุลีที่ครั้งหนึ่งเคยเป็นร่างไวรัส ตอนนี้เองที่แสงไฟในตรอกตกกระทบร่างมัน จนมิอาจปิดบังรูปลักษณ์ได้อีกต่อไป
มันคือ 'หนอน'
เจ้าหนอนใช้หัวเล็กกระจิดริดแตะไปบนขี้เถ้าแล้วส่ายหัวไปมาคล้ายอาการของสุนัขที่กำลังดมกลิ่น เพียงครู่เดียวก็แหงนหัวขึ้น เขี้ยวคู่วาววับบนหน้าของมันขยับรัวส่งเสียงร้องหวีดแหลมดังสลับไม่เป็นจังหวะ และก็ดังขึ้นเรื่อยๆ จนกระทั่งกลายเป็นเสียงกรีดแหลมลึกเสียดแทงไปยังบรรยากาศโดยรอบ เสียงนั้นส่งแรงสั่นสะเทือนกระทบถึงอณูฝุ่นผงที่กองอยู่จนพากันไหลเกาะกลุ่มรวมเป็นร่างที่เคยถูกลบอีกครั้ง
ณ กลางตรอก เธอก้มมองร่างที่ประกอบขึ้นมาใหม่ ดวงตาส่องประกายพราวคล้ายสะเก็ดไฟที่เต็มไปด้วยพลังแห่งชีวิต ขัดแย้งกับรูปหน้าอันเรียบเฉยจนเกือบจะเป็นใบหน้าของรูปสลักที่ไร้ความรู้สึก จู่ๆ ชั่ววูบเกิดลมกรรโชกโพยพัดเศษขยะบนทางเดินสีหม่นปลิวคละคลุ้งไปทั่วตรอก มองเผินๆ ดูราวกับผีเสื้อราตรีที่บินร่อนเล่นไฟ เธอเริ่มย่างเท้าออกไปอย่างช้าๆ เสียงย่ำเดินดังสะท้อนกึกก้องอย่างเป็นจังหวะ ก่อนจะแผ่วจางลงและเลือนหายไปในม่านความมืดดำแห่งรัตติกาล คงเหลือไว้แต่ความเงียบงันปราศจากชีวิต
แล้วเสียงดนตรีก็เริ่มบรรเลงอีกครั้ง
++++++++++++