Linux Foundation’s Core Infrastructure Initiative (CII) และ Labotary for Innovation of Science จากฮาร์วาร์ดได้ร่วมกันออกรายงานวิเคราะห์ช่องโหว่ในซอฟต์แวร์โอเพ่นซอร์สหรือ Census II โดยศึกษาถึงปัจจัยของช่องโหว่ที่เกิดขึ้นและแพ็กเกจโอเพ่นซอร์สที่ได้รับความนิยมซึ่งถูกนำไปใช้เป็นส่วนประกอบในแอพลิเคชันจริง
Census II เป็นรายงานผลการศึกษาในเฟสสอง ซึ่งพาร์ทแรก Census I จะศึกษาเกี่ยวกับว่าแพ็กเกจซอฟต์แวร์ไหนใน Debian ที่มีผลกระทบสำคัญต่อการทำงานของ Kernel ซึ่งในผลการศึกษาใน Census II จะศึกษาว่าส่วนประกอบโอเพ่นซอร์สไหนเป็นส่วนประกอบในแอพลิเคชันจริงที่ถูกใช้บ่อยและมีความเสี่ยงจากช่องโหว่อย่างไร
โดยนิยามของ Free and Open Source Software (FOSS) ไม่ได้หมายถึงโปรแกรมโอเพ่นซอร์สอย่าง MySQL, Apache หรือ Linux แต่หมายถึงไลบรารีหรือส่วนประกอบเล็กๆ ที่นักพัฒนานำเข้ามาใช้ในโปรเจ็คโดยส่วนใหญ่อาจจะมีโค้ดแค่ไม่กี่ร้อยบรรทัด ซึ่งแม้ว่าจะเป็นส่วนประกอบเล็กๆ แต่ก็สร้างจุดอ่อนได้อย่างมีนัยสำคัญดังเช่นที่เกิดขึ้นกับบั๊ก Heartbleed ที่เกิดขึ้นในไลบรารี OpenSSL
สำหรับผลการศึกษากว่า 200 โปรเจ็คโอเพ่นซอร์สพบว่ามีโปรเจ็ค JavaScript ยอดนิยมคือ Async, Inherits, Isarray, Kind-of, Lodash, Minimist, Natives, QS:A, Readable-stream และ String_decoder ส่วนโปรเจ็คที่ไม่ใช่ JavaScript ที่ได้รับความนิยมคือ Com.fasterxml.jackson.core:jackson-core, Com.fasterxml.jackson.core:jackson-databind, Com.google.guava:guava, Commons-codec, Commons-io, Httpcomponents-client, Httpcomponents-core, Logback-core, Org.apache.commons:commons-lang3 และ Slf4j เป็นต้น ทั้งหมดนี้อาจจะดูไม่คุ้นสำหรับคนที่ไม่ใช่โปรแกรมเมอร์
ปัญหาที่ทีมนักวิจัยค้นพบว่าเป็นความเสี่ยงให้เกิดช่องโหว่มีดังนี้
– ไม่มีมาตรฐานกลางในการตั้งชื่อส่วนประกอบซอฟต์แวร์เหล่านั้น ซึ่งทำให้เกิดความซับซ้อนต่อการป้องกันด้านความมั่นคงปลอดภัยตามมา โดย NIST เองพยายามแก้ปัญหามาระยะใหญ่แล้ว
– 7 ใน 10 ของโปรเจ็คโอเพ่นซอร์สมาจากบัญชีนักพัฒนาส่วนบุคคล นั่นหมายความว่าการป้องกันยังอาจไม่เข้มงวดเท่ากับโปรเจ็คจากบริษัทยักษ์เช่น Microsoft, Google หรือ IBM เป็นต้น ทำให้เป็นไปได้ว่าเมื่อบัญชีเหล่านั้นถูกแฮ็ก อาจส่งผลกระทบในวงกว้างด้วยความนิยมของส่วนประกอบนั้นๆ
– นักพัฒนายังไม่ยอมปรับเปลี่ยนแพ็กเกจใหม่ๆ แทนของเดิมในแอป อาจเพราะกลัวเรื่องบั๊กหรือด้วยเหตุผลใดก็ตาม ทั้งที่แพ็กเกจใหม่ก็ทำงานฟังก์ชันเดียวกัน ดังนั้นส่วนแอปพลิเคชันที่ใช้งานจริงจึงมีความเสี่ยงต่อช่องโหว่จากแพ็กเก็จเก่านั่นเอง ทั้งนี้การเขียนแอพใหม่อาจดูน่าสนุกกว่าอัพเดตโค้ดเดิมแต่ก็เป็นเรื่องจำเป็น
ผู้สนใจสามารถติดตามรายงานได้ที่ https://www.coreinfrastructure.org/programs/census-program-ii/
ขอขอบคุณแหล่งที่มา :