3 คะแนน โดย GN⁺ 2024-08-26 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • การป้องกันเครือข่ายเริ่มจากการแจกแจงสินทรัพย์และจัดลำดับความสำคัญ แต่พื้นผิวการโจมตีจริงถูกก่อรูปขึ้นเป็น กราฟการพึ่งพาด้านความปลอดภัย ระหว่างสินทรัพย์
  • ผู้โจมตีไม่ได้โจมตีสินทรัพย์ที่แข็งแกร่งที่สุดแบบตรง ๆ แต่จะมองหา เส้นทางอ้อมไปยังสินทรัพย์มูลค่าสูง ผ่านเวิร์กสเตชันหรือเส้นทางการดูแลระบบที่มีการป้องกันอ่อนกว่า
  • ในเครือข่าย Windows ปัจจัยอย่างวิธีการล็อกออน, ข้อมูลรับรอง, Kerberos TGT, NTLM hash, รหัสผ่านผู้ดูแลระบบภายในเครื่องที่ใช้ร่วมกัน, และสคริปต์ล็อกออน ล้วนสามารถกลายเป็นเส้นเชื่อมของกราฟได้
  • ผู้ป้องกันต้องเปลี่ยนรายการสินทรัพย์ให้เป็นกราฟ และลดการเชื่อมต่อด้วย การแบ่งส่วนโครงสร้างพื้นฐาน·ไซโลข้อมูลรับรอง·การลดสิทธิ์ให้น้อยที่สุด·การยืนยันตัวตนสองขั้นตอน·การหมุนเวียนข้อมูลรับรอง
  • ผู้โจมตีไม่ได้เรียนรู้จากไดอะแกรมเก่า ๆ แต่เรียนรู้โครงสร้างพื้นฐานจริงทีละส่วน ดังนั้นผู้ป้องกันจะได้เปรียบก็ต่อเมื่อเข้าใจความสัมพันธ์การเชื่อมต่อของเครือข่ายปัจจุบันได้แม่นยำกว่า

สิ่งที่การป้องกันแบบมองเป็นรายการมองข้าม

  • การป้องกันเครือข่ายจำนวนมากผิดทางตั้งแต่ก่อนจะสัมผัสกับผู้โจมตี เพราะเข้าใจสนามรบผิด
  • ผู้ป้องกันมุ่งเน้นการปกป้องสินทรัพย์ การจัดลำดับความสำคัญ และการจัดเรียงตามเวิร์กโหลดกับฟังก์ชันทางธุรกิจ
  • บริการจัดการระบบ, ฐานข้อมูล inventory สินทรัพย์, และสเปรดชีต BCDR เต็มไปด้วย รายการสินทรัพย์
  • แต่สิ่งที่ผู้ป้องกันต้องรับมือจริง ๆ ไม่ใช่รายการสินทรัพย์แต่ละรายการ หากเป็น กราฟ ที่สินทรัพย์เชื่อมถึงกันด้วยความสัมพันธ์ด้านความปลอดภัย
  • ผู้โจมตีจะลงจอดที่จุดใดจุดหนึ่งของกราฟด้วยเทคนิคอย่าง spearphishing แล้วมองหาระบบที่อ่อนแอเพื่อเคลื่อนที่ภายในเครือข่าย
  • กราฟนี้ไม่ได้ถูกกำหนดมาจากภายนอก แต่ถูกสร้างขึ้นโดยผู้ป้องกันเองที่ออกแบบและปฏิบัติการเครือข่าย

กราฟภายในเครือข่ายหมายถึงอะไร

  • กราฟของเครือข่ายคือชุดของการพึ่งพาด้านความปลอดภัยที่สร้าง คลาสสมมูล ระหว่างสินทรัพย์
  • ปัจจัยที่ส่งผลต่อกราฟแบ่งกว้าง ๆ ได้สี่อย่าง
    • การออกแบบเครือข่าย
    • วิธีบริหารจัดการเครือข่าย
    • ซอฟต์แวร์และบริการที่ใช้ในเครือข่าย
    • พฤติกรรมของผู้ใช้
  • ในกรณีของ domain controller เส้นทางการดูแลระบบที่อ่อนแอเพียงเส้นเดียวจะลดระดับความปลอดภัยของสินทรัพย์มูลค่าสูงทั้งหมด
    • Bob ดูแล domain controller จากเวิร์กสเตชัน
    • หากเวิร์กสเตชันนั้นไม่ได้รับการปกป้องเทียบเท่า domain controller ตัว domain controller เองก็อาจถูกเจาะได้
    • บัญชีอื่นที่มีสิทธิ์ผู้ดูแลระบบบนเวิร์กสเตชันของ Bob ก็สามารถเจาะ Bob และ domain controller ได้เช่นกัน
    • ผู้ดูแลเหล่านั้นล็อกออนเข้าเครื่องอื่นอย่างน้อยหนึ่งเครื่องตามหน้าที่งาน
    • หากผู้โจมตีเจาะเครื่องใดเครื่องหนึ่งในนั้นได้ ก็จะเกิดเส้นทางไปยัง domain controller

Six Degrees of Mallory: การเคลื่อนที่ด้านข้างตามกราฟ

  • ผู้โจมตีสามารถซุ่มรออยู่ในเครื่องที่เจาะได้ และใช้เครื่องมือ dump รหัสผ่านอย่าง mimikatz เพื่อรอการล็อกออนของบัญชีมูลค่าสูง
  • คลัสเตอร์ทางซ้ายของกราฟตัวอย่างคือ Terminal Server เครื่องเดียวที่มีผู้ใช้หลายร้อยคนใช้งาน
    • หากผู้โจมตีเจาะเครื่องนี้ได้ เมื่อเวลาผ่านไปก็จะสามารถ dump ข้อมูลรับรองของผู้ใช้จำนวนมากได้
  • การค้นหากราฟเผยให้เห็นหลายเส้นทางที่มุ่งไปยัง High Value Asset
    • การเจาะ Terminal Server ทำให้ User46 และ User128 ถูกเจาะได้ด้วย
    • User46 เป็นผู้ดูแลของ Machine2821 และ User128 เป็นผู้ดูแลของ Machine115
    • หากเจาะเวิร์กสเตชันเหล่านั้นได้ ก็จะเจาะ User1 และ User34 ได้
    • ทั้ง User1 และ User34 ต่างเป็นผู้ดูแลของ High Value Asset
  • เพื่อปกป้อง High Value Asset องค์ประกอบทั้งหมดที่สินทรัพย์นี้พึ่งพาต้องได้รับการปกป้องอย่างเข้มงวดเทียบเท่า High Value Asset และองค์ประกอบเหล่านี้รวมกันเป็น คลาสสมมูล หนึ่งเดียว

ความสัมพันธ์ที่สร้างการพึ่งพาด้านความปลอดภัย

  • ในเครือข่าย Windows เมื่อผู้ใช้ทำการล็อกออนบางแบบ เช่น Interactive หรือ Terminal Server หากโฮสต์ฐานถูกเจาะ ข้อมูลรับรองของผู้ใช้ก็จะเสี่ยงต่อการถูกขโมย
    • สิ่งที่เสี่ยงไม่ได้มีแค่ข้อมูลรับรอง แต่ยังรวมถึงสิ่งเทียบเท่า single sign-on อย่าง Kerberos TGT และ NTLM hash
  • การพึ่งพาด้านความปลอดภัยยังถูกสร้างขึ้นจากความสัมพันธ์ด้านการดูแลระบบในชีวิตประจำวันด้วย
    • บัญชีผู้ดูแลระบบภายในเครื่องที่ใช้รหัสผ่านร่วมกัน: หลังจาก dump รหัสผ่านผู้ดูแลระบบภายในเครื่องจากระบบหนึ่งแล้ว ก็สามารถนำไปใช้กับโฮสต์อื่นที่ใช้รหัสผ่านเดียวกันได้
    • ไฟล์เซิร์ฟเวอร์และเซิร์ฟเวอร์อัปเดตซอฟต์แวร์ที่เก็บสคริปต์ล็อกออนซึ่งถูกเรียกใช้กับผู้ใช้จำนวนมาก
    • พรินต์เซิร์ฟเวอร์ที่ส่งไดรเวอร์เครื่องพิมพ์ไปยังเครื่อง client เมื่อใช้งาน
    • ผู้ออกใบรับรองที่ออกใบรับรองซึ่งใช้ได้กับการล็อกออนด้วยสมาร์ตการ์ด
    • ผู้ดูแลฐานข้อมูลที่สามารถรันโค้ดในคอนเท็กซ์ของเซิร์ฟเวอร์ฐานข้อมูลซึ่งทำงานในฐานะผู้ใช้ที่มีสิทธิ์สูง
  • ความสัมพันธ์ทางอ้อมก็เป็นส่วนหนึ่งของกราฟด้วย
    • เมื่อเครื่องที่มีช่องโหว่ถูกเจาะ ผู้โจมตีสามารถสร้างเส้นเชื่อมใหม่ในกราฟได้
    • หากผู้ใช้มีบัญชีที่ใช้รหัสผ่านเดียวกันในสองโดเมนที่ไม่มีความสัมพันธ์ trust กัน ก็จะเกิดเส้นเชื่อมที่ซ่อนอยู่ระหว่างโดเมน

วิธีป้องกันโดยลดกราฟ

  • ขั้นแรกของผู้ป้องกันคือเปลี่ยนรายการสินทรัพย์ให้เป็น กราฟ เพื่อทำให้เครือข่ายมองเห็นได้ชัดเจน
  • จากนั้นต้องหาเส้นเชื่อมที่ไม่ต้องการซึ่งทำให้การเชื่อมต่อขยายตัวอย่างมาก แล้วตัดแต่งกราฟ
    • ใช้การแบ่งส่วนโครงสร้างพื้นฐานและไซโลข้อมูลรับรอง
    • ลดจำนวนผู้ดูแลระบบ และลดสิทธิ์ให้น้อยที่สุดด้วยเทคนิค Just-In-Time / Just Enough
    • ใช้การยืนยันตัวตนสองขั้นตอนเพื่อลดความเสี่ยงของการเคลื่อนที่ผ่านเส้นเชื่อมบางประเภท
    • ใช้วิธีหมุนเวียนข้อมูลรับรองที่แข็งแรงเพื่อเตรียมรับมือการถูกเจาะบัญชีผู้ใช้
    • ทบทวนความสัมพันธ์ forest trust

สร้างแบบจำลองความจริงที่ดีกว่าผู้โจมตี

  • ผู้ป้องกันไม่ควรยกความได้เปรียบให้ผู้โจมตีเมื่อทำให้สนามรบมองเห็นเป็นภาพ
  • ผู้ป้องกันสามารถมีข้อมูลครบถ้วนเกี่ยวกับเครือข่ายของตนเอง แต่ผู้โจมตีต้องเรียนรู้เครือข่ายทีละส่วน
  • ผู้โจมตีไม่ได้ศึกษาจาก mental model ที่ไม่ถูกต้อง, ระบบ inventory สินทรัพย์ที่ไม่สมบูรณ์, หรือไดอะแกรมเครือข่ายเก่า ๆ แต่ศึกษา โครงสร้างพื้นฐานที่มีอยู่ในปัจจุบัน
  • ผู้ป้องกันเองก็ต้องบริหารเครือข่ายโดยยึดความเป็นจริงเป็นหลัก จึงจะเข้าใกล้แนวคิดของผู้ป้องกันที่พร้อมรับมือ

อ่านเพิ่มเติม

1 ความคิดเห็น

 
GN⁺ 2024-08-26
ความคิดเห็นจาก Hacker News
  • โดยปกติผู้โจมตีมีภารกิจเดียว เช่น ขโมยข้อมูลสำคัญ ทำให้เป้าหมายไร้เสถียรภาพ หรือแรนซัมแวร์ และสามารถสำรวจเจาะลึกได้เท่าที่จำเป็นจนกว่าจะบรรลุภารกิจ
    ในทางกลับกัน ฝ่ายป้องกัน ต้องติดตามสัญญาณและเวกเตอร์ภัยคุกคามจำนวนมากพร้อมกัน จึงเลี่ยงไม่ได้ที่จะคิดเป็นรายการ และยังต้องจัดลำดับความสำคัญของสิ่งที่ต้องดำเนินการเพราะข้อกำหนดกำกับดูแลด้วย
    ถ้าไม่ใช่การวางฝ่ายป้องกันไว้ตามจุดต่าง ๆ ในกราฟแบบสุ่มเพื่อมองหากิจกรรมที่น่าสนใจ ก็ไม่แน่ใจว่าฝ่ายป้องกันจะ คิดเป็นกราฟ ได้อย่างไร สิ่งที่ผู้เขียนเสนอก็สุดท้ายเป็นเพียงสัญญาณในรายการที่ฝ่ายป้องกันต้องนำไปเทียบตรวจอยู่ดี

    • ไม่เห็นด้วยกับเรื่องนี้ จากประสบการณ์ของผม Red Team ใช้ เทคนิคกราฟ ซ้ำ ๆ เพื่อวาดเส้นทางไปยังสินทรัพย์มูลค่าสูง และฝ่ายป้องกันไม่เคยนึกถึงแนวทางแบบนั้นเลย
      เมื่อฝ่ายป้องกันนำวิธีนั้นมาใช้ ก็สามารถระบุการโจมตีที่อาจเกิดขึ้นได้ก่อนที่ Red Team จะลงมือ ทีมที่ฉลาดจะนำเทคนิคของ Red Team เช่นการครอว์ล AWS เป็นกราฟเพื่อหาเส้นทางจากบัญชีมูลค่าต่ำไปยังบัญชีมูลค่าสูง มาใช้ทันที
      นี่ไม่ใช่ประเด็นแบบ zero-sum หรือการเปลี่ยนแปลงครั้งใหญ่ แต่ฝ่ายป้องกันก็สามารถคิดให้เหมือนผู้โจมตีมากขึ้น และนำเครื่องมือของผู้โจมตีมาใช้ในการป้องกันบ่อยขึ้นได้
    • ถ้ายกการปกป้องรถยนต์เป็นตัวอย่าง การโจมตีซอฟต์แวร์รถยนต์มีนับไม่ถ้วน แต่เป้าหมายที่พบบ่อยที่สุดของผู้โจมตีคือ การขโมยรถ
      ดังนั้นจึงต้องปกป้องเส้นทางที่นำไปสู่เป้าหมายนั้น ไม่ว่าเส้นทางนั้นจะมีหน้าตาอย่างไร หรือจำกัดอยู่แค่ซอฟต์แวร์หรือไม่ก็ตาม
      ผู้โจมตีอาจใช้ช่องโหว่ CVE ทำให้ระบบความบันเทิงอยู่ในภาวะปฏิเสธการให้บริการได้ แต่ก็เป็นคำถามว่าในทางปฏิบัติเรื่องแบบนั้นสำคัญแค่ไหน
    • “ผู้โจมตีมักมีภารกิจเดียว” เป็นความเข้าใจผิดที่พบบ่อย
      การโจมตีจริงส่วนใหญ่ใกล้เคียงกับ “ลองเดินดูว่าหาอะไรได้บ้าง แล้วค่อยว่ากันว่าจะเอาไปใช้อย่างไร” มากกว่า กิจกรรมโจมตีจำนวนมาก เช่น การรวบรวมข่าวกรอง ปฏิบัติการสร้างอิทธิพล และโฆษณาชวนเชื่อ ก็เป็นแบบเดียวกัน
  • เหตุผลที่ฝ่ายป้องกันใช้รายการก็เพราะต้องจัดการสินทรัพย์หลายร้อยหลายพันรายการพร้อมกัน เมื่อมีสิ่งที่ต้องจัดการจำนวนมาก คุณก็จะทำรายการ ไล่ตรวจรายการนั้น และใช้ เช็กลิสต์
    แน่นอนว่าฝ่ายป้องกันก็ควรสร้างกราฟ dependency ด้วย แต่ก่อนอื่นต้องทำรายการก่อน ตรวจว่ารายการนั้นอัปเดตหรือไม่ สมมติฐานเป็นแบบความไว้วางใจแบบจำกัดหรือไม่ และทรัพยากรถูกแยกกั้นหรือไม่ จากนั้นจึงสร้างกราฟ dependency
    ฝ่ายป้องกันต้องคิดทั้งรายการและกราฟ พร้อมกับจัดการรายการจำนวนมหาศาล ส่วนผู้โจมตีต้องมองเพียงไม่กี่อย่าง

    • พูดอีกอย่างคือ การทำกราฟ ของสินทรัพย์ควรเป็นส่วนหนึ่งของเช็กลิสต์
    • ในสถานการณ์นี้เท่ากับกำลังบอกว่ารายการคือฐานของกราฟ ซึ่งในตัวมันเองก็เป็นประเด็นหลักของผู้เขียน และเป็นความแตกต่างที่ละเอียดแต่สำคัญในวิธีที่ฝ่ายป้องกันเข้าหาปัญหา
      หากไม่มีอินไซต์ที่จะเปลี่ยนรายการให้เป็นกราฟ สุดท้ายก็จะถือแค่รายการ สินทรัพย์หลัก แล้วไล่อุดเส้นทางการเข้าถึงนับหมื่นแบบที่ตัวเองไม่ได้นึกถึงแบบตีตัวตุ่น
    • สุดท้ายก็คือความต่างระหว่าง ความกว้างกับความลึก
  • บทความนี้รู้สึกว่าลงลึกเกินไป หรือไม่ก็อาจให้เหตุผลถูกแต่สาเหตุผิด งานของฝ่ายป้องกันไม่ใช่การป้องกันโดยตัวมันเอง
    ความปลอดภัยไซเบอร์ไม่ใช่การแข่งขันกีฬาที่มีเป้าหมายชัดเจนและเท่าเทียมกัน พร้อมตำแหน่งที่ผลัดกันรับ แต่เป็น อีเวนต์ข้างเคียง และสิ่งรบกวนถัดจากธุรกิจอื่นที่ฝ่ายป้องกันพยายามทำเป็นงานหลักมากกว่า
    ในทางกลับกัน งานทั้งหมดของผู้โจมตีคือการโจมตีระบบ ไม่มีเป้าหมายอื่น เจ้าของรอง หรือข้อพิจารณาอื่นที่จะทำให้การโจมตีอ่อนลง
    เหตุผลที่ผู้โจมตีชนะก็เหมือนเหตุผลที่ Microsoft ออกระบบปฏิบัติการได้ดีกว่า Cisco สำหรับ Cisco ระบบปฏิบัติการเป็นเครื่องมือ แต่สำหรับ Microsoft มันคือเป้าหมาย

    • การวางกรอบว่าความปลอดภัยไซเบอร์เป็นอีเวนต์ข้างเคียงข้างงานหลักนั้นยอดเยี่ยม
      ยังช่วยอธิบายได้ด้วยว่าทำไมบริษัทแทบไม่ถูกตลาดลงโทษจาก ข้อมูลรั่วไหล
    • ผมมองว่าปัญหาหลักคือองค์กรส่วนใหญ่เอาความปลอดภัยไปไว้ ท้ายสุดของรายการงบประมาณ
    • ถ้ามองว่า ฝ่ายป้องกันเป็น ศูนย์ต้นทุน และผู้โจมตีเป็น ศูนย์กำไร ประเด็นก็ชัดขึ้น
    • “งานทั้งหมดของผู้โจมตีคือการโจมตีระบบ และไม่มีเป้าหมายอื่น” ดูเป็นความเข้าใจผิดที่ค่อนข้างร้ายแรง
      การโจมตีไซเบอร์มีเป้าหมายชัดเจน เช่น การขโมยข้อมูล การขัดขวางบริการ มุมมองนี้อาจใช้ได้กับผู้กระทำที่ยังไม่เชี่ยวชาญซึ่งแค่อยากทำลายและสร้างความปั่นป่วน แต่ถ้าพิจารณา ผู้กระทำระดับรัฐ หรืออาชญากรที่มีแรงจูงใจทางการเงิน ก็ผิดทางไปโดยสิ้นเชิง
    • ถูกต้องเลย ยังมี ความไม่สมมาตร พื้นฐานด้วย ฝ่ายป้องกันต้องทำให้ถูกทุกอย่าง แต่ผู้โจมตีต้องหาแค่ช่องโหว่เดียว ส่วนใหญ่เป็นช่องโหว่ที่อิงพฤติกรรมมนุษย์
  • บทความนี้กลับรู้สึกว่ายังลงลึกไม่พอด้วยซ้ำ :-)
    “รายการ” คือการแทนองค์ประกอบแบบย่อ ส่วน “กราฟ” คือการแทนการทำงานร่วมกันแบบย่อ มุมมองแบบองค์ประกอบคือการวิเคราะห์ ส่วนมุมมองแบบปฏิสัมพันธ์ยังไม่มีคำที่ดีนัก แต่ตามที่บทความว่าไว้ มักกลายเป็น attack surface
    ระบบปรับตัวซับซ้อนมีองค์ประกอบและ message bus และประเด็นสำคัญคือ bus นี้เปิดทางให้องค์ประกอบต่าง ๆ ทำงานร่วมกันได้ คุณอาจจับมดทีละตัวได้ แต่ถ้าจะหยุดจริง ๆ ต้องกำจัดความสามารถในการทิ้ง ร่องรอยฟีโรโมน
    คงดีถ้ามีคำอย่าง “การวิเคราะห์” สำหรับการทำความเข้าใจวิธีการทำงานร่วมกันด้วย อย่าง Gestaltysis ไหม?

  • ผมเคยทำงานช่วงสั้น ๆ ที่ บริษัทไซเบอร์ซีเคียวริตี้ แห่งหนึ่ง แต่ตอนนั้นอธิบายเป็นคำพูดไม่ได้ว่าทำไมถึงไม่ชอบผลิตภัณฑ์นั้น และทำไมแนวทางของบริษัทนั้นรวมถึงของอุตสาหกรรมส่วนใหญ่จึงให้ความรู้สึกเหมือนเป็นของปลอมในท้ายที่สุด
    ตอนนี้เข้าใจแล้ว เรากำลังสร้างเครื่องมือที่สนับสนุนแนวปฏิบัติที่ไร้ประโยชน์ที่สุดในไซเบอร์ซีเคียวริตี้ นั่นคือ เช็กลิสต์ ระดับองค์กร

    • ถึงอย่างนั้น ถ้าทำเช็กลิสต์ไม่ได้ ก็ทำอย่างอื่นไม่ได้เหมือนกัน
      แกนกลางของทุกกิจกรรมคือรายการและตารางการทำซ้ำ ต้องโผล่มาเป็นประจำและทำสิ่งที่ต้องทำ
      แน่นอนว่าผมเห็นด้วยว่าในขั้น “สิ่งที่ต้องทำ” นั้นจำเป็นต้องมีแนวทางที่ลึกและดีกว่านี้
    • นั่นแทบจะเป็นทั้งอุตสาหกรรมไซเบอร์ซีเคียวริตี้เลย บริษัทต่าง ๆ ใช้เครื่องมือพวกนี้เหมือนเป็น ประตูกันระเบิด เอาไว้โยนความผิดเมื่อเกิดเหตุ
      เพื่อจะพูดว่า “เราทำตามเช็กลิสต์ทุกข้อแล้ว และซอฟต์แวร์รักษาความปลอดภัยก็จับไม่ได้ ดังนั้นไม่ใช่ความผิดของเรา”
      ถ้าบริษัทใส่ใจเรื่องความปลอดภัยจริง ๆ ก็คงจ้างเรดทีม แทนที่จะจ่ายเงินให้สแกนเนอร์ไร้ประโยชน์ที่มีอัตราสัญญาณต่อสัญญาณรบกวนต่ำกว่า 1%
    • อาจขึ้นอยู่กับว่าเช็กลิสต์นั้นมีอยู่เพื่ออะไร มันจำลองสิ่งที่ต้องทำได้แม่นยำแค่ไหน และทำตามอย่างเคร่งครัดเพียงใด
      ดูวงการการบิน นักบินพึ่งพาเช็กลิสต์เพื่อเอาชีวิตรอด ไม่มีอะไรรับประกันได้ว่าปัญหาจะไม่เกิดขึ้นระหว่างบิน แต่การไม่ทำตามเช็กลิสต์หรือทำแบบไม่ใส่ใจคือการเชื้อเชิญหายนะ เช็กลิสต์แบบนั้นถูกสร้างขึ้นบนประสบการณ์ราคาแพงยาวนานหลายปี
      แต่เช็กลิสต์ที่มีอยู่เพียงเพื่อให้พูดได้ว่า “เรามีเช็กลิสต์” หรือไม่ได้ถูกทบทวนและปรับปรุงเป็นประจำให้เข้ากับสภาพจริง ก็ไม่มีความหมาย
    • ถ้าพูดให้ละเอียดขึ้น operational security สามารถทำให้ posture ด้านความปลอดภัยแข็งแกร่งขึ้นได้ แต่เคล็ดลับจริง ๆ ของไซเบอร์ซีเคียวริตี้ไม่ใช่แค่การนำมาตรการเข้ามาใช้ แต่คือการรักษามันไว้เมื่อเวลาผ่านไป และตรงนั้นเองที่ต้องใช้เช็กลิสต์
      หลายบริษัทเข้าใจเรื่องนี้ผิด คิดว่าเช็กลิสต์เองคือความปลอดภัย แต่จริง ๆ แล้วเช็กลิสต์เป็นเพียงเครื่องมือเตือนให้รักษาสิ่งที่เคยทำถูกต้องไว้ต่อไปเท่านั้น เมื่อไหร่ที่ปฏิบัติกับเช็กลิสต์เหมือนเป็นเป้าหมาย เมื่อนั้นก็หลุดทางแล้ว
  • ในฐานะ penetration tester ผมว่า attacker ก็ไม่ได้จำเป็นต้อง คิดเป็นกราฟ เสมอไป
    นอกจาก BloodHound แล้ว ผมนึกเครื่องมือที่ใช้กราฟไม่ค่อยออก
    ในเว็บซีเคียวริตี้ก็ไม่เห็นภาพว่า “การคิดเป็นกราฟ” ถูกนำมาใช้ตรงไหน แทนที่จะเป็นแบบนั้น รายการการโจมตีที่ต้องทดสอบกลับใหญ่มาก: https://portswigger.net/web-security/all-topics
    และสุดท้ายสิ่งที่อยู่ในรายงาน penetration test ก็ไม่ใช่กราฟ แต่เป็นรายการสิ่งที่ต้องทำ เช่น การเปิดใช้ SMB signing, อย่าใช้บัญชี domain admin เพื่อจัดการทุกเครื่อง และอื่น ๆ
    เหตุผลหลักที่วลีนี้ได้รับความนิยมคือมันไปสะกิดอัตตาของชุมชนแฮ็กเกอร์ ประมาณว่า “พวกเราเป็นฝ่ายฉลาด ส่วน defender เอาแต่แตะ Excel sheet”
    แต่ก็มีเศษเสี้ยวของความจริงอยู่ Defender อาจใช้เวลามากกับเรื่องที่ไม่สำคัญเท่าไร เช่น มัวแต่ใช้ CIS benchmark กับทุกเซิร์ฟเวอร์ด้วยมือ จนพลาด ผลไม้ที่ห้อยต่ำ ซึ่งจะสร้าง posture ด้านความปลอดภัยที่แข็งแกร่งได้
    ในหลายบริษัท defender ก็เป็นเพียง system administrator ที่ไม่รู้ว่าควรโฟกัสเรื่องอะไร

    • เข้าใจประเด็นนะ แต่ผมคิดว่า penetration tester ก็สามารถคิดเป็นกราฟได้มากพอ รวมถึงในเว็บซีเคียวริตี้ด้วย
      ตัวอย่างที่นึกออกทันทีคือ bug chain การเอาช่องโหว่ระดับ CVSS 4~7 หลายตัวมาผูกกัน อาจเปลี่ยนเป็นผลลัพธ์ระดับ 9.8 อย่างการรันโค้ดจากระยะไกลอย่างสมบูรณ์ได้ การเชื่อมบั๊กแบบนี้โดยเนื้อแท้คือการเดินกราฟผ่านองค์ประกอบของการเจาะระบบ
      BloodHound เป็นเครื่องมือที่ยอดเยี่ยม และเป็นเครื่องมือภาพที่ดีสำหรับทำความเข้าใจแนวคิด attack graph แต่มันก็เป็นเพียงส่วนหนึ่งของกระบวนการทำความเข้าใจโดเมนเป้าหมายจากมุมมองของ attacker
      เหตุผลที่เว็บ penetration test ไม่มีเครื่องมือเรียบร้อยแบบ BloodHound ก็เพราะ chain ของการเจาะระบบย่อให้เหลือเป็นรูปแบบเครื่องมือได้ยาก AD มีขอบเขตความปลอดภัยที่เข้าใจและเข้ารหัสเป็นรูปธรรมได้ในระดับหนึ่ง แต่ chain ของเว็บแอปมักเฉพาะเจาะจงกับแอปพลิเคชันนั้น ๆ มากกว่ากรอบงานพื้นฐาน
      การที่รายงาน penetration test มีรายการอย่าง SMB signing หรือ “อย่าจัดการทุกอย่างด้วยบัญชี DA” ก็เพราะสิ่งเหล่านั้นเป็น node ที่สว่างวาบมากในช่วงต้นของ chain การเจาะระบบ ในโลกจริงก็มักถูกเจาะด้วยรูปแบบนั้นบ่อย ๆ
      ไม่ใช่ว่า penetration tester ไม่เข้าใจการคิดเป็นกราฟ แต่ใกล้เคียงกับกรณีที่ node แรกของกราฟแทบจะหมายถึงการถูกเจาะอย่างสมบูรณ์แล้ว จึงไม่มีเหตุผลต้องเดินต่อมากกว่า
  • นี่ใกล้เคียงกับการนำคำพูดที่ว่า defender ต้องป้องกันทุกจุดเข้า ในขณะที่ attacker แค่หา จุดอ่อนเดียว ก็พอ มาแต่งให้ดูเท่ขึ้น

    • อย่างสุภาษิตที่ว่า การป้องกันที่ดีที่สุดคือการโจมตีที่ดี Microsoft และ Google ก็มีโปรเจกต์ด้านความปลอดภัยที่ขัดขวางกลุ่มแฮ็กที่มีการจัดตั้ง แต่บางทีอาจต้องไปไกลกว่านั้น
      ตัวอย่างเช่น อาจใช้ honeypot เพื่อป้อน zero-day exploit กลับเข้าไปยังอุปกรณ์ของ attacker ได้หรือไม่ อาจเป็นสิ่งที่ถูกออกแบบไว้โดยตั้งใจในผลิตภัณฑ์ของ Google, Microsoft ฯลฯ ก็ได้
      คือไปให้สุดแบบ blackhat โดยยังมี plausible deniability บางอย่าง เช่น ป้อน ransomware กลับให้ attacker ที่ใช้ ransomware
      เขียนไปเขียนมาดูเหมือนบริษัทผู้ทรงอำนาจชั่วร้ายใน SF ซึ่งบริษัทแบบนั้นมักถึงขั้นลอบสังหารศัตรูด้วย
    • พูดอีกอย่างคือ ความไม่สมมาตรของการป้องกัน
  • ผมเคยทำ incident response และมีประสบการณ์ทั้ง penetration test กับ red team แม้จะเป็นการพูดแบบย่อ ๆ แต่ก็ถูกในระดับหนึ่ง และไม่จำเป็นต้องมองในแง่ลบเท่าที่บทความพูด
    การป้องกันประกอบด้วยหลายองค์ประกอบ เช่น การพัฒนา control ที่มีประสิทธิภาพเพื่อลดความเสี่ยงและผลกระทบของเหตุการณ์ความปลอดภัย การระบุการโจมตีและการเจาะระบบ และการตอบสนองต่อเหตุการณ์ รายการมาตรฐานและการตอบสนองทำงานได้ดี
    การป้องกันยังรวมถึง การตัดสินใจด้านสถาปัตยกรรม ที่ต้องคิดถึงกราฟเครือข่ายเพื่อออกแบบ control เหล่านี้ด้วย สาขาการป้องกันเองก็หลากหลาย เช่น สถาปัตยกรรม/วิศวกรรม การบริหารความเสี่ยง incident response, application security, การฝึกอบรม, threat intelligence เป็นต้น
    สิ่งที่น่าสนใจคือผู้เขียนบอกเป็นนัยว่าปัญหาคือ defender คิดเป็นรายการ แล้วหลังจากนั้นก็นำเสนอรายการของสิ่งที่ควรพิจารณาเพื่อปรับปรุงการป้องกัน

  • เหตุผลที่ attacker ชนะคือหลังจากหาจุดอ่อนได้แล้ว เขาต้องสำเร็จแค่ครั้งเดียว Defender ต้องป้องกัน ทุกอย่างพร้อมกัน

  • ดูเหมือนว่าแต่ละเครือข่ายควรมี honeypot อย่างน้อยหนึ่งตัวเพื่อจับผู้บุกรุก เช่น credential คริปโตปลอม, ที่เก็บรหัสผ่านปลอม เป็นต้น