ในขณะที่ RubyGems.org เพิ่งแสดงให้เห็นโครงสร้างพื้นฐานด้านความปลอดภัยที่แข็งแกร่งซึ่งสามารถตรวจจับและลบ gems ที่เป็นอันตรายได้สำเร็จ แต่ความขัดแย้งที่ไม่คาดคิดได้เกิดขึ้นจากชุมชน Ruby ผู้ดูแล Unicorn ซึ่งเป็น HTTP server ยอดนิยมสำหรับแอปพลิเคชัน Ruby ได้ประกาศอย่างเปิดเผยถึงความพยายามในการหลีกเลี่ยงมาตรการรักษาความปลอดภัยอย่างจงใจ ไม่ใช่เพราะข้อจำกัดทางเทคนิค แต่เป็นจุดยืนทางปรัชญาที่ต่อต้านการถูกมองว่าน่าเชื่อถือ
กลยุทธ์การหลีกเลี่ยงความปลอดภัยอย่างจงใจ
ผู้ดูแล Unicorn ได้แถลงอย่างเปิดเผยถึงแผนการที่จะรักษาจำนวนการดาวน์โหลดให้อยู่ในระดับต่ำเทียมเพื่อให้อยู่ต่ำกว่าเกณฑ์ Multi-Factor Authentication (MFA) ของ RubyGems.org ปัจจุบันอยู่ที่ประมาณ 70 ล้านการดาวน์โหลดห่างจากเกณฑ์ 180 ล้านที่กำหนดในปี 2022 โดยแต่ละรุ่นใหม่มักจะสร้างการดาวน์โหลดประมาณ 15 ล้านครั้ง กลยุทธ์ของผู้ดูแลคือการควบคุมการปล่อยรุ่นใหม่อย่างจงใจเพื่อหลีกเลี่ยงการเรียกใช้ข้อกำหนดด้านความปลอดภัยบังคับ
แนวทางนี้ขยายไปเกินกว่าแค่ MFA ผู้ดูแลได้ปฏิเสธการลงนาม code และมาตรการรักษาความปลอดภัยอื่นๆ ที่สร้างความน่าเชื่อถืออย่างชัดเจน โดยระบุความต้องการให้ผู้ใช้ไม่เคยมองพวกเขาว่าน่าเชื่อถือหรือมีความรับผิดชอบต่อสิ่งที่พวกเขาผลิต จุดยืนทางปรัชญานี้ทำให้พวกเขาขัดแย้งกับแนวโน้มของอุตสาหกรรมโดยรวมที่มุ่งไปสู่การเพิ่มความปลอดภัยของ supply chain
MFA (Multi-Factor Authentication): วิธีการรักษาความปลอดภัยที่ต้องการให้ผู้ใช้ให้ปัจจัยการยืนยันตัวตนสองปัจจัยหรือมากกว่าเพื่อเข้าถึงบัญชีของพวกเขา
สถานะโครงการ Unicorn :
- ดาวน์โหลดปัจจุบัน: ประมาณ 110 ล้านครั้ง (ต่ำกว่าเกณฑ์ MFA อยู่ 70 ล้านครั้ง)
- อัตราการดาวน์โหลด: ประมาณ 15 ล้านครั้งต่อการปล่อยเวอร์ชันใหม่
- กลยุทธ์ของผู้ดูแล: จำกัดการปล่อยเวอร์ชันใหม่เพื่อหลีกเลี่ยงข้อกำหนดด้านความปลอดภัย
- ปรัชญา: การหลีกเลี่ยงมาตรการสร้างความน่าเชื่อถืออย่างเจตนา
ปรัชญาที่แปลกประหลาดพบกับความต้องการด้านความปลอดภัยสมัยใหม่
จุดยืนของผู้ดูแลมาจากสิ่งที่สมาชิกชุมชนอธิบายว่าเป็นหลักการ Free Software Purity ซึ่งรวมถึงการปฏิเสธที่จะใช้สิ่งใดที่รัน JavaScript ซึ่งทำให้พวกเขาถูกตัดขาดจากเครื่องมือและแพลตฟอร์มการพัฒนาสมัยใหม่ส่วนใหญ่ พวกเขาสนับสนุน Ruby ผ่าน mailing lists แบบดั้งเดิมและ git repositories โดยตรงเท่านั้น โดยหลีกเลี่ยง GitHub และแพลตฟอร์มการทำงานร่วมกันร่วมสมัยอื่นๆ
ปฏิกิริยาของชุมชนมีความหลากหลายแต่ส่วนใหญ่วิพากษ์วิจารณ์ นักพัฒนาหลายคนมองว่าจุดยืนนี้ไม่รับผิดชอบเมื่อพิจารณาสภาพแวดล้อมของภัยคุกคามในปัจจุบัน โดยเฉพาะเมื่อ packages ที่เป็นอันตรายกำลังถูกแจกจ่ายอย่างแข็งขันผ่าน package managers บางคนเสนอว่าหากผู้ดูแลต้องการท้อแท้การใช้งาน Unicorn จริงๆ พวกเขาควรหยุดโปรเจกต์เสียเลยแทนที่จะดูแลรักษาในลักษณะที่เป็นปรปักษ์ต่อผู้ใช้อย่างจงใจ
ผลกระทบต่อระบบนิเวศ Ruby
Unicorn เป็นส่วนสำคัญของ Ruby web server landscape มาหลายปี แม้จะมีความพยายามล่าสุดของผู้ดูแลในการท้อแท้การใช้งาน README ของโปรเจกต์แม้กระทั่งอธิบายว่าได้สร้างความเสียหายต่อระบบนิเวศ Ruby ทั้งหมดมาหลายทศวรรษเนื่องจากความสามารถในการทนต่อ (และจึงส่งเสริม) โค้ดที่แย่ คำอธิบายที่ดูหมิ่นตนเองนี้สอดคล้องกับความปรารถนาของผู้ดูแลที่จะลดความน่าเชื่อถือที่รับรู้ของซอฟต์แวร์
สถานการณ์นี้เน้นย้ำความตึงเครียดที่กว้างขึ้นในซอฟต์แวร์โอเพนซอร์สระหว่างความเป็นอิสระของผู้ดูแลแต่ละคนกับความคาดหวังด้านความปลอดภัยของชุมชน ในขณะที่ RubyGems.org ได้ใช้ระบบตรวจจับอัตโนมัติที่ซับซ้อนซึ่งจับ packages ที่เป็นอันตราย 70-80% ก่อนที่จะถูกรายงาน ประสิทธิภาพของระบบเหล่านี้พึ่งพาส่วนหนึ่งจากความร่วมมือของผู้ดูแลในการนำแนวทางปฏิบัติที่ดีด้านความปลอดภัยมาใช้
สถิติความปลอดภัยของ RubyGems.org :
- ตรวจจับแพ็คเกจที่เป็นอันตราย 70-80% ก่อนที่จะมีการรายงานต่อสาธารณะ
- ลบแพ็คเกจที่เป็นอันตราย/สแปมโดยเฉลี่ยประมาณ 1 แพ็คเกจต่อสัปดาห์
- แพ็คเกจที่ถูกแจ้ง 95% พิสูจน์แล้วว่าถูกต้องตามกฎหมายเมื่อตรวจสอบ
- เกณฑ์ MFA : 180 ล้านดาวน์โหลดทั้งหมด (ณ ปี 2022)
การตอบสนองของชุมชนและแนวทางแก้ไข
สมาชิกชุมชนหลายคนได้เสนอแนวทางทางเลือกที่สามารถจัดการกับข้อกังวลของผู้ดูแลในขณะที่ปรับปรุงความปลอดภัย ซึ่งรวมถึงเครื่องมือ MFA ที่ดีกว่าที่ไม่พึ่งพาแอปที่เป็นกรรมสิทธิ์ ตัวเลือกในการปิดใช้งานตัวบ่งชี้ความน่าเชื่อถือเช่นเครื่องหมายยืนยันแล้ว และการสนับสนุนแอปพลิเคชัน TOTP (Time-based One-Time Password) มาตรฐานที่ทำงานแบบออฟไลน์
เครื่องมือ MFA ที่ดีกว่าและการอนุญาตให้คนไม่แสดงเครื่องหมายยืนยันแล้วควรจะแก้ปัญหาได้ใช่ไหม? อย่างน้อยก็คุยกับบุคคลนั้นและฟังข้อร้องเรียนของพวกเขา
ความขัดแย้งนี้เน้นย้ำความท้าทายที่ผู้ดูแล package registry เผชิญขณะที่พวกเขาสร้างสมดุลระหว่างข้อกำหนดด้านความปลอดภัยกับปรัชญาของผู้ดูแลที่หลากหลาย ในขณะที่ความสำเร็จล่าสุดของ RubyGems.org ในการตรวจจับภัยคุกคามเชิงรุกแสดงให้เห็นคุณค่าของโครงสร้างพื้นฐานด้านความปลอดภัยของพวกเขา กรณีเช่น Unicorn แสดงให้เห็นว่าโซลูชันทางเทคนิคเพียงอย่างเดียวไม่สามารถจัดการกับทุกด้านของความปลอดภัย supply chain ได้
TOTP: Time-based One-Time Password อัลกอริทึมมาตรฐานสำหรับการสร้างรหัสยืนยันตัวตนชั่วคราว
อ้างอิง: How RubyGems.org Protects Our Community's Critical OSS Infrastructure