นักพัฒนาบางคนกำลังทำให้ซอฟต์แวร์โอเพ่นซอร์สสกปรกขึ้น

gettyimages-1159346361-รหัสที่เป็นอันตราย-skull-crossbones.jpg

เก็ตตี้อิมเมจ

สิ่งที่น่าทึ่งที่สุดอย่างหนึ่งเกี่ยวกับโอเพ่นซอร์สไม่ใช่เพราะว่ามันผลิตซอฟต์แวร์ที่ยอดเยี่ยม นักพัฒนาจำนวนมากจึงละทิ้งอัตตาของตนเพื่อสร้างโปรแกรมที่ยอดเยี่ยมด้วยความช่วยเหลือจากผู้อื่น อย่างไรก็ตาม ขณะนี้ มีโปรแกรมเมอร์จำนวนหนึ่งที่นำข้อกังวลของตนเองมาพิจารณาก่อนถึงประโยชน์ของซอฟต์แวร์โอเพนซอร์ซจำนวนมากและอาจทำลายล้างสำหรับทุกคน

ตัวอย่างเช่น ผู้ดูแลแพ็คเกจผู้จัดการ RIAEvangelist ของ JavaScript, Brandon Nozaki Miller เขียนและเผยแพร่ open-code npm source-code package ที่เรียกว่า peacenotwar. มันทำได้เพียงเล็กน้อย แต่พิมพ์ข้อความเพื่อความสงบสุขไปยังเดสก์ท็อป จนถึงตอนนี้ไม่เป็นอันตราย 

จากนั้นมิลเลอร์ก็แทรกโค้ดที่เป็นอันตรายลงในแพ็คเกจเพื่อเขียนทับระบบไฟล์ของผู้ใช้ หากคอมพิวเตอร์ของพวกเขามีที่อยู่ IP ของรัสเซียหรือเบลารุส จากนั้นเขาก็เพิ่มมันเป็นการพึ่งพาความนิยมของเขา โหนด-ipc โปรแกรมและความวุ่นวายทันที! เซิร์ฟเวอร์และพีซีจำนวนมากหยุดทำงานเมื่ออัปเดตเป็นรหัสใหม่ล่าสุด จากนั้นระบบก็ลบไดรฟ์ทิ้ง 

การป้องกันของมิลเลอร์”ทั้งหมดนี้เป็นสาธารณะ จัดทำเป็นเอกสาร มีใบอนุญาตและเป็นโอเพ่นซอร์ส” ทนไม่ไหว 

ลิรัน ทาล, the สนุ๊ก นักวิจัยผู้เปิดเผยปัญหากล่าวว่า “แม้ว่าการกระทำโดยเจตนาและเป็นอันตราย [เป็น] ที่บางคนมองว่าเป็นการประท้วงที่ชอบด้วยกฎหมาย สะท้อนถึงชื่อเสียงในอนาคตของผู้ดูแลอย่างไร และมีส่วนร่วมในชุมชนนักพัฒนา? ผู้ดูแลคนนี้จะได้รับความไว้วางใจอีกครั้งหรือไม่ที่จะไม่ติดตามการกระทำในอนาคตในการดำเนินการดังกล่าวหรือการกระทำที่ก้าวร้าวมากขึ้นสำหรับโครงการใด ๆ ที่พวกเขาเข้าร่วม” 

มิลเลอร์ไม่ใช่ข้อเหวี่ยงแบบสุ่ม เขาได้สร้างโค้ดดีๆ มากมาย เช่น node-ipc และ โหนด HTTP Server. แต่คุณสามารถไว้วางใจรหัสใด ๆ ของเขาที่จะไม่เป็นอันตราย? ในขณะที่เขาอธิบายว่าเป็น “ไม่ใช่มัลแวร์ [แต่] ซอฟต์แวร์ประท้วงที่มีเอกสารครบถ้วน” คนอื่นๆ ไม่เห็นด้วยอย่างมีพิษสง 

ดังที่โปรแกรมเมอร์คนหนึ่งของ GitHub เขียนไว้ว่า “สิ่งที่จะเกิดขึ้นกับสิ่งนี้คือทีมรักษาความปลอดภัยในบริษัทตะวันตกที่ไม่มีส่วนเกี่ยวข้องกับรัสเซียหรือการเมืองอย่างแน่นอน กำลังจะเริ่มเห็น ซอฟต์แวร์โอเพ่นซอร์สฟรีเป็นช่องทางสำหรับการโจมตีห่วงโซ่อุปทาน (ซึ่งก็คือทั้งหมด) และเพียงแค่เริ่มแบนซอฟต์แวร์โอเพ่นซอร์สฟรี - ซอฟต์แวร์โอเพ่นซอร์สฟรีทั้งหมด - ภายในบริษัทของพวกเขา” 

ดังที่นักพัฒนา GitHub อีกคนที่มีด้ามจับ nm17 เขียนไว้ว่า “The ปัจจัยความน่าเชื่อถือของโอเพ่นซอร์สซึ่งขึ้นอยู่กับเจตจำนงที่ดีของนักพัฒนา ตอนนี้แทบจะหายไปแล้ว และตอนนี้ ผู้คนจำนวนมากขึ้นเรื่อยๆ ตระหนักดีว่าวันหนึ่ง ห้องสมุด/แอปพลิเคชันของพวกเขาอาจถูกเอาเปรียบเพื่อทำ/พูดอะไรก็ได้ตามที่นักพัฒนาสุ่มคิดบนอินเทอร์เน็ต ' เป็นสิ่งที่ถูกต้องที่พวกเขาทำ'”

ทั้งสองให้คะแนนที่ถูกต้อง เมื่อคุณไม่สามารถใช้ซอร์สโค้ดได้ เว้นแต่ว่าคุณเห็นด้วยกับจุดยืนทางการเมืองของผู้สร้าง คุณจะใช้มันอย่างมั่นใจได้อย่างไร 

หัวใจของมิลเลอร์อาจอยู่ในที่ที่ถูกต้อง — Slava Ukraini! — แต่ซอฟต์แวร์โอเพนซอร์ซติดไวรัสเพย์โหลดที่เป็นอันตรายเป็นวิธีที่ถูกต้องในการป้องกันการรุกรานยูเครนของรัสเซียหรือไม่? ไม่มันไม่ใช่. 

วิธีโอเพ่นซอร์สใช้งานได้เพียงเพราะเราไว้วางใจซึ่งกันและกัน เมื่อความเชื่อถือนั้นถูกทำลาย ไม่ว่าด้วยสาเหตุใด กรอบงานพื้นฐานของโอเพนซอร์สก็จะถูกทำลาย ดังที่ Greg Kroah-Hartman ผู้ดูแลเคอร์เนล Linux สำหรับสาขาเสถียรกล่าวว่าเมื่อนักศึกษาจากมหาวิทยาลัยมินนิโซตาจงใจพยายามแทรกโค้ดที่ไม่ถูกต้องในเคอร์เนล Linux สำหรับการทดลองในปี 2021 กล่าวว่า "สิ่งที่พวกเขาทำคือพฤติกรรมที่เป็นอันตรายโดยเจตนาและ ไม่เป็นที่ยอมรับและผิดจรรยาบรรณโดยสิ้นเชิง”

ผู้คนโต้เถียงกันมานานแล้วว่าโอเพ่นซอร์สควรมีบทบัญญัติด้านจริยธรรมด้วย ตัวอย่างเช่น ปี 2009 ข้อยกเว้นใบอนุญาตสาธารณะทั่วไป (eGPL), การแก้ไขของ GPLv2พยายามที่จะห้าม "ข้อยกเว้น" เช่นผู้ใช้และซัพพลายเออร์ทางทหารจากการใช้รหัส มันล้มเหลว ใบอนุญาตอื่นๆ เช่น the ใบอนุญาต JSON ด้วยประโยคที่ไร้เดียงสาอย่างอ่อนหวาน "ซอฟต์แวร์จะถูกใช้ในทางที่ดีไม่ใช่ความชั่ว" ยังคงอยู่รอบ ๆ แต่ไม่มีใครบังคับใช้  

อีกไม่นานนักเคลื่อนไหวและนักพัฒนาซอฟต์แวร์ Coraline Ada Ehmke ได้แนะนำใบอนุญาตโอเพนซอร์ซที่กำหนดให้ผู้ใช้ต้องปฏิบัติตนอย่างมีศีลธรรม โดยเฉพาะเธอ ใบอนุญาตฮิปโปเครติค เพิ่มลงในไฟล์ ใบอนุญาตโอเพ่นซอร์ส MIT ประโยคที่ระบุว่า: 

“บุคคล องค์กร รัฐบาล หรือกลุ่มอื่น ๆ ไม่สามารถใช้ซอฟต์แวร์สำหรับระบบหรือกิจกรรมที่เป็นอันตรายต่อ อันตราย หรือคุกคามทางกายภาพ จิตใจ เศรษฐกิจ หรือความเป็นอยู่ทั่วไปของบุคคลหรือกลุ่มผู้ด้อยโอกาสใน การละเมิดปฏิญญาสากลว่าด้วยสิทธิมนุษยชนแห่งสหประชาชาติ”

ฟังดูดี แต่ไม่ใช่โอเพ่นซอร์ส คุณเห็นไหมว่าโอเพ่นซอร์สอยู่ในตำแหน่งที่ถูกต้องตามหลักจริยธรรม จริยธรรมมีอยู่ใน มูลนิธิซอฟต์แวร์เสรี (FSF)'s เสรีภาพที่จำเป็นสี่ประการ. นี่คือรากฐานสำหรับใบอนุญาตโอเพนซอร์ซทั้งหมดและหลักปรัชญาหลัก ในฐานะผู้เชี่ยวชาญด้านกฎหมายโอเพ่นซอร์สและศาสตราจารย์ด้านกฎหมายของโคลัมเบีย Eben Moglen กล่าวว่าในขณะนั้นใบอนุญาตตามหลักจริยธรรมไม่สามารถเป็นซอฟต์แวร์ฟรีหรือใบอนุญาตโอเพนซอร์ซได้: 

"เสรีภาพศูนย์สิทธิในการเรียกใช้โปรแกรมเพื่อวัตถุประสงค์ใดๆ ก็ตาม มาเป็นอันดับแรกในเสรีภาพสี่ประการ เพราะหากผู้ใช้ไม่มีสิทธิ์นั้นในส่วนที่เกี่ยวกับโปรแกรมคอมพิวเตอร์ที่พวกเขาเรียกใช้ ท้ายที่สุดแล้ว พวกเขาจะไม่มีสิทธิ์ใดๆ ในโปรแกรมเหล่านั้นเลย ความพยายามที่จะอนุญาตเฉพาะเพื่อประโยชน์ที่ดี หรือห้ามสิ่งไม่ดีในสายตาของผู้อนุญาต ถือเป็นการละเมิดข้อกำหนดในการปกป้องเสรีภาพให้เป็นศูนย์” 

กล่าวอีกนัยหนึ่ง หากคุณไม่สามารถแบ่งปันรหัสของคุณด้วยเหตุผลใดก็ตาม รหัสของคุณก็ไม่ใช่โอเพ่นซอร์สอย่างแท้จริง 

อาร์กิวเมนต์เชิงปฏิบัติอีกประการหนึ่งเกี่ยวกับการห้ามไม่ให้กลุ่มหนึ่งใช้ซอฟต์แวร์โอเพ่นซอร์สคือการบล็อกบางสิ่งเช่นที่อยู่ IP นั้นเป็นแปรงที่กว้างมาก ในฐานะ Florian Roth บริษัทรักษาความปลอดภัย เน็กซ์ตรอนซิสเต็มส์' หัวหน้าฝ่ายวิจัย พิจารณาว่า “ปิดการใช้งานเครื่องมือฟรีของฉันบนระบบ ด้วยการตั้งค่าภาษาและเขตเวลาที่แน่นอน” ในที่สุดก็ตัดสินใจไม่ทำ ทำไม? เพราะการทำเช่นนั้น “เรายังจะปิดการใช้งานเครื่องมือในระบบของนักวิจารณ์และนักคิดอิสระ ที่ประณามการกระทำของรัฐบาลของพวกเขา” 

น่าเสียดาย ไม่ใช่แค่คนที่พยายามใช้โอเพ่นซอร์สสำหรับสิ่งที่พวกเขาเห็นว่าเป็นจุดประสงค์ทางจริยธรรมที่สูงขึ้นซึ่งก่อให้เกิดปัญหากับซอฟต์แวร์โอเพนซอร์ซ 

เมื่อต้นปีนี้ Marak Squires ผู้พัฒนา JavaScript ตั้งใจทำลายล้าง 'colors.js' และ 'faker.js' ไลบรารี Javascript โอเพนซอร์สที่มีความสำคัญอย่างยิ่งยวดของเขา ผลลัพธ์? โปรแกรม JavaScript หลายหมื่นตัวระเบิดขึ้น

ทำไม? มันยังไม่ชัดเจนนัก แต่ในโพสต์ GitHub ที่ถูกลบไปตั้งแต่นั้นมา Squires เขียนว่า “ขอแสดงความนับถือ ฉันจะไม่สนับสนุน Fortune 500s อีกต่อไป (และบริษัทขนาดเล็กอื่นๆ ) กับงานฟรีของฉัน ไม่มีอะไรจะพูดมาก ใช้สิ่งนี้เป็นโอกาสในการส่งสัญญารายปีหกหลักให้ฉันหรือแยกโครงการและให้คนอื่นทำงาน” อย่างที่คุณอาจจินตนาการได้ ความพยายามแบล็กเมล์ทางของเขาไปยังเช็คเงินเดือนนี้ไม่ได้ผลดีนักสำหรับเขา 

แล้วก็มีคนที่จงใจใส่มัลแวร์ลงในโค้ดโอเพนซอร์ซเพื่อความสนุกสนานและผลกำไร ตัวอย่างเช่น บริษัทรักษาความปลอดภัย DevOps เจฟร็อก ค้นพบแพ็คเกจที่เป็นอันตรายของ JavaScript ใหม่ 17 รายการในที่เก็บ NPM ที่โจมตีและขโมยโทเค็น Discord ของผู้ใช้โดยเจตนา สิ่งเหล่านี้สามารถใช้กับ แพลตฟอร์มการสื่อสาร Discord และการกระจายดิจิทัล.

นอกจากการสร้างโปรแกรมโอเพนซอร์สที่เป็นอันตรายซึ่งดูไร้เดียงสาและมีประโยชน์แล้ว ผู้โจมตีรายอื่นๆ ยังนำซอฟต์แวร์เก่าที่ถูกทิ้งร้างมาเขียนใหม่เพื่อรวมการขโมยเหรียญ crypto ลับๆ ด้วย หนึ่งในโปรแกรมดังกล่าวคือสตรีมเหตุการณ์ มีการใส่รหัสที่เป็นอันตรายเพื่อขโมยกระเป๋าเงิน bitcoin และโอนยอดคงเหลือไปยังเซิร์ฟเวอร์กัวลาลัมเปอร์ มีหลายตอนที่คล้ายคลึงกันในช่วงหลายปีที่ผ่านมา

ในแต่ละการเคลื่อนไหว ศรัทธาในซอฟต์แวร์โอเพนซอร์ซจะหมดลง เนื่องจากโอเพ่นซอร์สมีความสำคัญอย่างยิ่งต่อโลกสมัยใหม่ นี่เป็นแนวโน้มที่ไม่ดี 

เราสามารถทำอะไรกับมันได้บ้าง? ประการหนึ่ง เราควรพิจารณาอย่างรอบคอบถี่ถ้วนว่าเมื่อใด เราควรบล็อกการใช้โอเพนซอร์ซโค้ด 

ในทางปฏิบัติเราต้องเริ่มนำการใช้ .มาใช้ มูลนิธิลินุกซ์ การแลกเปลี่ยนข้อมูลแพ็คเกจซอฟต์แวร์ (SPDX) และ รายการวัสดุซอฟต์แวร์ (SBOM). เมื่อรวมกันแล้วสิ่งเหล่านี้จะบอกเราได้ชัดเจนว่าเราใช้รหัสใดในโปรแกรมของเราและมาจากไหน จากนั้น เราจะสามารถตัดสินใจได้อย่างมีข้อมูลมากขึ้น

ทุกวันนี้ ผู้คนทั่วไปมักใช้รหัสโอเพนซอร์ซโดยไม่รู้ว่ากำลังเรียกใช้อะไรอยู่หรือตรวจสอบปัญหาหรือไม่ พวกเขาถือว่าทุกอย่างเป็นไปด้วยดี นั่นไม่เคยเป็นสมมติฐานที่ชาญฉลาด วันนี้มันช่างโง่เขลาเสียจริง 

แม้จะมีการเปลี่ยนแปลงล่าสุดทั้งหมดเหล่านี้ โอเพ่นซอร์สก็ยังดีกว่าและปลอดภัยกว่าทางเลือกซอฟต์แวร์ที่เป็นกรรมสิทธิ์ของกล่องดำ แต่เราต้องตรวจสอบและยืนยันรหัสแทนการเชื่ออย่างสุ่มสี่สุ่มห้า มันเป็นสิ่งเดียวที่ฉลาดที่จะทำต่อไป

เรื่องราวที่เกี่ยวข้อง:



แหล่ง