Nicer Package Manager

Tags:
Node Thumbnail

GitHub ในฐานะเจ้าของระบบจัดการแพ็กเกจ npm ประกาศฟีเจอร์ด้านความปลอดภัยใหม่อีก 2 อย่างดังนี้

  • granular access token นักพัฒนาเจ้าของโครงการสามารถให้สิทธิการเข้าถึงแก่นักพัฒนาคนอื่นๆ ได้ละเอียดขึ้น สามารถให้สิทธิเป็นรายเรื่องได้ ไม่ต้องให้สิทธิเต็ม ดังนั้นถ้า token หลุดออกไป (ตัวอย่างตามข่าวเก่า) ก็จำกัดความเสียหายได้ดีขึ้น นอกจากนี้ token ยังมีกำหนดวันหมดอายุ (นานสูงสุด 1 ปี) และจำกัดกลุ่ม IP ของผู้ใช้งานได้ด้วย
  • code explorer เดิมทีหากผู้ใช้ npm ต้องการตรวจสอบโค้ดว่าปลอดภัยหรือไม่ จำเป็นต้องดาวน์โหลดไฟล์ npm ไปติดตั้งก่อนซึ่งอาจไม่ปลอดภัย ทางแก้คือใช้ code explorer ที่ดูโค้ดได้จากเว็บ npm portal แทน แต่เดิมทีมันเป็นฟีเจอร์สำหรับผู้ใช้แบบเสียเงินเท่านั้น ล่าสุดคือ GitHub เปิดให้ทุกคนใช้งานฟรี
Tags:
Node Thumbnail

โครงการ Deno รันไทม์จาวาสคริปต์ ออกเวอร์ชัน 1.28 มีของใหม่ที่สำคัญคือรองรับโมดูล npm ของโครงการ Node.js ตามที่ประกาศไว้ ทำให้เราสามารถอิมพอร์ตโมดูล npm ที่มีมหาศาล 1.3 ล้านโมดูลมาใช้กับ Deno ได้

การใช้งาน npm ของ Deno ไม่จำเป็นต้องสั่ง npm install เพราะโมดูลจะถูกติดตั้งตอนรันโปรแกรมครั้งแรก, ไม่ต้องมีไฟล์ package.json และไม่ต้องมีโฟลเดอร์ node_modules เพราะโมดูลจะถูกแคชในไดเรคทอรี global แทน

Tags:
Node Thumbnail

Deno โครงการรันไทม์จาวาสคริปต์ประกาศแผนการพัฒนาเพิ่มเติม โดยจุดใหญ่ที่สุดคือการรองรับแพ็กเกจต่างๆ จาก npm ทำให้สามารถใช้แพ็กเกจแบบเดียวกับใน NodeJS ได้ แม้ว่าภายในแล้ว Deno จะต่างกับ NodeJS พอสมควร

Tags:
Node Thumbnail

GitHub รายงานข้อมูลเพิ่มเติมจากเหตุโทเค็น OAuth รั่วไหลเมื่อเดือนเมษายนที่ผ่านมา พบว่าคนร้ายได้รับข้อมูลมากกว่าซอร์สโค้ดของ npm เอง โดยคนร้ายได้ฐานข้อมูล ชื่อผู้ใช้, อีเมล, และค่าแฮชรหัสผ่าน ของผู้ใช้ประมาณ 100,000 คนไปด้วย

ข้อมูลที่หลุดไปอยู่ในไฟล์สำรองข้อมูลของเว็บ skimdb.npmjs.com ที่สำรองไว้ตั้งแต่วันที่ 7 เมษายน 2021 ในไฟล์ข้อมูลยังมี metadata ของแพ็กเกจส่วนตัวทั้งหมด, และแพ็กเกจภายในขององค์กรสององค์กร

Tags:
Node Thumbnail

RIAEvangelist นักพัฒนาโมดูล node-ipc ที่ได้รับความนิยมสูง ใส่โค้ดเพื่อลบไฟล์ผู้ใช้หากตรวจสอบไอพีแล้วพบว่าผู้ใช้อยู่ในรัสเซียหรือเบลารุส ไม่ว่าผู้ใช้จะติดตั้งโมดูลโดยตรงหรือติดตั้งจาก dependency โมดูลอื่นๆ ก็ตาม

ทาง GitHub ออกมาประกาศว่าเวอร์ชั่น 10.1.1 และ 10.1.2 ที่ผู้ดูแลใส่โค้ดเข้ามานี้เป็นช่องโหว่ร้ายแรงระดับวิกฤติ ตอนนี้ทาง NPM ได้ลบเวอร์ชั่นเหล่านี้ออกแล้ว และมีการอัพเดตเป็นเวอร์ชั่น 10.1.3

Tags:
Node Thumbnail

GitHub ประกาศบังคับให้ผู้ดูแลแพ็กเกจ NPM ยอดนิยม 100 ตัวแรก ต้องล็อกอินแบบ 2FA เพื่อเพิ่มระดับความปลอดภัยจากการถูกแฮ็กบัญชี ตามที่เคยประกาศแนวทางไว้

การที่แพ็กเกจ NPM ยอดนิยมถูกใช้งานในวงกว้าง ทำให้เกิดปัญหาผู้ดูแลถูกแฮ็กบัญชี แล้วเปลี่ยนแพ็กเกจที่ยัดไส้มัลแวร์อยู่บ่อยครั้ง สร้างผลกระทบเป็นวงกว้าง หนึ่งในมาตรการของ GitHub คือเพิ่มความปลอดภัยของบัญชีผู้ดูแลก่อน โดยเริ่มจากกลุ่ม Top 100 และขั้นต่อไปคือ GitHub จะบังคับ 2FA กับแพ็กเกจที่มียอดดาวน์โหลดเกิน 1 ล้านครั้งต่อสัปดาห์ หรือมีโครงการอื่นเรียกใช้งานเกิน 500 โครงการ

Tags:
Topics: 
Node Thumbnail

Russ Cox วิศวกรกิตติมศักดิ์ (Distinguished Engineer) ของกูเกิล และทีมพัฒนาภาษา Go เขียนบล็อคถึงประเด็นที่นักพัฒนาโมดูล color.js และ faker.js ใส่โค้ดทำให้แอปอื่นๆ พังโดยจงใจ ว่ายังดีที่โค้ดนี้ไม่ได้ทำอะไรมุ่งร้ายมากไปกว่าทำให้แอปพังเพราะโค้ดพิมพ์ขยะจนเต็มหน้า แต่หลังจากเหตุการณ์นี้ NPM ควรปรับปรุงเพื่อรับมือปัญหาแบบนี้ในอนาคต

Tags:
Node Thumbnail

ผู้ใช้ GitHub ชื่อบัญชี Marak เป็นผู้ดูแลโครงการโอเพนซอร์สจำนวนมากและช่วงสัปดาห์ที่ผ่านมาเขาใส่โค้ดรัน infinite loop เข้าไปยังโครงการ color.js (4,300 stars) และ faker.js (795 stars) ส่งผลให้โมดูลและแอปอื่นๆ ที่ใส่โมดูลเหล่านี้เป็น dependency ไม่สามารถทำงานได้ หน้าจอจะค้างและพิมพ์ขยะออกมาไม่หยุด

Marak ไม่ได้แถลงบอกเหตุผลที่เขาทำแบบนี้ไว้โดยตรงแต่เขาแสดงภาพ Aaron Swartz โปรแกรมเมอร์นักกิจกรรมที่ฆ่าตัวตาย หลังถูกจับเนื่องจากเอาคอมพิวเตอร์ไปเชื่อมต่อเครือข่ายของ MIT เพื่อดาวน์โหลดรายงานวิทยาศาสตร์

Tags:
Node Thumbnail

ความนิยมของแพ็กเกจ npm ในโลก JavaScript กลายเป็นช่องโหว่ด้านความปลอดภัยหลายครั้ง เพราะแฮ็กเกอร์สามารถยึดบัญชีนักพัฒนาแพ็กเกจ npm ชื่อดัง แล้วอัพเดตแพ็กเกจที่ฝังมัลแวร์เพื่อแพร่กระจายในวงกว้างอย่างรวดเร็ว (กรณีของ ua-parser-js และ coa)

GitHub ซึ่งปัจจุบันเป็นเจ้าของบริษัท npm Inc. จึงออกมาประกาศมาตรการความปลอดภัยของ npm เพื่อป้องกันปัญหาเหล่านี้ ได้แก่

Tags:
Topics: 
Node Thumbnail

ไลบรารี coa หรือ Command-Option-Argument เป็นไลบรารีสำหรับอ่านคำสั่ง command line ยอดนิยมบน npm ถูกแฮกและคนร้ายสามารถปล่อยเวอร์ชั่นมุ่งร้าย 2.0.3, 2.0.4, 2.1.1, 2.1.3, และ 3.1.3 ให้เหยื่อดาวน์โหลดผ่าน npm ได้สั้นๆ ไม่กี่ชั่วโมง

อัตราการใช้งาน coa สูงมาก มียอดดาวน์โหลดเกือบ 9 ล้านครั้งต่อสัปดาห์ ช่วงเวลาไม่กี่ชั่วโมงก็อาจจะถูกดาวน์โหลดไปแล้วนับแสนครั้ง

Tags:
Node Thumbnail

ผู้ดูแลแพ็กเกจ ua-parser-js บน npm ถูกคนร้ายแฮกบัญชีและวางแพ็กเกจเวอร์ชั่น 0.7.29, 0.8.0, และ 1.0.0 เพื่อวางมัลแวร์ในเครื่องของเหยื่อ โดยนักพัฒนาที่โหลดแพ็กเกจนี้ไปควรถือว่าเครื่องของตัวเองถูกแฮก และรีเซ็ตรหัสผ่านหรือกุญแจที่เกี่ยวข้องทั้งหมดทันที

ตอนนี้ผลกระทบของมัลแวร์ที่แน่ชัดคือการขโมยรหัสผ่านในเครื่อง, ขโมย cookie ในเบราว์เซอร์, และขุดเงินคริปโตสกุล Monero

GitHub ออกประกาศแจ้งเตือนระดับวิกฤติ ระบุว่ากุญแจและรหัสผ่านควรสร้างใหม่บนเครื่องที่ไม่ได้ติดตั้งแพ็กเกจนี้ทันที และต่อให้ถอนการติดตั้งแพ็กเกจนี้ไปแล้วก็ไม่สามารถแน่ใจได้ว่ายังเหลือมัลแวร์ในเครื่องหรือไม่

Tags:
Node Thumbnail

หลังจาก Alex Birsan รายงานถึงการโจมตีด้วยการตั้งชื่อแพ็กเกจซ้ำกับแพ็กเกจภายในของบริษัทต่างๆ ทาง GitHub ก็ออกมาเรียกร้องให้นักพัฒนาที่ใช้งานแพ็กเกจภายในว่าควรใช้ scoped package ที่เป็นฟีเจอร์ของ npm

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

Tags:
Node Thumbnail

Alex Birsan รายงานถึงการโจมตีองค์กรขนาดใหญ่จำนวนมากด้วยการสร้างแพ็กเกจไลบรารีเลียนแบบชื่อไลบรารีในองค์กรแล้วไปวางตามบริการดาวน์โหลดไลบรารีไม่ว่าจะเป็น RubyGems, npm, หรือ PyPI

องค์กรขนาดใหญ่จำนวนมากมักมีไลบรารีเฉพาะทางของตัวเองใช้งานภายในเป็นเรื่องปกติ และหลายครั้งชื่อไลบรารีเหล่านี้ก็หลุดออกมาสู่โลกภายนอก เช่น Paypal เคยทำไฟล์ package.json ที่ใช้ภายในหลุดออกมาอยู่บน GitHub ทำให้รู้ว่าบริษัทมีการใช้งานไลบรารีภายในเช่น pplogger, auth-paypal, wurfl-paypal, analytics-paypal เป็นต้น หรือแม้แต่แอปเปิลก็เคยทำรายชื่อแพ็กเกจเหล่านี้หลุดออกมาเช่นกัน

Tags:
Node Thumbnail

วันนี้ตั้งแต่ช่วงก่อนสี่โมงที่ผ่านมาบริการ npmjs มีปัญหาทั้งเว็บไซต์และบริการดาวน์โหลดแพ็กเกจ ส่งผลให้สคริปต์หลายตัวไม่ทำงาน

GitHub เพิ่งเข้าซื้อ npm เมื่อเดือนมีนาคมที่ผ่านมา ทำให้ตอนนี้เจ้าของ npm กลายเป็นไมโครซอฟท์

ที่มา - npm status

Tags:
Topics: 
Node Thumbnail

โมดูล is-promise เป็นโมดูลง่ายๆ บน npm ที่ใช้ตรวจสอบว่าออปเจกต์ใดเป็น Promise บ้าง โดยตัวโมดูลเองมีความยาวเพียง 5 บรรทัดเท่านั้น (โค้ดอยู่ในภาพ) แต่การอัพเดตครั้งล่าสุดในเวอร์ชั่น 2.2.0 กลับทำให้โมดูลจำนวนมากไม่ทำงาน

ความผิดพลาดเกิดจากความพยายามซัพพอร์ต ES module แต่คอนฟิกที่ใส่มากลับไม่สมบูรณ์ ทำให้คำสั่งสำคัญๆ เช่น create-react-app หรือ firebase-tools ติดตั้งใหม่ไม่ได้

แพ็กเกจที่ติดตั้งไปก่อนแล้วยังคงทำงานได้ และคำแนะนำแรกๆ หลังมีปัญหานี้คือให้ย้อนกลับไปใช้เวอร์ชั่น 2.1.0 ส่วนตอนนี้ทาง is-promise ออกเวอร์ชั่น 2.2.1 ที่แก้ปัญหาแล้ว

Tags:
Node Thumbnail

GitHub ประกาศว่าลงนามข้อตกลงเข้าซื้อกับ npm เรียบร้อยแล้ว โดยสัญญาว่าบริการ npm จะฟรีตลอดไป แต่จะมีการปรับปรุง 3 ด้านได้แก่

  1. โครงสร้างพื้นฐาน ให้เพียงพอต่อการเติบโตของชุมชนผู้ใช้งาน ให้ทำงานได้เร็ว, เสถียร, และรองรับการเติบโตได้
  2. พัฒนาประสบการณ์การใช้งาน โดยเริ่มจากคำสั่ง npm เวอร์ชั่น 7 ที่จะโอเพนซอร์สต่อไป แต่จะมีฟีเจอร์ เช่น Workspaces และรองรับการยืนยันตัวตนหลายขั้นตอน
  3. ทำงานร่วมกับชุมชน โดยรับฟังความเห็นนักพัฒนาว่าจะต้องการให้ปรับปรุงอะไรบ้าง

นอกจากทั้งสามด้านแล้ว GitHub ยังระบุว่าการรวม npm เข้ามาจะทำให้โครงสร้างความมั่นคงปลอดภัยของโลกซอฟต์แวร์โอเพนซอร์สดีขึ้นจากการที่สามารถตรวจสอบได้ว่าแพ็กเกจเวอร์ชั่นใดมาจากโค้ดส่วนใด และยังใช้ความสามารถของ GitHub Security Lab ในการตรวจสอบความปลอดภัยได้

Tags:
Node Thumbnail

เมื่อกลางเดือนสิงหาคมที่ผ่านมา Feross Aboukhadijeh ผู้ดูแลแพ็กเกจ standard ใน npm ประกาศทดลองโมเดลรายได้ใหม่ ด้วยการสร้างแพ็กเกจ funding ที่จะแสดงโฆษณาบนเทอร์มินัลของผู้ที่ติดตั้งแพ็กเกจ เป็นรายได้เสริมอีกทางหนึ่งของนักพัฒนา

ผู้ใช้แพ็กเกจ standard แสดงความไม่พอใจเป็นวงกว้างหลังจากพบแบนเนอร์ข้อความเมื่อติดตั้งโมดูลบนในแอป โดยกระบวนการแสดงโฆษณาคือการดึงแพ็กเกจ funding เข้าเป็น dependency ของ standard และแบนเนอร์จะแสดงบนเทอร์มินัลในช่วง post install

Tags:
Topics: 
Node Thumbnail

npm แจ้งเตือนว่าแพ็กเกจ bb-builder มีโค้ดมุ่งร้ายที่มุ่งเป้าเหยื่อที่รันวินโดวส์ โดยพยายามอัพโหลดข้อมูลกลับไปยังเซิร์ฟเวอร์ของคนร้าย

ประกาศแจ้งว่าคอมพิวเตอร์ที่ติดตั้งแพ็กเกจนี้แล้วควรถือว่าถูกแฮกไปแล้ว และยกเลิกค่าความลับและกุญแจต่างๆ ที่อยู่บนเครื่องโดยเร็ว แม้แต่การลบแพ็กเกจไปแล้วก็ไม่รับประกันว่าคนร้ายติดตั้งโค้ดมุ่งร้ายอื่นลงบนเครื่องไปแล้วหรือไม่ โดยตอนนี้ bb-builder มีสถานะเป็น security holding ที่ทีมงาน npm ถือไว้เองไม่ให้ใครมาสร้างแพ็กเกจชื่อนี้

Tags:
Node Thumbnail

GitHub เปิดตัวบริการใหม่ GitHub Package Registry ที่ช่วยให้เราแปลงซอร์สโค้ดของซอฟต์แวร์บน GitHub ไปเป็นแพ็กเกจซอฟต์แวร์สำหรับแจกจ่าย (ทั้งภายในองค์กรหรือสาธารณะ) โดยโฮสต์อยู่บนเซิร์ฟเวอร์และ CDN ของ GitHub ด้วยเลยเสร็จสรรพ

บริการตัวนี้รองรับแพ็กเกจซอฟต์แวร์ยอดนิยมทั้ง JavaScript (npm), Java (Maven), Ruby (RubyGems), .NET (NuGet) และ Docker images จุดเด่นของมันคือความครบวงจร ทุกอย่างอยู่บน GitHub หมดแล้ว ไม่ว่าจะเป็นบัญชีผู้ใช้งาน หรือหน้าจออินเทอร์เฟซที่คุ้นเคย แถมยังเชื่อมต่อกับ GitHub Actions ระบบจัดการ workflow CI/CD ที่เพิ่งเปิดตัวเมื่อเร็วๆ นี้

Tags:
Topics: 
Node Thumbnail

แพ็กเกจ event-stream ใน npm ย้ายเจ้าของจากผู้ดูแลเดิมมาสู่ผู้ใช้ GitHub ที่ชื่อว่า right9ctrl และออกเวอร์ชั่นใหม่เมื่อไม่กี่วันที่ผ่านมา และพบว่าโค้ดที่เพิ่มเข้ามามีโค้ดมุ่งร้าย น่าจะใช้ขโมยเงินคริปโต

แพ็กเกจ event-stream มีจำนวนดาวน์โหลดเกือบสองล้านครั้งต่อสัปดาห์ โดย dominictarr ผู้ดูแลเดิมระบุว่าเขาไม่ได้ใช้โครงการนี้มานานแล้ว เมื่อ right9ctrl เข้ามาขอดูแลโครงการต่อจึงยกให้ไป

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

Tags:
Node Thumbnail

ผู้ใช้รายงานบั๊กใน npm 5.7.0 หากรันด้วยสิทธิ์ root อาจจะทำให้ระบบไฟล์เสียหายถึงขั้นต้องติดตั้งระบบปฎิบัติการใหม่

บั๊กนี้เกิดจากแพตช์ที่เปลี่ยนแพ็กเกจจาก mkdirp เป็น correct-mkdir แต่เกิดผลข้างเคียงทำให้ความเป็นเจ้าของโฟลเดอร์เปลี่ยนไป กระทบโฟลเดอร์สำคัญๆ เช่น /etc /usr /boot

ปัญหานี้ไม่ได้กระทบลินุกซ์ทุกรุ่น และวินโดวส์ก็ไม่ได้รับผลกระทบ แต่มีผู้ใช้ FreeBSD รายงานว่าได้รับผลกระทบเช่นกัน อย่างไรก็ตามตอนนี้ npm 5.7.1 ออกมาแล้วก็ควรหันไปใช้รุ่นใหม่ก่อน

Tags:
Topics: 
Node Thumbnail

npm ออกประกาศเตือนผู้ใช้ หลังได้รับแจ้งว่าแพ็กเกจ crossenv ที่ตั้งชื่อคล้ายกับแพ็กเกจ cross-env มีพฤติกรรมอันตรายด้วยการเก็บค่า environment ของระบบที่ติดตั้งแล้วส่งกลับเซิร์ฟเวอร์

ผู้ใช้ที่สร้างแพ็กเกจนี้ใช้ชื่อว่า hacktask เริ่มเผยแพร่แพ็กเกจ crossenv มาตั้งแต่วันที่ 19 กรกฎาคมที่ผ่านมา จนตอนนี้มียอดดาวน์โหลดแล้วกว่า 600 ครั้ง แต่ทาง npm เชื่อว่ามียอดดาวน์โหลดไปติดตั้งจริงๆ ประมาณ 50 ครั้ง นอกจากแพ็กเกจนี้แล้วยังมีแพ็กเกจอื่นๆ แต่ที่มีพฤติกรรมชื่อคล้ายแพ็กเกจอื่นๆ อีกจำนวนหนึ่ง

Tags:
Topics: 
Node Thumbnail

npm เป็นระบบจัดการแพ็กเกจ JavaScript ที่ได้รับความนิยมและเติบโตอย่างรวดเร็ว จนในปัจจุบัน npm รวบรวมแพ็กเกจไว้มากถึงราว 400,000 แพ็กเกจ และมียอดดาวน์โหลดกว่า 300 ล้านครั้งต่อวัน แต่ในทางตรงข้าม ระบบค้นหาแพ็กเกจของ npm นั้นจัดว่าแย่ ถ้าใครเคยใช้จะพบว่ามันค้นหาตามที่เราพิมพ์ตรงๆ ทำให้หาอะไรไม่ค่อยเจอถ้าไม่ได้ใช้คำค้นหาที่ตรงเป๊ะกับชื่อหรือคำอธิบายแพ็กเกจ

Tags:
Node Thumbnail

Azer Koçulu นักพัฒนาจาวาสคริปต์ที่เขียนโมดูลจำนวนมากลง NPM ประกาศถอดโมดูลทั้งหมดออกส่งผลให้โครงการใหญ่ๆ ที่ใช้งานโมดูลของเขา เช่น Node.js และ Babel มีปัญหาไปด้วย

Koçulu เป็นผู้พัฒนาโมดูล Kik แต่ถูกผู้ให้บริการแชต Kik.com ระบุว่าเขากำลังละเมิดเครื่องหมายการค้าและขอให้ถอนโมดูลออก แต่ Koçulu ไม่ยินยอม ทาง Kik.com จึงแจ้งไปทาง NPM และทาง NPM ยอมถอนโมดูลนี้ออกไป ทำให้ Koçulu ไม่พอใจและตัดสินใจถอนโมดูลอื่นๆ ของเขาออกจาก NPM ทั้งหมดกว่า 250 โมดูล หนึ่งในจำนวนนั้นคือ left-pad ที่มีโครงการอื่นๆ ใช้งานอยู่จำนวนมาก มียอดดาวน์โหลดในแต่ละเดือนหลายล้านครั้ง