mem-isolate: ผู้เชี่ยวชาญเตือนว่าความปลอดภัยของหน่วยความจำแบบ Fork มีข้อจำกัดที่สำคัญ
mem-isolate: ผู้เชี่ยวชาญเตือนว่าความปลอดภัยของหน่วยความจำแบบ Fork มีข้อจำกัดที่สำคัญ
ชุมชน Rust กำลังอภิปรายเกี่ยวกับไลบรารี่ mem-isolate ที่เพิ่งเปิดตัว ซึ่งสัญญาว่าจะทำให้สามารถรันโค้ดที่ไม่ปลอดภัยได้อย่างปลอดภัยผ่านเทคนิคที่แยกการทำงานที่อาจเป็นอันตรายไว้ในโปรเซสที่แยกออกมา (forked processes) แม้ว่าแนวทางนี้จะชาญฉลาด แต่ผู้เชี่ยวชาญด้านความปลอดภัยและการเขียนโปรแกรมระบบได้แสดงความกังวลอย่างมากเกี่ยวกับข้อจำกัดและการใช้งานที่อาจผิดวัตถุประสงค์mem-isolate ทำงานโดยการประมวลผลฟังก์ชันในโปรเซสลูกที่แยกออกมา ซึ่งสร้างขึ้นผ่านคำสั่งระบบ POSIX fork() แนวทางนี้สร้างสำเนาของหน่วยความจำของโปรเซสหลัก ทำให้การดำเนินการที่ไม่ปลอดภัยสามารถทำงานได้โดยไม่ส่งผลกระทบต่อพื้นที่หน่วยความจำของโปรเซสต้นฉบับ เมื่อฟังก์ชันทำงานเสร็จ ผลลัพธ์จะถูกแปลงเป็นข้อมูลอนุกรม (serialized) กลับไปยังโปรเซสหลักผ่านท่อ (pipe) และโปรเซสลูกจะถูกยกเลิกข้อจำกัดด้านความปลอดภัยผู้เชี่ยวชาญด้านความปลอดภัยในชุมชนได้ชี้ให้เห็นว่า mem-isolate ไม่ได้ให้ระดับความปลอดภัยตามที่ชื่อบ่งบอก ไลบรารี่นี้ไม่เข้าเกณฑ์นิยามของโค้ดที่ปลอดภัยใน Rust ซึ่งต้องการการรับประกันความปลอดภัยของหน่วยความจำทั้งในเชิงพื้นที่ (spatial) และเวลา (temporal)ผมไม่คิดว่านี่เข้าเกณฑ์นิยามของความปลอดภัยใน safe Rust: ความปลอดภัยไม่ได้หมายถึงแค่จะไม่เกิดการล่มเนื่องจากข้อผิดพลาดของหน่วยความจำเชิงพื้นที่เท่านั้น แต่หมายถึงโค้ดนั้นต้องมีความปลอดภัยของหน่วยความจำทั้งในเชิงพื้นที่และเวลาด้วยจากมุมมองด้านความปลอดภัย การแยกที่จัดเตรียมไว้นั้นเป็นเพียงผิวเผิน โปรเซสที่ถูก fork ยังคงรักษาสำเนาสมบูรณ์ของสถานะโปรแกรม รวมถึงข้อมูลลับใดๆ ในหน่วยความจำ นั่นหมายความว่าโค้ดที่ไม่ปลอดภัยและสามารถถูกโจมตีได้ยังคงสามารถเข้าถึงข้อมูลที่ละเอียดอ่อนภายในสภาพแวดล้อมที่แยกออกมา นอกจากนี้ โปรเซสลูกยังคงมีสิทธิ์เดียวกันกับโปรเซสหลัก ดังนั้นช่องโหว่ในการประมวลผลโค้ดยังคงถูกโจมตีได้ข้อจำกัดหลักของ mem-isolate:ทำงานได้เฉพาะบนระบบ POSIX (Linux, macOS, BSD)เพิ่มภาระการทำงานประมาณ 1.9 มิลลิวินาทีต่อการเรียกฟังก์ชัน (เทียบกับ 1.5 นาโนวินาทีสำหรับการเรียกโดยตรง)ต้องมีการแปลงข้อมูลที่ส่งคืนระหว่างโปรเซสอาจเป็นอันตรายในแอปพลิเคชันแบบมัลติเธรดไม่สามารถป้องกันการโจมตีที่ไม่ทำให้เกิดการหยุดทำงานของระบบโปรเซสลูกมีสิทธิ์และการเข้าถึงหน่วยความจำเหมือนกับโปรเซสหลักอาจทำให้เกิดการติดตาย (deadlocks) หากมีการแยกโปรเซส (fork) ในขณะที่มิวเท็กซ์ถูกล็อคข้อกังวลทางเทคนิคเกี่ยวกับ Forkผู้เชี่ยวชาญด้านการเขียนโปรแกรมระบบได้เน้นย้ำว่า fork() เป็น API ที่มีปัญหาสำหรับกรณีการใช้งานนี้ โดยเฉพาะในแอปพลิเคชันแบบมัลติเธรด เมื่อโปรเซสทำการ fork สถานะหน่วยความจำทั้งหมดจะถูกทำซ้ำ รวมถึงสถานะของ mutex และล็อค หากเธรดใดกำลังถือล็อคในช่วงเวลาที่ทำการ fork โปรเซสลูกอาจประสบปัญหา deadlockแม้แต่การดำเนินการง่ายๆ เช่น การพิมพ์หรือการจัดสรรหน่วยความจำก็สามารถทำให้เกิดการค้างในโปรเซสที่ถูก fork บัฟเฟอร์ในพื้นที่ผู้ใช้ที่ไม่ได้ถูกล้าง (flush) ก่อนที่การเรียกกลับ (callback) จะเสร็จสิ้นจะสูญหายไป ปัญหาเหล่านี้ทำให้ mem-isolate อาจเป็นอันตรายในแอปพลิเคชันที่ซับซ้อนผลกระทบต่อประสิทธิภาพไลบรารี่นี้ทำให้เกิดค่าโสหุ้ยด้านประสิทธิภาพที่สำคัญ โดยการทดสอบประสิทธิภาพแสดงให้เห็นว่า execute_in_isolated_process() ใช้เวลาประมาณ 1.9 มิลลิวินาที เทียบกับ 1.5 นาโนวินาทีสำหรับการเรียกฟังก์ชันโดยตรง – ช้ากว่าเดิมมากกว่าหนึ่งล้านเท่า แม้ว่าผู้เขียนจะยอมรับข้อจำกัดนี้ด้วยคำพูดติดตลกเกี่ยวกับการรันโค้ดช้าลง 1 มิลลิวินาที สมาชิกในชุมชนชี้ให้เห็นว่าค่าโสหุ้ยนี้ทำให้ไลบรารี่ไม่สามารถใช้งานได้จริงในหลายกรณีนักพัฒนาหลายคนใช้โค้ดที่ไม่ปลอดภัยโดยเฉพาะสำหรับการปรับปรุงประสิทธิภาพ ดังนั้นการห่อหุ้มโค้ดดังกล่าวในกลไกที่ทำให้เกิดค่าโสหุ้ยที่สำคัญจึงทำลายวัตถุประสงค์เดิม ตามที่ผู้แสดงความคิดเห็นรายหนึ่งระบุ การใช้แนวทางนี้อย่างกว้างขวางอาจลดข้อได้เปรียบด้านประสิทธิภาพของ Rust เมื่อเทียบกับภาษาเช่น Python หรือ Ruby ที่พึ่งพาการ fork อย่างมากสำหรับการทำงานแบบขนานผลการทดสอบประสิทธิภาพ:การเรียกฟังก์ชันโดยตรง: ~1.5 นาโนวินาทีfork() + wait: ~1.7 มิลลิวินาทีexecute_in_isolated_process(): ~1.9 มิลลิวินาทีการประยุกต์ใช้งานจริงแม้จะมีข้อจำกัด นักพัฒนาบางคนเห็นคุณค่าใน mem-isolate สำหรับสถานการณ์เฉพาะ ไลบรารี่นี้อาจมีประโยชน์เมื่อทำงานกับโค้ดของบุคคลที่สามที่ไม่ปลอดภัยโดยธรรมชาติและไม่สามารถปรับปรุงได้ โดยเฉพาะอย่างยิ่งเมื่อเชื่อมต่อกับไลบรารี่ C ในกรณีเหล่านี้ การแยกที่จัดเตรียมไว้อาจเป็นการแลกเปลี่ยนที่ยอมรับได้สำหรับความปลอดภัยที่เพิ่มขึ้น โดยเฉพาะในเส้นทางที่ไม่สำคัญต่อประสิทธิภาพอย่างไรก็ตาม สำหรับแอปพลิเคชันส่วนใหญ่ ผู้เชี่ยวชาญแนะนำให้ใช้แนวทางการแยกที่แข็งแกร่งกว่า สถาปัตยกรรมแบบหลายโปรเซสที่ออกแบบอย่างเหมาะสมพร้อมช่องทาง IPC ที่จำกัดและ API การแซนด์บ็อกซ์ระดับระบบปฏิบัติการจะให้การรับประกันความปลอดภัยที่แข็งแกร่งกว่า เอนจินเบราว์เซอร์เช่น Chrome ใช้แนวทางนี้แทนการแยกโปรเซสอย่างง่ายการอภิปรายเกี่ยวกับ mem-isolate เน้นย้ำถึงความท้าทายที่ดำเนินอยู่ในการสร้างสมดุลระหว่างความปลอดภัย ประสิทธิภาพ และความสามารถในการใช้งานจริงในการเขียนโปรแกรมระบบ แม้ว่าแนวทางนวัตกรรมเพื่อความปลอดภัยของหน่วยความจำจะได้รับการต้อนรับในระบบนิเวศ Rust แต่จำเป็นต้องได้รับการประเมินอย่างรอบคอบเทียบกับแนวปฏิบัติที่ดีที่สุดและโมเดลความปลอดภัยที่ได้รับการยอมรับอ้างอิง: mem-isolate: Run unsafe code safely
ความปลอดภัย
5 ชั่วโมงที่ผ่านมา
โมเดล AI WHAMM ของ Microsoft ทำให้เกม Quake II ทำงานบนเบราว์เซอร์ด้วยกราฟิกแบบ Generative แบบเรียลไทม์
ปัญญาประดิษฐ์
6 ชั่วโมงที่ผ่านมา
โมเดล AI WHAMM ของ Microsoft ทำให้เกม Quake II ทำงานบนเบราว์เซอร์ด้วยกราฟิกแบบ Generative แบบเรียลไทม์
มีรายงานว่า Ubisoft กำลังพัฒนาเกมกลยุทธ์แนว XCOM ที่ได้แรงบันดาลใจจาก Rainbow Six Siege
เกมคอนโซล
7 ชั่วโมงที่ผ่านมา
มีรายงานว่า Ubisoft กำลังพัฒนาเกมกลยุทธ์แนว XCOM ที่ได้แรงบันดาลใจจาก Rainbow Six Siege
ฟอนต์ Sparks สร้างการแสดงข้อมูลภาพในข้อความ แต่จุดประเด็นถกเถียงเรื่องคำนิยาม
ปัญญาประดิษฐ์
11 ชั่วโมงที่ผ่านมา
ฟอนต์ Sparks สร้างการแสดงข้อมูลภาพในข้อความ แต่จุดประเด็นถกเถียงเรื่องคำนิยาม
ปลั๊กอิน Pytest.nvim ผสานการทดสอบโดยตรงใน Neovim พร้อมรองรับ Docker
11 ชั่วโมงที่ผ่านมา
ปลั๊กอิน Pytest.nvim ผสานการทดสอบโดยตรงใน Neovim พร้อมรองรับ Docker
ระบบ OCR สร้างความกังวลเกี่ยวกับความเสี่ยงการสร้างข้อมูลเท็จของ AI และการใช้ข้อมูลอย่างมีจริยธรรม
ปัญญาประดิษฐ์
11 ชั่วโมงที่ผ่านมา
ระบบ OCR สร้างความกังวลเกี่ยวกับความเสี่ยงการสร้างข้อมูลเท็จของ AI และการใช้ข้อมูลอย่างมีจริยธรรม
uWrap: โซลูชั่นการตัดข้อความแบบเบาที่นักพัฒนาซอฟต์แวร์รอคอย
แอปพลิเคชัน
17 ชั่วโมงที่ผ่านมา
uWrap: โซลูชั่นการตัดข้อความแบบเบาที่นักพัฒนาซอฟต์แวร์รอคอย
SpacetimeDB จุดประเด็นถกเถียงเรื่องการอนุญาตใช้งานฐานข้อมูลและการประยุกต์ใช้ในการพัฒนาเกม
เมื่อวาน
SpacetimeDB จุดประเด็นถกเถียงเรื่องการอนุญาตใช้งานฐานข้อมูลและการประยุกต์ใช้ในการพัฒนาเกม
มีรายงานว่า Google Cloud อำนวยความสะดวกในการเฝ้าระวังชายแดนด้วย AI แม้เคยปฏิเสธมาก่อน
ปัญญาประดิษฐ์
เมื่อวาน
มีรายงานว่า Google Cloud อำนวยความสะดวกในการเฝ้าระวังชายแดนด้วย AI แม้เคยปฏิเสธมาก่อน
Dell เปิดตัวชุดสาย AlienFX ราคา 35 ดอลลาร์ เพื่อรองรับการใช้งานเมนบอร์ดจากผู้ผลิตรายอื่นกับ Alienware Area-51
เมนบอร์ด
เมื่อวาน
Dell เปิดตัวชุดสาย AlienFX ราคา 35 ดอลลาร์ เพื่อรองรับการใช้งานเมนบอร์ดจากผู้ผลิตรายอื่นกับ Alienware Area-51
ราคา Nvidia RTX 5060 Ti หลุด: 8GB ราคา 399 ดอลลาร์สหรัฐ และ 16GB ราคา 499 ดอลลาร์สหรัฐ คาดเปิดตัว 16 เมษายน
การ์ดจอ
เมื่อวาน
ราคา Nvidia RTX 5060 Ti หลุด: 8GB ราคา 399 ดอลลาร์สหรัฐ และ 16GB ราคา 499 ดอลลาร์สหรัฐ คาดเปิดตัว 16 เมษายน
อัปเดต Cold Fusion ของ Abiotic Factor นำระบบอัปเกรดใหม่และแก้ไขการโจมตีฐาน
เกมบน Steam
เมื่อวาน
อัปเดต Cold Fusion ของ Abiotic Factor นำระบบอัปเกรดใหม่และแก้ไขการโจมตีฐาน
สเปคและราคาของ Samsung Galaxy XCover 7 Pro รั่วไหล: สมาร์ทโฟนแกร่งระดับทหารกำลังจะเปิดตัวเดือนนี้
โทรศัพท์
เมื่อวาน
สเปคและราคาของ Samsung Galaxy XCover 7 Pro รั่วไหล: สมาร์ทโฟนแกร่งระดับทหารกำลังจะเปิดตัวเดือนนี้
Ferron: เว็บเซิร์ฟเวอร์ใหม่ที่ปลอดภัยด้านหน่วยความจำเขียนด้วย Rust แสดงศักยภาพเทียบกับคู่แข่งที่มีชื่อเสียง
สตาร์ทอัพ
เมื่อวาน
Ferron: เว็บเซิร์ฟเวอร์ใหม่ที่ปลอดภัยด้านหน่วยความจำเขียนด้วย Rust แสดงศักยภาพเทียบกับคู่แข่งที่มีชื่อเสียง
อัปเดตล่าสุดของ Inzoi แก้ไขปัญหาหลักที่ผู้เล่นกังวล: ระยะเวลาการนอน พฤติกรรมการรับประทานอาหาร และการพัฒนาความสัมพันธ์
แอปพลิเคชัน
เมื่อวาน
อัปเดตล่าสุดของ Inzoi แก้ไขปัญหาหลักที่ผู้เล่นกังวล: ระยะเวลาการนอน พฤติกรรมการรับประทานอาหาร และการพัฒนาความสัมพันธ์
บริการสมาชิก AI ใหม่ของ Garmin ล้มเหลวด้วยข้อมูลเชิงลึกทั่วไปและข้อผิดพลาดทางคณิตศาสตร์
ปัญญาประดิษฐ์
เมื่อวาน
บริการสมาชิก AI ใหม่ของ Garmin ล้มเหลวด้วยข้อมูลเชิงลึกทั่วไปและข้อผิดพลาดทางคณิตศาสตร์
Android 16 แนะนำการคอมไพล์บนคลาวด์เพื่อเร่งความเร็วในการติดตั้งแอป
แอปพลิเคชัน
เมื่อวาน
Android 16 แนะนำการคอมไพล์บนคลาวด์เพื่อเร่งความเร็วในการติดตั้งแอป
ร้านค้าปลีกเวียดนามสร้างเซิร์ฟเวอร์ AI ประสิทธิภาพสูงโดยใช้การ์ด RTX 5090 หลายตัวท่ามกลางภาวะขาดแคลนทั่วโลก
ฮาร์ดแวร์ AI
เมื่อวาน
ร้านค้าปลีกเวียดนามสร้างเซิร์ฟเวอร์ AI ประสิทธิภาพสูงโดยใช้การ์ด RTX 5090 หลายตัวท่ามกลางภาวะขาดแคลนทั่วโลก
เมื่อ Shell Scripts ซับซ้อนเกินไป: การถกเถียงเรื่อง Bash INI Parser
เมื่อวาน
เมื่อ Shell Scripts ซับซ้อนเกินไป: การถกเถียงเรื่อง Bash INI Parser
Microsoft บล็อกส่วนขยาย C/C++ บน VSCode Forks รวมถึง Cursor
Microsoft
เมื่อวาน
Microsoft บล็อกส่วนขยาย C/C++ บน VSCode Forks รวมถึง Cursor