แคมเปญวิศวกรรมสังคมที่ใช้ปลั๊กอิน Obsidian ในทางที่ผิด แพร่กระจายโทรจันสายพันธุ์ใหม่
(cyber.netsecops.io)- พบแคมเปญที่เจาะจงเป้าหมายอย่างมาก โดยมุ่งเล่นงานผู้ทำงานในอุตสาหกรรมการเงินและคริปโต พร้อมทำใหั ฟีเจอร์ shared vault ของแอปจดโน้ต Obsidian กลายเป็นอาวุธเพื่อแจกจ่ายโทรจันสำหรับเข้าถึงระยะไกล (RAT) สายพันธุ์ใหม่ที่ยังไม่เคยมีการบันทึกมาก่อน
- ผู้โจมตี ปลอมตัวเป็นนักร่วมลงทุน (venture capitalist) บน LinkedIn และ Telegram เพื่อสร้างความน่าเชื่อถือ ก่อนล่อเหยื่อไปยัง shared vault ของ Obsidian ที่เป็นอันตราย
- เมื่อเหยื่ออนุมัติการซิงก์ community plugin ด้วยตนเอง โค้ดอันตรายจะถูกรัน และบน Windows จะปล่อย PHANTOMPULL loader ผ่าน PowerShell ส่วนบน macOS จะใช้ AppleScript
- PHANTOMPULSE RAT จะดึงที่อยู่เซิร์ฟเวอร์ C2 แบบไดนามิกจาก ข้อมูลธุรกรรมบนบล็อกเชน Ethereum ทำให้ทนทานต่อวิธีปิดระบบแบบเดิมได้สูง
- เป็น การโจมตีแบบข้ามแพลตฟอร์ม ที่รองรับทั้ง Windows และ macOS โดยสามารถควบคุมจากระยะไกลได้อย่างครอบคลุม เช่น ดักจับการพิมพ์ แคปหน้าจอ ขโมยไฟล์ และรันคำสั่งตามต้องการ
ภาพรวมภัยคุกคาม
- การโจมตีนี้ถูกกำหนดชื่อว่า REF6598 และเป็นแคมเปญวิศวกรรมสังคมแบบหลายขั้นตอน
- ผู้ก่อภัยคุกคามปลอมตัวเป็นนักร่วมลงทุนบนแพลตฟอร์มเครือข่ายวิชาชีพเพื่อเข้าหาเป้าหมาย จากนั้นย้ายการสนทนาไปยัง กลุ่ม Telegram แบบปิด
- เหยื่อล่อหลักคือคำเชิญให้ทำงานร่วมกันผ่าน Obsidian shared vault ที่โฮสต์อยู่บนคลาวด์
- เมื่อเหยื่อเปิด shared vault จะถูกชักจูงให้เปิดใช้งานฟีเจอร์ซิงก์ "Installed community plugins"
- การอนุมัตินี้ต้องทำด้วยตนเอง และเป็นตัวกระตุ้นหลักของการติดเชื้อ
- เมื่อเปิดใช้งาน ปลั๊กอินที่ถูกแก้ไขอย่างเป็นอันตรายจากปลั๊กอินจริงใน shared vault (
Shell Commands,Hider) จะถูกรัน
การวิเคราะห์ทางเทคนิค
- โซ่การโจมตีมีความต่างกันเล็กน้อยระหว่าง Windows และ macOS แต่ใช้หลักการเดียวกัน
- การเข้าถึงเริ่มต้น (T1566.002): ใช้วิศวกรรมสังคมผ่าน LinkedIn/Telegram เพื่อหลอกให้เปิด Obsidian shared vault ที่เป็นอันตราย
- การรัน (T1204.002): ชักจูงให้ผู้ใช้เปิดใช้งาน community plugin ภายใน Obsidian แล้วรันสคริปต์อันตรายผ่านปลั๊กอิน
Shell Commandsที่ถูกดัดแปลง - การเตรียมการ: บน Windows จะรัน สคริปต์ PowerShell เพื่อปล่อย loader ชื่อ PHANTOMPULL ส่วนบน macOS จะดำเนินกระบวนการคล้ายกันผ่าน AppleScript
- การส่งเพย์โหลด: PHANTOMPULL loader จะ โหลด PHANTOMPULSE RAT ซึ่งเป็นเพย์โหลดสุดท้ายเข้าสู่หน่วยความจำโดยตรง เพื่อหลบเลี่ยงการตรวจจับแบบอิงไฟล์ (T1055 process injection)
- การสื่อสารกับ C2 (T1102.002): PHANTOMPULSE จะตรวจสอบธุรกรรมล่าสุดของกระเป๋าเงินที่ฮาร์ดโค้ดไว้จาก บล็อกเชน Ethereum เพื่อดึง IP address ของเซิร์ฟเวอร์ C2
- เนื่องจากมีการฝัง IP address ไว้ในข้อมูลธุรกรรม จึงทำให้การสื่อสารกับ C2 มีลักษณะ กระจายศูนย์และทนต่อการเซ็นเซอร์
- เมื่อทำงานแล้ว PHANTOMPULSE สามารถ ดักจับการพิมพ์ ถ่ายภาพหน้าจอ ขโมยไฟล์ และรันคำสั่งตามต้องการ
การประเมินผลกระทบ
- หากเจาะระบบสำเร็จ ผู้โจมตีจะได้ สิทธิ์เข้าถึงระบบของเหยื่ออย่างสมบูรณ์
- สำหรับผู้ที่ทำงานในอุตสาหกรรมการเงินและคริปโต มีความเสี่ยงต่อการถูกขโมยข้อมูลบริษัทที่อ่อนไหว ทรัพย์สินทางปัญญา กลยุทธ์การเทรด คีย์กระเป๋าคริปโต และข้อมูลยืนยันตัวตนของบัญชีซื้อขาย
- ลักษณะแบบข้ามแพลตฟอร์มทำให้ขอบเขตความเสียหายที่อาจเกิดขึ้นกว้างขึ้น
- C2 ที่อิงบล็อกเชนแสดงให้เห็นถึงความ ซับซ้อนสูง และทำให้การปิดกั้นโครงสร้างพื้นฐานของภัยคุกคามทำได้ยากมาก
ตัวชี้วัดการสังเกตการณ์ไซเบอร์เพื่อการตรวจจับ
- การเฝ้าดูโปรเซส: ตรวจสอบว่า
Obsidian.exeสร้างโปรเซสลูกอย่างpowershell.exe,cmd.exe,osascriptหรือไม่ - รูปแบบ command line:
powershell -ExecutionPolicy Bypass— ตรวจจับการรัน PowerShell ที่น่าสงสัยซึ่งเริ่มจากแอปที่ไม่ใช่มาตรฐานอย่าง Obsidian - ทราฟฟิกเครือข่าย: เฝ้าดูการเชื่อมต่อขาออกไปยัง โหนดหรือเกตเวย์ของบล็อกเชน Ethereum จากโปรเซสที่ไม่คาดคิด (อาจเป็นความพยายามตรวจสอบที่อยู่ C2 ของ PHANTOMPULSE)
- พาธไฟล์: ตรวจสอบการสร้างหรือแก้ไขไฟล์ภายในไดเรกทอรี
[Vault]/.obsidian/plugins/โดยเฉพาะการเปลี่ยนแปลงที่เกิดขึ้นนอก marketplace ปลั๊กอินทางการ
การตรวจจับและการตอบสนอง
- การวิเคราะห์โปรเซส (D3-PA): ใช้ กฎ EDR เพื่อตรวจจับและแจ้งเตือนเมื่อโปรเซส Obsidian สร้างตัวแปลคำสั่ง (
powershell.exe,cmd.exe,bash,osascript) ซึ่งเป็นพฤติกรรมที่ผิดปกติอย่างมาก - การให้ความรู้ผู้ใช้: ให้ความรู้แก่ผู้ปฏิบัติงานในอุตสาหกรรมที่มีความเสี่ยงสูงเกี่ยวกับอันตรายของวิศวกรรมสังคมและยุทธวิธี การใช้ shared vault และฟีเจอร์ปลั๊กอินในทางที่ผิด
- การควบคุมแอปพลิเคชัน (D3-EAL): หากเป็นไปได้ ให้ใช้นโยบาย application control เพื่อจำกัดการติดตั้งและรัน community plugin ที่ไม่ได้รับอนุมัติในแอปอย่าง Obsidian
- การเฝ้าระวังเครือข่าย (D3-NTA): ตรวจสอบว่ามี DNS query ที่ผิดปกติเกี่ยวข้องกับบริการบล็อกเชน หรือการเชื่อมต่อ IP โดยตรงจาก endpoint ที่ปกติไม่ควรเกิดขึ้นหรือไม่
มาตรการบรรเทาความเสี่ยง
- การตรวจสอบ community plugin: ต้องใช้ความระมัดระวังอย่างยิ่งเมื่อเปิดใช้งานปลั๊กอินจากบุคคลที่สามหรือชุมชนในทุกแอป ติดตั้งเฉพาะปลั๊กอินที่เชื่อถือได้จาก marketplace ทางการ และ ตรวจสอบสิทธิ์ที่ขอทุกครั้ง
- ปิดการซิงก์อัตโนมัติสำหรับ vault ที่ไม่น่าเชื่อถือ: เมื่อเชื่อมต่อกับ Obsidian vault จากแหล่งที่ไม่รู้จักหรือไม่น่าเชื่อถือ อย่าเปิดใช้งานการซิงก์ปลั๊กอิน
- หลักการสิทธิ์น้อยที่สุด: รันแอปอย่าง Obsidian ด้วย บัญชีผู้ใช้มาตรฐานแทนสิทธิ์ผู้ดูแลระบบ เพื่อลดผลกระทบหากถูกเจาะระบบ
- ความปลอดภัยของ endpoint: ติดตั้งโซลูชัน EDR และแอนติไวรัสล่าสุดเพื่อตรวจจับและบล็อกการรันสคริปต์ที่น่าสงสัยและ เทคนิค process injection
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
ผมคือ CEO ของ Obsidian เอง กำลังจะมีอัปเดตใหญ่เกี่ยวกับความปลอดภัยของปลั๊กอินเร็ว ๆ นี้ และคิดว่าน่าจะช่วยคลายความกังวลหลายอย่างที่ถูกพูดถึงในเธรดนี้ได้
มันเป็นปัญหาที่ยาก แต่เรากำลังทำอยู่ อย่างไรก็ตาม พาดหัวทำให้เข้าใจผิด บทความนี้เกี่ยวกับการโจมตีแบบวิศวกรรมสังคมที่ผู้ใช้ต้องกดปฏิเสธคำเตือนด้านความปลอดภัยหลายอย่างของ Obsidian ด้วยตัวเอง และเท่าที่ผมรู้ ยังเป็นเพียงระดับการพิสูจน์แนวคิด และยังไม่เห็นรายงานความเสียหายจริง
ผมคิดว่าปลั๊กอิน/ส่วนขยายควรถูกทำให้รันได้ยากกว่านี้โดยปริยาย เข้าใจว่าการเพิ่มอุปสรรคก่อนใช้ปลั๊กอินทำให้ผู้ใช้ฝืดขึ้น แต่ผมไม่คิดว่าจะมีวิธีทำให้การรันโค้ดสุ่มที่ไม่ได้ผ่านการตรวจสอบปลอดภัยได้จริง หากไม่มี sandbox หรือข้อจำกัดอื่น ๆ
นี่เป็นพาดหัวที่ชวนให้เข้าใจผิด ทำให้ดูเหมือนเป็นการโจมตี supply chain อีกครั้งที่ปลั๊กอินปกติถูกยึดและใช้กระจายมัลแวร์
แต่ความจริงคือเหยื่อถูกเชิญเข้าไปทำงานร่วมกันใน vault ที่ซิงก์ไว้ และใน vault นั้นมีปลั๊กอินนอกทางการที่ส่ง RAT ฝังมาอยู่ก่อนแล้ว เป็นคนละเรื่องกันเลย
เขียนว่า “Novel Campaign Abuses Obsidian Note-Taking App to Target Finance and Crypto Professionals with PHANTOMPULSE RAT” มันเป็นการโจมตีใหม่ ใช้ Obsidian ในทางที่ผิด เล็งเป้าคนกลุ่มหนึ่ง และ RAT ก็อยู่ใน vault ดังนั้นก็ดูเป็นคำอธิบายที่ตรงแล้ว
ผมชอบ Obsidian มากและใช้ทุกวัน แต่ไม่ใช้ปลั๊กอินชุมชนเพราะระบบสิทธิ์ยังไม่ดีพอ
หวังว่าสักวันปลั๊กอินจะประกาศสิทธิ์ที่ต้องใช้ และแสดงให้ผู้ใช้เห็น ผมคิดว่าทีม Obsidian จะรับมือเรื่องนี้อย่างจริงจัง และรอดูว่าจะออกอะไรมา ผมเชื่อใจพวกเขา แต่ก็น่าตกใจที่มันถูกออกแบบมาตั้งแต่แรกโดยไม่มีระบบสิทธิ์และ sandbox ที่ดีกว่านี้
“เหยื่อจะถูกขอให้เปิดฟังก์ชันซิงก์ ‘Installed community plugins’”
Obsidian มีมาตรการป้องกันเพื่อหยุดการโจมตีแบบนี้อยู่แล้ว และเหยื่อก็ถูกโน้มน้าวให้มองข้ามมันไป มันก็แค่เหตุการณ์วิศวกรรมสังคมที่สำเร็จเท่านั้น การโจมตีนี้ไม่ได้ใช้ช่องโหว่ของ Obsidian หรือระบบปลั๊กอิน ดังนั้นจึงไม่อยากเห็น Obsidian ถูกลากลงเพราะพาดหัวแบบนี้
“เนื่องจากข้อจำกัดทางเทคนิค Obsidian ไม่สามารถจำกัดปลั๊กอินให้มีเพียงสิทธิ์หรือระดับการเข้าถึงบางอย่างได้อย่างเชื่อถือได้ ดังนั้นปลั๊กอินจึงสืบทอดระดับการเข้าถึงเดียวกับ Obsidian”
ปลั๊กอินชุมชนเข้าถึงไฟล์ในคอมพิวเตอร์ได้ เชื่อมต่ออินเทอร์เน็ตได้ และยังติดตั้งโปรแกรมเพิ่มได้ด้วย Obsidian ไม่มีมาตรการป้องกันอะไรเลย และการติดตั้งปลั๊กอินก็เท่ากับให้สิทธิ์เข้าถึงเต็มรูปแบบกับคอมพิวเตอร์ เรื่องแบบนี้เป็นแค่ปัญหาเรื่องเวลาเท่านั้น และผมมองว่าตั้งแต่ราวปี 2010 เป็นต้นมา การปล่อยระบบปลั๊กอินแบบนี้ออกมาเป็นความประมาทที่ไม่มีข้อแก้ตัว
ผู้ใช้ที่ชำนาญน้อยกว่าอาจคิดว่า “ก็แค่กองไฟล์ Markdown เองนี่ คงไม่ต้องกังวลเรื่องมัลแวร์มากนักหรอก”
ทำไมระบบปลั๊กอินแทบทั้งหมดถึงถูกออกแบบแบบหละหลวมอย่างนี้? ผมสงสัยว่าเป็นเพราะไม่มีเฟรมเวิร์กพัฒนาปลั๊กอินดี ๆ ที่มีการแยกกัก/สิทธิ์การเข้าถึงที่เหมาะสม ทำให้มันเป็นงานเยอะเกินไป หรือเพราะคนไม่ค่อยรู้ว่าต้องมีอะไรบ้าง เลยมาเรียนรู้ก็ต่อเมื่อระบบของตัวเองถูกนำไปใช้ในทางที่ผิดแล้ว หรือเป็นทั้งสองอย่าง หรือมีเหตุผลอื่นอีก?
อีกปัญหาหนึ่งคือความปลอดภัยเป็นเรื่องยาก แต่การให้สิทธิ์เข้าถึงแบบครอบจักรวาลแล้วเพิ่มแค่ตัวกันขั้นพื้นฐานเป็นเรื่องง่าย
การข้ามส่วนนั้นไปง่ายกว่ามาก พูดอีกอย่างก็คืองานมันเยอะจริง และให้แม่นยำกว่านั้นคือ ต้องมีผู้นำที่ยึดความปลอดภัยเป็นศูนย์กลางซึ่งเข้าใจว่านี่เป็นงานที่มากแต่เป็นงานที่ถูกต้อง
ถ้าจะออกแบบอย่างตั้งใจ อาจต้องลดระดับชั้น abstraction ลง และคง custom fork ของเฟรมเวิร์กนั้นไว้ ดังนั้นก็น่าจะออกแบบปลั๊กอินเหมือนการส่งบางส่วนของ context ที่แอปใช้อยู่เข้าไปแล้ว instantiate ไลบรารี สุดท้ายมันก็เป็นวิธีที่ง่ายที่สุดที่ทำให้ใช้งานได้ การแฮ็กที่ถูกเปิดเผยนี้ไม่ได้พูดถึง “ช่องโหว่” เฉพาะอะไร แต่ปลั๊กอิน Obsidian นั้นอยู่ในโหมดพระเจ้ามาโดยตลอด และผู้โจมตีก็แค่หลอกคนให้ใช้มันเท่านั้น การที่มี remote code execution รออยู่หลังป๊อปอัปไม่กี่อัน แล้วสุดท้ายยังโทษผู้ใช้อีก เป็นเรื่องน่าขัน นักพัฒนาควรรู้สึกละอาย
มันคล้ายกับการสร้าง app store ไว้ในแอป Apple App Store ลดแอปอันตรายด้วยการจำกัดอย่างเข้มงวดว่าใครโพสต์อะไรได้ และมีด่านการจ่ายเงินด้วย
ต่อให้เป็นวิศวกรรมสังคมก็ตาม แต่ถ้าระบบปลั๊กอินถูกออกแบบให้เกิดเรื่องแบบนี้ได้ แพลตฟอร์มนี้ก็ใช้เป็นเครื่องมือแชร์ร่วมกันไม่ได้เลย
รู้ไว้ก็ดี แต่สำหรับผม มันใกล้เคียงกับ “อย่ารับ shared Obsidian vault เด็ดขาด และให้ขอเป็นการส่งออกแบบข้อความล้วนแทน” มากกว่า “ถ้าจะใช้ shared Obsidian vault ต้องคงการตั้งค่านี้ไว้ให้ถูกต้อง”
ตอนที่ผมเริ่มใช้ Obsidian ใหม่ ๆ วิดีโอ YouTube ที่เห็นต่างก็แนะนำให้ใช้ปลั๊กอินชุมชน ถึงจะมีคำเตือนแบบนี้ ผมก็น่าจะเปิดใช้ปลั๊กอินชุมชนอยู่ดี
นักพัฒนาปลั๊กอินที่เริ่มต้นด้วยเจตนาดี อาจเปลี่ยนเป็นเจตนาร้ายในภายหลังได้ และผู้ใช้ไม่มีทางรู้ ถึงผมจะเป็นนักพัฒนาและรู้ความเสี่ยงแบบนี้ ผมก็คงเปิดตัวเลือกปลั๊กอินชุมชนอยู่ดี อาจเป็นเพราะผมยอมรับความเสี่ยงได้สูง หวังว่าผมจะเป็นส่วนน้อยและไม่ใช่พฤติกรรมของผู้ใช้ส่วนใหญ่
เรื่องแบบนี้เริ่มระบาดเหมือนแฟชั่นนิด ๆ ทุกการโจมตีหรือการหาประโยชน์จากช่องโหว่ โดยเฉพาะการโจมตีแบบวิศวกรรมสังคม ไม่จำเป็นต้องมีชื่อสไตล์ Metal Gear หรือมีเว็บไซต์เสมอไป
ถ้าอ่านเนื้อหาจริง จะเห็นว่าปัญหาไม่ได้เริ่มจากปลั๊กอินในสโตร์ของ Obsidian แต่เริ่มจากvault อันตรายที่ถูกหลอกให้เปิด
ผมรัน Obsidian ด้วยสิทธิ์จำกัด ไม่มีการเข้าถึงเครือข่าย และไม่มีการเข้าถึงระบบไฟล์นอกไดเรกทอรีของมันเอง
จะเปิดให้เข้าถึงเครือข่ายเฉพาะตอนอัปเดตปลั๊กอิน/ธีมเท่านั้น ผมก็ทำแบบเดียวกันกับแอปอื่น ๆ ที่สามารถรันโค้ดที่ไม่น่าเชื่อถือได้