• ติดตั้งแพทช์ความปลอดภัย MS17-010
• ปิดพอร์ต TCP 445
• จำกัดบัญชีผู้ใช้ที่มีสิทธิ์การเข้าถึงระดับแอดมินแบบกลุ่ม
รูปแบบการแพร่กระจายตัวเอง
แรนซั่มแวร์กลุ่มนี้บุกรุกเข้าสู่ระบบของเหยื่อโดยใช้ทูล PsExec ซึ่งเป็นยูทิลิตี้ที่เป็นทางการของไมโครซอฟท์ ที่ใช้รันโปรเซสต่างๆ บนระบบที่ต้องการจากระยะไกล นอกจากนี้ยังใช้ช่องโหว่ EternalBlue หรือช่องโหว่บน SMBv1 ที่มีการใช้มาแล้วในกรณีการโจมตีของ WannaCry ซึ่งเมื่อสามารถฝังตัวบนระบบแล้ว Petya จะรันโปรเซส rundll32.exe เพื่อสั่งรันโค้ดตัวเอง ซึ่งโค้ดอันตรายที่ทำหน้าที่เข้ารหัสจริงๆ จะเป็นไฟล์ที่ชื่อ perfc.dat โดยซ่อนตัวอยู่ในโฟลเดอร์วินโดวส์
จากนั้นแรนซั่มแวร์ตัวนี้จะเพิ่มทาส์กแบบกำหนดเวลารันการทำงาน (Scheduled) ที่บังคับให้ระบบรีบูตให้หลังหนึ่งชั่วโมง นอกจากนั้นยังมีการปรับแก้ Master Boot Record (MBR) เพื่อการเข้ารหัสไฟล์พร้อมแสดงข้อความวิธีการจ่ายค่าไถ่ด้วย และเมื่อมีข้อความปลอมของ CHKDSK แสดงขึ้นมา ก็ถือเป็นสัญญาณว่าการเข้ารหัสไฟล์เกิดขึ้นแล้ว แรนซั่มแวร์ Petya นี้มีลักษณะที่แตกต่างจากตัวอื่นๆ โดยนอกจากจะไม่เปลี่ยนสกุลไฟล์ของไฟล์ที่โดนเข้ารหัสแล้ว ไฟล์บางชนิดที่มักตกเป็นเป้าของแรนซั่มแวร์ตัวอื่น อย่างเช่นไฟล์รูปภาพและวิดีโอ กลับไม่โดน Petya เล่นงาน
นอกจากการใช้ประโยชน์จากช่องโหว่ EternalBlue แล้ว มันยังมีพฤติกรรมอื่นที่คล้ายกับ WannaCry อีก เช่น การฝังที่อยู่บิทคอยน์เอาไว้ในตัวโดยตรงที่ ทำให้การถอดรหัสไฟล์กลับมาเป็นงานที่ยากลำบากมาก ตัว Petya นี้มีการเรียกค่าไถ่อยู่ที่ 300 ดอลลาร์สหรัฐฯ ซึ่งปัจจุบันประมาณการณ์กันว่า มีการจ่ายเงินค่าไถ่รวมแล้วกว่า 7,500 ดอลลาร์ฯ ไปยังที่อยู่บิทคอยน์ดังกล่าวแล้ว และจากประวัติการโจมตีที่เหมือนกับแรนซั่มแวร์อื่นๆ ทั้งหมด ทาง เทรนด์ไมโคร จึงแนะนำไม่ให้จ่ายค่าไถ่ โดยเฉพาะในกรณี Petya นี้เพราะอีเมล์ที่มีระบุไว้ในข้อความเรียกค่าไถ่นั้นถูกปิดการใช้งานแล้ว
PsExec และ Windows Management Information Command-line (WMIC)ถือว่า Petya ฉลาดมากที่ใช้ไฟล์ธรรมดาที่มีอยู่แล้วอย่างถูกต้องบนวินโดวส์ อย่าง PsExec และ Windows Management Information Command-line ซึ่งเป็นอินเทอร์เฟซที่ช่วยให้ใช้งาน Windows Management Instrumentation (WMI) ได้
ซึ่งเมื่อ Petya ฝังตัวเองบนเครื่องแล้ว จะมีการปล่อยไฟล์ psexec.exe ที่แปลงมาอยู่ในรูป dllhost.dat บนเครื่องเป้าหมาย รวมทั้งมีการทำสำเนาตัวเองไปยัง \\{ชื่อเครื่องอื่น}\admin$\{ชื่อมัลแวร์} ผ่านระบบแชร์ไฟล์ SMB ด้วย จากนั้นจึงรันโค้ดที่ฝังไว้โดยใช้ไฟล์ dllhost.dat ที่อยู่บนเครื่องตนเอง (ซึ่งเป็นชื่อไฟล์ของทูล PSEexec) พร้อมพารามิเตอร์ต่อไปนี้dllhost.dat \\{ชื่อเครื่องเป้าหมาย} -accepteula -s -d C:\Windows\System32\rundll32 "C:\Windows\{ชื่อมัลแวร์}",#1 {เลขสุ่มที่เป็นตั้งแต่ 10 ขึ้นไป} {รหัสผ่านที่ใช้เจาะเครื่องอื่น}ซึ่ง {รหัสผ่านที่ใช้เจาะระบบอื่น} มีรูปแบบดังนี้
"un1:pw1" "un2:pw2" "un3:pw3" … "unN:pwN"
ถ้าการรันโค้ดดังกล่าวไม่สำเร็จ Petya จะใช้ WMIC.EXE เพื่อรันไฟล์บนเครื่องอื่นแทน ดังนี้:
%System%\wbem\wmic.exe /node:"{ชื่อโหนด}" /user:"{ชื่อผู้ใช้}" /password:"{รหัสผ่าน}" process call create "C:\Windows\System32\rundll32 \"C:\Windows\{ชื่อไฟล์มัลแวร์}\" #1 {เลขสุ่มที่มีค่าตั้งแต่ 10 ขึ้นไป} {รหัสผ่านเครื่องต่างๆ ที่ล้วงข้อมูลมา}"
Petya จะใช้ทั้ง PSExec และ WMIC ตามนี้เพื่อกระจายมัลแวร์ไปยังเครื่องอื่นที่อยู่บนเครือข่ายเดียวกัน นอกจากนั้นแล้ว Petya ยังมีการแพร่กระจายผ่านทางช่องโหว่อย่าง EternalBlue ด้วย ซึ่งหากยังไม่สำเร็จ มันจะพยายามโจมตีผ่านช่องโหว่ EternalRomance ซึ่งเป็นช่องโหว่บน SMB อีกตัวหนึ่ง
วิธีการล้วงข้อมูลรหัสผ่าน
ทาง เทรนด์ไมโครยังค้นพบอีกว่า Petya ที่พบใช้เทคนิคขั้นสูงในการดึงข้อมูลออกจากเครื่องที่ถูกโจมตี โดยใช้ทูลความปลอดภัยที่มีอย่าง Mimikatz ซึ่งถูกดัดแปลงมาเพื่อล้วงข้อมูลชื่อผู้ใช้และรหัสผ่าน โดยไฟล์โปรแกรม Mimikatz ทั้งแบบ 32 และ 64 บิต จะถูกเข้ารหัสและจัดเก็บไว้ในส่วนที่เก็บรวบรวมทรัพยากรของตัวแรนซั่มแวร์เอง กระบวนการดึงข้อมูลนี้เกิดขึ้นระหว่างการรันโปรเซสหลักของมัลแวร์ที่เปิดช่องการเชื่อมต่อ ทำให้ Mimikatz สามารถบันทึกข้อมูลและส่งกลับไปให้โปรเซสหลักของมัลแวร์ประมวลผลได้ต่อไป ซึ่งอย่างที่กล่าวข้างต้นนี้ Petya จึงสามารถกระจายตัวเองไปเครื่องอื่นๆ บนเครือข่ายเดียวกันโดยใช้ข้อมูลรหัสผ่านที่ล้วงได้นี้เอง
กระบวนการการแก้ไขดิสก์
ก่อนจะเริ่มการเข้ารหัสนั้น Petya จะเริ่มต้นจากการแก้ไข MBR โดยข้อมูลส่วนที่อยู่หลังจาก Volume Boot Record (VBR) จะถูกเขียนด้วยโค้ด 0xBAADF00D ทำให้ระบบไม่สามารถบูตตามปกติได้
นอกจากนี้ยังมีการแก้ไขข้อมูลในส่วนเซ็กเตอร์อื่นๆ ด้วย ได้แก่:
• เซ็กเตอร์ที่ 0 ถึง 18 (ดิสก์ออฟเซ็ตที่ 0 ถึง 25FFh) จะถูกเขียนทับด้วยโปรแกรมสำหรับการบูทตัวมัลแวร์เอง
• เซ็กเตอร์ที่ 32 (ดิสก์ออฟเซ็ตที่ 4000h ถึง 41FFh) จะโดนเขียนด้วยสถานะการเข้ารหัส คีย์ที่ใช้ ค่าสุ่ม และที่อยู่บิทคอยน์
• เซ็กเตอร์ที่ 33 (ดิสก์ออฟเซ็ตที่ 4200h ถึง 43FFh) จะถูกเขียนเป็น 07h ทั้งหมดส่วนข้อมูลของ MBR อันเดิม จะถูกเข้ารหัสดังนี้:
• เซ็กเตอร์ที่ 34 (ดิสก์ออฟเซ็ตที่ 4400h ถึง 45FFh) จะถูกเขียนด้วยข้อมูลเดิมของ MBR ที่ถูกเข้ารหัสแบบ XORซึ่งถ้ากระบวนการข้างต้นล้มเหลว ก็จะทำการเขียนทับบนเซ็กเตอร์ที่ 0 – 9 ด้วยโค้ด 0xBAADF00D
จากการวิเคราะห์ เราพบว่า Petya นี้มีการเรียกใช้งาน CryptGenRandomAPI ในการเข้ารหัสโดยมันจะสร้างคีย์ขึ้นมา และบันทึกไว้บนดิสก์ซึ่งจะถูกเรียกใช้ในการเข้ารหัสหลังจากเครื่องถูกรีบูต ซึ่ง CryptGenRandom API นี้เองทำให้ Petya ตระกูลใหม่นี้สามารถทำงานได้สมบูรณ์กว่าตระกูลที่เคยพบก่อนหน้านี้ และส่งผลให้การถอดรหัสเป็นไปได้ยากขึ้นด้วย อีกสิ่งหนึ่งที่น่าสนใจคือ จากการวิเคราะห์โค้ดการทำงาน Petya สายพันธ์นี้ได้ลบคีย์ที่ใช้ในการเข้ารหัสทิ้งไปด้วยส่งผลให้การถอดรหัสเป็นไปได้ยากมาก จนแทบเป็นไปไม่ได้ แม้กระทั่งสำหรับคนเขียนตัว Petya เองก็ตามทีแนวทางการแก้ปัญหาจาก เทรนด์ไมโคร
สำหรับแนวทางการแก้ปัญหาโดยละเอียดเพิ่มเติมจาก เทรนด์ไมโครสามารถเข้าไปอ่านได้ที่ https://success.trendmicro.com/solution/1117665 คำถามที่ถูกถามบ่อย และการชี้แจงข้อสงสัย และการเปรียบเทียบเกี่ยวกับภัยคุกคามนี้https://www.trendmicro.com/vinfo/us/security/news/cybercrime-and-digital-threats/frequently-asked-questions-the-petya-ransomware-outbreak
สำหรับข้อมูลแฮช SHA256 ที่เกี่ยวข้องกับแรนซั่มแวร์ตัวนี้ได้แก่:
• 027cc450ef5f8c5f653329641ec1fed91f694e0d229928963b30f6b0d7d3a745
• 64b0b58a2c030c77fdb2b537b2fcc4af432bc55ffb36599a31d418c7c69e94b1
HTML::image(ติดต่อเราได้ที่ facebook.com/newswit