Lecture 3: Malicious Software

TK

Athicha Leksansern

19 มกราคม 2567

Toothless dancing Toothless dancing

Malicious software หรือ Malware สามารถแบ่งออกเป็น 2 ประเภทคือ

  1. Program fragments: โปรแกรมที่ต้องไปเกาะไฟล์ หรืออีกโปรแกรมนึง
  2. Independent self-contained programs: โปรแกแรมที่สามารถรันได้ด้วยตัวเอง โดย Operating system

และก็สามารถแบ่งได้ด้วย malware ที่มันจะสร้างตัวเองเพิ่ม และ ไม่สามารถสร้างตัวเองเพิ่ม

Malware terminology คำศัพท์ที่เกี่ยวข้อง

  • Virus: virus จะซ่อนตัวกับโปรแกรม และจะแพร่ตัวเองไปยังโปรแกรมอื่นๆ
  • Worm: เป็นโปรแกรมที่แพร่ และ copy ตัวเองไปคอมเครื่องอื่น
  • Logic bomb: เป็นโปรแกรมที่รอ ให้ Condition บ้างอย่างเกิดขึ้น
    • Time bomb เช่น รอเวลา
  • Trojan horse: เป็นโปรแกรมที่จะมี Function ซ่อนอยู่
  • Backdoor / Trapdoor: เป็นโปรแกรมไว้ Bypass ระบบ Authentication
  • Mobile code: เป็นโปรแกรม (เช่น Script, macro) ที่จะถูกรันในโปรแกรมต่างเช่น Spreadsheet, Docx, …
  • Downloaders: เป็นโปรแกรมที่จะโหลดไฟล์อื่นๆ
  • Auto-rooter: สามารถเข้าถึงคอมเครื่องอื่นๆ ได้ผ่านอินเตอร์เน็ต
  • Kit (virus generator): อุปกรณ์ไว้สร้าง Virus แบบอัตโนมัติ
  • Spammer / Flooder: Spam
  • Keyloggers: โปรแกรมจับการพิมพ์คียบอร์ด
  • Rootkit: โปรแกรมที่จะเข้าถึง root-level access หรือ สิทธิ์ที่สูงที่สุดใน Unix system
  • Zombie: 🧟‍♀️🧟‍♂️
  • Spyware: แอบเก็บข้อมูล
  • Adware: แอบใส่โฆษณา
  • Zero day attack: Malware ที่ยังไม่มีการรับมือ (no countermeasure)

Multiple-threat malware

  • Multipartie virus: จะสามารถโจมตีไฟล์ได้หลากหลายประเภท, การจัดการ virus (eradication) ก็จำเป็นจะต้องจัดการให้ครบทุกรูปแบบด้วย
  • Blended attack: จะใช้หลายเทคนิคในการโจมตี เพื่อประสิทธิภาพและความเร็วในการทำร้ายล้างสูงสุด

Virus

  • โปรแกรมที่จะไปเกาะกับโปรแกรมอื่นๆ โดยที่ Virus จะดัดแปลงโปรแกรมเดิมและซ่อนตัวเองเข้าไป ซึ่ง Virus จะถูกรันเมื่อโปรแกรมนั้น (host program) ถูกรัน
  • จะขึ้นอยู่กับ Operating system และ Hardware
  • Virus จะมีขั้นตอนดังนี้
    1. Dormant: รอให้มีเหตุการเกิดขึ้น
    2. Propagation: แพร่ตัวเองไปโปรแกรมอื่นๆ / disks อื่นๆ
    3. Triggering: เมื่อมี Event บางอย่างเกิดขึ้น Payload (ตัวไวรัส) จะทำงาน
    4. Execution: Function จะถูกรัน
  • Virus มีส่วนประกอบดังนี้
    1. Infection mechanism: กลไกการติดเชื้อ
    2. Trigger: event ที่จะทำให้เกิดการรัน (payload activate)
    3. Payload: virus นั้นจะทำอะไรกับระบบ?
  • Virus จะสามารถติดได้ดังนี้
    • One-time execution จะรันเพียงครั้งเดียว, Boot sector viruses, Memory-resident viruses, Application files, Code libraries
  • Virus มันไปเกาะกับโปรแกรมได้ยัง?
    • Appened: Virus \rightleftarrows Code
    • Surrounded: Virus \rightleftarrows Code \rightleftarrows Virus
    • Integrated: Virus จะแทรกแซงตามโค้ด, ซึ่งจำเป็นจะต้องมีความรู้ว่าโปรแกรมนั้นๆ ทำงานอย่างไร จึงจะรู้ว่าใส่ตรงไหนจะดีที่สุด
  • การป้องกัน
    • Block initial infection: ป้องกันแต่แรก
    • Access controls: ควบคุมการเข้าถึงของแต่ละโปรแกรม ป้องกันการแพร่ไปโปรแกรมอื่นๆ แยกสิทธิ์

โครงสร้างของ Virus

beginVirus // <..............> = optional ไม่ต้องมีก็ได้
1. Infection section:
  <decrypt virus code using key> // ถอดรหัส (ไม่ต้องมีก็ได้)
   if spread-condition met then // ถ้าสภาพการแพร่เชื้อเหมาะสม
      find targets to be infected // หาเหยื่อ
      <mutate virus code for copying> // กลายพันธุ์ (ไม่ต้องมีก็ได้)
      <encrypt virus copy with random key> // เข้ารหัสไวรัส (ไม่ต้องมีก็ได้)
      add/insert [mutated/encrypted] copy of virus into target // แทรกไวรัสที่กลายพันธุ์/เข้ารหัส ไปที่เหยื่อ
      alter target to execute virus when initiated // ให้เหยื่อรันไวรัส
      <stealth code to hide modification> // ซ่อนไวรัส
2. Damage section:
  if trigger condition is met then // ถ้าสภาพการทำร้ายล้างเหมาะสม
    execute damage code // ทำร้ายล้าง
  else goto beginning of host program code // ถ้ายังไม่เหมาะสมก็รันโปรแกรมเดิมปกติ
endvirus
<decryption key>

Virus signature

  • เป็น pattern ของ Code หรือข้อมูล ที่จะสามารถบงบอกได้ว่านี้คือ virus ซึ่งจะสามรถไว้ตรวจสอบ และบอกได้ว่านี้คือ virus อะไร
  • Anti-virus จะทำการค้นหา Virus signature ในการตรวจสอบได้

ประเภทของ virus

  • Boot sector infector: จะแทรกตัวเองใน Boot sector
  • File infector: จะแทรกในไฟล์ที่ OS จะรัน
  • Macro virus: จะแทรกตัวในไฟล์ Macro code ต่างๆ เช่น Spreadsheet, Docx, …
  • Encrypted virus: ไวรัสที่เข้ารหัส
  • Stealth virus: ไวรัสจะซ่อนตัวจาก Antivirus ซึ่งจะซ่อนทั้งหมดเลย ไม่ใช่แค่ใน Payload
  • Polymorphic virus: ไวรัสที่จะมีการกลายพันธุ์ทุกครั้งที่มีการแพร่ ซึ่งการตรวจสอบด้วยวิธี Virus signature จะไม่สามารถใช้ได้
  • Metamorphic virus: ไวรัสที่จะเปลี่ยนรูปร่าง และ การทำงานของมัน เพื่อให้ยากต่อการตรวจสอบมากขึ้น

การรับมือกับ Virus

  • Prevention: ยากแต่ดีที่สุด 🙏
  • Detection
    • Scanners ตรวจสอบด้วย Fixed signatures (static viruses)
    • Heuristic scanning techniques จะสามารถตรวจสอบ Polymorphic ไวรัสได้ ด้วยการตรวจสอบโค้ดที่น่าจะมีการทำงานที่ผิดปกติ เช่น instruction jump ที่แปลกๆ หรือ พยายามที่จะอ่าน System file
    • Activity monitoring: ตั้งพื้นที่ในหน่วยความจำ เพื่อที่จะรอเหตุการแปลกๆ ขึ้น
    • Integrity checking: checksums หรือ hash values
  • Identification
  • Removal (disinfection)

Advanced anti-virus techniques

  • Generic decryption: สร้าง CPU emulator ขึ้นมาเพื่อรัน Virus และตรวจสอบ Virus signature บ่อยๆ เพื่อรอ Virus decrypt ใน CPU emulator
  • Digital immune system (IBM): ทำ server มารับหน้าที่รันโปรแกรมที่น่าสงสัยบน Sandbox ก่อนที่จะส่งไปยังคอมพิวเตอร์

Worms 🐛

  • โปรแกรมที่จะแพร่ตัวเองไปยังคอมเครื่องอื่นๆ ผ่าน Internet เช่น Email, Remote execution, Remote login
  • มี 4 phases เหมือนกับ Virus
    • Dormant, Propagation, Triggering, Execution

การรับมือกับ Worm

  • แบบเดียวกับ Anti-virus
  • Signature-based worm scan filtering
  • Filter-based worm containment: ดูที่ worm content มากกว่าที่ signature
  • Payload-classification-based worm containment: ดูจาก Packets ว่ามีความผิดปกติอะไรหรือป่าว?
  • Threshold random walk scan detection
  • Rate limiting & rate halting: ปิดการเชื่อมต่อทันที หากพบว่ามีการเชื่อมต่อ เข้าหรือออก ที่เยอะผิดปกติ
  • Proactive worm containment: คล้ายๆ กับ Rate limiting
  • Network based worm defense: คล้ายทั้ง Proactive และ Rate limiting แต่จะการส่งไปรันบน Honeypot หรือ Sandbox เพื่อตรวจสอบ และเมื่อสามารถระบุ Worm ได้แล้ว ก็จะสามารถแก้ไข และป้องกันได้

Bots 🤖

  • โปรแกรมที่จะควบคุม Computer เพื่อที่จะทำการโจมตีที่จะยากมากๆ ที่การตรวจจับ
  • สามารถนำไปโจมตีได้หลากหลายแบบ
    • Distributed denial-of-service attacks
    • Spamming
    • Sniffing traffic
    • Keylogging
    • Spraeding new malware
    • Installing adavertisement add-ins and browser helper objects (BHOs)
    • Attacking IRC chat networks
    • Manipulationg online polls/games

Rootkits

  • โปรแกรมที่จะเข้าถึง Root-access ของระบบ (สิทธิ์ที่สูงที่สุด)
  • อาจจะเป็น
    • Persistent (คงอยู่): จะทำงานทุกครั้งที่ระบบบูท, ซึ่งมักจะซ่อนตัวเองอยู่ใน Registry หรือ System file และแก้ไขให้ตัวเองถูกรัน โดยไม่ต้องผ่าน user
    • Memory-based: ไม่คงอยู่ หากเมื่อ Reboot มันก็จะหายไป
    • User-mode: ดักจับการเรียก API และแก้ไขผลลัทพ์
    • Kernel-mode: ดักจับ API ที่อยู่ใน Kernel mode และก็ยังสามารถลบตัวเอง จากรายชื่อที่ Process กำลังรันอยู่ได้อีกด้วย
  • อาจจะเผลอติดตั้งโดย user ผ่าน Torjan horse หรือ ผู้บุกรุกระบบ

Ransomware

WCry Ransomware WCry Ransomware

  • เป็น malware ที่จะเข้ารหัสไฟล์ของเหยื่อ หรือ ล้อคคอมของเหยื่อไม่ให้ใช้งาน เพื่อเรียกร้องค่าไถ หลังจากได้ค่าไถ ก็จะได้รับ Decryption key เพื่อมาปลดล็อคข้อมูลหรือระบบ
  • สามารถติดผ่าน
    • Phishing emails
    • เข้าเว็บ Corrupted
    • โหลดไฟล์ที่ Infected
    • ช่องโหว่ใน System หรือ Network
    • Remote Desktop Protocol (RDP) attack
  • หลังจากที่โดนโจมตีด้วย ransomware การจ่ายเงินจะไม่ได้การันตีว่าจะได้ไฟล์คืน! แถมยังจะช่วยให้ส่งเสริมให้โจมตีต่ออีก
  • Ransomware สามารถแบ่งออกได้ 4 แบบ
    • Encryption: เข้ารหัสไฟล์ จะทำให้ไม่สามารถเปิดไฟล์ได้
    • Lockers: ล้อคคอมไม่ให้ใช้งาน
    • Scareware: เด้ง Pop-ups ต่างๆ เผื่อให้กลัวและซื้อโปรแกรมเรื่อยเปื่อย
    • Doxware/Leakware: ขู่ที่จะเปอดเผยข้อมูล / ไฟล์ส่วนตัว หรือข้อมูลของบริษัท
  • วิธีการป้องกัน
    1. Backup ข้อมูล
    2. Update ระบบบ่อยๆ
    3. ติดตั้ง Antivirus และ Firewall
    4. Network segmentation เพื่อลดการแพร่กระจาย
    5. Email protection
    6. Application whitelist
    7. Endpoint security
    8. Limit user access privileges
    9. ทำ Sucurity testing บ่อยๆ
    10. ให้คำปรึกษา / อบรมด้าน Security awareness

made with ❤️ by @tonkaew131 Cookie policy