วันพุธที่ 25 กันยายน พ.ศ. 2556

ทำความเข้าใจกับ Batch File Virus ตอน พิเศษ

เนื่องด้วยติดตามดูผลงานตัวเอง...จากหลายๆ บล็อกพบว่า...เนื้อหาเกี่ยวกับไวรัสเป็นที่สนใจของเด็กร้อนวิชา...ที่อยากจะสร้างไวรัสคอมพิวเตอร์ขึ้นมาแกล้งเพื่อน และมียอดวิวที่สูง...เลยสนองความต้องการของเด็กเหล่านี้ซะ...555 ไม่ได้หมายความว่า "พี่แมวตาเดียว" จะสอนเขียนไวรัสนะ...แต่วันนี้เราจะมาเขียนตัวฆ่าไวรัสกัน อย่างไีรก็ดี...เด็กรุ่นใหม่ที่เขียนโปรแกรมไม่เป็นเยอะมากและก็ไม่คิดจะเขียนให้เป็นด้วย...ขอแค่ คัดลอกอะไรก็ได้ลง Notepad และก็เอาไปแกล้งเพื่อน...โถ่...เด็ก...
      ท้าวความ...เมื่อก่อนตอนได้คอมพิวเตอร์เครื่องแรกมาใหม่ๆ ผมเองโดนไวรัสคอมพิวเตอร์เล่นงานซะ...อ้วม...กับค่าลงโปรแกรมและซ่อมวินโดวส์ และไวรัสสมัยนั้น...โคตะระ...ห่า...ฆ่าอยากฉิบ...ไวรัสในสมัย DOS นั้นไม่มีรูปแบบเป็น Pain text แบบสมัยนี้นะครับ...มันเป็น Binary ล้วนๆ อ่านไม่ออกหลอกว่ามันทำงานอย่างไร...หรือกล่าวได้ว่ามันเป็น Assembly Code หรือ ภาษาเครื่อง คุณไม่มีทางรู้เลยว่ามันคืออะไรมีอันตรายไหม...และเกาะติดแฟ้ม .EXE, .COM ได้อย่างไร ด้วยความแค้นและผสมความเจ็บใจจึงเริ่มศึกษาอย่างจริงๆ จังๆ ว่ามันทำงานอย่างไร...ในยุคนั้น Internet ไม่มีฐานความรู้ภาษาไทยให้มากขนาดนี้...ต้องเปิดตำราศึกษา Assembly และ C และระบบปฏิบัติการ DOS จึงพอทำความเข้าใจได้คร่าวๆ ว่า ไวรัสนั้นทำงานด้วยการอาศัยติดแฟ้มคำสั่งไม่ว่าจะเป็น .EXE, .COM, .DLL, .OVL, .BIN, .SYS ก็ตามโดยมันจะมองที่ส่วนหัวของนามสกุลดังกว่าว่าเป็น MZ หรือเปล่า ถ้าไม่เป็น มันจะเปลี่ยนเป็น ZM เพื่อบอกว่ามันติดเชื้อแล้ว ซึ่งเจ้า MZ หรือ 2 Byte แรกของไฟล์คำสั่งนั้นเป็น ซิกแนลเจอร์ ของแฟ้มคำสั่งบน Windows และ DOS ไม่รู้ว่ามันย่อมาจากคำว่า Machine Zip หรือเปล่า เดาเอา
      พอเริ่มเข้าใจว่าไวรัสทำงานอย่างไรมีกี่ประเภท...และหลบซ่อนตัวอย่างไร...จึงเริ่มเป็นนักฆ่าไวรัสแหละ...แต่พอมาถึงยุคไวรัสมาโคร...ก็เริ่มอยากศึกษาไวรัสมาโครมันทำงานอย่างไร...โดยไวรัสมาโครที่เขียนตัวแรก...ได้มาจากการลองดักจับไวรัสดังนี้
1. คัดลอกเอกสารเวิร์ดที่ติดเชื้อมาใส่ ฟล็อปปี้ดิสก์
2. เสียบในเครื่องไม่ติดเชื้อ
3. เปิดไฟล์เวิร์ดที่ติดเชื้อเพื่อดักจับ
4. เพื่อไม่ให้ไวรัสทำงานได้สมบรูณ์ เลยถอดฟล็อปปี้ดิสก์ซะ...เพื่อให้ไวรัสติดกับดัก...(ได้ผล...) ไวรัสรันคำสั่งไปได้ครึ่งทางก่อนทำการซ่อนตัวอย่างถาวร...เกิด Error ในสคริปมาโครไวรัส ทำให้ Visual Basic Application แสดงบรรทัด Error ของไวรัสมาโคร
5. 555 หวานหมู...ไม่นึกมาก่อนว่าไวรัสมาโีครที่หาตัวยากสมัยนั้น...ถูกดักจับด้วยวิธีพื้นๆ จากนั้นคัดลอกโค้ดใส่ Notepad เพราะรู้ว่าไวรัสไม่มีทางรันบน Notepad ได้
6. พึ่งมารู้ที่หลังว่า...ดักจับไวรัสที่หลบซ่อนตัวดีที่สุดในโลกตัวหนึ่งชื่อ Bablas.W32 Macro
จากนั้นเป็นต้นมาศึกษามาโครอย่างจริงจังเพื่อเขียนไวรัสมาโครเผยแพร่ และเสียบมันในร้านเน็ต...ร้านพิมพ์งานเอกสาร...รวมถึงลูกค้าที่ชอบมาเซฟงานที่ร้านก็จะไ้ด้มันกลับไป
      พอมาถึงยุคไวรัสที่ทำงานบน Hypertext ไวรัสพวกนั้น...ผมไม่มีโอกาสได้ศึกษามันเพราะติดงานประจำ และยุคแห่งความเป็นเด็กคึกคะนองก็หมดไปพร้อมๆ กับรู้ตัวว่าทำผิด แต่ยังชอบศึกษาด้านความปลอดภัยระบบกับไวรัสอย่างเสมอ มายุคที่วินโดวส์ XP ออกตลาดใหม่ๆ Hypertext ไวรัสหมดไป...ก็เริ่มหันมาเขียนตัวป้องกันไวรัสที่บล็อก AutoIt หรือ สแกนมาโครไวรัส...ซึ่งเป็นเพียงอดีต...จึงไม่รุ่ง

ทำไมไม่เขียนไวรัสแพร่กระจายต่อ
1. ผิดกฎหมาย
2. นักฆ่าซอมบี้...ต้องเก่งกว่าซอมบี้อยู่แล้ว (เปลี่ยนข้าง)
3. ไม่เล่งเห็นประโยชน์
4. เขียนเป็นตั้งแต่ Binary Virus จนถึง สคริปไวรัส แต่ Antivirus เอาไปกินหมด
5. เพราะไม่มีผู้สร้าง Antivirus คนใด...เขียนไวรัสของตัวเองให้ Antivirus ยี้ห้ออื่นฆ่าแทน

คำถามข้างคาใจหลายๆ คน
1. ผู้เขียนแอนตี้ไวรัส...เป็นผู้ปล่อยไวรัสเองใช่หรือไม่...
ผมจะย้อนถามเขาเหล่านั้นว่า...ผู้ผลิตอาวุูธนิวเครียร์...จะนำอาวุธนั้นมาบอมประเทศตัวเองใช่หรือไม่
และถ้าจะโง่บอมประเทศตัวเอง...จะรบกับประเทศอื่นที่มีนิวเครียร์อย่างไร...
2. ผู้เขียนไวรัส...คือคนที่เขียนแอนตี้ไวรัสนั้นแหละ...
ผมว่าถูกแต่ถูกบางส่วน...ไวรัสส่วนใหญ่ไม่ได้มาจากผู้เขียนแอนตี้ไวรัส...แต่มันมาจากมือใหม่ๆ ที่แอนตี้ไวรัสตรวจจับได้และฆ่าได้...แต่ถ้าเมื่อไหร่ที่มันเขียนจากผู้ผลิตแอนตี้ไวรัส...มันจะตรวจจับไม่ได้...(ตำรวจไม่จับตำรวจ) ฉนั้น...ไวรัสที่เรามักตรวจพบ...เป็นเพียงไวรัสกระจอก...และไวรัสระดับเครดิต(ไวรัสฆ่ายาก รอเสียเงิน) ส่วนไวรัสที่นักพัฒนาแอนตี้ไวรัสเขียนขึ้น...แอนตี้ไวรัสชนิดนั้นจะไม่พบหรือ แต่ใช่ว่ายี้ห้ออื่นจะหาไม่พบ...ถ้าผม...ผมเขียนไวรัสที่แอนตี้ไวรัสของตัวเองจับไม่ได้...แต่ถูกคู่แข่งยี้ห้ออื่นจับได้...เสียชื่อแย่...สู้ไม่เขียนจะดีกว่า...
3. ถ้าเขียนไวรัสเป็นจะสร้างไวรัสที่ฆ่าไม่ตาย...และแพร่ไปทั่วโลกให้โด่งดัง...
สำหรับผม...คำถามนี้...ฝันเฟื่อง...และเป็นคำถามที่มาจากผู้ที่เขียนไวรัสไม่เป็นเท่านั้น...เพราะในโลกความเป็นจริง...ไวรัส...
3.1 ถูกดักจับได้
3.2 ไม่สามารถติดเชื้อจากอากาศ...มันต้องมีโฮสต์และแหล่งที่มา...จึงถูกตรวจสอบได้เสมอ
3.3 ไวรัสมนุษย์ต่างดาวหรือลบหลีกการตรวจจับได้ในระยะแรกๆ เท่านั้น ไวรัสเหมือนสิ่งมีชีวิต...มันมีพฤติกรรมไม่พึ่งประสงค์ เครื่องหนึ่งอาจจะไม่เจอ...แต่อีกสิบเครื่องสภาพแวดล้อมไม่เหมือนกัน...ยังไงก็เจอ
4. ถ้าเขียนไวรัสได้...จะทำให้เครื่องคอมพิวเตอร์พังแบบไม่มีทางซ่อม...
คำถามนี้...ปัญญาอ่อนสุดๆ เพราะซอฟต์แวร์กับฮาร์ดแวร์มันเป็นคนละส่วนกันเป็นคู่ขนาดกันเสมอ...ถ้าไวรัสเป็นเพียงตัวเลข 12345 ในประจุไฟฟ้าบนฮาร์ดดิสก์ และเป็นเพียงสารสื่อตัวนำ ในแรม...และเป็นเพียงอนุภาคไฟฟ้าใน CPU คุณคิดว่า...มันสามารถทำให้เครื่องคอมพิวเตอร์พังได้อย่างไร แต่ยังมีช่องทางเล่นงานผ่าน BIOS ซึ่งในอนาคตเอง...โปรแกรมที่บรรจุไว้ในสารสื่อตัวนำใน BIOS จะสามารถเขียนและแก้ไขตัวมันเองได้ที่เราเรียกว่า "เฟริมแวร์" เฟริมแวร์จะถูกแก้ไขโดยไวรัสหรือเปล่า...เป็นเรื่องของอนาคต

เริ่มทำความเข้าใจไวรัสแบบใกล้ตัวขึ้น?
1. ไวรัสต้องอาศัยโฮสต์หรือพาหะ...ฉนั้นต้องทำความเข้าใจก่อนว่า...แฟ้มอะไรบ้างบนวินโดวส์ที่สามารถเขีียนสคริปได้
1.1 .VBS, .JS, .VBE, .JSE, .BAT, .CMD, และสคริปพาเวอร์เชลล์ในอนาคต รวมถึงสคริปที่ยังไม่กล่าวถึงอีกมาก...ที่สามารถทำงานได้โดยการ Open หรือ ดับเบิ้ลคลิก
1.2 แฟ้มคำสั่ง และ Link คำสั่ง รวมถึง Junction ในอนาึคต แฟ้มเหล่านี้ระบบปฏิบัติการสร้างขึ้นให้เรียกใช้งานได้ทันทีหรือดับเบิ้ลคลิก หรือ Open หรือ Shell อื่นๆ แบบอัตโนมัติ ไวรัสสามารถสิ่งสถิตย์ได้หมด
1.3 เอกสารที่มีการเรียก Hyperlink หรือ Macro ติดไวรัสได้หมดเช่นกัน เช่น .HTM, .DOC, .XLS, .PDF .CDR และเอกสารของ มาโครมิเดียเช่นกัน
สรุป...มีแฟ้มไม่กี่ประเภทที่ไม่มีไวรัส...เช่น ภาพ...เพลง...แอคไควบีบอัดทั้งหลาย...วีดีโอบางไฟล์อาจมีลิงค์ที่เรียกไวรัสจากอินเตอร์เน็ตได้...ที่ผ่านมาผู้เขียนยังเคยพบ ไวรัสที่ฝากตัวเองไว้ใน .RAR ก็มี...ด้วยการอาศัยการเรียกคำสั่ง shell บน DOS เปิดแฟ้มติดเชื้อและเขียนตัวเองทับแฟ้ม .EXE ในนั้้น มันทำได้ จึงสรุปได้ว่า แฟ้มที่เป็นข้อความเช่น .TXT, .MP3, .JPG, ,BMP, .PNG, .ICO อีกมากมาย...ที่เขียนโปรแกรมใส่ไปในแฟ้มเหล่านั้นไม่ได้...มันจะไม่ติดไวรัสนั้นเอง

สำหรับแบตช์ไฟล์ไวรัส...มีกี่ประเภท
1. มีหัวเป็น rem{วรรค}ตามด้วยโค้ดไวรัส Binary Virus>แฟ้มไวรัส.COM
2. @echo{วรรค}ตามด้วยโค้ด Binary Virus >แฟ้มไวรัส.COM
3. อาศัย Debug.EXE รันไวรัสและหลบซ่อน
4. อาศัยตัวเองใน AutoExec.NT และรอแพร่เชื้อ
5. อาศัยใน StartUp Key
6. อาศัยใน StartUp Folder
7. อาศัยใน Shell หรือ ActiveX ใน Registry
8. อาศัยตัวมันเองแพร่เชื้อและติดเชื้อโดยตรง
9. เขียนทับแฟ้ม .EXE ใน ZIP หรือ RAR
10. ทำงานผ่าน .LNK  หรือ ช็อตคัท...หรือ Hyperlink ต่างๆ
11. คาดว่าในอนาคต...ถ้าหาทางเจาะ...เมโทรยูไอ หรือหน้าจอมือถือได้...ไวรัสรวมถึงแบตช์ไฟล์ไวรัสจะกลับมาระบาดอีกครั้ง...

ไม่มีความคิดเห็น:

แสดงความคิดเห็น