จะเกิดอะไรขึ้นเมื่ออัปโหลด Secret Key ขึ้นไปยัง Repo แบบสาธารณะ
(threadreaderapp.com)สรุปผลจากการทดลองจริงกับ GitHub และ GitLab เรียงตามลำดับเวลา
-
คอมมิต AWS key ขึ้น GitHub
-
ผ่านไป 7 นาที ได้รับการแจ้งเตือนการรั่วไหลจาก GitGuardian
-
ผ่านไป 11 นาที โทเคนถูกทำให้เสียหาย (compromised, รั่วไหลจนไม่ปลอดภัยให้ใช้งานต่อ)
-
ภายใน 2 ชั่วโมง มีการแจ้งเตือนการเข้าถึง 5 ครั้งจากเยอรมนี/เนเธอร์แลนด์/สหราชอาณาจักร/ยูเครน เป็นต้น
-
GitHub ส่งอีเมลแจ้งเตือน Vulnerable Dependencies มาให้
-
คอมมิตขึ้น GitLab
-
ผ่านไป 62 นาที โทเคนถูกใช้งานครั้งแรกและครั้งสุดท้ายจากฝรั่งเศส
-
บน GitLab ไม่ได้รับการแจ้งเตือนด้านความปลอดภัยใด ๆ เลย (มีการแจ้งเตือนด้านความปลอดภัยให้เฉพาะผู้ใช้ Gold/Ultimate เท่านั้น)
บทเรียนที่ได้
-
มีคนสแกน GitHub มากกว่า GitLab
-
ถ้าใช้งาน GitHub อยู่ ควรลองดูบริการ GitGuardian
-
ถ้าใช้งาน GitLab อยู่ ควรพิจารณาอัปเกรดเป็น Gold/Ultimate
-
ถ้าต้องการป้องกันการรั่วไหลล่วงหน้า ให้ใช้ Talisman (Pre-Commit Hook)
-
หากต้องการตรวจสอบย้อนหลังว่าเคยรั่วไหลหรือไม่ ให้พิจารณานำ GitLeaks มาใช้
3 ความคิดเห็น
น่าอายเหมือนกัน แต่ผมเองก็เคยอัปโหลดคีย์ขึ้นไปบน GitHub repository แล้ว AWS ก็ติดต่อมาครับ โดยเขาแจ้งแนวทางให้รีบเปลี่ยนคีย์ และดำเนินการอย่างเช่นเปลี่ยนรหัสผ่านของบัญชีนั้น เพราะถ้าไม่จัดการภายในกำหนดเวลา คีย์จะถูกปิดการใช้งาน
เรื่องแบบนั้น ใครๆ ก็ต้องเคยเจอกันสักครั้งไม่ใช่เหรอครับ... 555
ถ้าอัปโหลด Secret Key ขึ้นไปยัง repo แบบสาธารณะ จะเกิดอะไรขึ้น
GitGuardian : https://www.gitguardian.com/
Talisman : https://github.com/thoughtworks/talisman/
GitLeaks : https://github.com/zricethezav/gitleaks