Ransomware แนวใหม่ กับ Golden Ticket ของ Active Directory

0
2127

Ransomware หรือที่หลายๆ ท่านรู้จักกันในชื่อว่า Malware เรียกค่าไถ่ เป็นที่เลื่องลือกันว่าน่ากลัวยิ่งนัก เนื่องจากว่าใครก็ตามที่โดนเข้าไปแล้วนั้น ข้อมูลต่างๆ ในเครื่องก็จะโดนเข้ารหัสด้วยรหัสลับที่่เราไม่รู้ และหากใครอยากได้ข้อมูลคืนมานั้น ก็จะต้องเสียเงินเพื่อให้ได้มาซึ่งคีย์ในการถอดรหัสข้อมูลกลับมา (จะได้จริงมั้ย ไม่รู้อีกต่างนะครับ) ดังนั้นหลายๆองค์กร จึงมักใช้วิธีการแก้ปัญหา โดยการกู้คืนข้อมูลมาจาก Backup ที่ทำไว้ก่อนหน้านี้

แต่ ณ วันนี้ต้องบอกเลยว่าการทำงานของ Ransomware นั้นมีการเปลี่ยนแปลงไปแล้ว ดังจะเห็นได้จากประกาศของ Thaicert เรื่อง แจ้งเตือน มัลแวร์เรียกค่าไถ่ Maze ระบาด นอกจากเข้ารหัสลับไฟล์อาจข่มขู่ให้จ่ายเงินเพื่อไม่ให้เปิดเผยข้อมูล นั้นจะเห็นได้ว่า Malware ตัวนี้นั้นจะใช้วิธีการฝังตัวอยู่ในระบบของเหยื่อเป็นเวลานาน และอาจจะมีการส่งข้อมูลกลับไปยังเจ้าของ Malware ซึ่งเจ้าของเอง Maloware ก็จะมีการสั่งให้ระบบเสียหายเมื่อไรก็ได้

ในบทความนี้จะไม่กล่าวถึงตัว Malware ดังกล่าวนะครับ ผู้สนใจสามารถดูรายละเอียดของ Malware ได้จาก Link ของ Thaicert ได้ ครับ แต่เราจะมาทำความรู้จักพฤติกรรรม วิธีการตรวจสอบ และแนวทางการป้องกันกันในเบื้องต้นกันครับ (ส่วนจะกันได้แค่ไหนนั้นว่ากันอีกทีนะครับ 5555)

การทำงานของ Malware

ตัว Malware ที่พูดถึงในตอนต้นคือ Malware ที่ชื่อว่า Maze ซึ่งแปลเป็นภาษาไทยก็คือ “เขาวงกต” ครับ ตัว Malware จะใช้วิธีการฝังตัวเริ่มจากเครื่อง Client โดยอาจมีการติดไปจาก email หรือวิธีการต่างๆ จากนั้นตัว Malware จะพยายามติดต่อกับเครื่อง Domain Controller และพยายามที่จะทำการขโมย Golden Ticket และส่ง Golden Ticket กลับไปยังเจ้าของ Malware

เมื่อเจ้าของ Malware ได้รับ Golden Ticket แล้วจะมีสิทธิเทียบเท่ากับ Administrator ของ Active Directory และสามารถที่จะฝัง Account ต่างๆ ไว้ในระบบได้อีกอย่างมากมาย ในระหว่างนี้อาจจะมีการรวบรวมข้อมูลต่างๆ ในระบบและส่งกลับไปยังเจ้าของ Malware อย่างต่อเนื่อง (เป็น Admin แล้วนี่จะทำอะไรก็ได้จริงมั้ยครับ 555)

เมื่อถึงจุดนึงเจ้าของ Malware ก็สามารถสั่งให้ Malware ออกฤทธิ์ โดยการสั่งให้ Malware ทำการทำลายระบบต่างๆ เช่นการเข้ารหัสไฟล์ อันนี้แหละเราถึงจะรู้ตัว เพราะระบบมันใช้ไม่ได้แล้วครับ (แต่กว่าจะรู้ตัวทุกอย่างก็สายเกินไป ข้อมูลโดนดึงออกไปแล้ว)

ว่าด้วย Golden Ticket

ถึงจุดนี้คงต้องอธิบายเพิ่มเติมเกี่ยวกับ Golden Ticket กันสักนิดว่ามันคืออะไร นะครับ

คืองี้ครับ ต้องบอกว่าก่อนว่าในระบบ Active Directory Domain Service (AD DS) หรือเรียกย่อๆ ว่า Domain แล้วกันนะครับ สั้นดี มันจะมี Account พิเศษอยู่ Account นึง เชื่อว่า “KRBTGT” (Kerberos Ticket Granting Ticket) ซึ่ง Account นี้จะ Disable ไว้ครับ ลบก็ไม่ได้ แก้ไขอะไรไม่ได้สักอย่างเดียวครับ

ภาพจาก https://docs.microsoft.com/th-th/windows-server/identity/ad-ds/manage/ad-forest-recovery-resetting-the-krbtgt-password

แล้วจะมี KRBTGT ไปทำไม ในเมื่อแก้ไม่ได้ แล้ว Disable อีกต่างหาก

เจ้า KRBTGT นี่สำคัญนักแหละครับ มันเป็น Local Account ในระบบ Domain ที่สำคัญสุดๆ มันจะถูกสร้างขึ้นพร้อมกับการ Promote domain และถูกใช้เป็น Service account สำหรับ Service ที่ชื่อว่า Key Distribution Center (KDC)

หน้าที่ของ KDC มีอยู่ 2 ประการด้วยกันคือ
(Source: https://docs.microsoft.com/en-us/windows/win32/secauthn/key-distribution-center )

  1. Authentication Service เมื่อเครื่องลูกข่ายทำการ login เข้าสู่ระบบ จะต้อง Authenticate กับเครื่อง Domain Controller และจะได้รับ Ticket ที่เรียกว่า Ticket Granting Ticket (TGT) ขึ้นมาก่อน จากนั้นจึงนำ TGT ไปขอใช้สิทธิ์ในการเข้าถึงข้อมูลในเครื่องอื่นๆ ซึ่ง TGT นี้จะใช้ได้เฉพาะใน Domain ของตัวเองเท่านั้น และสามารถใช้ซ้ำได้เรื่อยๆ ตราบใดที่ TGT ยังไม่หมดอายุ
  2. Ticket Granting Service (TGS) แต่ถ้าเครื่องคอมพิวเตอร์ต้องการติดต่อข้าม Domain กัน TGT ที่ออกมาตามข้อ 1 จะต้องไปผ่าน TGS ของ Domain ปลายทางอีกทีเพื่อออก TGT ของ Domain ปลายทางซ้ำอีกครั้งหนึ่ง

ด้วยเหตุนี้ KDC จึงมีความสำคัญมาก หากผู้ไม่หวังดีสามารถขโมย TGT ของ KRBTGT ออกไปได้ก็เรียกได้ว่าสามารถออก TGT อีกกี่อันก็ได้ โดยไม่ต้องมี Account ในระบบจริงๆ ก็ทำได้เลย เราจึงเรียก TGT ของ KRBTGT ว่า “Golden Ticket” นั่นเองครับ

แนวทางการเพิ่มความปลอดภัยของ Infrastructure

เนื่องจากการการขโมย Golden Ticket นั้นเป็นการมุ่งโจมตีที่ Active Directory โดยตรง ดังนั้นสิ่งที่ควรดำเนินการในการเพิ่มความปลอดภัยของ Active Directory นั้นมีดังนี้ (Source: https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/dn745899(v=ws.11)?redirectedfrom=MSDN#Anchor_5 )

  • การ Reset password ของ Account KRBTGT เป็นระยะๆ ซึ่งอันนี้เป็นวิธีการช่วยเพิ่มความปลอดภัยได้มาก แต่งานเข้ารัวๆ เพราะหลังจาก Reset password ไปแล้ว อาจจะมีผลกระทบกับ PC และ Server ทั้งหมด อาจจะต้อง Restart และทำการ login ใหม่ด้วย เพื่อให้มั่นใจได้ว่า TGT ที่ใช้ในองค์กรนั้นมีการออกมาจาก TGT ใหม่จริงๆ ดูวิธีการ https://docs.microsoft.com/th-th/windows-server/identity/ad-ds/manage/ad-forest-recovery-resetting-the-krbtgt-password
  • การตั้ง RODC (Read Only Domain Controller) ซึ่งตัว RODC จะมีการแยก KRBTGT Account ของแต่ละ RODC (โดยแต่ละ RODC แต่ละเครื่องมื Account KRBTGT-xxxx เพิ่มขึึ้นมาครับ ซึ่ง KRBTGT-xxxx นี้จะเป็น Cache Only เท่านั้น ถึงแม้จะถูกขโมยไปก็ไม่สามารถนำไปออก TGT อื่นๆ ได้)

การตรวจสอบความผิดปกติของ KRBTGT

ดังที่บอกแล้วว่า KRBTGT นั้นสำคัญมาก และการใช้งานค่อนข้างซับซ้อนครับ ดังนั้นการตรวจสอบจึงค่อนข้างยาก อาจจะต้องอาศัยความพยายามอย่างสูงในการตรวจสอบ ซึ่งต้องอาศัยเครื่องมือต่างๆ เช่น

  • Event Viewer เพื่อดูความผิดปกติ เช่นมี Account ประหลาดๆ เข้ามา login หรือไม่ อันนี้อาจจะต้องอาศัยการเปิด Audit เข้าช่วยด้วย
  • Antivirus/IDS/IPS Signature พวกนี้จะเป็นเครื่องมือนึงที่ช่วยตรวจสอบความผิดปกติของ File และช่วยวิเคราะห์ให้ได้บ้าง
  • PowerShell ผู้เขียนได้ลองไปหาใน Microsoft Script Center พบว่า Microsoft ได้มีการเขียน Script สำหรับตรวจสอบความผิดปกติของ Golden Ticket ไว้สามารถตรวจสอบได้ที่ Kerberos Golden Ticket Check (Updated)

ถ้าโดนไปแล้วทำไงดี

ถ้าโดนไปแล้วทำไงได้ครับ นอกจากทำใจครับ ซึ่งอย่างที่บอกว่าการ Restore Domain กลับมาอาจจะไม่ช่วย เพราะว่าจริงๆ แล้วมันอาจจะมี Malware ฝังตัวมานานนับเดือน ในทุกๆ Backup Set ที่เรามีอยู่เลยก็ได้ แต่วิธีการที่จะบอกได้คร่าวๆ คือแบบนี้ครับ มันอาจจะไม่ดีที่สุด แต่คิดว่าดีกว่าทำ Infrastructure ใหม่ทั้งหมดแน่ๆ ครับ

  • ปลดเครื่องคอมพิวเตอร์ทุกเครื่องออกจากเครือข่ายทั้งหมด
  • Restore Active Directory Domain Controller ซึ่ง Restore แค่เครื่องเดียวพอนะครับ เครื่องที่เหลือลบจาก metadata โดยใช้ ntdsutil ทิ้งให้หมด
  • Restore เสร็จแล้วให้ Reset password ของ KRBTGT อันนี้ต้องบอกว่าให้ Reset เอา password ยากๆ ยาวๆ เลยครับ แล้ว Reset สักหลายๆ รอบ แต่ละรอบ password ไม่เหมือนกันด้วยนะครับ อย่างน้อย 3-4 รอบไปเลยครับ
  • เสร็จแล้วให้เอา Antivirus มา Scan แบบ Full Scan ครับ
  • จากนั้นค่อยเริ่ม Promote Additional Domain Controller ในแต่ละ Site ครับ
  • ส่วนเครื่องลูกข่าย และ Application Server นั้น อย่าได้แคร์ครับ Format ลงใหม่โลด ครับ

ปล. มี Tools อันนึงครับ ที่ผมเจอมา ลองเอาไปใช้ดูนะครับ เผื่อจะช่วยได้ครับ
https://www.peerlyst.com/posts/how-to-clean-out-golden-tickets-after-a-succesful-attack-on-your-active-directory-guurhart

เอาล่ะครับ ก็หวังว่าจะเป็นประโยชน์กับเพื่อนร่วมอาชีพทุกท่านนะครับ วันนี้เล่ามาเยอะแล้ว รูปก็ไม่ค่อยมี หลังใจให้ทุกท่านอยู่รอดปลอดภัยนะครับ