Matt Mullenweg ตอบสนองต่อการพูดจาโผงผาง: ลายเซ็นดิจิทัลสำหรับการอัปเดต WordPress มีความสำคัญ แต่ไม่ใช่ลำดับความสำคัญ
เผยแพร่แล้ว: 2017-02-16Scott Arciszewski ประธานเจ้าหน้าที่ฝ่ายพัฒนาของ Paragon Initiative Enterprises ซึ่งเป็นที่รู้จักอย่างกว้างขวางที่สุดสำหรับงานวิศวกรรมการเข้ารหัสของเขา ได้เผยแพร่โพสต์บน Medium วิจารณ์ Matt Mullenweg ผู้ร่วมสร้างโครงการซอฟต์แวร์โอเพ่นซอร์ส WordPress ว่าไม่สนใจเรื่องความปลอดภัยเพียงพอ Arciszewski ได้ถอนโพสต์ดังกล่าวแล้ว แต่คุณสามารถอ่านได้ทาง Wayback Machine
Arciszewski กำลังทำงานในโปรเจ็กต์ที่เรียกว่า libsodium ซึ่งเป็นส่วนเสริมหลักของ PHP 7.2 ซึ่งช่วยให้เข้ารหัส ถอดรหัส ลายเซ็น แฮชรหัสผ่าน และอื่นๆ เป้าหมายของมันคือเพื่อให้นักพัฒนาสามารถสร้างเครื่องมือเข้ารหัสระดับสูงได้
ระบบอัปเดตอัตโนมัติของ WordPress ได้รับการจัดการผ่าน api.wordpress.org เนื่องจากการอัปเดตไม่มีลายเซ็นดิจิทัล หาก api.wordpress.org ถูกบุกรุก ผู้โจมตีอาจส่งการอัปเดตที่เป็นอันตรายไปยังไซต์หลายพันหรือล้านไซต์ สถานการณ์นี้อยู่ในแนวหน้าของผู้คนเมื่อปลายปีที่แล้วหลังจากที่ Wordfence เผยแพร่รายละเอียดของช่องโหว่ด้านความปลอดภัยที่ซับซ้อนซึ่งอาจทำให้เซิร์ฟเวอร์อัปเดตถูกบุกรุก
Arciszewski แนะนำการเซ็นโค้ดแบบออฟไลน์และการเข้ารหัสแบบเส้นโค้งวงรีเป็นวิธีแก้ปัญหา "คีย์ที่สามารถสร้างลายเซ็นที่ถูกต้องสำหรับไฟล์จะไม่ถูกเก็บไว้ในเซิร์ฟเวอร์ (เฉพาะไฟล์เองและลายเซ็นที่ถูกต้องเท่านั้น) ดังนั้นแม้ว่าเซิร์ฟเวอร์จะถูกแฮ็ก ผู้โจมตีไม่สามารถเพียงแค่เพิ่มมัลแวร์ม้าโทรจันลงในไฟล์ได้” เขากล่าว
OpenSSL เป็นส่วนขยายของ PHP และมักใช้เป็นการเข้ารหัสคีย์สาธารณะ แต่สนับสนุนเฉพาะ RSA ที่ Arciszewski เห็นว่าไม่เพียงพอ เนื่องจาก WordPress เขียนด้วย PHP และรองรับเวอร์ชัน 5.2-7 ขึ้นไป Arciszewski จึงจำเป็นต้องสร้างโซลูชันที่เข้ากันได้ สิ่งนี้เป็นแรงบันดาลใจให้เขาสร้าง sodium_compat ที่เพิ่มการตรวจสอบลายเซ็น Ed25519 ให้กับตัวอัปเดตอัตโนมัติของ WordPress
Arciszewski ส่งแพตช์จำนวนหนึ่งไปยัง WordPress แต่ได้รับแจ้งจาก Dion Hulse ผู้พัฒนาหลักของ WordPress ว่าไลบรารีโซเดียม_compat ไม่สามารถรวมเข้ากับคอร์ได้จนกว่าจะผ่านการตรวจสอบความปลอดภัยโดยบุคคลที่สาม การตรวจสอบอาจต้องใช้เงินเป็นจำนวนมาก ดังนั้นแผนของ Arciszewski ก็คือดูว่า Automattic จะใช้ต้นทุนบางส่วนหรือหาแหล่งเงินทุนจากฝูงชนได้หรือไม่ อย่างไรก็ตาม โครงการของเขาถูกระงับหลังจากที่ Mullenweg แจ้ง Hulse ให้หยุดทำงานในคุณลักษณะนี้ เนื่องจากไม่เกี่ยวข้องกับประเด็นหลักสามประการของ Editor, Customizer และ REST API
Arciszewski อธิบายว่าการตัดสินใจนั้นไม่มีความรับผิดชอบ และผู้ใช้ทุกคนมีเหตุผลที่จะต้องตื่นตระหนก “ทีม WordPress ได้แสดงให้เห็นว่าพวกเขาไม่มีความรับผิดชอบเพียงพอที่จะควบคุมความเป็นเจ้าของอินเทอร์เน็ตที่น่าประทับใจ (ยกเว้นบางคนที่ไม่มีอำนาจในการแก้ไขหลักสูตรขององค์กร )," เขาพูดว่า. “ความประมาทเลินเล่อ นี้จะ ทำให้เว็บที่เหลือตกอยู่ในอันตราย”
การลงชื่ออัปเดตมีความสำคัญแต่ไม่ใช่ลำดับความสำคัญ
Mullenweg ตอบกลับโพสต์บน Medium.com ด้วยหนึ่งในของเขาเอง และย้ำถึงความมุ่งมั่นของทีมพัฒนา WordPress ในการรักษาความปลอดภัย
“ทุกคนที่เกี่ยวข้องมีความรับผิดชอบอย่างจริงจัง และการเติบโตของ WordPress นั้นหมายถึงผู้คนที่รอบคอบและขยันขันแข็งหลายคนเข้ามาเกี่ยวข้องและคิดถึงความปลอดภัยของเว็บไซต์ WP แบบองค์รวม จากทุกมุม” เขากล่าว
Mullenweg ยังชี้แจงว่าการโจมตีใดจะหยุดโดยการใช้ลายเซ็นดิจิทัลในการอัปเดต WordPress
“มันสามารถหยุดการโจมตีของชายคนหนึ่งซึ่งแก้ไขไฟล์อัพเดทบนเครือข่ายระหว่างบล็อกของคุณกับ WordPress.org หรืออาจหยุดสถานการณ์ที่ส่วนหนึ่งของ .org ที่ให้บริการอัปเดตถูกบุกรุก แต่การลงนาม ส่วนหนึ่งไม่ได้ และมีคนตัดสินใจที่จะส่งการอัปเดตแม้ว่าพวกเขาจะรู้ว่าพวกเขาจะถูกปฏิเสธ” เขากล่าว

ทีมงานไม่ทราบไซต์ WordPress ใดที่ถูกโจมตีด้วยวิธีนี้ ในขณะที่มีความเป็นไปได้ ขอบเขตของความเสียหายน่าจะจำกัด เซิร์ฟเวอร์อัปเดตได้รับการตรวจสอบตลอดเวลา และเนื่องจากบริษัทเว็บโฮสติ้งขนาดใหญ่หลายแห่งสแกนหามัลแวร์ในไซต์ของลูกค้าโดยอัตโนมัติ การอัปเดตที่เป็นอันตรายจึงมีแนวโน้มที่จะค้นพบได้อย่างรวดเร็ว
Mullenweg อธิบายว่าจะเกิดอะไรขึ้นหากเซิร์ฟเวอร์อัพเดทถูกบุกรุก
“เราจะปิดการทำงานอย่างรวดเร็ว แจ้งให้โลกทราบว่ามีปัญหา แก้ไขปัญหา เปิดอีกครั้ง และแจ้งไซต์หรือโฮสต์เฉพาะตามที่สามารถทำได้” เขากล่าว แม้ว่า WordPress จะให้อำนาจ 27.5% ของเว็บไซต์ 10 ล้านอันดับแรกที่ติดตามโดย Alexa แต่ก็ไม่น่าเป็นไปได้สูงที่จำนวนเว็บไซต์จะถูกบุกรุก
เขากล่าวต่อไปว่ามีวิธีที่ง่ายกว่าในการประนีประนอมไซต์ WordPress และระบุปัญหาที่ใหญ่ที่สุดเกี่ยวกับความปลอดภัยของ WordPress ตามผลกระทบ
- ไซต์ไม่อัปเดตคอร์
- ไซต์ไม่อัปเดตปลั๊กอิน
- ไซต์ไม่อัปเดตธีม
- รหัสผ่านที่ไม่รัดกุม ไม่มีการป้องกันแบบเดรัจฉานหรือการตรวจสอบสิทธิ์แบบสองปัจจัย
- โฮสต์ (มืออาชีพหรือเฉพาะกิจ) ไม่สแกนและแก้ไขไซต์
- ปัญหาสมมุติฐานที่ไม่พบในทางปฏิบัติ ซึ่งเบี่ยงเบนความสนใจจากลำดับความสำคัญที่มีอยู่ข้างต้น
Mullenweg ยืนยันว่าเขาเสนอที่จะบริจาคให้กับการตรวจสอบของ sodium_compat หนึ่งวันก่อนที่ Arciszewski จะเผยแพร่โพสต์ของเขา แม้ว่าไลบรารี่จะผ่านการตรวจสอบ แต่ก็ไม่สามารถเพิ่มโค้ดลงในคอร์ได้ทันที "คุณจะต้องทำงานที่สำคัญบนฝั่งเซิร์ฟเวอร์เพื่อแยกการเซ็นชื่อออกจากเซิร์ฟเวอร์การอัพเดท ดังนั้นมันจึงคุ้มค่าตั้งแต่แรก ," เขาพูดว่า.
และหากมีการเพิ่มโค้ดลงในคอร์ เฉพาะไซต์ที่อัปเดตเป็นเวอร์ชันที่มีไลบรารีการเข้ารหัสและการตรวจสอบการอัปเดตเท่านั้นที่จะสามารถใช้ประโยชน์จากโค้ดนี้ได้ WordPress.org ยังคงต้องส่งการอัปเดตไปยังเวอร์ชันเก่าที่ไม่มีการตรวจสอบการอัปเดต ไซต์เหล่านี้ยังคงมีความเสี่ยงที่จะได้รับการอัปเดตที่เป็นอันตราย
Mullenweg กล่าวว่าลายเซ็นดิจิทัลและการลงนามอัปเดตจะสิ้นสุดลงใน WordPress ในที่สุด แต่ก็ไม่ได้มีความสำคัญเนื่องจากมีปัญหาด้านความปลอดภัยอื่น ๆ อยู่ข้างหน้า "เรากำลังจัดลำดับความสำคัญของปัญหาเหล่านี้เหนือความพยายามในเชิงลึกที่ดี " เขาพูดว่า.
“แนวทางที่ดีคือการสร้างฝั่งเซิร์ฟเวอร์ก่อน เพราะการทำอย่างถูกต้อง พูดกับ HSM เป็นส่วนที่ยากและสำคัญ จากนั้นเซ็นแพ็คเกจ จากนั้นทดสอบการยืนยันในปลั๊กอินเพราะเราไม่ต้องการทำลายการอัปเดตอัตโนมัติ แล้วรวมเข้ากับคอร์ในที่สุดและตั้งค่าไคลเอนต์ให้ปฏิเสธการอัปเดตที่ไม่ได้ลงชื่อ ทางฝั่งไคลเอ็นต์เราต้องเลือกไลบรารีการเข้ารหัสและทำการตรวจสอบ”
Mullenweg จบโพสต์ของเขาโดยอธิบายว่าเหตุใดเขาจึงเผยแพร่คำตอบของเขาใน Medium แทนที่จะเป็นเว็บไซต์ส่วนตัวของเขา “ดูเหมือนจะเป็นสถานที่ยอดนิยมสำหรับการโวยวายแบบนี้ ฉันยังต้องการลองใช้ตัวแก้ไขสื่อที่มีชื่อเสียง” เขากล่าว
อะไรต่อไปสำหรับโซเดียม_compat
แม้ว่าผู้มีแนวโน้มจะเป็นลูกค้าจะไม่ดีหากห้องสมุดของเขาถูกเพิ่มลงใน WordPress ในปี 2560 Arciszewski กล่าวว่ายังมีโครงการ PHP อื่นๆ อีกมากที่อาจได้รับประโยชน์จากห้องสมุดนี้ “เพื่อประโยชน์ของพวกเขา การตรวจสอบการเข้ารหัสของพรรคและพยายามระดมทุนจากต้นทุน” เขากล่าว
