ผู้สวมรอยเป็นผู้สรรหาปลอมล่อพนักงานอากาศยานด้วยโค้ดดิ้งชาเลนจ์ที่เป็นมัลแวร์
(welivesecurity.com)- พนักงานของบริษัทอากาศยานสเปนได้รับการติดต่อบน LinkedIn จาก Lazarus ที่ปลอมตัวเป็น ผู้สรรหาของ Meta และการรันไฟล์ที่ดูเหมือนแบบทดสอบรับสมัครงานบนอุปกรณ์ของบริษัทก็กลายเป็นจุดเริ่มต้นของการเจาะระบบ
- งานทดสอบอันตรายถูกส่งมาเป็น
Quiz1.exeและQuiz2.exeโดยหลังจากแสดง “Hello, World!” และพิมพ์ลำดับ Fibonacci แล้ว จะไปกระตุ้นการติดตั้งเพย์โหลดเพิ่มเติมจากอิมเมจ ISO - หลังเจาะระบบได้แล้ว มีการแพร่ NickelLoader, miniBlindingCan และ RAT ตัวใหม่ชื่อ LightlessCan ผ่าน DLL side-loading โดย ESET ระบุด้วยความเชื่อมั่นสูงว่าเป็นกิจกรรมของ Lazarus ที่เกี่ยวข้องกับ Operation DreamJob
- LightlessCan ดูเหมือนเป็นรุ่นต่อจาก BlindingCan และจำลองความสามารถของคำสั่ง Windows อย่าง
ipconfig,net,ping,systeminfo,scภายใน RAT เอง เพื่อลดร่องรอยการรันคอนโซล - เป้าหมายของการโจมตีคือ การสอดแนมทางไซเบอร์ และการฝังคำสั่งไว้ภายในรวมถึง execution guardrails ที่ทำให้ถอดรหัสได้เฉพาะบนเครื่องเหยื่อ ยิ่งทำให้การตรวจจับแบบเรียลไทม์และการวิเคราะห์นิติวิทยาศาสตร์ย้อนหลังทำได้ยากขึ้น
การเจาะระบบเริ่มต้นจากเหยื่อล่อรับสมัครงานบน LinkedIn
- Lazarus ติดต่อพนักงานหลายคนของบริษัทอากาศยานสเปนผ่าน LinkedIn Messaging
- ผู้โจมตีแอบอ้างเป็นผู้สรรหาของ Meta บริษัทแม่ของ Facebook, Instagram และ WhatsApp
- ใช้วิธีขอให้พิสูจน์ทักษะการเขียนโปรแกรม C++ ราวกับเป็นส่วนหนึ่งของกระบวนการรับสมัคร
- เหยื่อดาวน์โหลด
Quiz1.isoและQuiz2.isoจากคลาวด์สตอเรจของบุคคลที่สาม แล้วรันไฟล์ปฏิบัติการข้างในบนอุปกรณ์ของบริษัทQuiz1.exe: ปลอมเป็นโจทย์ง่าย ๆ ที่พิมพ์ “Hello, World!”Quiz2.exe: ปลอมเป็นโจทย์ที่พิมพ์ลำดับ Fibonacci ไปจนถึงสมาชิกที่มากที่สุดซึ่งยังน้อยกว่าค่าป้อนเข้า- ไฟล์ปฏิบัติการทั้งสองจัดการอินพุตและเอาต์พุตเหมือนแอปคอนโซลปกติ ก่อนจะเริ่มติดตั้งเพย์โหลดอันตรายเพิ่มเติม
- เพย์โหลดตัวแรกคือดาวน์โหลดเดอร์ผ่าน HTTP(S) ที่ ESET ตั้งชื่อว่า NickelLoader
- NickelLoader สามารถปล่อยโปรแกรมตามที่ผู้โจมตีต้องการเข้าไปในหน่วยความจำของคอมพิวเตอร์เหยื่อได้
หลักฐานการระบุว่าเป็น Lazarus และ Operation DreamJob
- ESET ระบุด้วยความเชื่อมั่นสูงว่าการโจมตีในสเปนครั้งนี้เป็นฝีมือของ Lazarus โดยเฉพาะกิจกรรมที่เกี่ยวข้องกับ Operation DreamJob
- มัลแวร์ โครงสร้างพื้นฐาน และเป้าหมาย ซ้อนทับกับแคมเปญ Lazarus ก่อนหน้า
- วิธีการติดต่อผ่าน LinkedIn แล้วหลอกให้รันไฟล์อันตรายที่ปลอมเป็นแบบทดสอบรับสมัครงาน เป็นยุทธวิธีที่ Lazarus ใช้มาตั้งแต่ Operation DreamJob
- มีการพบโหลดเดอร์ขั้นกลางและแบ็กดอร์สาย BlindingCan เวอร์ชันใหม่ ซึ่งเคยถูกยืนยันในกรณีของเนเธอร์แลนด์เมื่อปี 2022
- เครื่องมือเหล่านี้ใช้การเข้ารหัส AES-128 และ RC6 ที่ใช้กุญแจ 256 บิต ซึ่งเป็นรูปแบบเดียวกับที่ใช้ในแคมเปญธีม Amazon
- แทนที่จะตั้งเซิร์ฟเวอร์ C&C ระยะแรกขึ้นเอง ผู้โจมตีเลือกเจาะเว็บไซต์ที่มีอยู่แล้วซึ่งมีความปลอดภัยอ่อนแอหรือขาดการดูแลรักษา แล้วนำมาใช้
- การขโมยองค์ความรู้ของบริษัทอากาศยานสอดคล้องกับเป้าหมายระยะยาวของ Lazarus
- รายงานของ UN กล่าวถึง APT ที่เชื่อมโยงกับเกาหลีเหนือว่าโจมตีบริษัทอากาศยานเพื่อเข้าถึงเทคโนโลยีอ่อนไหวและความรู้ด้านอากาศยาน
ชุดเครื่องมือหลังการเจาะระบบ
- หลัง NickelLoader ทำงานแล้ว ผู้โจมตีปล่อย RAT สองชนิดลงสู่ระบบเหยื่อ
- miniBlindingCan: รุ่นลดทอนความสามารถของแบ็กดอร์ BlindingCan ที่เป็นเครื่องมือที่รู้จักกันของ Lazarus
- LightlessCan: RAT ตัวใหม่ที่ยังไม่เคยมีการบันทึกสาธารณะมาก่อน
- เชนการรันประกอบด้วยหลายขั้นที่มีความซับซ้อนต่างกัน โดยมีทั้ง dropper และ loader ก่อนถึงขั้นรัน RAT สุดท้าย
- dropper มีเพย์โหลดฝังอยู่ภายใน และสามารถโหลดกับรันจากหน่วยความจำโดยตรงได้โดยไม่จำเป็นต้องเขียนลงไฟล์ซิสเต็ม
- loader จะดึงเพย์โหลดจากไฟล์ซิสเต็มโดยไม่มีอาร์เรย์เข้ารหัสฝังอยู่ภายใน
- ไฟล์หลักส่วนใหญ่ใช้โครงสร้าง DLL side-loading ที่โปรแกรมปกติไปโหลด DLL อันตราย
PresentationHost.exe+mscoree.dll: อิงจาก NppyPluginDll ที่ถูกทำให้เป็นโทรจัน ใช้ส่ง NickelLoadercolorcpl.exe+colorui.dll: อิงจาก LibreSSL 2.6.5 ใช้ส่ง miniBlindingCanfixmapi.exe+mapistub.dll: อิงจาก Lua plugin 1.4.0.0 สำหรับ Notepad++ ใช้ส่ง LightlessCantabcal.exe+HID.dll: อิงจาก MZC8051 3.2 สำหรับ Notepad++ ใช้ส่ง LightlessCan
คุณสมบัติเด่นของ LightlessCan
- LightlessCan ดูเหมือนเป็นรุ่นต่อของ BlindingCan ซึ่งเป็น HTTP(S) RAT ของ Lazarus และหมายเลขเวอร์ชันภายในของรุ่นปัจจุบันคือ
1.0 - ถูกออกแบบมาให้รองรับได้สูงสุด 68 คำสั่ง และในเวอร์ชันปัจจุบันมีการลงมือทำฟังก์ชันแล้ว 43 คำสั่ง
- คำสั่งที่เหลือมีอยู่ในรูป placeholder แต่ยังไม่มีฟังก์ชันจริง
- ลำดับของคำสั่งที่ใช้ร่วมกันยังคงถูกเก็บไว้มาก ทำให้ดูเหมือนอิงจากซอร์สโค้ดของ BlindingCan
- การเปลี่ยนแปลงใหญ่ที่สุดคือการจำลองความสามารถของคำสั่งพื้นฐานของ Windows หลายตัวไว้ภายใน RAT เอง
- ตัวอย่างคำสั่งที่ทำไว้แล้ว ได้แก่
ipconfig,net,netsh advfirewall,netstat,ping,reg,sc,tasklist,wmic process call create,nslookup,schtasks,systeminfo,arp,mkdirเป็นต้น - ในการโจมตี Lazarus ก่อนหน้า มักมีกรณีที่คำสั่งเหล่านี้ถูกผู้โจมตีเรียกใช้หลายครั้งผ่านคอนโซลหลังจากยึดหลักในระบบได้แล้ว
- วิธีใหม่นี้ประมวลผลภายใน RAT โดยไม่ต้องเรียกคอนโซลยูทิลิตีต้นฉบับให้เด่นชัด จึงทำให้ EDR และเครื่องมือนิติวิทยาศาสตร์ดิจิทัลย้อนหลังตรวจจับได้ยากขึ้น
- ตัวอย่างคำสั่งที่ทำไว้แล้ว ได้แก่
- ESET ให้น้ำหนักว่าผู้พัฒนา LightlessCan อาจทำ reverse engineering กับไบนารีแบบปิดซอร์สเพื่อเลียนแบบยูทิลิตีหลักของ Windows
- แม้โปรเจกต์ Wine จะมีการอิมพลีเมนต์หลายโปรแกรมไว้ แต่บางความสามารถที่ LightlessCan เลียนแบบนั้นแตกต่างจากของ Wine หรือไม่มีอยู่เลย
เชนการเจาะระบบของ NickelLoader
- NickelLoader เป็น HTTP(S) downloader ที่รันบนระบบที่ติดเชื้อ และถูกใช้เพื่อส่งเพย์โหลดอื่นของ Lazarus ต่อไป
- เมื่อเหยื่อรันไฟล์ quiz ด้วยตนเอง
PresentationHost.exeจะถูกรันอัตโนมัติ และmscoree.dllอันตรายในพาธเดียวกันคือC:\ProgramShared\จะถูก side-load เข้ามาmscoree.dllเป็นไฟล์ที่ทำให้NppyPluginDll.dllจากโปรเจกต์ General Python Plugins DLL for Notepad++ ซึ่งยุติไปตั้งแต่ปี 2011 กลายเป็นโทรจัน- มันมีทั้ง export ของ
mscoree.dllปกติและ export ของNppyPluginDll.dllต้นฉบับ โดยมีโค้ดอันตรายอยู่ใน exportCorExitProcess
- การถอดรหัสอาร์เรย์เข้ารหัสที่ฝังอยู่ต้องใช้คีย์เวิร์ด 16 อักขระ 3 ชุด
- ชื่อ parent process
PresentationHost - พารามิเตอร์ภายในที่ hardcode อยู่ในไบนารี
9zCnQP6o78753qg8 - พารามิเตอร์ภายนอกที่ส่งมาทาง command line
‑embeddingObject - คีย์เวิร์ดทั้งสามถูก XOR แบบไบต์ต่อไบต์เพื่อสร้างกุญแจถอดรหัส AES-128
- ชื่อ parent process
- NickelLoader รู้จักคำสั่ง 5 ตัวอักษร 4 คำสั่ง
abcde: ขอคำสั่งถัดไปทันทีโดยไม่หน่วง sleep นานตามปกติavdrq: โหลด DLL จากบัฟเฟอร์ที่ได้รับแล้วรัน export ที่ hardcode ไว้คือinfogabnc: โหลด DLL จากบัฟเฟอร์ที่ได้รับdcrqv: ปิดการทำงานของตัวเอง
- ESET ตั้งชื่อเพย์โหลดนี้ว่า NickelLoader จากโครงสร้างคำสั่ง 5 ตัวอักษรที่ชวนให้นึกถึง nickel ซึ่งเป็นชื่อเรียกเหรียญ 5 เซนต์ของสหรัฐฯ
เชนการรันของ miniBlindingCan
- หนึ่งในเพย์โหลดที่ NickelLoader ดาวน์โหลดและรันคือ miniBlindingCan
- มันเป็น BlindingCan RAT เวอร์ชันที่เรียบง่ายลง และถูก Mandiant รายงานครั้งแรกในเดือนกันยายน 2022 ภายใต้ชื่อ AIRDRY.V2
- การโหลดใช้
colorcpl.exeปกติและcolorui.dllอันตรายที่รันจากC:\ProgramData\Adobe\colorui.dllเป็น DLL อันตรายแบบ 64 บิตที่ถูก obfuscate ด้วย VMProtect- มี export หลายพันรายการ และ
LaunchColorCplทำหน้าที่รันขั้นถัดไป
- dropper ตัวนี้ใช้ฟังก์ชันหลบการวิเคราะห์ตั้งแต่ช่วงเริ่มต้น
- ทำ anti-debugging ด้วยการตรวจค่า
BeingDebuggedในโครงสร้าง PEB - ใช้เทคนิค anti-sandbox เพื่อหลบการตรวจจับในสภาพแวดล้อม sandbox
- ตรวจอย่างชัดเจนว่า parent process คือ
colorcpl.exeมิฉะนั้นจะจบทันที
- ทำ anti-debugging ด้วยการตรวจค่า
- การถอดรหัสเพย์โหลดสุดท้ายใช้สตริงยาวที่ได้จากการต่อชื่อ parent process ชื่อไฟล์ dropper และพารามิเตอร์ command line ภายนอกมาเป็น XOR key
- ตัวอย่างสตริงที่ได้คือ
COLORCPL.EXECOLORUI.DLL669498484488D3F22712CC5BACA6B7A7
- ตัวอย่างสตริงที่ได้คือ
- miniBlindingCan มีตรรกะจัดการคำสั่งคล้าย BlindingCan แต่ลดฟังก์ชันลงมาก
- รองรับการส่งข้อมูลระบบ อัปเดตช่วงเวลาสื่อสาร ส่งและอัปเดตคอนฟิก ดาวน์โหลดและถอดรหัสไฟล์ รวมถึงรัน shellcode ที่ส่งมา
- คอนฟิกที่ถอดรหัสแล้วมีขนาด 9,392 ไบต์ และมี URL ได้สูงสุด 5 รายการ โดยแต่ละรายการยาวได้ถึง 260 wide characters
เชนการรันแบบเรียบง่ายของ LightlessCan
- เชนแบบเรียบง่ายของ LightlessCan ใช้
fixmapi.exeปกติและmapistub.dllอันตรายที่รันจากC:\ProgramData\Oracle\Java\ mapistub.dllเป็น DLL ที่ทำให้ Lua plugin 1.4 สำหรับ Notepad++ กลายเป็นโทรจัน- มีการคัดลอก export ของ
mapi32.dllปกติของ Windows มาไว้ - export
FixMAPIรับหน้าที่ถอดรหัสและโหลดขั้นถัดไป - export อื่น ๆ ถูกเติมด้วยโค้ดปกติจากโปรเจกต์ตัวอย่าง MineSweeper ที่เผยแพร่สาธารณะ
- มีการคัดลอก export ของ
- dropper ตัวนี้ตั้งค่าความคงอยู่ผ่าน scheduled task
- ESET ระบุว่ายังมีรายละเอียดของ task นี้ไม่มาก แต่ parent process ดูเป็น
%WINDOWS%\system32\svchost.exe -k netsvcs -p -s Schedule
- ESET ระบุว่ายังมีรายละเอียดของ task นี้ไม่มาก แต่ parent process ดูเป็น
- การถอดรหัสข้อมูลที่ฝังอยู่ใช้คีย์เวิร์ด 3 ชุด
- ชื่อ parent process
fixmapi.exe - พารามิเตอร์ภายใน
IP7pdINfE9uMz63n - พารามิเตอร์ภายนอกจาก command line
AudioEndpointBuilder - คีย์เวิร์ดถูก XOR กันแบบไบต์ต่อไบต์ และผลลัพธ์กลายเป็นกุญแจ AES 128 บิต
- ชื่อ parent process
เชนการรันแบบซับซ้อนของ LightlessCan และ execution guardrails
- เชนแบบซับซ้อนกว่าของ LightlessCan ต่อเนื่องจากแอปปกติ, initial dropper, full dropper, intermediate dropper, ไฟล์คอนฟิก, ไฟล์ข้อมูลระบบ, intermediate loader ไปจนถึง LightlessCan RAT ตัวสุดท้าย
- initial dropper คือ
HID.dllอันตรายที่ถูก side-load โดยtabcal.exeปกติซึ่งรันจากC:\ProgramData\Adobe\ARM\HID.dllเป็นไฟล์ที่ทำให้MZC8051.dllจากโปรเจกต์ 8051 C compiler plugin สำหรับ Notepad++ กลายเป็นโทรจัน- export
HidD_GetHidGuidรับหน้าที่ drop ขั้นถัดไป
- ขั้นถอดรหัสแรกต้องใช้คีย์เวิร์ด 3 ชุด
- ชื่อ parent process
tabcal.exe - พารามิเตอร์ภายใน
9zCnQP6o78753qg8 - เนื้อหาไฟล์
%WINDOWS%\system32\thumbs.dbคือLocalServiceNetworkRestricted - ค่าทั้งสามถูก XOR เพื่อสร้างกุญแจ AES 128 บิต
- ชื่อ parent process
- full dropper ที่ถูกสร้างขึ้นมี InternalName resource เป็น
AppResolver.dllและมีอาร์เรย์ข้อมูลเข้ารหัส 2 ชุด- มีอาร์เรย์ขนาดเล็ก 126 ไบต์ และอาร์เรย์ขนาดใหญ่ 1,807,464 ไบต์
- อาร์เรย์เล็กถูกถอดรหัสด้วย RC6 ที่ใช้กุญแจ 256 บิต เพื่อให้ได้พาธ
C:\windows\system32\oci.dllและC:\windows\system32\grpedit.dat - ผลจากการถอดรหัสอาร์เรย์ใหญ่มีทั้ง LightlessCan, intermediate dropper และไฟล์คอนฟิกเข้ารหัสขนาด 14,948 ไบต์ที่ถูก drop ไปยัง
%WINDOWS%\System32\wlansvc.cpl
- full dropper จะเก็บคุณลักษณะหลายอย่างที่ใช้ระบุตัวเครื่องติดเชื้อไว้ใน
%WINDOWS%\System32\4F59FB87DF2F- ค่าส่วนใหญ่ถูกดึงมาจากรีจิสทรีพาธ
Computer\HKLM\HARDWARE\DESCRIPTION\System\BIOS - มีทั้ง
SystemBIOSDate,SystemBIOSVersion,SystemManufacturer,SystemProductNameและค่าIdentifierใต้ disk controller - สตริงที่เกิดจากการนำค่าเหล่านี้มาต่อกันจำเป็นต่อการถอดรหัส
grpedit.datที่เข้ารหัสไว้ในไฟล์ซิสเต็ม
- ค่าส่วนใหญ่ถูกดึงมาจากรีจิสทรีพาธ
- โครงสร้างนี้ทำงานเป็น execution guardrails
- ทำให้เพย์โหลดถูกถอดรหัสได้เฉพาะบนคอมพิวเตอร์ของเหยื่อที่ตั้งใจไว้ และยากต่อการถอดรหัสบนเครื่องอื่นของนักวิจัยความปลอดภัย
การหลบเลี่ยงการตรวจจับและผลกระทบต่อการวิเคราะห์
- LightlessCan สามารถลดร่องรอยการรันโปรแกรม command line ของ Windows ที่มักถูกใช้บ่อยในช่วงหลังโจมตีได้อย่างมาก
- แทนที่ความสามารถของคำสั่งด้วยการอิมพลีเมนต์ภายใน จึงหลีกเลี่ยงการรันคอนโซลยูทิลิตีต้นฉบับ
- ร่องรอยที่สังเกตได้จากการล็อกประวัติคำสั่งและการตรวจจับแบบเรียลไทม์จึงลดลง
- ตลอดเชนการโจมตีมีการผสมหลาย เทคนิคหลบการป้องกัน
- DLL side-loading
- การ obfuscate ด้วย VMProtect
- การ resolve Windows API แบบไดนามิก
- เพย์โหลดฝังภายใน
- reflective DLL injection
- process injection
- การหลบ debugger และ sandbox
- เครื่องมือและคอนฟิกที่เข้ารหัสไว้ในไฟล์ซิสเต็ม
- การสื่อสารกับ C&C ก็ถูกออกแบบให้วิเคราะห์และตรวจจับยาก
- LightlessCan และ miniBlindingCan ใช้ HTTP/HTTPS ในการสื่อสารกับ C&C
- ทราฟฟิก C&C ถูกเข้ารหัสด้วย AES-128
- ใช้ base64 สำหรับการเข้ารหัสข้อมูลในทราฟฟิก
- LightlessCan ยังมีความสามารถด้านการขโมยข้อมูล และสามารถส่งข้อมูลออกไปยังเซิร์ฟเวอร์ C&C ได้
สรุป IoC และ MITRE ATT&CK
- ไฟล์ IoC เริ่มต้นที่สำคัญ
C273B244EA7DFF20B1D6B1C7FD97F343201984B3:%TEMP%\7zOC35416EE\Quiz1.exe, initial dropper ที่ปลอมเป็นชาเลนจ์ “Hello World”\n -38736CA46D7FC9B9E5C74D192EEC26F951E45752:%TEMP%\7zOCB3CC96D\Quiz2.exe, initial dropper ที่ปลอมเป็นชาเลนจ์ลำดับ FibonacciC136DD71F45EAEF3206BF5C03412195227D15F38:C:\ProgramShared\mscoree.dll, dropper ของ NickelLoaderE61672B23DBD03FE3B97EE469FA0895ED1F9185D: HTTPS downloader ของ NickelLoader
- ไฟล์ IoC ที่เกี่ยวข้องกับ LightlessCan ที่สำคัญ
0F33ECE7C32074520FBEA46314D7D5AB9265EC52:%ALLUSERSPROFILE%\Oracle\Java\mapistub.dll, dropper ของ LightlessCanC7C6027ABDCED3093288AB75FAB907C598E0237D: LightlessCan ที่ถูก drop โดยmapistub.dllE18B9743EC203AB49D3B57FED6DF5A99061F80E0:%ALLUSERSPROFILE%\Adobe\ARM\HID.dll, initial dropper ของเชนแบบซับซ้อน3007DDA05CA8C7DE85CD169F3773D43B1A009318:%WINDIR%\system32\grpedit.dat, LightlessCan ที่ถูก drop ในเชนแบบซับซ้อน247C5F59CFFBAF099203F5BA3680F82A95C51E6E:%WINDIR%\system32\oci.dll, intermediate dropper
- C&C ใช้เว็บไซต์ปกติที่ถูกเจาะ
bug.restoroad[.]comhurricanepub[.]comturnscor[.]commantis.quick.net[.]plwww.radiographers[.]orgkapata-arkeologi.kemdikbud.go[.]idbarsaji.com[.]mxwww.keewoom.co[.]krkerstpakketten.horesca-meppel[.]nlkittimasszazs[.]hunrfm[.]lk
- ตามกรอบ MITRE ATT&CK สามารถแมปได้กับการสอดแนมผ่านโซเชียลมีเดีย, spearphishing ผ่านลิงก์และบริการ, การให้ผู้ใช้รันไฟล์อันตราย, scheduled task, DLL side-loading, execution guardrails, การลดทอนการบันทึกประวัติคำสั่ง, C&C ผ่านเว็บโปรโตคอล, ช่องทางเข้ารหัสแบบสมมาตร และการขโมยข้อมูลผ่านช่องทาง C2
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
แทรกซึมผ่าน โจทย์ LeetCode แบบทำที่บ้าน ได้ ถือว่าฉลาดมาก
ผมพัฒนาซอฟต์แวร์ของ Apple อยู่ และโปรเจกต์ Xcode สามารถเข้าถึงได้ค่อนข้างลึก แม้ Apple จะขึ้นคำเตือนเมื่อเปิดโปรเจกต์ที่ดาวน์โหลดมา แต่ถ้าคิดว่าเป็นการบ้านทำที่บ้านก็มักจะกดข้ามไปแทบไม่สนใจ
โจทย์ออนไลน์เองก็อาจขอสิทธิ์เข้าถึงที่ยุ่งยากได้ และเป้าหมายแบบนี้มีโอกาสสูงที่จะมีสิทธิ์เข้าถึง ทรัพย์สินหลัก ของบริษัทค่อนข้างมาก แน่นอนว่าไม่มีใครใช้ทรัพยากรบริษัทเพื่อหางานหรอก แต่ถ้าบอกว่าเรื่องแบบนั้นเกิดขึ้นค่อนข้างบ่อย ทุกคนที่นี่ก็คงอ่อนไหวกับเรื่องนี้มาก
ผู้สมัครคนหนึ่งแม้แต่ REPL ของโปรเจกต์ตัวเองก็ยังเปิดไม่ขึ้น เขานั่งงมอยู่พักหนึ่งแล้วพึมพำว่า “น่าจะใช้คอมพิวเตอร์บริษัทไปเลย” การที่รันขั้นพื้นฐานที่สุดบนคอมพิวเตอร์ส่วนตัวไม่ได้ แปลว่าเขาทำโจทย์นั้นบนคอมพิวเตอร์บริษัท
ต้องยอมรับว่าในปี 1996 อีเมลส่วนตัวยังไม่ได้แพร่หลายเท่าตอนนี้ แต่ถึงอย่างนั้นก็ยังเป็นความผิดพลาดระดับพื้นฐาน ผมยึดหลัก ไม่ทำเรื่องส่วนตัวบนคอมพิวเตอร์บริษัท มาตั้งแต่นานแล้ว แต่ทัศนคติแบบนี้ก็ไม่ได้พบได้ทั่วไปนัก
อาจไม่ใช่วิธีแก้ที่สมบูรณ์แบบ แต่คงดีถ้าเปิดโปรเจกต์ในโหมดที่ทุกขั้นตอน build รันใน sandbox ได้ ถ้าล้มเหลวก็ค่อยดูว่ามันพยายามจะทำอะไร
พูดตรง ๆ ผมไม่คิดว่าเพื่อนร่วมงานส่วนใหญ่จะทำ due diligence ระดับเดียวกัน
ผมแปลกใจทุกครั้งที่เห็นคนใช้เครื่องของบริษัทปัจจุบันทำ โจทย์ทำที่บ้าน, ส่งอีเมลคุยกับ headhunter, หรือรับสายสัมภาษณ์กับบริษัทอื่น
หลายคนบอกว่าทำแบบนั้น แต่ผมไม่เข้าใจเลย ผลลัพธ์ที่อาจตามมามีเยอะเกินไป ผู้จัดการที่กระตือรือร้นคนหนึ่งเคยใช่เส้นสายส่วนตัวไปโน้มน้าวนายจ้างในอนาคตไม่ให้รับผมเข้าทำงาน เพียงเพราะเขารู้เรื่องนี้
ต่อให้ผิดจริยธรรมหรือผิดกฎหมาย เรื่องแบบนี้ก็เกิดขึ้นจริง และเกิดในบริษัทเทคโนโลยีขนาดใหญ่ด้วย ถ้าคิดว่าเป็นการสมัครใจแชร์รายละเอียดการหางานให้กับนายจ้าง มันก็ดูแปลก ๆ ผมว่าเรื่องงานกับชีวิตส่วนตัวควรแยกกันเหมือน การแยกศาสนากับรัฐ
พวกเขาเป็นนักพัฒนาซอฟต์แวร์และมีกำลังซื้อแล็ปท็อปได้สบาย ระดับสูงสุดที่ผมยอมปนกันคือใช้แล็ปท็อปบริษัทที่เล็ก เบา และมี Bluetooth ดูวิดีโอ YouTube ที่ไม่มีพิษภัยระหว่างล้างจาน เมื่อก่อนบางครั้งก็ใช้พิมพ์งานที่ออฟฟิศด้วย
ผมเห็นด้วยเต็มที่ว่าความเสี่ยงสูงและไม่ควรทำ แต่ถ้าคนไม่คิดให้ลึกหรือไม่ได้ระวังตัวตลอดเวลา เรื่องแบบนี้ก็เกิดขึ้นได้
ไม่รู้จะเพิ่มความเสี่ยงที่ไม่จำเป็นไปทำไม บางทีอาจชอบความตื่นเต้นแบบนั้นก็ได้
นี่คือส่ง ไฟล์ .exe ไปให้เหยื่อโดยอ้างว่าต้องจำลองฟีเจอร์เป็น C++ ใช่ไหม? ทันทีที่ได้รับไฟล์ .exe จากใครสักคน มันควรเป็นสัญญาณแรง ๆ ว่านั่นคือการโจมตี หรืออย่างน้อยที่สุดผู้ส่งก็ไร้ความสามารถทางเทคนิคอย่างไม่น่าเชื่อ
แต่คงเป็นเพราะผมผ่านยุค Windows 95 มาด้วยมั้ง บางบทเรียนดูเหมือนต้องเรียนรู้กันใหม่ทุกเจเนอเรชัน
เราไม่มีทางรู้ว่ามีกี่คนที่เจอโจทย์ทดสอบแปลก ๆ แล้วตอบว่า “งั้นไม่ทำ” ทุกวันนี้การรันแอปพลิเคชันใน sandbox ทำได้ค่อนข้างง่าย แต่ก็ยังไม่ทำกัน ซึ่งโง่มาก Sandboxie ฟรี และไม่ได้รับประกันว่าจะทำงานได้เสมอไป แต่ก็อาจสำเร็จได้ หรืออย่างน้อยก็น่าจะทำให้พฤติกรรมแปลก ๆ สังเกตเห็นได้ง่ายขึ้น Windows Pro ก็เคยมีตัวเลือกเมนูคลิกขวาสำหรับรันไฟล์ executable ใน sandbox อยู่พักหนึ่ง
ตอนเห็นหัวข้อ ครั้งแรกผมนึกว่าเป็นการติดเชื้อผ่าน IDE ที่มีคำถามอย่าง “คุณเชื่อถือผู้สร้างโปรเจกต์นี้หรือไม่” นั้นมีเหตุผล และในกรณีของ VS Code ยังสามารถใช้กลเม็ดผ่านการตั้งค่า Git เพื่อรันโค้ดก่อนพรอมป์ได้ด้วย
ผมจะระวังเรื่องการรันโปรแกรม แต่ถ้านายหน้าส่งโจทย์โค้ดมาในรูปโปรเจกต์ที่ยังทำไม่เสร็จบน Git repository ผมก็อาจกดปุ่ม “อนุญาตให้รันโค้ด” ได้ โดยเฉพาะถ้าเป็นสัมภาษณ์ทางไกลที่ดูโค้ดแบบเรียลไทม์แล้วบอกว่า “จะดูวิธีเข้าหาปัญหา” การโจมตีครั้งนี้พื้นฐานมาก แต่การทำให้ตรวจจับการติดเชื้อเริ่มต้นได้ทันเวลานั้นไม่ได้ยากนัก
การหลอกให้ดาวน์โหลดหรือรันไฟล์ executable ที่แนบมานั้นเรียบง่าย แต่ดูเหมือนยังได้ผลอยู่ วิธีที่ชั่วร้ายและได้ผลกว่าคือชี้ไปยัง GitHub repository ที่มีโปรเจกต์ “โจทย์” แล้วให้เหยื่ออ้างอิง แพ็กเกจที่ถูกเจาะ ซึ่งทำสิ่งที่ผู้โจมตีต้องการตอนที่เหยื่อทดสอบคำตอบของตัวเอง
ผมรู้ว่าพวกเขาไม่ใช่ script kiddie ธรรมดา แต่ก็สงสัยว่าจะตอบสนองอย่างไรถ้าถูกลองสวนกลับ ถ้าให้ .exe มาแล้วบอกให้รัน ผมจะไม่รัน แต่จะเปิดตรวจด้วย hex editor ไฟล์ที่อ้างว่าเป็น “hello world” หรือ Fibonacci generator ถ้ามีขนาดใหญ่กว่าที่คาดมาก หรือมีข้อมูลที่ดูเหมือนเข้ารหัสหรือมีความพยายาม obfuscation อยู่ ผมก็จะไม่รัน
ถ้าล็อกซอร์สไว้และเปลี่ยนรายละเอียดตามผู้สมัครแต่ละคนได้ เฉลยที่ถูกโพสต์ออนไลน์ก็จะช่วยอะไรไม่ได้
ตอนทำงานให้คำปรึกษาโครงการของรัฐบาล ผมตั้งใจไม่เอาเรซูเม่ขึ้นอินเทอร์เน็ต
ไม่ได้มีสิทธิ์เข้าถึงอะไรที่สายลับน่าจะอยากได้ แต่ถ้าดูแค่คีย์เวิร์ดบางคำก็อาจดูเหมือนมี เหมือนพวกรีครูตเตอร์ที่สแปมทุกคนที่ติดผลค้นหาคีย์เวิร์ดบน LinkedIn นั่นแหละ
ผมรู้ว่าต้องรายงานเหตุด้านความปลอดภัยทุกกรณี และคิดว่าสัญญากับรายได้อาจสะดุดไปในระหว่างที่ระบบราชการที่รอบคอบจัดการเหตุการณ์นั้น ดังนั้นผมเลยเอาเรซูเม่ออนไลน์ออก และทำมาตรการป้องกันไม่ให้โจรสุ่ม ๆ เผลอมาขโมยแล็ปท็อปงานไปด้วย
ตอนนี้ผมออกจากงานนั้นแล้ว เลยสนุกกับสแปมรับสมัครงานบน LinkedIn แบบ Junior Python Leetcode Hazing Engineer เหมือนคนอื่น ๆ
ในบางตำแหน่งหรือบางอุตสาหกรรม การไม่เปิดเผยสถานะการจ้างงานอาจเป็นมาตรการความปลอดภัยธรรมดา ๆ เพื่อป้องกัน การโจมตีแบบเจาะจงเป้าหมาย ก็ได้ ถ้าเทียบกับโลกจริง เจ้าหน้าที่ CIA ก็คงไม่เดินแจกนามบัตรที่ประทับตรา CIA ในต่างประเทศหรอก
ผมก็คล้ายกันตรงที่ไม่อยากให้บางคนรู้ว่าผมทำงานที่ไหน แต่คิดว่าเรซูเม่เก่าที่ไม่ได้ระบุที่ทำงานปัจจุบัน ปล่อยไว้ออนไลน์ก็ไม่เป็นไร ผมยังขอหัวหน้า HR ด้วยว่าอย่าให้ชื่อผมไปอยู่บนหน้า “ทีมของเรา” แบบสาธารณะเด็ดขาด
ผลข้างเคียงคือ ผมหัวเราะทุกครั้งเวลาอบรมความปลอดภัยภาคบังคับของบริษัทที่สอนวิธีรับมือการโจมตีแบบเจาะจงและยกตัวอย่างอีเมลฟิชชิง จนถึงตอนนี้ นอกจากการทดสอบของบริษัททำ penetration test แล้ว ผมยังไม่เคยได้รับ ฟิชชิงแบบเจาะจงเป้าหมาย เลยแม้แต่ครั้งเดียว
คนโง่แบบไหนกันที่เอาอุปกรณ์บริษัทไปทำเรื่องส่วนตัว
ไม่ได้พูดถึงคนจน แต่พูดถึงคนที่มีเงินพอจะซื้ออุปกรณ์ส่วนตัวของตัวเอง
คอมพิวเตอร์ส่วนตัวเป็นเหมือนเครื่องทำความร้อนที่เล่นวิดีโอเกมได้ด้วย เลยไม่ได้ใช้เป็นเครื่องหลัก ผมมีเงินซื้อเครื่องที่สามได้ แต่เอาเงินไปทำอย่างอื่นดีกว่า
แน่นอนว่าผมพยายามทำตามกฎความปลอดภัยของบริษัท ผมเชื่อใจบริษัท ผมไม่อยากทำงานให้บริษัทที่ผมฝาก คุกกี้เบราว์เซอร์ ไว้ไม่ได้ ในเขตอำนาจที่ผมอยู่ กฎหมายก็เข้าข้างผม บริษัทไล่ผมออกไม่ได้เพียงเพราะผมทำอะไรที่บริษัทไม่ชอบบนแล็ปท็อปบริษัท ต้องมีเหตุผลที่สมเหตุสมผลมาก ๆ
ตอนเป็นนักศึกษาฝึกงานและจนกว่านี้มาก ผมก็เคยทำแบบเดียวกัน
ไม่ล็อกอิน แค่ดูหนังบนแล็ปท็อปงานก็พอสนุกแล้ว
ในกรณีนี้เหยื่อทำงานที่บริษัทอวกาศการบิน ผมรู้จักคนในอุตสาหกรรมนั้นอยู่บ้าง ทุกคนทำงานกันนานเกินเหตุ แถมเป็นบริษัทสเปนด้วย การทำงานวันละ 10 ชั่วโมงขึ้นไปอาจถูกมองว่าเป็นเรื่องปกติ
ออกนอกเรื่องนิดหน่อย แต่ถ้าคนเกาหลีเหนือแทบไม่มีสิทธิ์เข้าถึงอินเทอร์เน็ตจนกว่าจะได้เป็นเจ้าหน้าที่รัฐ ผมสงสัยว่า Lazarus/HIDDEN COBRA กลายเป็น ผู้โจมตีที่มีรัฐหนุนหลัง ที่ซับซ้อนขนาดนั้นได้อย่างไร
ถ้าเข้าถึงงานวิจัยด้านความปลอดภัยสมัยใหม่ โครงการโอเพนซอร์ส เอกสารการเขียนโปรแกรม และมัลแวร์ที่แพร่กระจายจริงไม่ได้ ก็น่าจะยากที่จะสร้างแฮกเกอร์รุ่นเก่ง ๆ ขึ้นมาได้ บางทีพวกเขาอาจจับคนที่อ้อมไฟร์วอลล์ได้ แล้วเสนองานในหน่วยงานให้ก็ได้
แล้วก็สงสัยว่าคิดว่าเขาฝึกแฮกเกอร์กันอย่างไร มันไม่ใช่แค่สอนทำแอป todo ด้วย React nightly build แล้วจบ พวกเขาน่าจะท่องจำและท่องย้อนกลับ สแต็ก TCP/IP กับอีเทอร์เน็ตได้ดีกว่าคนที่สร้างมันขึ้นมาเสียอีก และแค่นั้นก็เพียงพอจะเจาะอะไรได้มากมายแล้ว
ในประเทศที่ขาดแคลนหลายอย่างอย่างอาหาร ไฟฟ้า ฯลฯ นี่เป็นอาชีพที่ใคร ๆ ก็ใฝ่ฝันมาก ถ้าอยากรู้มากขึ้น ลองฟังพอดแคสต์ Lazarus Heist ดูได้
ในพื้นที่ของผม จากบริษัทจัดหาพนักงาน 300 แห่ง มีแค่ 23 แห่งที่ได้รับอนุญาตให้ดำเนินงานเป็นบริการอย่างถูกกฎหมายจริง ๆ เลยไม่แปลกใจ
การพยายามตรวจสอบว่าเจ้าไหนปลอม เจ้าไหนจริง เป็นเส้นด้ายที่บริษัทและผู้สมัครส่วนใหญ่ไม่ค่อยอยากดึง
กลโกงรับสมัครงานปลอม ก็มีเหมือนกัน คือเสนอแพ็กเกจค่าตอบแทนที่น่าดึงดูดให้พนักงานเพื่อดึงตัวออกมา จากนั้นคู่แข่งก็ขุดข้อมูล และไล่ออกก่อนหมดช่วงประเมิน ปกติภายใน 6–10 เดือน ผู้ไม่ประสงค์ดีหลายรายยังแพร่ PDF ที่ติดเชื้อมาพร้อมคำสัญญาเกินจริงด้วย
ต้องระวัง และ 86Box รองรับอิมเมจแบ็กกิงแบบอ่านอย่างเดียวกับเซสชันเหมือน Bochs/kvm: https://github.com/86Box/86Box/releases
ทำงานบนแล็ปท็อป Apple M1 ได้ด้วย แต่ช้า
เรื่องแย่ ๆ แบบนี้เกิดขึ้นจริง
ในปี 2019 แล็ปท็อปผมถูกแฮ็กผ่าน Wi‑Fi ฟรี ที่สำนักงานใหญ่จัดให้ จนต้องเปลี่ยนคีย์ SSH ทั้งหมด
“ไฟล์ปฏิบัติการอันตรายสองไฟล์… ไฟล์แรกเป็นโปรเจกต์ Hello World… ไฟล์ที่สองพิมพ์ลำดับฟีโบนัชชีจนถึงค่าสูงสุดที่น้อยกว่าค่าที่ป้อนเข้า” นี่ควรเป็นสัญญาณแรกแล้วว่ามีอะไรผิดปกติ
ถ้าเป็น Meta คงเริ่มจาก LeetCode medium หรือ hard แล้ว
ความปลอดภัยของเว็บไซต์นี้ยอดเยี่ยมมาก
เขาบล็อกไม่ให้ใช้ ปุ่มลูกศร เวลาเลื่อนเนื้อหาในหน้า เห็นได้ชัดว่าเป็นเพราะเวกเตอร์โจมตีที่ยังไม่เป็นที่รู้จักผ่านคีย์บอร์ด เยี่ยมจริง ๆ