Python Package Index (PyPI) ได้ประกาศเปิดตัวระบบใหม่ชื่อ 'Project Archival' ซึ่งช่วยให้ผู้เผยแพร่สามารถ archive โปรเจกต์ของตนได้แบบถาวร เพื่อเป็นการแจ้งให้ผู้ใช้ทราบว่าจะไม่มีการอัปเดตเพิ่มเติม
โปรเจกต์เหล่านี้จะยังคงถูกโฮสต์บน PyPI และผู้ใช้งานยังสามารถดาวน์โหลดได้ตามปกติ แต่จะมีคำเตือนเกี่ยวกับสถานะการดูแลรักษา เพื่อช่วยให้ผู้ใช้งานตัดสินใจเกี่ยวกับการเลือกใช้ไลบรารีตามข้อมูลที่ถูกต้อง
ฟีเจอร์ใหม่นี้มีเป้าหมายเพื่อเพิ่มความปลอดภัยจาก supply-chain attack เนื่องจากการเข้ายึดบัญชีของนักพัฒนา และเผยแพร่อัปเดตที่เป็นอันตรายไปยังโปรเจกต์ที่มีผู้ใช้งานจำนวนมาก แต่ไม่ได้รับการดูแลแล้ว เป็นสิ่งที่พบได้บ่อยในวงการโอเพ่นซอร์ส
นอกจากจะช่วยลดความเสี่ยงให้กับผู้ใช้งาน ฟีเจอร์นี้ยังช่วยลดจำนวน requests ขอรับการสนับสนุนจากผู้ใช้งานได้อีกด้วย โดยการสื่อสารอย่างชัดเจนเกี่ยวกับสถานะของโปรเจกต์
การทำงานของ Project Archiving
ตาม blog ที่มีรายละเอียดเพิ่มเติมจาก Trail of Bits ผู้พัฒนาระบบ 'Project Archival' ฟีเจอร์นี้ช่วยให้ผู้ดูแลโปรเจกต์สามารถกำหนดสถานะการ archive ถาวรได้เอง ซึ่งเป็นสัญญาณการแจ้งให้กับผู้ใช้งานทราบว่าจะไม่มีการอัปเดต, แก้ไข หรือดูแลรักษาโปรเจกต์อีกต่อไป
PyPI แนะนำให้ผู้ดูแลโปรเจกต์เผยแพร่เวอร์ชันสุดท้ายก่อนทำการ archive ถาวร โดยระบุรายละเอียด และเหตุผลในการยุติการพัฒนาโปรเจ็กต์ แม้ว่าจะไม่ใช่ข้อบังคับก็ตาม
ผู้ดูแลโปรเจกต์สามารถยกเลิกการ archive ถาวร และกลับมาดำเนินโปรเจกต์ได้ทุกเมื่อ หากต้องการดำเนินการพัฒนาต่อในอนาคต
ภายในระบบ ฟีเจอร์ใหม่นี้ใช้โมเดล LifecycleStatus ซึ่งอดีตพัฒนาขึ้นสำหรับการ Quarantine โปรเจกต์ โดยโมเดลนี้มี state machine ที่ช่วยให้สามารถเปลี่ยนสถานะต่าง ๆ ได้
เมื่อเจ้าของโปรเจกต์คลิกที่ตัวเลือก ‘Archive Project’ บนหน้าการตั้งค่าของ PyPI แพลตฟอร์มจะทำการอัปเดตข้อมูลของโปรเจกต์โดยอัตโนมัติ เพื่อแสดงสถานะใหม่ของโปรเจกต์
TrailofBits มีแผนที่จะเพิ่มสถานะโปรเจกต์เพิ่มเติม เช่น ‘deprecated,’ ‘feature-complete,’ และ ‘unmaintained’ เพื่อให้ผู้ใช้งานมีความเข้าใจที่ชัดเจนยิ่งขึ้นเกี่ยวกับสถานะของโปรเจกต์
แถบคำเตือนนี้มีจุดประสงค์เพื่อแจ้งให้นักพัฒนาทราบว่าพวกเขาควรค้นหาไลบรารีที่ได้รับการดูแล และอัปเดตอย่างต่อเนื่อง แทนที่จะพึ่งพาโปรเจกต์ที่ล้าสมัย และอาจมีช่องโหว่ด้านความปลอดภัย
นอกจากนั้น ส่วนใหญ่จะพบว่าผู้ไม่หวังดีมักโจมตีโปรเจกต์ที่ถูกละทิ้ง โดยการเข้ายึดโปรเจกต์ที่ไม่ได้รับการดูแล และแทรกโค้ดที่เป็นอันตรายผ่านการอัปเดต
ในบางกรณี ผู้ดูแลโปรเจกต์เลือกที่จะลบโปรเจกต์เมื่อวางแผนจะหยุดการพัฒนา ซึ่งอาจนำไปสู่การโจมตีแบบ 'Revival Hijack' การให้ตัวเลือกการ archive ถาวรแก่ผู้ดูแลระบบจะเป็นทางเลือกที่ดีกว่าจากมุมมองด้านความปลอดภัย
ท้ายที่สุด เนื่องจากลักษณะของโอเพ่นซอร์ส หลายโปรเจกต์มักถูกละทิ้งโดยไม่มีการแจ้งให้ทราบ ทำให้ผู้ใช้งานต้องคาดเดาว่าโปรเจกต์นั้นยังคงได้รับการดูแลอยู่หรือไม่
ระบบใหม่จะช่วยเพิ่มความโปร่งใสในการดูแลโปรเจกต์โอเพ่นซอร์ส โดยจัดการความไม่แน่นอน และให้สัญญาณที่ชัดเจนเกี่ยวกับสถานะของโปรเจกต์
ที่มา : bleepingcomputer
You must be logged in to post a comment.