ที่เก็บรหัสโอเพ่นซอร์ส PyPI จัดการกับมัลแวร์คลั่งไคล้

ที่เก็บรหัสโอเพ่นซอร์ส PyPI จัดการกับมัลแวร์คลั่งไคล้

โหนดต้นทาง: 2106086

ที่เก็บซอร์สโค้ดสาธารณะจาก Sourceforge ไปยัง GitHubจาก คลังเก็บเคอร์เนลลินุกซ์ ไปยัง ReactOS.orgจาก PHP แพ็คเกจจิ้ง ไป ดัชนีแพ็คเกจ Pythonที่รู้จักกันดี PyPIเป็นแหล่งข้อมูลที่ยอดเยี่ยม (ขออภัย!) ของระบบปฏิบัติการฟรี แอปพลิเคชัน ไลบรารีการเขียนโปรแกรม และชุดเครื่องมือของนักพัฒนาที่ทำให้วิทยาการคอมพิวเตอร์และวิศวกรรมซอฟต์แวร์กลายเป็นโลกที่ดี

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

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

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

ค่าใช้จ่ายฟรี

อย่างไรก็ตาม ไม่ต้องสงสัยเลยว่าแหล่งเก็บซอร์สโค้ดของชุมชนนั้นมาพร้อมกับความท้าทายด้านความปลอดภัยทางไซเบอร์หลายประการ:

  • แพ็คเกจยอดนิยมที่จู่ๆก็หายไป ในบางครั้ง แพ็คเกจที่โปรแกรมเมอร์ผู้หวังดีได้บริจาคให้กับชุมชนกลายเป็นที่นิยมอย่างมาก จนกลายเป็นส่วนสำคัญของโครงการขนาดใหญ่กว่าหลายพันหรือหลายแสนโครงการที่มองข้ามไป แต่ถ้าโปรแกรมเมอร์เดิมตัดสินใจถอนตัวออกจากชุมชนและลบโครงการ (ซึ่งพวกเขามีสิทธิ์ทุกอย่างที่จะทำได้หากไม่มีข้อผูกมัดตามสัญญาอย่างเป็นทางการกับใครก็ตามที่เลือกพึ่งพาพวกเขา) ผลข้างเคียงอาจเป็นหายนะชั่วคราว ในขณะที่โครงการของคนอื่น "อัปเดต" เป็นสถานะที่ส่วนที่จำเป็นของรหัสขาดหายไป
  • โครงการที่ได้รับการแย่งชิงความชั่วร้ายอย่างแข็งขัน อาชญากรไซเบอร์ที่คาดเดา ขโมย หรือซื้อรหัสผ่านสำหรับโครงการของผู้อื่นสามารถใส่มัลแวร์เข้าไปในรหัสได้ และใครก็ตามที่ไว้วางใจแพ็คเกจที่เคยบริสุทธิ์อยู่แล้วจะติดมัลแวร์โดยไม่เจตนา (และอาจเป็นลูกค้าของพวกเขาเอง) หากพวกเขาดาวน์โหลด "อัปเดต" อันธพาล โดยอัตโนมัติ มิจฉาชีพสามารถครอบครองโปรเจกต์เก่าโดยใช้เล่ห์เหลี่ยมทางวิศวกรรมสังคม โดยเข้าร่วมโปรเจกต์และให้ความช่วยเหลือจริงๆ สักระยะหนึ่ง จนกว่าผู้ดูแลดั้งเดิมจะตัดสินใจไว้วางใจให้พวกเขาเข้าถึงการอัปโหลด
  • แพ็คเกจ Rogue ที่ปลอมตัวเป็นผู้บริสุทธิ์ โจรมักจะอัปโหลดแพ็คเกจที่มีชื่อใกล้เคียงกับโครงการที่รู้จักกันดีซึ่งผู้ใช้รายอื่นดาวน์โหลดและใช้โดยไม่ได้ตั้งใจ ในการโจมตีที่เรียกกันติดปากว่า การพิมพ์ผิด. (กลอุบายแบบเดียวกันนี้ใช้ได้กับเว็บไซต์ต่างๆ โดยหวังว่าผู้ใช้ที่พิมพ์ URL ผิดแม้เพียงเล็กน้อยก็จะไปพบไซต์ปลอมที่มีลักษณะคล้ายกันแทน) โดยทั่วไปแล้วมิจฉาชีพจะทำการโคลนแพคเกจของแท้ก่อน ดังนั้นมันจึงยังคงทำหน้าที่ทั้งหมดของต้นฉบับ แต่ด้วยพฤติกรรมที่เป็นอันตรายเพิ่มเติมบางอย่างที่ฝังลึกอยู่ในโค้ด
  • พฤติกรรมขี้งอนของ "นักวิจัย" เราเสียใจที่ต้องเขียนเกี่ยวกับพฤติกรรมที่น่าสงสัยในลักษณะนี้ซึ่งน่าจะถูกกฎหมายแต่มีจริยธรรมอยู่หลายครั้ง ตัวอย่าง ได้แก่ นักศึกษาปริญญาเอกของสหรัฐอเมริกาและผู้บังคับบัญชาที่จงใจ อัปโหลดแพตช์ปลอม ไปยังเคอร์เนล Linux ซึ่งเป็นส่วนหนึ่งของการทดลองที่ไม่ได้รับอนุญาต ซึ่งทีม Linux หลักถูกทิ้งให้จัดการ และ "ผู้เชี่ยวชาญ" ที่ให้บริการตนเองพร้อมชื่อเล่น ความเสี่ยงด้านซัพพลายเชน ผู้อัปโหลดโครงการปลอมที่ติดกับดักไปยังที่เก็บ PyPI เพื่อเป็นการเตือนถึงความเสี่ยงของการโจมตีห่วงโซ่อุปทาน จากนั้น SC Risks ได้ติดตามแพ็คเกจ "การวิจัย" ที่พิสูจน์แนวคิดด้วย a อีก 3950 แพ็คเกจปล่อยให้ทีม PyPI ค้นหาและลบออกทั้งหมด

ผู้อัปโหลดอันธพาล

น่าเสียดายที่ PyPI ดูเหมือนจะถูกโจมตีโดยกลุ่มอันธพาลที่อัปโหลดอัตโนมัติในช่วงสุดสัปดาห์ที่ผ่านมา

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

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

ในขณะที่เราจัดกลุ่มใหม่ในช่วงสุดสัปดาห์ การลงทะเบียนผู้ใช้ใหม่และโครงการใหม่จะถูกระงับชั่วคราว [2023-05-20T16:02:00Z]

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

…หรือบางทีผู้ดูแลไซต์อาจรู้สึกถูกบังคับให้ต้องทำให้ทั้งไซต์ออฟไลน์เพื่อจัดการ จึงทำให้เกิด การโจมตีการปฏิเสธการบริการหรือ ดอส.

ข่าวดีก็คือภายในเวลาเพียง 24 ชั่วโมง ทีมงานก็แก้ปัญหาได้และสามารถประกาศว่า “การระงับถูกยกเลิก”

กล่าวอีกนัยหนึ่ง แม้ว่า PyPI จะทำงานได้ไม่เต็ม 100% ในช่วงสุดสัปดาห์ที่ผ่านมา แต่ก็ไม่มีการปฏิเสธการให้บริการอย่างแท้จริงกับไซต์หรือผู้ใช้หลายล้านคน

จะทำอย่างไร?

  • อย่าเลือกแพ็คเกจพื้นที่เก็บข้อมูลเพียงเพราะชื่อดูถูกต้อง ตรวจสอบว่าคุณกำลังดาวน์โหลดโมดูลที่ถูกต้องจากผู้เผยแพร่ที่ถูกต้อง แม้แต่โมดูลที่ถูกต้องตามกฎหมายบางครั้งก็มีชื่อที่ขัดแย้งกัน แข่งขันกัน หรือสร้างความสับสน
  • อย่าสุ่มสี่สุ่มห้าดาวน์โหลดการอัปเดตแพ็คเกจในการพัฒนาหรือสร้างระบบของคุณเอง ทดสอบและตรวจสอบทุกสิ่งที่คุณดาวน์โหลดก่อนที่จะอนุมัติให้ใช้งาน โปรดจำไว้ว่าโดยปกติแล้วแพ็คเกจจะรวมสคริปต์เวลาอัปเดตที่ทำงานเมื่อคุณทำการอัปเดต ดังนั้นการติดมัลแวร์อาจถูกส่งผ่านกระบวนการอัปเดตเอง ไม่ใช่เป็นส่วนหนึ่งของซอร์สโค้ดของแพ็คเกจที่จะถูกทิ้งไว้ในภายหลัง
  • อย่าทำให้ผู้โจมตีเข้าถึงแพ็คเกจของคุณเองได้ง่ายๆ เลือกรหัสผ่านที่เหมาะสม ใช้ 2FA ทุกครั้งที่ทำได้ และอย่าไว้ใจผู้มาใหม่ในโครงการของคุณโดยสุ่มสี่สุ่มห้าทันทีที่พวกเขาเริ่มตกปลาเพื่อรับสิทธิ์การเข้าถึงจากผู้ดูแล ไม่ว่าคุณจะกระตือรือร้นแค่ไหนในการมอบสายบังเหียนให้คนอื่น
  • อย่าเป็นคนที่รู้อะไร เมื่อเรื่องราวนี้เตือนเราทุกคน อาสาสมัครในชุมชนโอเพ่นซอร์สมีปัญหาเพียงพอกับอาชญากรไซเบอร์ที่แท้จริงโดยไม่ต้องจัดการกับ "นักวิจัย" ที่ดำเนินการโจมตีแบบพิสูจน์แนวคิดเพื่อผลประโยชน์ของตนเอง ไม่ว่าจะเพื่อวัตถุประสงค์ทางวิชาการหรือเพื่อสิทธิในการโอ้อวด (หรือ ทั้งคู่).

ประทับเวลา:

เพิ่มเติมจาก ความปลอดภัยเปล่า