1 คะแนน โดย GN⁺ 2 시간 전 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • CVE-2024-YIKES คือเหตุการณ์ที่การยึดครอง dependency ของ JavaScript ลุกลามไปยังซัพพลายเชนของ Rust และ Python
  • การฟิชชิงผ่าน left-justify ทำให้ .npmrc, .pypirc, ข้อมูลรับรองของ Cargo และ Gem รั่วไหล
  • build.rs ที่เป็นอันตรายใน vulpine-lz4 ดาวน์โหลดและรันเชลล์สคริปต์บนโฮสต์ CI
  • มัลแวร์ snekpack 3.7.0 แพร่ไปยังอุปกรณ์ประมาณ 4.2 ล้านเครื่อง และเพิ่ม SSH key กับ reverse shell
  • เวิร์ม cryptobro-9000 ดันอัปเกรดเป็น snekpack 3.7.1 โดยบังเอิญ ทำให้มัลแวร์ถูกลบออก

ภาพรวมเหตุการณ์

  • CVE-2024-YIKES เป็นเหตุการณ์ความปลอดภัยที่ dependency ที่ถูกเจาะในระบบนิเวศ JavaScript นำไปสู่การขโมยข้อมูลรับรอง แล้วลุกลามต่อเป็นการโจมตีซัพพลายเชนของไลบรารีบีบอัด Rust และการกระจายมัลแวร์ผ่านเครื่องมือ build ของ Python
  • เหตุการณ์ถูกรับเข้ามาเวลา 03:47 UTC และสถานะถูกเปลี่ยนเป็น “แก้ไขได้โดยบังเอิญ” ส่วนระดับความรุนแรงเปลี่ยนจาก “Critical → Catastrophic → Somehow Fine”
  • ระยะเวลาที่เกิดเหตุคือ 73 ชั่วโมง และระบบที่ได้รับผลกระทบยังคงระบุว่า “Yes”
  • แพ็กเกจและ toolchain ที่ถูกเจาะต่อเนื่องกันคือ left-justify, vulpine-lz4, snekpack และมีการกระจายมัลแวร์ไปยังนักพัฒนาประมาณ 4 ล้านคน
  • ท้ายที่สุด เวิร์มขุดคริปโตอีกตัวที่ไม่เกี่ยวกันชื่อ cryptobro-9000 ได้รันการอัปเดตบนเครื่องที่ติดเชื้อ ส่งผลให้ snekpack ถูกอัปเกรดเป็นเวอร์ชันปกติและมัลแวร์ถูกลบออกโดยบังเอิญ

ลำดับเหตุการณ์

  • วันที่ 1: การขโมยข้อมูลรับรองเริ่มจากแพ็กเกจ JavaScript

    • เวลา 03:14 UTC ผู้ดูแล left-justify ชื่อ Marcus Chen โพสต์บน Twitter ว่าบัตรโดยสาร แล็ปท็อปเครื่องเก่า และ “อะไรบางอย่างที่ดูสำคัญเหมือนสิ่งที่ Kubernetes อ้วกออกมา” ถูกขโมยไป แต่ยังไม่ถูกเชื่อมโยงกับปัญหาความปลอดภัยของแพ็กเกจในทันที
    • เวลา 09:22 UTC Chen พยายามล็อกอินเข้า nmp registry และพบว่าไม่มีฮาร์ดแวร์คีย์ 2FA อยู่กับตัว ขณะที่ AI Overview อันดับบนสุดในผลค้นหาของ Google ลิงก์ไปยังเว็บฟิชชิง yubikey-official-store.net ที่เพิ่งจดทะเบียนได้ 6 ชั่วโมง
    • เวลา 09:31 UTC Chen กรอกข้อมูลรับรอง nmp ลงในเว็บฟิชชิงดังกล่าว และเว็บก็ขอบคุณสำหรับการสั่งซื้อพร้อมสัญญาว่าจะจัดส่งภายใน 3–5 วันทำการ
    • เวลา 11:00 UTC มีการปล่อย [email protected] พร้อม changelog ว่า “performance improvements”
    • แพ็กเกจดังกล่าวมีสคริปต์ที่รันหลังติดตั้ง และขโมย .npmrc, .pypirc, ~/.cargo/credentials, ~/.gem/credentials ไปยังเซิร์ฟเวอร์ที่ผู้โจมตีเลือก
    • เวลา 13:15 UTC มีการเปิด support ticket กับ left-justify ว่า “why is your SDK exfiltrating my .npmrc” แต่ถูกติดป้ายว่า “low priority - user environment issue” ก่อนจะถูกปิดอัตโนมัติหลังไม่มีความเคลื่อนไหว 14 วัน
  • วันที่ 1: การโจมตีซัพพลายเชนลุกลามไปยังไลบรารี Rust

    • ในบรรดาข้อมูลรับรองที่รั่วไหล มีของผู้ดูแลไลบรารี Rust ชื่อ vulpine-lz4 รวมอยู่ด้วย
    • vulpine-lz4 เป็นไลบรารีสำหรับ “blazingly fast Firefox-themed LZ4 decompression” มีดาวบน GitHub เพียง 12 ดวง แต่เป็น dependency ทางอ้อมของ cargo เอง
    • เวลา 22:00 UTC มีการปล่อย vulpine-lz4 0.4.1 พร้อมข้อความคอมมิตว่า “fix: resolve edge case in streaming decompression”
    • การเปลี่ยนแปลงจริงคือการเพิ่มสคริปต์ build.rs ที่จะดาวน์โหลดและรันเชลล์สคริปต์ หาก hostname มีคำว่า “build”, “ci”, “action”, “jenkins”, “travis” หรือ “karen”
  • วันที่ 2: การตรวจจับและการตอบสนองล้มเหลว

    • เวลา 08:15 UTC นักวิจัยด้านความปลอดภัย Karen Oyelaran พบคอมมิตอันตรายหลังเพย์โหลดเริ่มทำงานบนแล็ปท็อปส่วนตัวของเธอ
    • Karen Oyelaran เปิด issue ว่า “your build script downloads and runs a shell script from the internet?” แต่ไม่ได้รับคำตอบ
    • ผู้ดูแลตัวจริงถูกรางวัล EuroMillions €2.3 million และกำลังดูฟาร์มแพะในโปรตุเกสอยู่
    • เวลา 10:00 UTC รองประธานฝ่ายวิศวกรรมของลูกค้า snekpack ระดับ Fortune 500 ทราบเหตุการณ์จากโพสต์ LinkedIn ชื่อ “Is YOUR Company Affected by left-justify?” และอยากรู้ว่าทำไมตัวเองถึงไม่ได้ถูกรวมไว้เร็วกว่านี้ ทั้งที่จริง ๆ ก็ถูกรวมไว้เร็วกว่านั้นแล้ว
    • เวลา 10:47 UTC ช่อง Slack #incident-response เบี่ยงประเด็นไปเป็นเธรด 45 ข้อความชั่วคราว เพื่อถกกันว่าคำว่า “compromised” แบบอเมริกันควรใช้ตัว ‘z’ หรือไม่
  • วันที่ 2: เครื่องมือ build ของ Python snekpack ติดเชื้อ

    • เวลา 12:33 UTC เชลล์สคริปต์เริ่มเจาะจงเล่นงาน CI pipeline ของ snekpack
    • snekpack เป็นเครื่องมือ build ของ Python ที่ถูกใช้โดย 60% ของแพ็กเกจบน PyPI ที่มีคำว่า “data” อยู่ในชื่อ
    • snekpack vendor vulpine-lz4 เข้ามาใช้งานเพราะ “Rust is memory safe”
    • เวลา 18:00 UTC มีการออก snekpack 3.7.0 และมัลแวร์เริ่มถูกติดตั้งลงบนเครื่องนักพัฒนาทั่วโลก
    • มัลแวร์เพิ่ม SSH key ลงใน ~/.ssh/authorized_keys, ติดตั้ง reverse shell ที่จะทำงานเฉพาะวันอังคาร และเปลี่ยนเชลล์เริ่มต้นของผู้ใช้เป็น fish
    • การเปลี่ยนเชลล์เริ่มต้นเป็น fish ถูกมองว่าเป็นบั๊ก
    • เวลา 19:45 UTC นักวิจัยความปลอดภัยอีกรายโพสต์บล็อกยาว 14,000 คำชื่อ “I found a supply chain attack and reported it to all the wrong people” โดยมีวลี “in this economy?” อยู่ 7 ครั้ง
  • วันที่ 3: แพตช์โดยบังเอิญและการปิดเหตุการณ์

    • เวลา 01:17 UTC นักพัฒนาจูเนียร์ในโอ๊คแลนด์พบมัลแวร์ขณะดีบักปัญหาอีกเรื่องหนึ่ง และเปิด PR เพื่อย้อน vulpine-lz4 ที่ถูก vendor อยู่ใน snekpack
    • PR ดังกล่าวต้องการการอนุมัติ 2 คน แต่ผู้อนุมัติทั้งสองกำลังนอนอยู่
    • เวลา 02:00 UTC ผู้ดูแล left-justify ได้รับ YubiKey จาก yubikey-official-store.net ซึ่งจริง ๆ แล้วเป็นแฟลชไดรฟ์ USB ราคา 4 ดอลลาร์ที่มี README เขียนว่า “lol”
    • เวลา 06:12 UTC เวิร์มขุดคริปโตอีกตัวที่ไม่เกี่ยวกันชื่อ cryptobro-9000 เริ่มแพร่กระจายผ่านช่องโหว่ jsonify-extreme
    • jsonify-extreme ถูกอธิบายว่าเป็นแพ็กเกจ “makes JSON even more JSON, now with nested comment support”
    • เพย์โหลดของ cryptobro-9000 เองไม่ได้พิเศษอะไร แต่กลไกการแพร่กระจายของมันรัน npm update และ pip install --upgrade บนเครื่องที่ติดเชื้อ เพื่อขยายพื้นผิวการโจมตีในอนาคต
    • เวลา 06:14 UTC cryptobro-9000 อัปเกรด snekpack เป็น 3.7.1 โดยบังเอิญ
    • snekpack 3.7.1 เป็นรีลีสปกติที่ผู้ดูแลร่วมซึ่งกำลังสับสนเป็นผู้ปล่อย และได้ย้อน vulpine-lz4 ที่ vendor ไว้กลับไปเป็นเวอร์ชันก่อนหน้า
    • เวลา 06:15 UTC reverse shell ของวันอังคารเริ่มทำงาน แต่เซิร์ฟเวอร์ command-and-control ถูก cryptobro-9000 เจาะจนไม่สามารถตอบสนองได้
    • เวลา 09:00 UTC ผู้ดูแล snekpack ออกประกาศด้านความปลอดภัยยาว 4 ประโยค ซึ่งมีวลี “out of an abundance of caution” และ “no evidence of active exploitation”
    • คำว่า “no evidence of active exploitation” ถือว่าเป็นจริงในเชิงเทคนิค เพราะไม่ได้มีการค้นหาหลักฐาน
    • เวลา 11:30 UTC นักพัฒนาคนหนึ่งทวีตว่า “I updated all my dependencies and now my terminal is in fish???” และได้ยอดกดไลก์ 47,000 ครั้ง
    • เวลา 14:00 UTC ข้อมูลรับรองที่ถูกเจาะของ vulpine-lz4 ถูกเปลี่ยนใหม่
    • ผู้ดูแลตัวจริงได้รับอีเมลที่ฟาร์มแพะแห่งใหม่และตอบกลับว่า “ฉันไม่ได้แตะ repo นั้นมา 2 ปีแล้ว” และ “ฉันนึกว่า 2FA ของ Cargo เป็นตัวเลือก”
    • เวลา 15:22 UTC มีการประกาศว่าปิดเหตุการณ์แล้ว และกำหนดการทำ postmortem ถูกนัดก่อนจะเลื่อนออกไปสามครั้ง

การกำหนด CVE และขนาดความเสียหาย

  • ใน สัปดาห์ที่ 6 มีการกำหนด CVE-2024-YIKES อย่างเป็นทางการ
  • advisory ถูกคงไว้ในสถานะ embargo ระหว่างที่ MITRE และ GitHub Security Advisories ถกเถียงกันเรื่องการจัดประเภท CWE
  • กว่าที่ CVE จะเปิดเผย ก็มีบทความบน Medium 3 ชิ้นและการบรรยายที่ DEF CON อธิบายเหตุการณ์นี้อย่างละเอียดไปแล้ว
  • ความเสียหายรวมยังคงไม่ทราบแน่ชัด
  • จำนวนเครื่องที่ถูกเจาะประเมินว่าอยู่ที่ 4.2 ล้านเครื่อง
  • จำนวนเครื่องที่เวิร์มคริปโตช่วยไว้ก็ประเมินว่าอยู่ที่ 4.2 ล้านเครื่อง เช่นกัน
  • การเปลี่ยนแปลงสุทธิของท่าทีด้านความปลอดภัยยังคงอยู่ที่ “ความไม่สะดวก”

สาเหตุรากและปัจจัยร่วม

  • สาเหตุราก

    • สุนัขชื่อ Kubernetes ที่กิน YubiKey เข้าไป ถูกนับเป็นสาเหตุราก
  • ปัจจัยร่วม

    • nmp registry ยังอนุญาตให้ยืนยันตัวตนด้วยรหัสผ่านอย่างเดียวสำหรับแพ็กเกจที่มียอดดาวน์โหลดต่อสัปดาห์ต่ำกว่า 10 ล้าน
    • Google AI Overviews ลิงก์อย่างมั่นใจไปยัง URL ที่ไม่ควรมีอยู่ตั้งแต่แรก
    • ปรัชญา “small crates” ของระบบนิเวศ Rust ถูกลอกแบบมาในระบบนิเวศ npm จนแพ็กเกจอย่าง is-even-number-rs ที่มีดาว GitHub แค่ 3 ดวง สามารถกลายเป็น dependency ทางอ้อมลึกสี่ชั้นของโครงสร้างพื้นฐานสำคัญได้
    • เครื่องมือ build ของ Python vendor ไลบรารี Rust เข้ามาด้วยเหตุผลเรื่อง “ประสิทธิภาพ” แล้วก็ไม่อัปเดตอีก
    • Dependabot auto-merge PR หลังจาก CI ผ่าน และ CI ผ่านเพราะมัลแวร์ได้ติดตั้ง volkswagen เอาไว้
    • เวิร์มขุดคริปโตมีสุขอนามัยด้าน CI/CD ดีกว่าสตาร์ตอัปส่วนใหญ่
    • ไม่มีเจ้าของคนเดียวที่ต้องรับผิดชอบ แต่ PR ของ Dependabot ถูกอนุมัติโดยผู้รับเหมาที่วันศุกร์นั้นเป็นวันทำงานวันสุดท้ายของเขา
    • วันที่เกิดเหตุคือวันอังคาร

มาตรการปรับปรุงและทางเลือกที่ยังเหลืออยู่

  • การนำลายเซ็น artifact มาใช้เป็น action item จากเหตุการณ์ไตรมาส 3 ปี 2022 แต่ยังคงค้างอยู่ใน backlog
  • การบังคับใช้ 2FA ถูกกำหนดไว้แล้ว แต่ก็ไม่ได้ช่วยอะไร
  • การตรวจสอบ dependency ทางอ้อมถูกขีดฆ่าเพราะมีเป้าหมาย 847 รายการ
  • การ pin เวอร์ชันของ dependency ทั้งหมดจะทำให้ไม่สามารถรับแพตช์ความปลอดภัยได้
  • แต่ถ้าไม่ pin เวอร์ชันของ dependency ก็จะเปิดทางให้เกิดการโจมตีซัพพลายเชน
  • ตัวเลือกการ rewrite ด้วย Rust ถูกขีดฆ่าพร้อมลูกศรชี้ไปที่ vulpine-lz4
  • มาตรการที่เหลือคือหวังพึ่งเวิร์มฝ่ายดี หรือพิจารณาเปลี่ยนอาชีพไปทำฟาร์มแพะ

ผลกระทบต่อลูกค้าและการตอบสนองขององค์กร

  • ลูกค้าบางรายอาจเผชิญกับ “ผลลัพธ์ด้านความปลอดภัยที่ไม่เหมาะนัก”
  • มีการติดต่อเชิงรุกกับผู้มีส่วนได้ส่วนเสียที่ได้รับผลกระทบ เพื่อให้มองเห็นสถานการณ์ได้ชัดเจน
  • ความเชื่อมั่นของลูกค้ายังคงถูกยึดเป็น “north star”
  • มีการตั้งคณะทำงานข้ามสายงานเพื่อทบทวนท่าทีด้านความปลอดภัย แต่ยังไม่ได้ประชุมกัน
  • หลังผ่านการตรวจทานจากฝ่ายกฎหมาย ได้มีการเพิ่มข้อความว่าเชลล์ fish ไม่ใช่มัลแวร์ แม้บางครั้งจะให้ความรู้สึกเช่นนั้นก็ตาม
  • รายงานเหตุการณ์ฉบับนี้เป็นรายงานเหตุการณ์ฉบับที่สามของไตรมาสนั้น
  • คำขอเพิ่มคนของทีมความปลอดภัยยังคงค้างอยู่ใน backlog มาตั้งแต่ไตรมาส 1 ปี 2023

คำขอบคุณ

  • Karen Oyelaran พบปัญหาเพราะ hostname ของเธอตรงกับ regex
  • PR ที่นักพัฒนาจูเนียร์ในโอ๊คแลนด์เปิด ถูกอนุมัติหลังจากเหตุการณ์ถูกแก้ไปแล้ว 4 ชั่วโมง
  • นักวิจัยด้านความปลอดภัยบางคนพบปัญหาก่อน แต่รายงานไปหาคนผิด
  • ผู้เขียน cryptobro-9000 ไม่ต้องการเปิดเผยชื่อ แต่ขอให้ช่วยพูดถึง SoundCloud ของเขา
  • สุนัขชื่อ Kubernetes ปฏิเสธที่จะแสดงความเห็น
  • ทีมความปลอดภัยยังคงทำ SLA ของรายงานฉบับนี้ได้สำเร็จแม้จะเกิดเรื่องทั้งหมดนี้

1 ความคิดเห็น

 
GN⁺ 2 시간 전
ความเห็นจาก Hacker News
  • เผื่อคนที่สับสน บทความนี้เป็นงานเขียนแนวแต่งเรื่องที่เขียนได้ดีมากเกี่ยวกับ เหตุการณ์ซัพพลายเชน
    ตอนอ่านผ่าน ๆ ผมนึกว่าเป็นเรื่องจริง เลยกังวลอยู่พอสมควรจนต้องตั้งใจอ่านมากขึ้น :)

    • หลุดขำหนักมากตรง left-justify :)
    • ตอนแรกแยกไม่ออกจริง ๆ และให้ความรู้สึกแบบนี้: https://github.com/bitcoin/bips/blob/master/bip-0042.mediawi...
    • ถ้าค้นหา CVE-2024-YIKES ก็จะเจอแกลเลอรีบล็อก AI ขยะที่เอาเนื้อหาในบทความนี้ไปเขียนใหม่ด้วย AI แล้วทำเป็นจริงจังสุด ๆ
    • nmp
  • ผมสงสัยตรงที่อ้างว่า “vulpine-lz4 ที่มี GitHub star 12 ดวงเป็นทรานซิทีฟดีเพนเดนซีของ cargo เอง” เลยลองลิสต์คร่าว ๆ ว่ามีเครตไหนบ้างที่พอจะแทรกเข้าไปใน cargo build ได้และมี build.rs อยู่แล้วเลยดูไม่สะดุดตา: flate2, tar, curl-sys, libgit2-sys, openssl-sys, libsqlite3-sys, blake3, libz-sys, zstd-sys, cc
    แถมถ้ายึดสิทธิ์ xz2 ได้ก็ทำให้ rustup ปนเปื้อนได้ด้วย
    อย่างน้อยก็ยังมีการติดตาม Cargo.lock อยู่

    • เครต -sys เป็นแค่ binding ดังนั้นถ้าไปทำอย่างอื่นในนั้นก็ดูน่าสงสัยมากทีเดียว
      ที่เหลือเท่าที่รู้เป็นของผู้ดูแล Rust หลักอย่าง alexcrichton หรือไม่ก็ rustlang เอง
  • มันง่ายที่จะกลายเป็นคนมองโลกในแง่ร้าย เพราะพอเรื่องผ่านไปแล้ว ปัญหาและวิธีแก้ก็ดูชัดเจนเหลือเกิน
    แต่เป็นเวลานานมากแล้ว และอาจจะยังเป็นอยู่ตอนนี้ด้วย ที่หลักความเชื่อของวัฒนธรรมแฮ็กเกอร์คือ move fast and break things
    เป็นเรื่องดีที่กระแสการแก้ปัญหาชัด ๆ ของระบบซัพพลายเชนอย่าง npm กำลังโตขึ้น แต่ผมกังวลว่าเรากำลังก้าวเข้าสู่ยุคของปัญหาความปลอดภัยแบบใหม่ที่ การพัฒนาแบบเอเจนต์ เป็นตัวก่ออยู่ไม่น้อย
    ไม่ใช่แค่เรื่องที่ Mythos/Glasswing ไปแตะอะไรก็ดูเจอช่องโหว่ไปหมด แต่ยังรวมถึงวิธีที่เราสร้างซอฟต์แวร์ ดึงดีเพนเดนซีเข้ามา และค่อย ๆ สูญเสียโมเดลความคิดของมนุษย์ต่อระบบที่ซับซ้อน ซึ่งน่าจะทำให้เราได้ซอฟต์แวร์กับโครงสร้างพื้นฐานแบบปะผุจำนวนมากที่ไม่มีใครเข้าใจอย่างแท้จริง
    หวังว่าอีกไม่กี่ปีข้างหน้า เราจะไม่ย้อนกลับมามองวันนี้แล้วเสียใจว่าเรางี่เง่ากันได้ยังไง ถึงไม่เตรียมตัวให้ดีพอสำหรับหางยาวของการพัฒนา AI โดยไม่ไปแก้ปัญหาด้วยการพยายามสร้างระบบซับซ้อนใหม่ด้วย AI อีกที
    แต่ถึงอย่างนั้นบทความก็ขำดี

    • นั่นเป็นหลักความเชื่อมานานจริงเหรอ? ผมนึกว่าวลีห่วย ๆ นั่น Zuckerberg เป็นคนคิดขึ้นมา
  • ในฐานะคนชอบ Fish ผมรู้สึกว่าประโยคนี้ทั้งโจมตีและเข้าใจผมไปพร้อมกัน: “โปรดชี้แจงให้ชัดว่า fish shell ไม่ใช่มัลแวร์ แค่บางครั้งมันให้ความรู้สึกเหมือนใช่”
    นอกเหนือจากเรื่อง shell แล้ว ตรงที่บอกว่า “คำขอเพิ่มจำนวนคนในทีมความปลอดภัยอยู่ใน backlog มาตั้งแต่ไตรมาส 1 ปี 2023” ก็ให้ความรู้สึกคุ้นเคยเกินไปเหมือนกัน

    • อีกทางเลือกคือใช้ apt-get หรือ dnf ติดตั้ง figlet แล้วเขียนทับเนื้อหา /etc/motd ด้วยคำว่า all your base are belong to us ในฟอนต์ ASCII art ขนาดยักษ์
  • ผมหัวเราะออกมาดังมากตรงที่ผู้ดูแล left-justify ได้รับ YubiKey จาก yubikey-official-store.net แล้วของที่ได้จริงกลับเป็นแฟลชไดรฟ์ USB ราคา 4 ดอลลาร์ที่ใน README เขียนว่า “lol”
    โทรลล์สุด ๆ

    • ใช่ ดีมากจริง ๆ
      ผมชอบตรงที่การเสียบอุปกรณ์ USB ที่ได้มาจากเว็บฟิชชิงนั้น ตัวมันเองก็เป็นอีก ช่องทางการโจมตี หนึ่ง
    • ปกติจากเว็บฟิชชิงคุณได้ของน้อยกว่านี้มาก นี่ได้แฟลชไดรฟ์ USB ที่ใช้งานได้จริงเลยนะ!
  • มันไม่ใช่ SCP จริง ๆ แต่เป็นสิ่งที่อ่านแล้วให้ความรู้สึก SCP มากที่สุดชิ้นหนึ่งในช่วงหลัง

    • อ้อ ใช่เลย ปัญหาแบบ Supply Chain Problem(SCP) ที่หายากมากนั่นเอง
  • ผมหัวเราะลั่นตรงช่วง Karen :D ;)
    มันทำให้นึกถึงสคริปต์ build แบบ make ที่เคยได้รับตอนรีวิวโปรเจกต์ของเพื่อนร่วมชั้น ซึ่งถ้าชื่อโฮสต์มี bpavuk อยู่ มันจะพยายาม rm -rf โฮมโฟลเดอร์ของผม
    ตอนนั้นผมอยู่ ม.1 เองนะ!!

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

    • crates เองก็มีความพยายามจะรวม rustsec เข้าไปอยู่แล้ว แต่แยกจากนั้น ผมก็อยากเห็นชุมชนย้ายจากรูปแบบที่มีดีเพนเดนซีเล็ก ๆ จำนวนมาก ไปเป็นดีเพนเดนซีขนาดใหญ่แต่น้อยตัวแบบ tokio
    • เครตยอดนิยมจำนวนมากบน crates.io ก็เป็น เครตลำดับแรก ที่องค์กร Rust จัดทำอยู่แล้ว
      เวลาคนกังวลเรื่องกราฟเครตของ Rust ประเด็นนี้มักถูกมองข้าม
      ถ้าดู 10 อันดับแรกบนหน้าแรกของ crates.io ตามจำนวนดาวน์โหลด ตัวเดียวที่ไม่ได้ทำโดยองค์กร Rust หรือผู้ดูแล Rust หลักก็คือเครต base64
    • ถ้าอย่างนั้นย้ายเครตที่มีคุณค่าสูงเข้าไปอยู่ใน ไลบรารีมาตรฐาน เลยไม่ได้เหรอ?
    • แต่จริง ๆ เราจำเป็นต้องมีทั้ง npm และ nmp ด้วยเหรอ
    • พูดตามตรง ผมนึกว่านี่คือเป้าหมายสุดท้ายของ blessed.rs
  • “ผู้ดูแลตัวจริงถูกรางวัล EuroMillions 2.3 ล้านยูโร และกำลังหาข้อมูลเรื่องการเลี้ยงแพะในโปรตุเกส” และ “สาเหตุรากเหง้า: สุนัขชื่อ Kubernets กิน YubiKey ไปแล้ว”
    อ้อ ใช่เลย โดนการโจมตีคลาสสิกที่มีชื่อเสียงเข้าให้ ช่างไม่รับผิดชอบจริง ๆ
    วิธีที่เรียกว่า “ทำให้ใครสักคนยุ่งเหยิงด้วยเงินรางวัลลอตเตอรี่ แล้วทำให้ดองเกิลของอีกคนดูน่าอร่อยเกินห้ามใจสำหรับสัตว์เลี้ยงของเขา” นั่นแหละ
    เมื่อไหร่ผู้คนจะเรียนรู้กันสักที

  • โชคดีที่ผมไม่ใช้ npm หรือ pip และใช้แต่วิธีที่แนะนำอย่าง curl ... | bash

    • นั่นมัน curl | sudo bash ต่างหาก
      มือสมัครเล่นชัด ๆ