ข้อมูลโค้ด Java ที่ใช้มากที่สุดใน Stack Overflow มีข้อผิดพลาด

ชวา

การศึกษาที่ตีพิมพ์ใน ตุลาคม 2018 ในนิตยสาร Empirical Software Engineering โดยนักวิชาการ Sebastian Baltes และ Stephan Diehl เปิดเผยว่ามีข้อมูลโค้ดใน ตอบคำถามจาก Stack Overflow ในเดือนกันยายน 2010 โดย Andreas Lundblad, Java developer ที่ Palantir, เป็นข้อมูลโค้ด Java ที่ใช้กันอย่างแพร่หลายบนแพลตฟอร์มชุมชน

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

เป็นที่น่าสังเกตว่า ผู้ใช้ไม่พบข้อผิดพลาด ใครใช้รหัสนี้ในโครงการของตน แต่โดยผู้เขียนต้นฉบับของเคล็ดลับ

รหัสที่พิจารณาแปลงขนาดไบต์ในรูปแบบที่อ่านได้เช่น 110592 แปลงเป็น "110.6 kB" หรือ "108.0 KiB". รหัสถูกเสนอเป็นตัวแปรของคำแนะนำที่เสนอก่อนหน้านี้ซึ่งปรับให้เหมาะสมโดยใช้ลอการิทึมซึ่งค่านี้ถูกกำหนดโดยการหารค่าเริ่มต้นในลูปโดย«10 18, 10 15, 10 12, 10 19, 10 6, 10 3 และ 10 0″ แม้ว่าตัวหารจะมากกว่าค่าเดิมเป็นไบต์ก็ตาม

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

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

รหัสอาจมีช่องโหว่ด้านความปลอดภัย, ตัวอย่างเช่น. หากเป็นเช่นนั้นจะต้องใช้เวลาหลายเดือนหรือหลายปีในการซ่อมแซมแอปพลิเคชันที่มีช่องโหว่ทั้งหมดซึ่งทำให้ผู้ใช้ถูกโจมตี

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

“ ในเซสชันการทำงานร่วมกันที่เกี่ยวข้องกับการเข้ารหัสของมนุษย์หลายตัวเราได้ประเมินโค้ดแต่ละชิ้นด้วยตนเองเพื่อหาช่องโหว่ด้านความปลอดภัยตามคำแนะนำ CWE (Common Weakness Enumeration)

จากข้อมูลโค้ดที่ตรวจสอบแล้ว 72,483 รายการที่ใช้ในโครงการที่โฮสต์ GitHub อย่างน้อยหนึ่งโครงการเราพบข้อมูลโค้ดที่มีช่องโหว่ทั้งหมด 69 รายการซึ่งแบ่งออกเป็น 29 ประเภท ข้อมูลโค้ดที่ศึกษาจำนวนมากยังไม่ได้รับการแก้ไข "นักวิจัยกล่าวในรายงานของพวกเขา

ข้อมูลโค้ดที่มีช่องโหว่ 69 รายการ พบใน Stack Overflow นำกลับมาใช้ในโครงการ GitHub ทั้งหมด 2859 โครงการ. เพื่อปรับปรุงคุณภาพของข้อมูลโค้ดที่ใช้ร่วมกันบน Stack Overflow พวกเขาได้พัฒนาส่วนขยายเบราว์เซอร์ที่อนุญาตให้ผู้ใช้ Stack Overflow ค้นหาช่องโหว่ในตัวอย่างข้อมูลเมื่อพวกเขาดาวน์โหลดไปยังแพลตฟอร์ม

อย่างไรก็ตามแม้จะมีคำเตือนของนักวิจัยนักพัฒนายังคงคัดลอกโค้ด Stack Overflow ลงในโครงการของตนโดยไม่ต้องทำการวิเคราะห์

Ashkan Sami รองศาสตราจารย์ด้านไอที วิศวกรรมและเทคโนโลยีสารสนเทศ ที่มหาวิทยาลัย Shiraz ในอิหร่านกล่าวว่า

“ การวิจัยเป็นความพยายามที่จะตรวจสอบว่าโค้ดผิดพลาดในการย้ายจาก Stack Overflow ไปยัง GitHub อย่างไร โดยพื้นฐานแล้วสิ่งที่เราพยายามแสดงให้เห็นคือการใช้รหัส Stack Overflow โดยไม่ได้ตรวจสอบอย่างใกล้ชิดอาจทำให้เกิดช่องโหว่ของแอปพลิเคชันได้” Sami กล่าว การศึกษายังอ้างถึงบทความทางวิชาการจากปี 2017

จากบทความนี้มีการใช้ข้อมูลโค้ดที่ไม่ปลอดภัย 1161 รายการใน Stack Overflow ในแอป Android 1.3 ล้านแอปบน Google Play

นอกเหนือจากการศึกษาก่อนหน้านี้ 46% ของนักพัฒนาที่ใช้โค้ด StackOverflow โดยไม่ระบุผู้เขียน 75% ไม่ทราบว่าโค้ดได้รับอนุญาตภายใต้ CC BY-SA และ 67% ไม่ทราบว่านี่แสดงถึงความจำเป็นในการระบุแหล่งที่มา

ตามข้อมูลจากการศึกษาอื่น ๆ การใช้โค้ดตัวอย่างไม่เพียง แต่เกี่ยวข้องกับความเสี่ยงของข้อบกพร่องในโค้ดเท่านั้น แต่ยังรวมถึงช่องโหว่ด้วย

ตัวอย่างเช่นหลังจากวิเคราะห์ตัวอย่างโค้ด C ++ 72483 ตัวอย่างบน StackOverflow นักวิจัยได้ระบุช่องโหว่ที่ร้ายแรงใน 69 ตัวอย่าง (ซึ่งเท่ากับ 0.09%) ซึ่งรวมอยู่ในรายการคำแนะนำที่เป็นที่นิยมมากที่สุด

Fuente: https://programming.guide


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา