PyTorch: ชุดเครื่องมือ Machine Learning ที่ดึงมาจาก PlatoBlockchain Data Intelligence ตั้งแต่คริสต์มาสถึงปีใหม่ ค้นหาแนวตั้ง AI.

PyTorch: ชุดเครื่องมือแมชชีนเลิร์นนิงเปิดตัวตั้งแต่คริสต์มาสถึงปีใหม่

PyTorch เป็นหนึ่งในชุดเครื่องมือการเรียนรู้ของเครื่องที่ได้รับความนิยมและใช้กันอย่างแพร่หลาย

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

เดิมทีพัฒนาและเผยแพร่เป็นโครงการโอเพ่นซอร์สโดย Facebook ปัจจุบัน Meta ซอฟต์แวร์ถูกส่งมอบให้กับ Linux Foundation ในช่วงปลายปี 2022 ซึ่งปัจจุบันอยู่ภายใต้การดูแลของ PyTorch Foundation

น่าเสียดาย, โครงการถูกบุกรุกโดยการโจมตีของห่วงโซ่อุปทาน ในช่วงเทศกาลวันหยุดสิ้นปี 2022 ระหว่างวันคริสต์มาส [2022-12-25] และวันก่อนวันสิ้นปี [2022-12-30]

ผู้โจมตีสร้างแพ็คเกจ Python ขึ้นมาอย่างมุ่งร้าย torchtriton บน PyPI ซึ่งเป็นที่เก็บ Python Package Index ที่เป็นที่นิยม

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

[A] แพ็คเกจการพึ่งพาที่เป็นอันตราย (torchtriton) […] ถูกอัปโหลดไปยังที่เก็บรหัส Python Package Index (PyPI) ที่มีชื่อแพ็คเกจเดียวกันกับที่เราจัดส่งในดัชนีแพ็คเกจ PyTorch ทุกคืน เนื่องจากดัชนี PyPI มีความสำคัญกว่า แพคเกจที่เป็นอันตรายนี้กำลังถูกติดตั้งแทนเวอร์ชันจากพื้นที่เก็บข้อมูลอย่างเป็นทางการของเรา. การออกแบบนี้ช่วยให้ใครบางคนสามารถลงทะเบียนแพ็คเกจด้วยชื่อเดียวกับที่มีอยู่ในดัชนีบุคคลที่สามและ pip จะติดตั้งเวอร์ชันตามค่าเริ่มต้น

โปรแกรม pipโดยวิธีการที่ใช้เป็นที่รู้จักกันในชื่อ pyinstallและเห็นได้ชัดว่าเป็นเรื่องตลกซ้ำซากที่ย่อมาจาก pip installs packages. แม้จะมีชื่อดั้งเดิม แต่ไม่ได้มีไว้สำหรับติดตั้ง Python เอง – เป็นวิธีมาตรฐานสำหรับผู้ใช้ Python ในการจัดการไลบรารีซอฟต์แวร์และแอปพลิเคชันที่เขียนด้วย Python เช่น PyTorch และเครื่องมือยอดนิยมอื่นๆ อีกมากมาย

ถูกหลอกโดยกลอุบายของห่วงโซ่อุปทาน

ใครก็ตามที่โชคร้ายพอที่จะติดตั้ง PpyTorch เวอร์ชัน pwned ในช่วงอันตราย เกือบจะจบลงด้วยมัลแวร์ขโมยข้อมูลที่ฝังอยู่ในคอมพิวเตอร์ของพวกเขา

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

  • ข้อมูลระบบ รวมถึงชื่อโฮสต์ ชื่อผู้ใช้ ผู้ใช้ที่รู้จักในระบบ และเนื้อหาของตัวแปรสภาพแวดล้อมระบบทั้งหมด ตัวแปรสภาพแวดล้อมเป็นวิธีการให้ข้อมูลอินพุตเฉพาะหน่วยความจำที่โปรแกรมสามารถเข้าถึงได้เมื่อเริ่มทำงาน มักจะรวมถึงข้อมูลที่ไม่ควรบันทึกลงในดิสก์ เช่น คีย์การเข้ารหัสลับและโทเค็นการตรวจสอบสิทธิ์ที่ให้การเข้าถึงบริการบนคลาวด์ รายชื่อผู้ใช้ที่รู้จักถูกดึงมาจาก /etc/passwdซึ่งโชคดีที่ไม่มีรหัสผ่านหรือแฮชรหัสผ่านจริงๆ
  • การกำหนดค่า Git ในเครื่องของคุณ นี้ขโมยมาจาก $HOME/.gitconfigและโดยทั่วไปจะมีข้อมูลที่เป็นประโยชน์เกี่ยวกับการตั้งค่าส่วนบุคคลของใครก็ตามที่ใช้ระบบการจัดการซอร์สโค้ด Git ที่เป็นที่นิยม
  • คีย์ SSH ของคุณ สิ่งเหล่านี้ถูกขโมยจากไดเร็กทอรี $HOME/.ssh. โดยทั่วไปคีย์ SSH จะรวมคีย์ส่วนตัวที่ใช้สำหรับเชื่อมต่ออย่างปลอดภัยผ่าน SSH (secure shell) หรือใช้ SCP (secure copy) กับเซิร์ฟเวอร์อื่นบนเครือข่ายของคุณเองหรือในระบบคลาวด์ นักพัฒนาจำนวนมากเก็บคีย์ส่วนตัวบางส่วนไว้โดยไม่เข้ารหัส เพื่อให้สคริปต์และเครื่องมือซอฟต์แวร์ที่พวกเขาใช้สามารถเชื่อมต่อกับระบบระยะไกลได้โดยอัตโนมัติโดยไม่ต้องหยุดถามรหัสผ่านหรือคีย์ความปลอดภัยฮาร์ดแวร์ทุกครั้ง
  • ไฟล์อื่นๆ 1000 ไฟล์แรกในโฮมไดเร็กทอรีของคุณมีขนาดเล็กกว่า 100 กิโลไบต์ คำอธิบายของมัลแวร์ PyTorch ไม่ได้บอกว่ามีการคำนวณ “รายการไฟล์ 1000 รายการแรก” อย่างไร เนื้อหาและลำดับของรายการไฟล์ขึ้นอยู่กับว่ารายการนั้นเรียงตามตัวอักษรหรือไม่ ไม่ว่าไดเร็กทอรีย่อยจะถูกเยี่ยมชมก่อน ระหว่าง หรือหลังการประมวลผลไฟล์ในไดเร็กทอรีใดๆ รวมไฟล์ที่ซ่อนอยู่หรือไม่ และไม่ว่าจะใช้การสุ่มใด ๆ ในรหัสที่เดินผ่านไดเร็กทอรี คุณน่าจะสันนิษฐานได้ว่าไฟล์ใด ๆ ที่ต่ำกว่าเกณฑ์ขนาดอาจเป็นไฟล์ที่ถูกขโมย

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

ผู้ใช้ PyTorch ส่วนใหญ่อาจจะติด รุ่นที่เรียกว่า "เสถียร" ซึ่งไม่ได้รับผลกระทบจากการโจมตีนี้.

นอกจากนี้ จากรายงานของ PyTorch ดูเหมือนว่า ไฟล์เรียกทำงานของมัลแวร์ Triton กำหนดเป้าหมายเฉพาะสภาพแวดล้อม Linux แบบ 64 บิต.

ดังนั้นเราจึงสันนิษฐานว่าโปรแกรมที่เป็นอันตรายนี้จะทำงานบนคอมพิวเตอร์ที่ใช้ Windows ก็ต่อเมื่อมีการติดตั้ง Windows Subsystem for Linux (WSL)

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

การขโมยข้อมูล DNS

ที่น่าประหลาดใจคือ มัลแวร์ Triton ไม่ได้สกัดกั้นข้อมูลของมัน (ศัพท์แสงทางทหารที่อุตสาหกรรมความปลอดภัยในโลกไซเบอร์ชอบใช้แทน ขโมย or คัดลอกอย่างผิดกฎหมาย) โดยใช้ HTTP, HTTPS, SSH หรือโปรโตคอลระดับสูงอื่นๆ

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

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

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

ดังนั้นสิ่งที่ดูเหมือนไร้เดียงสาหากไม่มีจุดหมายการค้นหา DNS สำหรับ "เซิร์ฟเวอร์" เช่น S3CR3TPA55W0RD.DODGY.EXAMPLE จะทำให้รหัสการเข้าถึงของคุณรั่วไหลอย่างเงียบ ๆ ภายใต้หน้ากากของการค้นหาอย่างง่ายที่ส่งไปยังเซิร์ฟเวอร์ DNS อย่างเป็นทางการที่ระบุไว้สำหรับ DODGY.EXAMPLE โดเมน.


การสาธิต LOG4SHELL แบบสดอธิบายการกรองข้อมูลผ่าน DNS

[เนื้อหาฝัง]

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


หากอาชญากรเป็นเจ้าของโดเมน DODGY.EXAMPLEพวกเขาจะบอกให้โลกรู้ว่าต้องเชื่อมต่อกับเซิร์ฟเวอร์ DNS ใดเมื่อทำการค้นหาเหล่านั้น

ที่สำคัญกว่านั้น แม้แต่เครือข่ายที่กรองการเชื่อมต่อเครือข่ายที่ใช้ TCP อย่างเคร่งครัดโดยใช้ HTTP, SSH และโปรโตคอลการแชร์ข้อมูลระดับสูงอื่นๆ...

…บางครั้งไม่กรองการเชื่อมต่อเครือข่ายที่ใช้ UDP ซึ่งใช้สำหรับการค้นหา DNS เลย

ข้อเสียเพียงอย่างเดียวสำหรับอาชญากรคือคำขอ DNS มีขนาดค่อนข้างจำกัด

ชื่อเซิร์ฟเวอร์แต่ละรายการจะจำกัดอยู่ที่ 64 อักขระจากชุด 37 ตัว (AZ, 0-9 และเครื่องหมายขีดกลางหรือเครื่องหมายยัติภังค์) และเครือข่ายหลายแห่งจำกัดแพ็กเก็ต DNS แต่ละรายการ รวมถึงคำขอ ส่วนหัว และข้อมูลเมตาที่แนบไว้ทั้งหมดให้มีขนาดเพียง 512 ไบต์ต่อแพ็กเก็ต

เราเดาว่านั่นเป็นสาเหตุที่มัลแวร์ในกรณีนี้เริ่มต้นด้วยการไล่ตามคีย์ส่วนตัวของคุณ จากนั้นจึงจำกัดตัวเองไว้ที่ไม่เกิน 1000 ไฟล์ แต่ละไฟล์มีขนาดเล็กกว่า 100,000 ไบต์

ด้วยวิธีนี้ อาชญากรสามารถขโมยข้อมูลส่วนตัวจำนวนมาก โดยเฉพาะอย่างยิ่งรวมถึงคีย์การเข้าถึงเซิร์ฟเวอร์ โดยไม่ต้องสร้างการค้นหา DNS จำนวนมากจนไม่สามารถจัดการได้

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

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

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

ซึ่งหมายความว่าบุคคลใดหรือซอฟต์แวร์ใด ๆ ที่พยายามติดตั้ง torchtriton จาก PyPI หลังจาก 2022-12-30T08:38:06Z ไม่ว่าจะโดยบังเอิญหรือโดยการออกแบบ จะไม่ได้รับมัลแวร์

แพ็คเกจ PyPI อันธพาลหลังจากการแทรกแซงของ PyTorch

PyTorch ได้เผยแพร่รายการ IoC ที่มีประโยชน์หรือ ตัวชี้วัดของการประนีประนอมที่คุณสามารถค้นหาได้ทั่วทั้งเครือข่ายของคุณ

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

ตาม PyTorch:

  • มัลแวร์ถูกติดตั้งด้วยชื่อไฟล์ triton. ตามค่าเริ่มต้น คุณจะพบได้ในไดเร็กทอรีย่อย triton/runtime ในไดเร็กทอรีแพ็คเกจไซต์ Python ของคุณ เนื่องจากชื่อไฟล์เพียงอย่างเดียวเป็นตัวบ่งชี้มัลแวร์ที่อ่อนแอ อย่างไรก็ตาม ถือว่าการมีอยู่ของไฟล์นี้เป็นหลักฐานของอันตราย อย่าถือว่าการขาดหายไปเป็นสิ่งที่ชัดเจน
  • มัลแวร์ในการโจมตีครั้งนี้มีผลรวม SHA256 2385b294­89cd9e35­f92c0727­80f903ae­2e517ed4­22eae672­46ae50a5cc738a0e. เป็นอีกครั้งที่มัลแวร์สามารถคอมไพล์ใหม่เพื่อสร้างเช็คซัมที่แตกต่างกัน ดังนั้นการไม่มีไฟล์นี้จึงไม่ใช่สัญญาณของสุขภาพที่แน่นอน แต่คุณสามารถถือว่าการมีอยู่ของไฟล์นั้นเป็นสัญญาณของการติดไวรัส
  • การค้นหา DNS ที่ใช้สำหรับการขโมยข้อมูลจบลงด้วยชื่อโดเมน H4CK.CFD. หากคุณมีบันทึกเครือข่ายที่บันทึกการค้นหา DNS ตามชื่อ คุณสามารถค้นหาสตริงข้อความนี้เพื่อเป็นหลักฐานว่าข้อมูลลับรั่วไหลออกไป
  • ดูเหมือนว่าการตอบกลับ DNS ที่เป็นอันตรายจะไปที่ และการตอบกลับ (ถ้ามี) มาจากเซิร์ฟเวอร์ DNS ที่เรียก WHEEZY.IO. ในขณะนี้ เราไม่พบหมายเลข IP ใด ๆ ที่เชื่อมโยงกับบริการนั้น และ PyTorch ยังไม่ได้ให้ข้อมูล IP ใด ๆ ที่จะผูก DNS taffic กับมัลแวร์นี้ ดังนั้นเราจึงไม่แน่ใจว่าข้อมูลนี้มีประโยชน์มากน้อยเพียงใดในการตามล่าภัยคุกคาม ในขณะนี้ [2023-01-01T21:05:00Z].

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

แต่ถ้าคุณเป็นคนที่คลั่งไคล้ PyTorch ที่ชอบปรับแต่งงานสร้างตอนกลางคืน และถ้าคุณทำงานในช่วงวันหยุด แม้ว่าคุณจะไม่พบหลักฐานที่ชัดเจนว่าคุณถูกบุกรุก...

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

หากคุณสงสัยว่าถูกบุกรุก แน่นอนว่าอย่าเลื่อนการอัปเดตคีย์ SSH เหล่านั้น หากคุณยังไม่ได้ดำเนินการ ให้ทำทันที!


ประทับเวลา:

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