ที่มา: GitHub Changelog
หมวด: เครื่องมือนักพัฒนา
GitHub เพิ่มกฎใหม่ใน ruleset ของ repository ที่บล็อกไม่ให้รวม pull request ได้ ถ้าการสแกนความลับพบว่ามีคีย์หรือรหัสผ่านหลุดเข้ามาจากคอมมิตใน pull request นั้นและยังไม่ถูกแก้ กฎนี้เพิ่มการป้องกันอีกชั้นที่ระดับ pull request เพื่อดักกรณีที่ push protection จับไม่ได้หรือไม่ได้ตั้งค่าให้จับ ขณะนี้อยู่ในสถานะ public preview สำหรับลูกค้าที่ใช้ GitHub Secret Protection หรือ GitHub Advanced Security
การเผลอคอมมิตคีย์ API รหัสผ่านฐานข้อมูล หรือโทเคนเข้าไปในโค้ดเป็นความผิดพลาดที่พบบ่อยที่สุดอย่างหนึ่ง และอันตรายเพราะเมื่อความลับเข้าไปอยู่ในประวัติของ repository แล้ว การลบคอมมิตทีหลังไม่ได้ทำให้ปลอดภัยขึ้น สิ่งที่ต้องทำคือเพิกถอนความลับนั้นและออกใหม่ ซึ่งมีต้นทุนและมักถูกละเลย
GitHub มีกลไก push protection ที่หยุดความลับตั้งแต่ตอน push อยู่แล้ว แต่กลไกนั้นไม่ได้ครอบคลุมทุกกรณี เช่น รูปแบบความลับที่ไม่ได้เปิดให้ตรวจ หรือกรณีที่ผู้ใช้ข้ามการป้องกันไปแล้ว กฎใหม่จึงทำงานที่ชั้น pull request แทน โดยตรวจสองอย่างก่อนอนุญาตให้รวมโค้ด อย่างแรกคือการสแกนความลับสำหรับคอมมิตล่าสุดต้องเสร็จแล้ว อย่างที่สองคือต้องไม่มีการแจ้งเตือนค้างอยู่สำหรับความลับที่ถูกเพิ่มเข้ามาโดยคอมมิตของ pull request นั้น
การเปิดใช้ทำผ่านหน้า Repository แล้วไปที่ Rulesets สร้างหรือแก้ ruleset สำหรับสาขาที่ต้องการ แล้วเลือกตัวเลือกชื่อ Require secret scanning alerts are resolved โดยตั้งค่าผ่าน REST API ด้วยพารามิเตอร์ require_secret_scanning_alert_resolution หรือผ่าน GraphQL ด้วยค่า REQUIRE_SECRET_SCANNING_ALERT_RESOLUTION ก็ได้ ค่าเริ่มต้นจะบล็อกเฉพาะความลับที่ตรวจพบจากรูปแบบของผู้ให้บริการ แต่ตั้งให้ครอบคลุมรูปแบบที่กำหนดเองหรือรูปแบบทั่วไปเพิ่มได้
เมื่อกฎทำงาน นักพัฒนาที่ไม่มีสิทธิ์ข้ามกฎจะต้องแก้การแจ้งเตือนความลับแต่ละรายการให้เรียบร้อยก่อน จึงจะรวมโค้ดได้ ซึ่งเปลี่ยนพฤติกรรมจากการเตือนที่ข้ามได้ ไปเป็นเงื่อนไขที่ต้องผ่านจริง จุดนี้สำคัญเพราะการแจ้งเตือนที่ข้ามได้มักถูกข้ามเมื่อทีมเร่งปิดงาน
ข้อจำกัดที่ควรรู้คือฟีเจอร์นี้เปิดให้เฉพาะลูกค้าที่ใช้ GitHub Secret Protection หรือ GitHub Advanced Security และยังอยู่ในสถานะ public preview ทีมที่ใช้แผนทั่วไปจึงยังต้องอาศัย push protection ร่วมกับการตรวจในขั้นตอน CI ของตัวเอง
สำหรับทีมพัฒนาในไทย บทเรียนที่นำไปใช้ได้ทันทีโดยไม่ต้องรอฟีเจอร์นี้คือการทำให้การตรวจความลับเป็นเงื่อนไขที่บล็อกการรวมโค้ดจริง ไม่ใช่แค่คำเตือน และวางขั้นตอนไว้ล่วงหน้าว่าเมื่อพบความลับหลุดต้องเพิกถอนและออกใหม่ทันที ไม่ใช่แค่ลบออกจากไฟล์ ทีมงาน Smart Cyber Tech รับวางระบบ DevOps และ CI/CD รวมถึงติดตั้งการตรวจความลับและการสแกนโค้ดใน pipeline ให้เป็นมาตรฐานของทีม ปรึกษาได้ที่ แบบฟอร์มติดต่อ
แหล่งข่าวเรียบเรียงจาก GitHub Changelog —
อ่านต้นฉบับภาพปก: GitHub Changelog · ลิขสิทธิ์ภาพเป็นของเจ้าของต้นฉบับ ใช้ประกอบการรายงานพร้อมอ้างอิงแหล่งที่มา
เนื้อหาบนหน้านี้เป็นการสรุปและเรียบเรียงเพื่อผู้อ่านชาวไทย หากพบข้อผิดพลาดโปรดแจ้งที่
info@smart-cyber-tech.com
บริการที่เกี่ยวข้องจากทีมงาน Smart Cyber Tech
แบ่งปันข่าวนี้:
LINE
Facebook
X
ปรึกษาทีมของเรา