เข้าใจความเสี่ยงของ policy สอบถามเรื่อง policy ได้ด้วยภาษาทั่วไป ขอชมการสาธิต →

Published:

ลาก่อน “Kill Chain” สวัสดี “Attack Sequence”

by FireMon

เมื่อไม่กี่ปีก่อนในงาน RSA Conference ผมได้ร่วมบรรยายเกี่ยวกับ “kill chain” ของการโจมตีบนคลาวด์ที่พบมากที่สุด Shawn Harris @infotechwarrior และผมได้พาไล่ดูสิ่งที่เราถือว่าเป็นการโจมตีบนคลาวด์ในโลกจริง 10 กว่าอันดับแรก สำหรับการโจมตีแต่ละแบบ เราไล่ดูทีละขั้นตอน และบางการโจมตีมีหลายเส้นทางแยกเพื่อแสดงทางเลือกที่ต่างกัน

เราเรียกสิ่งเหล่านี้ว่า “kill chain” แต่ในทางเทคนิคแล้ว cyber kill chain เป็นเทคนิคเฉพาะสำหรับการสร้างแบบจำลองการโจมตี ซึ่งพัฒนาโดย Lockheed Martin การโจมตีแต่ละครั้งเริ่มต้นด้วย Reconnaissance และดำเนินไปตามลำดับขั้นตอนที่กำหนดไว้จนถึง Actions on Objectives ในการบรรยายครั้งนั้น เราอ้างอิงถึงงานของ Lockheed Martin และอธิบายว่าแนวทางของเราต่างออกไปอย่างไร เพราะเราไม่ได้จำกัดตัวเองอยู่กับขั้นตอนที่กำหนดไว้ล่วงหน้า แต่เราไล่ดูทุกขั้นตอนของการโจมตีที่สำเร็จจริง ซึ่งก็ต่างจาก เครื่องมือ MITRE ATT&CK เช่นกัน ซึ่งเน้นการจัดหมวดหมู่เทคนิคการโจมตี แต่ไม่ได้กำหนดว่าการโจมตีหนึ่ง ๆ ต้องผ่านทุกขั้นตอนตามลำดับ นอกจากนี้ ATT&CK ยังมีการจำลองเชิงลึกสำหรับเทคนิคและเทคนิคย่อยด้วย

เครื่องมือทั้งสองช่วยให้เราจำลองการโจมตีเพื่อระบุจุดที่จะวางมาตรการควบคุมด้านความปลอดภัยเข้าไปตัดวงจรการโจมตีได้ ผมชอบคำว่า “chain” ใน “kill chain” มาตลอด เพราะการตัดข้อต่อเพียงข้อเดียวในขั้นตอนของการโจมตีก็หยุดการโจมตีนั้นได้ แต่... คำว่า kill chain ก็ฟังดูเหมือนคำที่ผู้รับเหมาด้านกลาโหมคิดขึ้นมา ส่วน ATT&CK ใช้แนวทางที่ต่างออกไป โดยบันทึก TTP ของผู้โจมตี (tactics, techniques และ procedures) ไว้เป็นฐานความรู้ ทั้งสองแนวทางช่วยให้เราอธิบายวิธีการทำงานของผู้โจมตี เพื่อกำหนดแนวทางการป้องกันของเรา

แรงบันดาลใจจากคลาวด์

แรงจูงใจเดิมของการบรรยายใน RSA Conference ครั้งนั้นคือการที่ข้อมูลสาธารณะเกี่ยวกับวิธีที่ผู้โจมตีเจาะระบบคลาวด์จริง ๆ มีอยู่น้อยมาก งานวิจัยส่วนใหญ่สะท้อนสิ่งที่นักวิจัยสนใจว่าน่าตื่นเต้น ไม่ใช่วิธีที่การโจมตีประสบความสำเร็จจริง เราศึกษา ATT&CK และ Cyber Kill Chain อย่างละเอียด แล้วผสมผสานแนวคิดทั้งสองเข้าด้วยกันเพื่อวาดลำดับขั้นตอนที่แน่ชัดของการโจมตีคลาวด์อันดับต้น ๆ แต่ละแบบ การจำลองเช่นนี้ช่วยให้พบจุดร่วมและจุดคอขวดที่สามารถป้องกันการโจมตีได้หลายรูปแบบพร้อมกัน

องค์ความรู้ร่วมกันเกี่ยวกับการโจมตีบนคลาวด์ยังมีไม่มากพอ ผู้ป้องกันจึงต้องการแผนภาพที่ชัดเจนกว่าเดิม เพื่อให้เข้าใจกลไกของการโจมตีเหล่านี้ได้อย่างถ่องแท้

เราเรียกสิ่งเหล่านี้ว่า kill chain ทั้งที่จริง ๆ แล้วไม่ใช่ และเมื่อประมาณหกเดือนก่อน ระหว่างการสนทนากับองค์กรหนึ่งที่นำการบรรยายของเราไปปรับใช้ภายใน พวกเขาบอกว่า “สิ่งเหล่านี้ไม่ใช่ kill chain จริง ๆ หรอก มันเป็น attack sequence มากกว่า” ผมเสียดายที่จำไม่ได้ว่าคุยกับใคร เพราะเขาสมควรได้รับเครดิตทั้งหมดสำหรับคำนี้

Attack Sequence เป็นคำอธิบายที่ตรงกว่ามาก เพราะมันแสดงลำดับขั้นตอนที่แน่ชัดซึ่งจำเป็นต่อความสำเร็จของการโจมตี และสามารถรวมเส้นทางที่ต่างกันซึ่งนำไปสู่การเจาะระบบปลายทางเดียวกันไว้ด้วยกันได้ ผมโพสต์เรื่องนี้บน Twitter และได้รับการตอบรับที่ดีมาก

เธรดทวีตระหว่าง Rich Mogull และ Fernando Montenegro
เธรดทวีตของ Scott Crawford
เธรดทวีตระหว่าง Rich Mogull และ Bryson Speaking
เธรดทวีตระหว่าง Nick Jones และ Mike Doyle

การสร้าง Attack Sequence

Attack Sequence ไม่ใช่แบบจำลองตายตัวที่มีหมวดหมู่กำหนดไว้ล่วงหน้า แบบจำลองลักษณะนั้นมีคุณค่าในตัวเองอย่างแน่นอน แต่ขอให้มอง Attack Sequence เป็นแผนที่ที่ร้อยเรียง TTP เข้าด้วยกันเพื่อแสดงการโจมตีตั้งแต่ต้นจนจบ ต่างจาก Kill Chain ของ Lockheed ตรงที่ Attack Sequence สามารถแสดงเส้นทางหลายเส้นที่มุ่งสู่ปลายทางเดียวกันได้ ลองดูตัวอย่าง ransomware บนคลาวด์

ลาก่อน “Kill Chain” สวัสดี “Attack Sequence”

แบบจำลองนี้ชี้ให้เห็นประเด็นสำคัญหลายข้อ

  • มีจุดเริ่มต้นที่เป็นไปได้สองจุด คือ credential ที่รั่วไหล หรือ workload ที่ถูกเจาะ สำหรับ credential ที่รั่วไหลนั้นมีลำดับการโจมตีแยกต่างหากซึ่งมีรายละเอียดมากกว่านี้มาก แต่ลำดับนี้สามารถอ้างอิงย้อนไปยังลำดับดังกล่าวได้ เพื่อให้โฟกัสอยู่ที่การโจมตีด้วย ransomware
  • มีจุดเชื่อมที่ผู้โจมตีสามารถย้ายจาก workload ที่ถูกเจาะซึ่งเข้าถึง storage ได้ ไปสู่ management plane หรือจะลงมือกับข้อมูลภายใน workload โดยตรงก็ได้
  • ทั้งสองเส้นทางมาบรรจบกันอีกครั้งที่การอัปโหลดข้อความเรียกค่าไถ่
  • ยังมีลำดับการโจมตีแบบอื่น ๆ ของ ransomware อยู่อีก แต่ที่นำเสนอนี้เน้นเส้นทางที่พบบ่อยที่สุด แน่นอนว่าคุณสามารถสร้างแบบจำลองที่ครอบคลุมทุกกรณีได้
  • สามารถระบุและบันทึก TTP รวมถึง Indicators of Attack/Compromise ได้ในทุกขั้นตอนของลำดับการโจมตี
  • นี่เป็นลำดับการโจมตีแบบทั่วไป (ใช้ได้กับผู้ให้บริการคลาวด์ส่วนใหญ่) แต่การขยายให้เป็นเวอร์ชันเฉพาะของผู้ให้บริการรายใดรายหนึ่ง หรือแม้แต่บริการคลาวด์ตัวใดตัวหนึ่ง ก็ไม่ใช่เรื่องยาก
  • การสร้างแนวป้องกันหมายถึงการตัดทุกเส้นทางที่เป็นไปได้ หรือตัดที่จุดซึ่งเส้นทางเหล่านั้นมาบรรจบกัน ข้อแนะนำ: credential ที่รั่วไหลปรากฏอยู่ในลำดับการโจมตีบนคลาวด์เกือบทุกกรณี

นี่คือแนวทางที่ยืดหยุ่นและเข้าใจง่าย คุณจะคงไว้ในระดับภาพรวมอย่างตัวอย่างของผม หรือจะลงลึกและจำลองตัวบ่งชี้เฉพาะเจาะจงก็ได้ ผมมองว่ามันเข้ากันได้ดีเยี่ยมกับ ATT&CK

แม้แต่การโจมตีแบบอัตโนมัติก็ยังมีผู้โจมตีอยู่เบื้องหลัง การรู้จัก TTP และ IoC เป็นเรื่องสำคัญ แต่การเข้าใจภาพรวมว่าการโจมตีเชื่อมโยงกันอย่างไร และผู้โจมตีมีทางเลือกใดบ้าง ก็สำคัญไม่แพ้กัน

ลาก่อน Kill Chain สวัสดี Attack Sequence | FireMon