Certificate Transparency Monitoring ตรวจ SSL บนโดเมน

ตั้งแต่ปี 2018 ทุก Certificate Authority ต้องส่งใบรับรอง SSL ที่ออกให้ไปลงในระบบ Certificate Transparency logs ซึ่งเป็นฐานข้อมูลสาธารณะและเปิดใจเพื่อความโปร่งใจด้านความปลอดภัย แต่ความโปร่งใจนี้ก็มีด้านลบด้วย — ผู้ไม่หวังดีสามารถใช้ข้อมูลเดียวกันนี้เพื่อค้นหา subdomains ของเว็บไซต์และวางแผนการโจมตี บทความนี้จะสอนคุณวิธีตรวจ CT logs เพื่อป้องกันตัวเองจากการออกใบรับรอง SSL ที่เท็จ และวิธีตั้งค่าการแจ้งเตือนอัตโนมัติ

Certificate Transparency คืออะไร

Certificate Transparency (CT) เป็นมาตรฐาน PKI ที่กำหนดให้ทุก Certificate Authority ต้องบันทึกใบรับรองดิจิทัลที่ออกให้ไปในที่เก็บข้อมูล CT log ซึ่งเป็นแบบสาธารณะและ append-only (เพิ่มได้ แต่ลบไม่ได้) Google ได้หลับอย่างแน่นอนว่า Chrome browser จะยอมรับใบรับรองจาก CA ใหม่เท่านั้นหากสามารถพิสูจน์ได้ว่าลงไว้ใน CT logs อย่างน้อยสองตำแหน่ง วิธีนี้ป้องกันการออกใบรับรองเท็จจากการโจมตี CA ที่ไม่อาจใช้กันแบบเงียบๆ

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

ทำไม CT Monitoring มีความสำคัญ

ส่วนใหญ่ผู้ดูแลเว็บไซต์เพิ่งเรียนรู้เมื่อมีใบรับรอง SSL ใหม่ที่ถูกออกให้ โดยสูง ของ HTTPS connection ที่ใช้ใบรับรองเท็จ หรือเมื่อลูกค้ารายงานว่าเห็นคำเตือน "SSL Error" บนเบราว์เซอร์ ทำให้ล่าช้ากว่าที่ควรจะเป็น CT monitoring ให้คุณรู้ได้ทันทีว่ามีใบรับรองใหม่ที่ออกให้ เพื่อคุณตัดสินใจได้ว่า CT นั้นชอบธรรมหรือไม่

ตัวอย่างเช่น ถ้า CA บุกรุก และออกใบรับรองสำหรับ `mail.example.com` โดยไม่ได้รับอนุญาต โดยปกติคุณจะไม่สังเกตเห็นจนกว่าจะมีผู้คนพยายามใช้ใบรับรองนั้นสำหรับ man-in-the-middle attack ด้วย CT monitoring คุณสามารถรู้ได้ภายในชั่วโมงหลังจากการออกใบรับรอง ให้เพียงพอสำหรับการรับมือก่อนจะเกิดอันตราย

วิธีตรวจ CT Logs ด้วย crt.sh

วิธีที่ง่ายและเร็วที่สุดในการค้นหา CT logs คือการใช้เว็บไซต์ crt.sh ซึ่งเป็นบริการเสรีที่จัดทำโดย Sectigo — ขั้นตอนต่อไปนี้:

  1. ไปยัง crt.sh — เปิดเบราว์เซอร์ไปที่ https://crt.sh
  2. ค้นหาโดเมน — พิมพ์ชื่อโดเมนของคุณในกล่องค้นหา (เช่น example.com)
  3. ดูผลลัพธ์ — ระบบจะแสดงรายการใบรับรองทั้งหมดที่ออกไปแล้ว พร้อมวันที่ CA และ Subject Alternative Names (SANs) ที่อยู่ด้วย
  4. ค้นหา wildcards — หากต้องการค้นหา subdomains ทั้งหมด ให้ค้นหา `%.example.com` (เครื่องหมาย % คือ wildcard เช่น * ในสไตล์ regex)

หากคุณเห็นใบรับรองที่ไม่รู้จักหรือคิดไม่ถึง นั่นอาจเป็นสัญญาณว่า CA ถูกบุกรุก หรือมีการสมัครใจจากเจ้าของโดเมน (เช่นโดยบุคลากรที่ไม่ได้รับอนุญาต) — ดำเนินการทันทีเพื่อเพิกถอนใบรับรองนั้นจาก CA

Google Certificate Transparency Search

Google ยังสำเร็จด้วยตัวเอง Google Certificate Transparency Search (https://transparencyreport.google.com/https/certificates) — บริการนี้ใช้ค่าใจเหมือนกับ crt.sh แต่ดีไซน์โดย Google สำหรับความสะดวกในการใช้งาน คุณเพียงแค่ป้อนโดเมนแล้วจะได้รายการตาม timeline ที่ชัดเจน รวมถึงรายละเอียดของแต่ละใบรับรอง

Google's tool ยังแสดงการอพเดตไซด์-จริง เช่นเมื่อใบรับรองหมดอายุ หรือเมื่อมีการเพิ่มเติม SANs ใหม่ เป็นประโยชน์มากสำหรับผู้ที่ต้องการติดตามการเปลี่ยนแปลง SSL ในระยะยาว

การตั้งค่า CT Monitoring อัตโนมัติ

การตรวจหา CT logs ด้วยมือเป็นประจำนั้นน่าเบื่อ หลายเครื่องมือช่วยให้คุณตั้งค่าการแจ้งเตือนอัตโนมัติได้:

ข้อสังเกต: Subdomain Exposure Risk

ในขณะที่ CT logs เป็นเครื่องมือความปลอดภัยที่ยอดเยี่ยม มีข้อเสียประการหนึ่ง — มันเปิดเผยโครงสร้าง DNS ของคุณแก่โลก ใบรับรอง SSL ต้องระบุชื่อ domain และ subdomain ทั้งหมดที่คุณต้องการให้ครอบคลุม ดังนั้นสามารถเห็นรายชื่อ subdomains ได้จากการค้นหา CT logs

ตัวอย่าง — ถ้าคุณมี subdomains ซ่อนเช่น `internal-api.example.com` หรือ `test-db.example.com` และติดไว้ในใบรับรอง wildcard ผู้บุกรุกสามารถเห็นได้จาก CT logs และพยายามค้นหาช่องโหว่บน subdomains นั้น วิธีลดความเสี่ยงนี้คือ ใช้ใบรับรองแยกต่างหาก แต่เฉพาะ subdomains ที่ต้อง HTTPS จริง ห้ามใส่ subdomains ขนาดเล็กหรือชั่วคราวเข้าไป

ที่ AsiaGB เรามี SSL certificate ราคาประหยัด ราคา 1,000 บาท/ปี สำหรับ DV certificate ขั้นพื้นฐาน หรือ 5,000 บาท/ปี สำหรับ Wildcard SSL หากคุณต้องการ subdomains หลายตัว คุณสามารถเลือก Wildcard ที่ครอบคลุมทั้งตา *.example.com ได้ พร้อมกับ CT monitoring เพื่อป้องกันการออกใบรับรองเท็จ

Best Practices สำหรับ CT Monitoring

ต่อไปนี้คือหลักปฏิบัติที่ดีสำหรับการตรวจ CT logs อย่างมีประสิทธิภาพ:

เคล็ดลับ: ตั้งค่าการแจ้งเตือน CT ให้ส่งไปยังทีมที่รับผิดชอบ SSL certificates ไม่ใช่ไปยังกล่องจดหมายทั่วไป — อย่างนั้นคนสำคัญจะพลาด alerts ที่สำคัญได้

CT Logs ที่น่าไว้วาง

ปัจจุบันมี CT logs หลายตัวที่ Google และองค์กรอื่นจัดการ เช่น:

ระบบ CT บัญชีหรือ log หลาย ๆ อันเพื่อให้มีความสมดุลเหมือนโปรตีนใน blockchain Chrome และเบราว์เซอร์อื่นจะตรวจสอบว่าใบรับรองมีอยู่ในการเซ็นชื่อ (SCT) จาก logs นั้นจำนวนพอคณ ปัจจุบันจำเป็นต้อง SCT อย่างน้อย 2 แห่ง

การแลกเปลี่ยนระหว่างความเสี่ยงและประโยชน์

ไม่มีระบบความปลอดภัยที่สมบูรณ์แบบ CT logs ให้ประโยชน์การ detect การออกใบรับรองเท็จทันทีแต่ยังเปิดเผยข้อมูลที่ผู้บุกรุกสามารถใช้สำหรับ reconnaissance การตัดสินใจ CT monitoring ควรเป็นส่วนหนึ่งของกลยุทธ์ความปลอดภัยที่กว้างขึ้น รวมถึง:

โดยรวมแล้ว Certificate Transparency เป็นการพัฒนาความปลอดภัยขั้นใหญ่ที่ประเทศ web ecosystem CT monitoring คือส่วนหนึ่งของการปกป้องโดเมนของคุณในโลกดิจิทัลที่มีการภัยคุกคามจำนวนมาก

ที่ AsiaGB: ทีมซัพพอร์ตของเรา (email: [email protected] หรือ ticket: billing.in.th/submitticket.php) พร้อมช่วยเหลือด้านความปลอดภัย SSL รวมถึงการตั้งค่า monitoring และการตอบโต้เร็วหากพบความผิดปกติใน CT logs

คำถามที่พบบ่อย (FAQ)

Certificate Transparency log จำเป็นต้องเป็นสาธารณะหรือไม่

ใช่ ทั้งหมด CT logs ต้องเป็นสาธารณะและเปิดใจเสมอ ตามข้อกำหนด RFC 6962 นี่คือหลักการหลักของ CT — ความโปร่งใจและความสามารถในการเข้าถึงข้อมูลของบุคคลทั่วไป เพื่อป้องกันการออกใบรับรองเท็จจากการทำงานเงียบๆ

ฉันต้องตรวจ CT logs บ่อยแค่ไหน

ขึ้นอยู่กับไซท์ของคุณ แต่หลายครั้งต่อวัน วิธีที่ดีที่สุดคือตั้งค่าการแจ้งเตือนอัตโนมัติ เพื่อให้คุณไม่ต้องตรวจด้วยมือเอง หากคุณไม่มีการแจ้งเตือนใหม่เกินกว่า 1-2 ครั้งต่อเดือน ข้อมูลนั้นไม่หมายถึงว่าไซท์ของคุณปลอดภัย — อาจหมายถึงว่าคุณไม่ได้ออกใบรับรองใหม่เท่านั้น

ใบรับรอง Wildcard SSL เปิดเผยโครงสร้างทั้งหมดของฉันหรือไม่

ไม่ completely — Wildcard SSL (เช่น *.example.com) ครอบคลุมเท่านั้นในแนวสกีมา first-level subdomains ต่อไปนี้ (เช่น a.example.com, b.example.com) แต่ไม่ครอบคลุม multi-level subdomains (เช่น a.b.example.com) อย่างไรก็ตาม ชื่อเดียวกัน *.example.com ที่ปรากฏใน CT logs บอกให้ผู้ โจมตีทราบว่าคุณกำลังใช้ Wildcard certificate

มีวิธีหลีกเลี่ยงการเปิดเผยโดเมน subdomains ได้หรือไม่

ไม่ได้ — ถ้าคุณต้องการ HTTPS บน subdomains นั้น ช่อ CT logs จะเห็นได้อย่างแน่นอน วิธีที่ดีที่สุดคือเก็บ sensitive internal subdomains ออกจากใบรับรอง SSL และใช้ private DNS หรือ VPN แทน