1 คะแนน โดย GN⁺ 2023-07-14 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • แผนภาพของลำดับการโจมตีหลายขั้นตอนที่อาศัยการนำไฟล์ฟอร์แมตและฟีเจอร์แบบเลกาซีของ Windows จำนวนมาก เช่น OOXML, RTF, OLE, CHM, VBScript มาใช้ต่อเนื่องกัน จนไปถึง PEAPOD Payload ขั้นสุดท้าย
  • OOXML ที่โฮสต์จากระยะไกลจะโหลด afchunk.rtf ที่ฝังอยู่ และ OLE Objects ภายในนั้นคือจุดเริ่มต้นของการเชื่อมต่อไปยังทรัพยากรภายนอกและการรั่วไหลของข้อมูลรับรอง
  • ระหว่างกระบวนการโจมตี NTLM Credentials จะถูกส่งไปยัง SMB Server ที่ผู้โจมตีควบคุม และไฟล์อันตรายจะถูกวางผ่านเส้นทางที่ผ่านไฟล์ .search-ms และ ZIP ที่ถูกเขียนลงใน %LocalAppData%
  • หากเลิกใช้เทคโนโลยีทั้งหมดในกราฟิกนี้ ปัญหาด้านความปลอดภัยราว 80% จะหายไป และ Windows ก็แทบจะเป็น "ชั้นความเข้ากันได้ของมัลแวร์สำหรับทุกสิ่ง"
  • การประเมินที่สอดคล้องกันสองด้านคือ Microsoft ไม่สามารถถอดเทคโนโลยีเลกาซีเหล่านี้ออกได้ด้วยเหตุผลทางธุรกิจที่ชอบธรรม และในขณะเดียวกัน บนสแตกนี้ก็ไม่มี ระบบมูลค่าสูง ใดปลอดภัยได้อย่างแท้จริง

ขั้นที่ 1 — การเข้าสู่เอกสารและการรั่วไหลของข้อมูลรับรอง

  • เอกสาร OOXML ที่โฮสต์จากระยะไกลโหลด afchunk.rtf ที่ฝังอยู่ผ่าน XML
  • ภายใน afchunk.rtf มี OLE Objects สองตัว ซึ่งทำหน้าที่เป็นจุดแตกแขนงของการเชื่อมต่อภายนอกและการขโมยข้อมูลรับรอง
    • OLE Objects เชื่อมไปยังลิงก์ /MSHTML_C7/start.xml
    • OLE Objects ดึง NTLM Credentials ออกมาและส่งไปยัง SMB Server ที่ผู้โจมตีควบคุม
  • file001.url ก็ชี้ไปยัง SMB Server เดียวกันเช่นกัน

ขั้นที่ 2 — ผ่าน XSLT และ iframe

  • /MSHTML_C7/start.xml เชื่อมต่อไปยัง start.xml ในรูปแบบ XSLT format
  • start.xml(XSLT) เชื่อมไปยัง RFile.asp
  • RFile.asp สร้าง iframes สองตัว และ iframe เหล่านี้ก็เชื่อมต่อกลับไปยัง SMB Server ที่ผู้โจมตีควบคุมอีกครั้ง

ขั้นที่ 3 — การส่งไฟล์ผ่าน SMB Server

  • SMB Server ส่ง [somehex]_file001.htm
  • [somehex]_file001.htm เชื่อมต่อไปยัง ไฟล์ .search-ms และไฟล์นั้นทำให้เกิด ZIP ที่ถูกเขียนลงใน %LocalAppData%
  • [somehex]_file001.htm ยังแตกแขนงไปยัง redir_obj.htm ด้วย และ redir_obj.htm จะโหลด 1111.htm

ขั้นที่ 4 — การคลาย ZIP และการรันเพย์โหลด

  • ภายใน ZIP ที่ถูกเขียนลงใน %LocalAppData% มี 2222.chm และ 1111.htm อยู่
  • 2222.chm โหลด file1.mht
    • file1.mhtfileH.htmDownloader VBScript
    • Downloader VBScript จะรัน PEAPOD Payload ในท้ายที่สุด

ประเด็นวิจารณ์หลัก — เทคโนโลยี Windows แบบเลกาซีกับความปลอดภัย

  • มีข้ออ้างว่าหากเลิกใช้เทคโนโลยีทั้งหมดที่ปรากฏในกราฟิก ปัญหาความปลอดภัยคอมพิวเตอร์ราว 80% จะถูกแก้ไข
  • มีการอธิบายว่า Windows ทำหน้าที่เป็น "ชั้นความเข้ากันได้ของมัลแวร์สำหรับทุกสิ่ง (malware compatibility layer)"
  • ทั้งข้อเท็จจริงที่ว่า Microsoft ไม่สามารถถอดเทคโนโลยีเลกาซีเหล่านี้ออกได้ด้วยเหตุผลทางธุรกิจที่ชอบธรรม และข้อเท็จจริงที่ว่า ตราบใดที่ยังอยู่บนสแตกนี้ ก็จะไม่มีระบบมูลค่าสูงใดปลอดภัยได้ เป็นสิ่งที่เป็นจริงพร้อมกัน
  • จากประสบการณ์ที่เคยเห็นวิธีจัดวางระบบ PLC แบบ "แอร์แกป (airgapped)" ในโรงงาน จึงรู้สึกโล่งใจที่ kinetic cyberwarfare ซึ่งก่อความเสียหายทางกายภาพนั้นยังไม่ใช่เรื่องปกติในโลกความเป็นจริง

1 ความคิดเห็น

 
GN⁺ 2023-07-14
ความคิดเห็นจาก Hacker News
  • ยิ่งแพลตฟอร์มหนึ่งทรงพลังและใช้งานได้หลากหลายมากแค่ไหน มัลแวร์ ก็ย่อมเกิดขึ้นตามมา
    เหตุผลที่มัลแวร์ฝั่งผู้บริโภคโจมตี Linux บนเดสก์ท็อปน้อยกว่า เป็นเพราะส่วนแบ่งตลาดอยู่ราว 3% และการโจมตี Windows เดสก์ท็อปที่เข้าถึงผู้ใช้ได้มากกว่านั้นคุ้มกว่ามาก
    อีกทางเลือกหนึ่งก็คือทำให้คอมพิวเตอร์กลายเป็นโทรศัพท์ระดับพรีเมียมโดยพฤตินัย หรือก็คืออุปกรณ์เสพสื่อแบบปิดล็อก ที่เอาทุกอย่างไปไว้ใน sandbox และตัดสิทธิ์ในการทำสิ่ง “ไม่ดี” ออกไป
    แน่นอนว่ายกเว้นเรื่องการติดตาม เพราะบริษัทที่สร้างระบบปฏิบัติการก็ขายโฆษณาด้วย

    • เคยมีข้อแก้ตัวที่ได้ยินกันบ่อยว่าเหตุผลที่ Windows 95 จนถึง XP มีมัลแวร์เยอะก็เพราะ มันได้รับความนิยม แต่หลังจาก Vista เป็นต้นมา Microsoft เริ่มจริงจังกับความปลอดภัยมากขึ้น สถานการณ์ก็ดีขึ้นอย่างมาก
      แม้ยังไม่สมบูรณ์แบบ แต่สุดท้ายปัญหาไม่ได้อยู่ที่ความนิยม แต่อยู่ที่ การออกแบบซอฟต์แวร์ที่ไม่ปลอดภัย และยังมีพื้นที่ให้ปรับปรุงอีกมาก
    • มีทางเลือกที่สาม คือคงพลังของแพลตฟอร์มไว้ แต่เพิ่ม ระดับการแยกกักเริ่มต้นของซอฟต์แวร์ third-party และให้ผู้ใช้เลือกสิทธิ์ได้เอง
      macOS กำลังเดินไปในทิศทางนี้ และ Qubes เป็นตัวอย่างที่สุดโต่งยิ่งกว่า
      อนาคตของการใช้คอมพิวเตอร์เดสก์ท็อปมีแนวโน้มว่าจะเป็นโลกที่ทุกอย่างรันอยู่ใน virtual machine ของตัวเอง
    • ตัวอย่างที่ยกมาดูเหมือนจะหักล้างข้อสรุปนั้นเอง
      Linux ถูกใช้อย่างแพร่หลายมหาศาลบนโทรศัพท์ในรูปแบบของ Android และโทรศัพท์ก็เป็นเป้าหมายที่น่าสนใจพอๆ กับเดสก์ท็อป หรืออาจมากกว่าด้วยซ้ำในตอนนี้
      มัลแวร์บนมือถือมีอยู่ แต่พบได้น้อยกว่ามากและเข้าถึงได้ยากกว่า
      วิธีติดตั้งซอฟต์แวร์บน Linux แตกต่างจาก Windows โดยสิ้นเชิง และการจะหลอกให้คนรันก้อนไบนารีสักก้อนต้องใช้ความพยายามค่อนข้างมาก
      ถึงขั้นที่ว่าหลายคนมองว่าการแจกจ่ายผ่านคอนเทนเนอร์ยังง่ายกว่าการแจกเป็นไบนารีคอมไพล์สำหรับเดสก์ท็อปเฉพาะเสียอีก
      ถ้ามองเลยพ้นเดสก์ท็อปไป โลกของเซิร์ฟเวอร์ก็เต็มไปด้วย Linux และมันเป็นระบบปฏิบัติการยอดนิยมที่สุดสำหรับรันซอฟต์แวร์ฝั่งเซิร์ฟเวอร์ จึงเป็นเป้าหมายที่มีมูลค่าสูงมากสำหรับแฮ็กเกอร์
      คงมีไม่กี่อย่างที่ดึงดูดใจเท่าการยึดเซิร์ฟเวอร์ของธนาคารได้
      การบอกว่าไม่มีอะไรเลยที่ทำให้ Linux ปลอดภัยกว่า Windows โดยเนื้อแท้นั้นฟังดูไม่ค่อยสอดคล้องกับความเป็นจริง
      ระบบตระกูล Unix ถูกออกแบบมาโดยคำนึงถึงการใช้งานหลายผู้ใช้ตั้งแต่แรก ดังนั้นสิทธิ์ของผู้ใช้จึงฝังอยู่ในกระแสหลักมาหลายสิบปี และเพียงเท่านี้ก็เป็นชั้นความปลอดภัยสำคัญที่ทำให้ rootkit หรือ worm ที่ต้องใช้สิทธิ์ root สำเร็จได้ยากขึ้นมาก
      Windows 9x~XP รุ่นเก่าแทบจะให้สิทธิ์ผู้ดูแลระบบกับทุกคน และการเขียนหรือแก้ไข system32 DLL ก็เป็นเรื่องง่าย
      ถ้าจะโจมตี Linux ก็ต้องหลอกให้ผู้ใช้รันอะไรบางอย่างด้วยสิทธิ์ที่ยกระดับแล้ว หรือหาช่องโหว่ในซอฟต์แวร์ที่รันด้วยสิทธิ์ root
      แต่ถ้าจะโจมตี Windows รุ่นเก่า แค่ทำให้ผู้ใช้รันซอฟต์แวร์ของฉันก็พอแล้ว
    • ข้ออ้างที่ว่า Linux ถูกโจมตีด้วยมัลแวร์น้อยกว่าเพราะมีส่วนแบ่งเดสก์ท็อปแค่ 3% นั้นฟังไม่ค่อยขึ้นอีกต่อไป
      ในโลกมือถือ Android หรือก็คือ Linux คือผู้เล่นรายใหญ่ที่สุด และถ้านับตามจำนวนผู้ใช้ปลายทางก็ใหญ่กว่า Windows ด้วยซ้ำ
      แต่เราก็ไม่ได้เห็นคำบ่นเรื่องมัลแวร์ Android มากเท่ากับ Windows
      ไม่ได้คิดว่า Microsoft ไร้ความสามารถเรื่องความปลอดภัยของ Windows แต่ในเชิงประวัติศาสตร์มีการตัดสินใจด้านการออกแบบที่สร้างปัญหาไว้จริง
      win9x ไม่มีการแยกโปรเซส ทั้งที่ i386 ก็ทำได้อยู่แล้ว และผู้คนก็คาดหวังว่าโปรแกรมเก่าจะยังทำงานต่อได้แม้ใน WinXP ที่ใช้เคอร์เนล NT
      การกระจายซอฟต์แวร์แบบรวมศูนย์บน Windows เป็นเรื่องที่ค่อนข้างใหม่เมื่อเทียบกับ apt ที่มีมาตั้งแต่ปี 1998 และรายละเอียดเล็กๆ อย่างการซ่อนนามสกุลไฟล์ก็ทำให้ Windows เป็นเป้าหมายที่ง่ายกว่า ChromeOS, iOS, Android, macOS และ GNU/Linux
      จำได้ว่าเคยได้ยินคำพูดว่า “ถ้า Linux ได้รับความนิยมเท่า Windows นักพัฒนามัลแวร์ก็จะหันมาโจมตีมัน” แต่ถ้ามองไปที่สมาร์ตทีวี ระบบ infotainment เซิร์ฟเวอร์ ซูเปอร์คอมพิวเตอร์ ระบบฝังตัว และมือถือ โดยเฉพาะ Android แล้ว Linux นั้นใหญ่กว่า Windows มานานมากแล้ว
      ไม่คิดว่าส่วนแบ่งเดสก์ท็อปที่ต่ำคือเหตุผลหลักที่ทำให้มัลแวร์มีน้อยกว่า
      https://gs.statcounter.com/os-market-share#monthly-202206-20...
    • ไม่เห็นด้วยกับข้ออ้างนี้ทั้งหมด
      Linux มีแพ็กเกจจำนวนมหาศาลจึงมีพื้นผิวการโจมตีกว้าง แต่ส่วนแกนหลักเปิดกว้างมาก จึงมีความสนใจและสายตาจำนวนมากคอยตรวจสอบ
      ช่องโหว่มักถูกแพตช์ค่อนข้างเร็ว และ Linux เวอร์ชันต่างๆ รวมถึงแพ็กเกจ GNU ก็ขับเคลื่อนอินเทอร์เน็ตแทบทั้งหมดอยู่แล้ว จึงมีแรงจูงใจในการเจาะระบบมากพออยู่แล้ว
      นอกจากนี้บน Linux ยังดูออกได้ง่ายกว่ามากว่าโปรเซสกำลังทำสิ่งที่ไม่ควรทำหรือไม่ และก็ตรวจดูภายในเพื่อยืนยันว่าเกิดอะไรขึ้นได้สะดวกกว่าด้วย
  • ปัญหาความปลอดภัยใหญ่ที่สุดของ Windows จนถึงทุกวันนี้ยังคงเป็นการผสมกันของ การซ่อนนามสกุลไฟล์โดยค่าเริ่มต้น และ การไม่มีบิตสิทธิ์สำหรับการรันโปรแกรม
    มันทำให้ผู้โจมตีสร้างไฟล์รันอันตรายที่ใช้ไอคอนเหมือนเอกสาร Word หรือไฟล์ชนิดคุ้นตาอื่น ๆ ได้ง่ายเกินไป และผู้ใช้ทั่วไปแทบไม่มีทางรู้ได้เลยว่ามันอันตราย
    ถ้ามีบิตสิทธิ์สำหรับการรัน ไฟล์ exe ที่มาจากแหล่งแปลก ๆ ก็คงไม่สามารถรันได้เฉย ๆ โดยไม่มีการให้สิทธิ์
    ถ้าแสดงนามสกุลไฟล์เป็นค่าเริ่มต้น ผู้ใช้ที่พอมีความรู้เพียงเล็กน้อยก็จะเห็นความเสี่ยงได้
    ในเมื่อ Windows ก็แสดงการแจ้งเตือนเยอะอยู่แล้ว แค่เตือนตอนดับเบิลคลิกครั้งแรกว่า “นี่คือไฟล์รันโปรแกรม โปรดระวัง” ก็น่าจะช่วยได้มาก
    ไฟล์ไบนารีที่ดาวน์โหลดจากเบราว์เซอร์จะถูกติดคุณสมบัตินามสกุลว่า “อาจไม่ปลอดภัย” เพื่อให้มีคำเตือนตอนเปิดครั้งแรก ซึ่งทิศทางมันกลับกัน
    ไฟล์ไบนารีทุกตัวควรถูกเตือนจนกว่าจะมีคุณสมบัติว่า “ผู้ใช้รับรู้ความเสี่ยงแล้ว”

    • ไฟล์ทุกไฟล์ที่ดาวน์โหลดมาจะมี Mark of the Web ติดมาด้วยอยู่แล้ว และแค่นี้ก็กันการโจมตีแบบง่าย ๆ ได้เกือบทั้งหมด
      เพราะงั้นการกระจายมัลแวร์จึงต้องใช้อ้อมทางที่ยุ่งยาก เช่น เซิร์ฟเวอร์ SMB บนอินเทอร์เน็ตที่ผู้โจมตีควบคุม เพื่อพยายามแพร่ไฟล์รัน
      นอกจากนี้ Windows ACL ก็มีสิทธิ์รันแยกตามผู้ใช้ กลุ่ม และอ็อบเจ็กต์ที่เกี่ยวกับนโยบายอยู่แล้ว
      โดยค่าเริ่มต้นมันเปิดไว้สำหรับไฟล์รันที่อ่านได้ แต่ก็ไม่มีข้อจำกัดอะไรในการทำให้ไฟล์รันไม่สามารถรันได้
      ยิ่งไปกว่านั้น ไฟล์รันแทบทั้งหมดก็จะแสดงคำเตือนขนาดใหญ่ประมาณว่า “กำลังจะติดเครื่องคุณ ฆ่าสัตว์เลี้ยง และเอาเด็กไปบูชาซาตาน” อยู่แล้วโดยค่าเริ่มต้น
      แม้จะปิดได้ แต่ในกรณีส่วนใหญ่ก็ยังเปิดอยู่
      เพราะแบบนี้ผู้โจมตีจึงหันไปใช้ผลข้างเคียงจากกรณีชายขอบอย่าง RTF OLE embedding หรือ wrapper แบบ CHM/MHT
      ครึ่งหนึ่งของกราฟนี้ก็ยังใช้ได้กับ macOS หรือ Linux ที่ถูกตั้งค่าสำหรับสภาพแวดล้อมองค์กร
      ส่วนใหญ่เป็นเรื่องที่เบราว์เซอร์และแอปออฟฟิศทำหน้าที่ของตัวเอง
      ประเด็นสำคัญคือ จนกว่าจะถึงช่วงท้ายที่หลุดจาก sandbox แล้วสคริปต์ค่อยดาวน์โหลดเพย์โหลดจริง ในบริบทของระบบปฏิบัติการยังไม่มีโค้ดที่รันได้จริงเลย
    • ถ้าไฟล์ถูกดาวน์โหลดผ่าน IE/Edge และมาจากโซนอินเทอร์เน็ต ก็จะมีการบันทึก Zone.Identifier ADS เพื่อทำเครื่องหมายให้บล็อกการรัน
      ผู้ใช้ต้องปลดบล็อกด้วยตัวเอง
    • Windows โดยค่าเริ่มต้นจะไม่รันสิ่งที่ไม่มีลายเซ็นถูกต้องโดยไม่ขอสิทธิ์
      แต่อาจมีการปิดฟีเจอร์นี้ไว้
      หลายคนปิดเพราะมันน่ารำคาญ เนื่องจากต้องกดยอมให้สิทธิ์กับแทบทุกอย่างที่ดาวน์โหลดมาจากอินเทอร์เน็ต
    • Windows ทำในสิ่งที่เสนอไว้นี้อยู่แล้วในหลายชั้น
      เบราว์เซอร์เริ่มต้นจะเตือนก่อนดาวน์โหลด, SmartScreen จะถามเมื่อจะรันแอปที่ยังไม่ผ่านการยืนยัน, และ UAC ก็จะถามซ้ำอีกครั้งเป็นด่านสุดท้าย
    • ถ้าใช้ NTFS ก็มี บิตสิทธิ์สำหรับการรันโปรแกรม อยู่แล้ว
      ที่จริงในหลายที่ก็ตั้งค่าให้ห้ามรันจากทั้ง user profile ไปเลยด้วยซ้ำ
  • ทุกวันนี้มัลแวร์ไม่ใช่ส่วนที่เลวร้ายที่สุดของ Windows ด้วยซ้ำ
    Windows แทบจะเป็น เอนจินเก็บข้อมูล telemetry จากระยะไกล ที่ดาวน์โหลดได้ และเป็นรถโกคาร์ตสปายแวร์ที่มีหน้าจอล็อกอินติดมาด้วย
    เวลามันไม่ได้ทำตัวเหมือนคนเชียร์ขายของหน้าร้าน คอยขายของสารพัดกับของไร้ประโยชน์ที่คัดมาให้ด้วยการสอดส่อง มันก็จะ gaslight ใส่คุณเหมือนแฟนเก่าสุดเป็นพิษว่าคุณ “ต้องการ” เบราว์เซอร์ใหม่
    ตอนอัปเกรดก็ต้องภาวนาให้ฮาร์ดแวร์ของคุณเข้ากันได้
    Redmond ทุ่มพลังอย่างไม่รู้จักเหน็ดเหนื่อยไปกับการโน้มน้าวว่าพีซีอายุ 5 ปีที่ยังทำงานดีอยู่นั้น “ล้าสมัย” ด้วยพลังแบบเดียวกับที่ใช้เตือนให้คุณดู app store ร้าง ๆ และสนามเด็กเล่นของไมโครทรานแซกชัน
    ต่อให้คุณติดตั้ง Chrome ได้สำเร็จไม่ทางใดก็ทางหนึ่ง พอ Microsoft จับได้ว่าคุณมีรสนิยมที่ไม่ผ่านการอนุมัติจากฝ่ายการตลาด แอปส่วนใหญ่ก็จะจำค่าตั้งต้นนั้นไว้ได้ไม่นาน
    Windows เดินโซเซไปมาระหว่างบูธเหมือนตัวตลกซอมบี้ในงานคาร์นิวัลผี ทำให้ผู้คนรู้สึกขยะแขยงเพียงด้วยการมีตัวตน แล้วก็กลับเข้าเต็นท์ละครสัตว์ของบรรษัทอเมริกาอีกครั้ง
    ตอนนี้ที่นั่นอาจเป็นที่เดียวที่ยังเหลือผู้ชมซึ่งต้อนรับ Windows อยู่ก็ได้

    • เพิ่งลองบูต Windows ผ่าน Boot Camp เป็นครั้งแรกนับตั้งแต่ Windows 8 และประสบการณ์มันย่ำแย่เกินกว่าจะจินตนาการได้
      เดสก์ท็อปให้ความรู้สึกเหมือนสถานี Subway ที่เต็มไปด้วยโฆษณาทนายห่วย ๆ กับลายขีดเขียนไปทั่ว จนน่าขยะแขยงจริง ๆ
      น่าตกใจที่การกดปุ่มหลายแบบเกินไปจะพาคุณไปสู่ป๊อปอัปชวนใช้ผลิตภัณฑ์ Microsoft ตัวอื่นที่คุณไม่ได้ต้องการ
      ไม่อยากเชื่อเลยว่ามันจะแย่ได้ถึงขนาดนี้
      จำเป็นต้องมี ทางเลือกแทน Windows สำหรับผู้บริโภคทั่วไป
    • “หลีกเลี่ยงการเขียนยั่วอารมณ์ อย่าออกนอกประเด็นแบบทั่ว ๆ ไป และอย่าใส่มีมอินเทอร์เน็ต”
      นี่แหละคือการออกนอกประเด็นแบบทั่ว ๆ ไป
      บทความนี้พูดถึงความปลอดภัยคอมพิวเตอร์ และไม่ได้เกี่ยวกับประสบการณ์ใช้งานแบบเป็นปฏิปักษ์ต่อผู้ใช้ของ Windows
  • Windows คือ ชั้นความเข้ากันได้ของมัลแวร์ สำหรับทุกสิ่ง
    Windows NT และ Windows ทุกรุ่นหลังจากนั้นมีการควบคุมความปลอดภัยที่รับมาจาก VMS ซึ่งมากกว่าระบบปฏิบัติการแทบทุกตัว
    แต่ส่วนใหญ่ถูกปิดหรือทำให้อ่อนลงเพื่อลดแรงเสียดทานและเพิ่มการยอมรับใช้งาน
    ฝั่ง Linux เองก็มีการควบคุมความปลอดภัยที่อ่อนโดยค่าเริ่มต้นเหมือนกัน แต่เข้าสู่ตลาดช้ากว่า และไม่ได้เป็นสภาพแวดล้อมแบบคลิกอย่างเดียวเหมือน Windows จึงมีแรงเสียดทานกับผู้ใช้ที่ไม่ใช่สายเทคนิคมากกว่าในช่วงแรก
    และมันไม่ได้เป็นแค่ปัญหาเรื่องการควบคุมความปลอดภัยเท่านั้น
    ทั้ง Windows และ Linux ต่างก็ยอมให้มี memory overcommit โดยค่าเริ่มต้น ซึ่งอาจกระทบความเสถียร แต่เอื้อต่อการยอมรับจากนักพัฒนา
    สิ่งเหล่านี้ล้วนทำให้เข้มงวดขึ้นได้ แต่ก็เสี่ยงทำให้แอปพลิเคชันที่เขียนมาโดยยึดพฤติกรรมค่าเริ่มต้นพัง
    อย่างที่คนอื่นพูดไว้ Windows เป็นเป้าหมายหลักเพราะมีอัตราการยอมรับและปริมาณการใช้งานสูงที่สุด
    ถ้าวันหนึ่ง Linux ขึ้นนำ ความสนใจจากคนเขียนมัลแวร์ก็จะเพิ่มขึ้นตามไปด้วย
    ใน udev, การเมานต์ binfmt, eBPF, systemd และวิธีที่สิ่งเหล่านี้เชื่อมโยงกันอยู่ตอนนี้ ยังมีช่องทางโจมตีที่ยังไม่ถูกสำรวจอีกมาก
    ถ้าเกมบน Linux ยังพัฒนาได้ดีต่อไปในอัตราแบบตอนนี้ เรื่องนั้นอาจมาถึงเร็วกว่าที่คิด
    แพลตฟอร์มเกมมักมีกรณีที่โค้ดถูกเขียนโดยยึดพฤติกรรมค่าเริ่มต้นหรือคาดหวังสิทธิ์ยกระดับไว้ ทำให้การ harden ระบบปฏิบัติการไม่ใช่ทางเลือก และก็มีไม่กี่คนที่จะซื้อเครื่องเล่นเกมแยกต่างหากเพื่อแยกมันออกจากอุปกรณ์ที่ใช้ทำภาษี ทำธุรกรรมธนาคาร อีเมล และโซเชียลมีเดีย

    • แค่ Android อย่างเดียวก็มี จำนวนอุปกรณ์มากกว่า Windows อยู่ 50%
  • ตอนแรกคิดว่าทวีตนี้น่าจะพูดถึง ภาษาอย่าง C, C++ ที่ไม่ปลอดภัยด้านหน่วยความจำ และ JIT compiler ของเว็บเบราว์เซอร์
    เพราะใจความคือ “ปัญหาความปลอดภัยคอมพิวเตอร์จะถูกแก้ไปได้ราว 80% ถ้าเลิกใช้เทคโนโลยีทั้งหมดที่อยู่ในภาพนี้”
    Chromium บอกว่า “บั๊กความปลอดภัยร้ายแรงประมาณ 70% เป็นปัญหาด้าน memory safety หรือก็คือความผิดพลาดเรื่อง pointer ใน C/C++ และครึ่งหนึ่งของนั้นเป็นบั๊ก use-after-free”
    https://www.chromium.org/Home/chromium-security/memory-safet...
    Microsoft ก็กล่าวว่า “ช่องโหว่ที่ได้รับ CVE ในแต่ละปีราว 70% ยังคงเป็นปัญหา memory safety”
    https://msrc.microsoft.com/blog/2019/07/a-proactive-approach...
    ชื่อบน HN ก็เป็นชื่อที่ตัดต่อมาจากต้นฉบับ

    • นี่เป็นเหตุผลใหญ่ที่ Microsoft หันมารับ Rust ในช่วงหลัง
      ถ้าจำไม่ผิด ตอนนี้กำลังทดสอบตัวแทน DLL ที่สร้างด้วย Rust เป็นครั้งแรกอยู่ และกว่าจะย้ายไปได้แม้แค่ครึ่งเดียวก็คงใช้เวลาพอสมควร
    • มัลแวร์ส่วนใหญ่อย่างท่วมท้นไม่ได้ใช้ช่องโหว่อะไรเลย และพวก zero-day ยิ่งพบได้น้อยกว่าอีก
      มัลแวร์ส่วนใหญ่แค่อาศัยการใช้ฟังก์ชันปกติในระบบปฏิบัติการในทางที่ผิดตามตรรกะ
  • ผมไม่คิดว่ามันจะถึงขั้น “แก้ปัญหาความปลอดภัยคอมพิวเตอร์ได้ราว 80%”
    คนร้ายก็จะหันไปใช้ attack vector แบบอื่น และเมื่อปิดเส้นทางโจมตีส่วนใหญ่ได้แล้ว ก็จะเหลือระบบปฏิบัติการสมาร์ตโฟนที่สิทธิ์แทบไม่มีและมีการติดตามขนาดใหญ่แนบมา
    ถึงอย่างนั้นมัลแวร์ก็ยังอาจล้นอยู่ดี
    https://www.bleepingcomputer.com/news/security/apps-with-15m...

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

    • จริง ๆ แล้วเทคโนโลยีเหล่านี้ล้วนค่อนข้างยอดเยี่ยม
      MHTML แก้ปัญหาจริงได้ และ VBScript ก็เหมือน bash ที่แค่ใช้สำนวนต่างออกไป
      การฝัง OLE เป็นไอเดียที่ยอดเยี่ยม แม้ทุกวันนี้น่าเสียดายที่ไม่ค่อยถูกใช้งาน
      การใส่สเปรดชีตลงในเอกสารข้อความได้โดยไม่ต้องใช้วิธีแฮ็กตารางประหลาด ๆ เป็นแนวคิดที่ดี
      VBA macro ขับเคลื่อนบริษัทต่าง ๆ มากกว่าสตาร์ตอัปไหน ๆ เสียอีก
      ไฟล์ช่วยเหลือ CHM นั้นยอดเยี่ยมจริง ๆ และน่าเสียดายที่มันถูกแทนที่ด้วยเว็บไซต์ห่วย ๆ ที่ต้องพึ่ง Google ถ้าอยากหาอะไรจริง ๆ
      การที่ไม่เพียงบันทึกผลการค้นหาที่ซับซ้อนได้ แต่ยังแชร์ได้ด้วย ก็เป็นไอเดียที่ดี เพียงแต่ไม่ได้รับการโปรโมตพอ
      ฟีเจอร์ที่ส่งไฟล์มาเพื่อให้ค้นหาได้ว่า “รูปที่ถ่ายด้วยกล้องของฉันระหว่างเดือนสิงหาคมถึงกันยายนปีที่แล้ว” ก็เป็นไอเดียที่ดี เพราะไม่ต้องส่งอัลบั้มรูปแบบ proprietary ทั้งก้อน
      จะวิจารณ์เรื่องการผูกขาดกับแนวปฏิบัติทางธุรกิจอันเลวร้ายแค่ไหนก็ตาม Microsoft ก็มีไอเดียดี ๆ ที่ระบบปฏิบัติการคู่แข่งต้องใช้เวลาอีกหลายปีหรือหลายสิบปีกว่าจะตามทัน
      ในคู่แข่งส่วนใหญ่ ทุกวันนี้ก็ยังฝังเอกสารได้ไม่ง่ายและมีประสิทธิภาพเท่า Microsoft Office
      ฟีเจอร์เหล่านี้ไม่ได้ถูกทิ้ง แต่มีคนหลายล้านทั่วโลกใช้อยู่
      Microsoft ควรปรับการตั้งค่าเครื่องมือให้ตรวจจับ executable code ได้ดีกว่านี้
      VBScript ที่อยู่ท้ายเชนไม่ควรถูกรันได้ตั้งแต่แรก
      ถ้า “เครื่องมือ legacy” อื่น ๆ ส่วนใหญ่หายไปเพราะความเป็นไปได้ของมัลแวร์ ก็น่าเสียดาย
    • คุณสามารถแยก compatibility layer ที่ทำงานสมบูรณ์ออกจากระบบที่เหลือ หรือให้มันรันด้วยสิทธิ์ผู้ใช้ที่จำกัดลงได้ จึงไม่จำเป็นต้องยัดการรองรับย้อนหลังไว้ในตัวระบบปฏิบัติการ
      มีทั้ง VM, DOSBox, Wine เป็นต้น
    • ในบริษัทใหญ่ ๆ จำนวนมาก มีซอฟต์แวร์เก่าเต็มไปหมดที่ไม่มีใครจำได้ด้วยซ้ำว่ามีอยู่ มันรันโปรเซสเงียบ ๆ อยู่เบื้องหลังเหมือนแรงโน้มถ่วงที่พบเจอทุกวันจนคิดว่าต้องมีอยู่เสมอ
      ราว 10 ปีก่อน ผมค้นพบว่าโปรเซสสำคัญที่รันอยู่บนเครื่องในร้านของ Home Depot ทุกสาขาพึ่งพาโปรแกรมชื่อ Batchman
      Batchman เป็นยูทิลิตีสำหรับพิมพ์ข้อความที่ลงใน PC Magazine เมื่อปี 1989
      ถ้าทำลายความเข้ากันได้ ก็จะมีใครบางคนต้องสร้างโปรเซสนั้นขึ้นมาใหม่ ทั้งที่มันรันเงียบ ๆ มาหลายสิบปี
      ไม่มีใครในทีม HD ที่ผมทำงานด้วยเคยเห็นโค้ดนั้นมาก่อน และก็ไม่รู้ด้วยว่า Batchman คืออะไร หรือทำอะไร
    • คงไม่ง่ายที่จะไปบังคับบริษัทที่หายไปแล้วให้กลับมาดูแลซอฟต์แวร์ของตัวเอง
  • สแตกที่นิยมที่สุดมักเป็นเป้าหมายโปรดของมัลแวร์เสมอ
    ถ้าแพลตฟอร์มอื่นครองเหยื่อได้ 90% คุณคิดจริง ๆ หรือว่ามันจะไม่กลายเป็นเหยื่อหลักของมัลแวร์แบบท่วมท้น
    ขอย้ำว่าในยุค 80 ผมเคยทำงานเป็น เจ้าหน้าที่แนวหน้าด้านการกำจัดมัลแวร์ และตอนนั้นเป้าหมายหลักคือ Apple Mac ในห้องคอมมหาวิทยาลัย

    • แล้วมัลแวร์ที่แพร่ระบาดกว้างขวางบนเซิร์ฟเวอร์ Linux อยู่ที่ไหน
    • งานเท่มาก
      มัลแวร์ที่ฉลาดที่สุดที่คุณเคยกำจัดตอนนั้นคืออะไร
  • มันไม่คล้ายกับการบอกว่า “ถ้าทิ้งประวัติศาสตร์ไป ปัญหาจะน้อยลงมาก” หรอกหรือ
    แต่ ประวัติศาสตร์ มีอยู่จริง
    แล้วทุกครั้งที่กดลิงก์ Twitter มันก็ขึ้นว่า “เกิดปัญหาขึ้น” และต้องรีเฟรช นี่คือ Twitter ยุคใหม่สินะ

    • ประสบการณ์ใช้ Twitter ของผมเป็นแบบนั้นมาหลายปีแล้ว
      เพราะงั้นตามเกณฑ์ความทันสมัย มันก็ทั้งใช่และไม่ใช่
  • https://nitter.net/matthew_d_green/status/167913542680678400...