ผู้ดูแล Unicorn จงใจหลีกเลี่ยงมาตรการรักษาความปลอดภัยเพื่อคง "ความไม่น่าเชื่อถือ"

ทีมชุมชน BigGo
ผู้ดูแล Unicorn จงใจหลีกเลี่ยงมาตรการรักษาความปลอดภัยเพื่อคง "ความไม่น่าเชื่อถือ"

ในขณะที่ 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