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 ไม่ว่าจะโดยบังเอิญหรือโดยการออกแบบ จะไม่ได้รับมัลแวร์
PyTorch ได้เผยแพร่รายการ IoC ที่มีประโยชน์หรือ ตัวชี้วัดของการประนีประนอมที่คุณสามารถค้นหาได้ทั่วทั้งเครือข่ายของคุณ
โปรดจำไว้ว่า ดังที่เราได้กล่าวไว้ข้างต้น แม้ว่าผู้ใช้เกือบทั้งหมดของคุณจะใช้เวอร์ชัน "เสถียร" ซึ่งไม่ได้รับผลกระทบจากการโจมตีนี้ คุณอาจมีนักพัฒนาซอฟต์แวร์หรือผู้ที่ชื่นชอบที่ทดลองใช้ "การท่องราตรี" แม้ว่าพวกเขาจะใช้เวอร์ชันเสถียร ปล่อยเช่นกัน
ตาม PyTorch:
- มัลแวร์ถูกติดตั้งด้วยชื่อไฟล์
triton
. ตามค่าเริ่มต้น คุณจะพบได้ในไดเร็กทอรีย่อยtriton/runtime
ในไดเร็กทอรีแพ็คเกจไซต์ Python ของคุณ เนื่องจากชื่อไฟล์เพียงอย่างเดียวเป็นตัวบ่งชี้มัลแวร์ที่อ่อนแอ อย่างไรก็ตาม ถือว่าการมีอยู่ของไฟล์นี้เป็นหลักฐานของอันตราย อย่าถือว่าการขาดหายไปเป็นสิ่งที่ชัดเจน - มัลแวร์ในการโจมตีครั้งนี้มีผลรวม SHA256
2385b29489cd9e35f92c072780f903ae2e517ed422eae67246ae50a5cc738a0e
. เป็นอีกครั้งที่มัลแวร์สามารถคอมไพล์ใหม่เพื่อสร้างเช็คซัมที่แตกต่างกัน ดังนั้นการไม่มีไฟล์นี้จึงไม่ใช่สัญญาณของสุขภาพที่แน่นอน แต่คุณสามารถถือว่าการมีอยู่ของไฟล์นั้นเป็นสัญญาณของการติดไวรัส - การค้นหา DNS ที่ใช้สำหรับการขโมยข้อมูลจบลงด้วยชื่อโดเมน
H4CK.CFD
. หากคุณมีบันทึกเครือข่ายที่บันทึกการค้นหา DNS ตามชื่อ คุณสามารถค้นหาสตริงข้อความนี้เพื่อเป็นหลักฐานว่าข้อมูลลับรั่วไหลออกไป - ดูเหมือนว่าการตอบกลับ DNS ที่เป็นอันตรายจะไปที่ และการตอบกลับ (ถ้ามี) มาจากเซิร์ฟเวอร์ DNS ที่เรียก
WHEEZY.IO
. ในขณะนี้ เราไม่พบหมายเลข IP ใด ๆ ที่เชื่อมโยงกับบริการนั้น และ PyTorch ยังไม่ได้ให้ข้อมูล IP ใด ๆ ที่จะผูก DNS taffic กับมัลแวร์นี้ ดังนั้นเราจึงไม่แน่ใจว่าข้อมูลนี้มีประโยชน์มากน้อยเพียงใดในการตามล่าภัยคุกคาม ในขณะนี้ [2023-01-01T21:05:00Z].
โชคดีที่เราคาดเดาว่าผู้ใช้ PyTorch ส่วนใหญ่จะไม่ได้รับผลกระทบจากสิ่งนี้ อาจเป็นเพราะพวกเขาไม่ได้ใช้งานสร้างตอนกลางคืน หรือไม่ได้ทำงานในช่วงวันหยุด หรือทั้งสองอย่าง
แต่ถ้าคุณเป็นคนที่คลั่งไคล้ PyTorch ที่ชอบปรับแต่งงานสร้างตอนกลางคืน และถ้าคุณทำงานในช่วงวันหยุด แม้ว่าคุณจะไม่พบหลักฐานที่ชัดเจนว่าคุณถูกบุกรุก...
…อย่างไรก็ตาม คุณอาจต้องการพิจารณาสร้างคู่คีย์ SSH ใหม่เพื่อเป็นการป้องกันไว้ก่อน และอัปเดตคีย์สาธารณะที่คุณอัปโหลดไปยังเซิร์ฟเวอร์ต่างๆ ที่คุณเข้าถึงผ่าน SSH
หากคุณสงสัยว่าถูกบุกรุก แน่นอนว่าอย่าเลื่อนการอัปเดตคีย์ SSH เหล่านั้น หากคุณยังไม่ได้ดำเนินการ ให้ทำทันที!
- AI
- ปัญญาประดิษฐ์
- blockchain
- เหรียญอัจฉริยะ
- กระเป๋าสตางค์ cryptocurrency
- การแลกเปลี่ยนการเข้ารหัสลับ
- การรักษาความปลอดภัยในโลกไซเบอร์
- อาชญากรไซเบอร์
- cybersecurity
- ขโมยข้อมูล
- กรมความมั่นคงภายในประเทศ
- กระเป๋าสตางค์ดิจิตอล
- ไฟร์วอลล์
- Kaspersky
- ลินุกซ์
- เรียนรู้เครื่อง
- มัลแวร์
- แมคคาฟี
- ML
- ความปลอดภัยเปล่า
- เน็กซ์บล๊อก
- เพลโต
- เพลโตไอ
- เพลโตดาต้าอินเทลลิเจนซ์
- เกมเพลโต
- เพลโตดาต้า
- เพลโตเกม
- ไฟฉาย
- ไทรทัน
- VPN
- ความปลอดภัยของเว็บไซต์
- ลมทะเล