Tags:
Node Thumbnail

ช่วงหลังเราเห็นความนิยมใช้ภาษา Rust ทดแทน C ด้วยเหตุผลด้านความปลอดภัย เพราะมีฟีเจอร์ memory safety ที่ตัวภาษาเอง ตัวอย่างที่สำคัญคือ Android จะเริ่มใช้ Rust เขียนบางส่วนของ OS แล้ว

ถ้าไม่นับระดับของ OS โครงการหนึ่งที่เป็นหัวหอกในเรื่องนี้คือ Rustls ไลบรารีที่เขียนขึ้นมาใช้แทน OpenSSL ซึ่งเป็นไลบรารีสำคัญของโลกซอฟต์แวร์ เพราะถูกใช้ในการเชื่อมต่อแบบปลอดภัย (SSL/TLS) แต่ตัว OpenSSL เขียนด้วย C จึงมีบั๊กหรือช่องโหว่หน่วยความจำอยู่มาก ตัวอย่างที่โดดเด่นคือ กรณีของบั๊ก Hearthbleed ที่สร้างผลกระทบไปทั่วโลกในช่วงปี 2014

Tags:
Node Thumbnail

ไมโครซอฟท์เปิดคอร์สสอนเขียนภาษา Rust สำหรับผู้เริ่มต้น โดยเป็น เอกสาร tutorial บนเว็บไซต์ Microsoft Docs มีเนื้อหา 8 โมดูล ใช้เวลาเรียนประมาณ 5 ชั่วโมง เรียนจบแล้วสามารถเขียนโปรแกรม Rust ง่ายๆ แบบคอมมานด์ไลน์ได้

เอกสารนี้สอนการเขียน Rust โดยใช้ VS Code เป็น editor และสอนแนวคิดเบื้องต้น เช่น ระบบจัดการแพ็กเกจ Cargo, ชนิดของตัวแปรต่างๆ, การจัดการหน่วยความจำ เป็นต้น

Tags:
Node Thumbnail

แม้ Linus Torvalds ยังแบ่งรับแบ่งสู้เรื่องการใช้ภาษา Rust ในเคอร์เนล แต่ล่าสุดฝั่งกูเกิลออกมาประกาศรองรับ Rust ในตัวระบบปฏิบัติการ Android อย่างเป็นทางการแล้ว

เหตุผลของกูเกิลคือต้องการลดจำนวนบั๊กด้านหน่วยความจำ (memory safety) ที่เกิดจากภาษา C/C++ ซึ่งบั๊กเหล่านี้ตรวจสอบได้ยาก และมีผลกระทบสูงในแง่ความปลอดภัย (คิดเป็น 70% ของช่องโหว่ความปลอดภัย Android ระดับรุนแรง)

Tags:
Node Thumbnail

ภาษา Rust เริ่มได้รับความนิยมมากขึ้นเรื่อยๆ จากฟีเจอร์เด่นเรื่อง memory safety ตั้งแต่ระดับของตัวภาษาเลย ช่วยลดปัญหาบั๊กความปลอดภัยที่มาจากหน่วยความจำลงได้มาก ช่วงหลังเราจึงเห็น Rust ถูกใช้ในงานระดับล่างๆ (ที่เดิมทีใช้ภาษา C) กันมากขึ้น ตัวอย่างเช่น Bottlerocket ระบบปฏิบัติการของ Amazon

จากกระแส Rust มาแรง ทำให้ ZDNet ไปสอบถาม Linus Torvalds และ Greg Kroah-Hartman ผู้ดูแลเคอร์เนลเวอร์ชันเสถียร (ถือเป็น 2 คนที่สำคัญที่สุดของโครงการเคอร์เนลลินุกซ์) ว่ามีความเห็นอย่างไรกับการใช้ Rust ในเคอร์เนลลินุกซ์

Tags:
Node Thumbnail

Cloudflare อัพเดต Web Application Firewall ตัวใหม่จากเดิมที่รันไฟร์วอลล์ใน LuaJIT หันมาสร้างเอนจินใหม่จาก Rust

การอัพเดตครั้งนี้จะทำให้ตัวไฟร์วอลล์เอนจินของ Cloudflare ใช้คอนฟิกแบบ wirefilter syntax ที่มีแนวทางคอนฟิกเหมือนการคิวรีแพ็กเก็ตใน Wireshark (Cloudflare โอเพนซอร์สตัวเอนจิน wirefilter มาตั้งแต่ปี 2019) คอนฟิกแบบใหม่นี้ยืดหยุ่นขึันและประสิทธิภาพดีขึ้น

สำหรับตัวกฎของไฟร์วอลล์เวอร์ชั่นใหม่ จะอัพเดตไปใช้ OWASP ModSecurity Core Ruleset (CRS) 3.3 จากเดิมใช้เวอร์ชั่น 2.x สามารถปรับใช้งานกฎต่างๆ ได้ตามระดับความเสี่ยงที่จะเกิด false positive

Tags:
Node Thumbnail

กูเกิลประกาศความร่วมมือกับ ISRG องค์กรแม่ของ Let's Encrypt เตรียมช่วยเหลือโครงการโอเพนซอร์สสำคัญให้อิมพลีเมนต์ใหม่ด้วยภาษา Rust เพื่อแก้ปัญหาช่องโหว่หน่วยความจำ

เมื่อต้นเดือนที่ผ่านมากูเกิลประกาศความร่วมมือรูปแบบนี้โดยเข้าไปสนับสนุนโครงการ mod_tls ของ Apache การประกาศขยายความร่วมมือครั้งนี้ทาง ISRG จะเข้าไปสนับสนุนให้โครงการต่างๆ ให้ค่อยๆ อิมพลีเมนต์เครื่องมือและไลบรารีส่วนต่างๆ เสียใหม่

Tags:
Node Thumbnail

โครงการภาษา Rust ก่อตั้งเป็นมูลนิธิตามกฎหมายในชื่อ Rust Foundation อย่างเป็นทางการเรียบร้อยแล้ว โดยมีบริษัทร่วมก่อตั้ง ได้แก่ AWS, Huawei, Google, Microsoft, และ Mozilla โดยรวมทางมูลนิธิจะมีงบประมาณสำหรับบริการโครงการ Rust อย่างน้อยปีละล้านดอลลาร์ไปอีก 2 ปี

กรรมการชุดแรกของมูลนิธิมี 10 คนประกอบด้วยตัวแทนจาก 5 บริษัทร่วมก่อตั้ง และ 2 คนจากโครงการพัฒนาหลัก และอีก 3 คนที่ดูแลโครงการสำคัญ ได้แก่ เสถียรภาพ (reliability), คุณภาพ (quality), และ การมีส่วนร่วม (collaboration)

Tags:
Node Thumbnail

ผู้ใช้ Apache Web Server คงคุ้นเคยกับ mod_ssl ที่ใช้จัดการ HTTPS โดยโมดูลนี้เขียนด้วยภาษา C ซึ่งมีปัญหาตามมาเรื่องความปลอดภัยที่ระดับตัวภาษา และที่ผ่านมาก็พบช่องโหว่ความปลอดภัยมากมาย

ล่าสุด กูเกิลประกาศสนับสนุนโครงการใหม่ mod_tls ที่ทำงานแบบเดียวกัน แต่เขียนด้วยภาษา Rust ที่ออกแบบมาให้ปลอดภัยมากขึ้น (memory safety)

โมดูล mod_tls จะรันอยู่บนไลบรารี Rustls ที่สร้างขึ้นมาทดแทน OpenSSL ซึ่งเป็นภาษา C เช่นกัน หน่วยงานที่พัฒนาคือ Internet Security Research Group (ISRG) ที่เรารู้จักจากโครงการ Let's Encrypt จะรับเงินสปอนเซอร์จากกูเกิล ไปจ้าง Stefan Eissing หนึ่งในนักพัฒนา Apache Web Server มานำทีม

Tags:
Node Thumbnail

ไมโครซอฟท์มีแนวทางหลอมรวม Win32 และ UWP เข้าด้วยกันภายใต้ Project Reunion ซึ่งประกอบด้วยโครงการย่อยหลายอย่าง เป้าหมายข้อหนึ่งของ Reunion คือเปิดให้ใช้ภาษาโปรแกรมรุ่นใหม่ๆ เขียนแอพบนวินโดวส์ได้หลากหลายขึ้น

ข้อจำกัดสำคัญของ Win32 API แบบดั้งเดิมคือมันถูกสร้างขึ้นในยุคภาษา C/C++ จึงรองรับเฉพาะภาษานี้ หากต้องการเขียนโปรแกรม Win32 ด้วยภาษาโปรแกรมอื่น จำเป็นต้องมี binding หรือ wrapper มาทำหน้าที่เชื่อมต่อ API ให้

Tags:
Node Thumbnail

Cloudflare เปิดซอร์สโครงการ Saffron ที่เป็นไลบรารีสำหรับอ่านค่าคอนฟิก cron ที่ใช้กำหนดเวลารันงานตามห้วงเวลาในอนาคต หลังจากก่อนหน้านี้ทาง Cloudflare ประสบปัญหาว่าไลบรารีบน frontend นั้นรองรับคอนฟิก cron ไม่ตรงกับระบบหลังบ้านเนื่องจากใช้ไลบรารีคนละตัวกัน

การคอนฟิก cron เป็นระบบคอนฟิกสำหรับรันงานล่วงหน้าที่มีมานาน ตัว cron ดั้งเดิมคอนฟิกได้เพียง นาที, ชั่วโมง, วันในเดือน, เดือน, วันในสัปดาห์ (อาทิตย์-เสาร์) แต่ช่วงหลังๆ มีคอนฟิกส่วนขยายทำให้ผู้ใช้สามารถกำหนดได้ละเอียดขึ้น เช่น รันงานวันเสาร์สุดท้ายของเดือน, รันงานที่วันจันทร์ที่ใกล้กับวันที่ 15 ที่สุด เป็นต้น ไลบรารีแต่ละตัวแม้ทำงานคล้ายกันแต่อาจจะรองรับคอนฟิกซับซ้อนเหล่านี้ไม่เหมือนกัน

Tags:
Topics: 
Node Thumbnail

Tokio รันไทม์เน็ตเวิร์คแบบ asynchronous ยอดนิยมของภาษา Rust ประกาศออกเวอร์ชั่น 1.0 เป็นเวอร์ชั่นแรกในรอบ 4 ปีนับแต่เปิดตัวโครงการที่จะคง API ให้เสถียรสำหรับการใช้งานในระยะยาว

Tokio ถูกใช้งานในโครงการใหญ่ๆ จำนวนมาก เช่น AWS ที่จ้างนักพัฒนา Rust เข้าบริษัทจำนวนมากก็ใช้ Tokio ในบริการ Lambda หรือ Discord ก็เปลี่ยนมาใช้ Tokio เพื่อลดระยะเวลาหน่วงของระบบ

นโยบายการรักษาเสถียรภาพของ API ของโครงการ Tokio ระบุว่าทางโครงการจะบำรุงรักษาเวอร์ชั่น 1.x ไปอย่างน้อยอีก 5 ปี โดยจะเลื่อนเวอร์ชั่น Rust ต่ำสุดไม่ถี่กว่า 6 เดือน ขณะที่การออกเวอร์ชั่นที่ API เข้ากันไม่ได้ เช่นเวอร์ชั่น 2.0 จะไม่ออกก่อน 3 ปีข้างหน้า

Tags:
Node Thumbnail

โครงการ Deno รันไทม์ JavaScript/TypeScript ที่เขียนด้วยภาษา Rust ของผู้สร้าง Node.js เปิดตัวเวอร์ชัน 1.0 ไปเมื่อเดือนพฤษภาคม

ตอนนี้ Deno เดินทางมาถึงเวอร์ชัน 1.5 โดยปรับปรุงทั้งเรื่องฟีเจอร์และประสิทธิภาพอย่างรวดเร็ว ของใหม่ในเวอร์ชันนี้คือ Deno เปลี่ยนมาใช้คอมไพเลอร์ชื่อ swc ที่เขียนด้วยภาษา Rust เช่นกัน ทำให้ประสิทธิภาพตอนเช็คชนิดของตัวแปร (type-check) เพิ่มขึ้น 3 เท่า (หรือ 15 เท่าถ้าระบุว่าไม่ต้องเช็คเลย)

ในฝั่งของขนาดโค้ด ทีม Deno ปรับวิธีการจัดการไฟล์ bundle ใหม่ ให้ลดขนาดโค้ดลงได้มาก บาง bundle อาจมีขนาดลดลงได้ถึง 35%

Tags:
Topics: 
Node Thumbnail

Matt Asay วิศวกรดูแลโครงการโอเพนซอร์สของ AWS เขียนบล็อกถึงภาษา Rust ว่ากำลังมีความสำคัญกับ AWS มากขึ้นเรื่อยๆ และ AWS มีแนวทางจะลงทุนเพื่อช่วยเหลือโครงการต่อไปในอนาคต เนื่องจาก Rust ทำให้บริษัทสามารถพัฒนาซอฟต์แวร์ที่ผ่านมาตรฐานความปลอดภัยได้ในเวลาที่สั้นลง

Tags:
Node Thumbnail

Mozilla ประกาศยกโครงการ Servo เอนจินแสดงผลเว็บตัวใหม่ของ Firefox ที่เขียนด้วยภาษา Rust มาตั้งแต่ปี 2012 (ภายหลังพัฒนาเป็น Firefox Quantum) ให้ Linux Foundation ดูแลต่อแทน

จุดเด่นของ Servo คือทำงานเร็ว, รองรับมัลติคอร์เต็มรูปแบบ และเขียนด้วยภาษา Rust ที่ปลอดจากปัญหาหน่วยความจำ นอกจาก Firefox แล้ว ปัจจุบันยังมีซัมซุง, Let's Encrypt, Three.js ที่นำไปใช้งาน โดย Servo ถือเป็นซอฟต์แวร์โครงการใหญ่ที่สุดที่สร้างด้วย Rust นอกเหนือจากตัวคอมไพเลอร์ของ Rust เอง

Tags:
Node Thumbnail

แอปเปิลประกาศรับสมัครงานวิศวกรซอฟต์แวร์ โดยระบุว่าทีม Apple Cloud Traffic ที่ทำหน้าที่พัฒนาซอฟต์แวร์เข้ารหัสทราฟิกในเครือข่าย กำลังย้ายโค้ดจากภาษา C ไปเป็นภาษา Rust หลังจากทดสอบแล้วประสบความสำเร็จดี จึงกำลังพอร์ตโค้ดไปยังภาษา Rust เพิ่มเติม

ฟีเจอร์ที่ทีมงานนี้ทำงานอยู่มีตั้งแต่ระบบเข้ารหัสที่พัฒนาจาก IPSec, ระบบสื่อสาร RPC เพื่อจัดการ keying, ระบบยืนยันตัวตน (authentication) และยืนยันสิทธิ์ (authorization)

วิศวกรที่สมัครตำแหน่งนี้ต้องมีประสบการณ์เขียนภาษา C มาแล้ว 3-5 ปี และหากมีประสบการณ์ภาษา Rust จะพิจารณาเป็นพิเศษ

ภาษา Rust ได้รับความนิยมอย่างรวดเร็วในวงการความมั่นคงปลอดภัยไซเบอร์จากฟีเจอร์ที่ลดบั๊กความปลอดภัยหน่วยความจำ แต่ยังมีประสิทธิภาพดีเทียบเท่าภาษา C

Tags:
Node Thumbnail

AWS เปิดตัว Bottlerocket OS ระบบปฎิบัติการเพื่อการรันคอนเทนเนอร์โดยเฉพาะ ตัดส่วนประกอบอื่นๆ ที่ใช้งานสำหรับเซิร์ฟเวอร์ปกติออกไป และเพิ่มระบบคอนฟิกผ่าน API แทนระบบไฟล์

จุดขายสำคัญของ Bottlerocket คือความปลอดภัย โดยส่วนประกอบอื่นๆ นอกจากเคอร์เนลพัฒนาด้วยภาษา Rust เป็นส่วนใหญ่เพื่อลดความเสี่ยงช่องโหว่การจัดการหน่วยความจำ, โครงการตั้งค่า SELinux แบบ enforcing เป็นค่าเริ่มต้น, และยังตรวจสอบการแก้ไขระบบปฎิบัติการ เพื่อหาการฝัง rootkit ด้วย dm-variety

Tags:
Node Thumbnail

ทีมพัฒนาภาษาโปรแกรม Rust ออกมาประกาศแผนในอนาคต หลัง Mozilla ปลดพนักงาน 250 คน และทีมงาน Rust ถูกปลดด้วย ว่าจะตั้งมูลนิธิ Rust Foundation เป็นองค์กรแยกต่างหาก เพื่อมารับผิดชอบการพัฒนา Rust โดยไม่ต้องขึ้นกับ Mozilla

Rust Foundation จะกลายเป็นองค์กรไม่หวังผลกำไรที่เป็นเจ้าของเครื่องหมายการค้า Rust และรับผิดชอบการลงทุนเพื่อพัฒนา Rust ต่อไป คาดว่ามูลนิธิจะจดทะเบียนเสร็จและเริ่มทำงานภายในปี 2020 นี้

Tags:
Node Thumbnail

ภาษา Rust เป็นภาษาที่ Stack Overflow พบว่านักพัฒนา "รัก" ที่สุดต่อเนื่องหลายปี แถมยังมีอัตราของนักพัฒนาที่ใช้งานแล้วยังรักษาอยู่สูงถึง 86.1% ทิ้งห่างภาษาอื่นๆ ไปไกล ทาง Stack Overflow จึงไปสัมภาษณ์กลุ่มผู้ใช้ที่เป็นผู้ตอบคำถามในกลุ่มภาษา Rust และทีมพัฒนาโครงการเองว่าทำไมชุมชนผู้ใช้จึงรักภาษา Rust ขนาดนี้

เหตุผลที่ได้รับคำตอบมาแบ่งเป็นกลุ่มใหญ่ๆ ได้แก่

Tags:
Node Thumbnail

โครงการ Google Chrome ออกรายงานวิเคราะห์ช่องโหว่ความร้ายแรงสูงถึงความร้ายแรงวิกฤติจำนวน 912 รายการ พบว่าในจำนวนนี้เป็นช่องโหว่หน่วยความจำถึง 70% แบ่งเป็นช่องโหว่ใช้หน่วยความจำหลังคืนค่าให้ระบบ (use-after-free) ถึง 36.1% และช่องโหว่หน่วยความจำอื่นๆ อีก 32.9% ทำให้ทีมงานเตรียมวางโครงการใหญ่เพื่อขจัดปัญหาในระยะยาว

Tags:
Node Thumbnail

Ryan Dahl ผู้เริ่มโครงการ Nodejs เมื่อปี 2009 และออกจากโครงการไปเมื่อปี 2012 กลับมาพัฒนาโครงการ Deno ที่เป็นรันไทม์สำหรับรันจาวาสคริปต์นอกเบราว์เซอร์เหมือนกัน แต่พัฒนาขึ้นด้วยแนวคิดที่ต่างออกไป โดยเลือกใช้ภาษา Rust ในการพัฒนา และสร้างโครงการ rust_v8 สำหรับนำเอาเอนจิน V8 มาใช้งาน และตอนนี้ Deno ก็ออกเวอร์ชั่น 1.0 พร้อมสำหรับการใช้งานจริงแล้ว

ฟีเจอร์สำคัญของ Deno ได้แก่

Tags:
Node Thumbnail

แอปเปิลประกาศรับสมัครงานตั้งแต่เดือนมกราคมที่ผ่านมาระบุความต้องการเป็นโปรแกรมเมอร์ที่มีประสบการณ์ภาษา Rust หรือภาษา C โดยมีหน้าที่มีย้ายโค้ดเดิมในภาษา C ไปยัง Rust

บริการนี้ไม่ใช่บริการภายนอก แต่เป็นโค้ด VPN แบบ IPSec เฉพาะของแอปเปิลเองที่ใช้เชื่อมต่อระหว่างศูนย์ข้อมูล

ภาษา Rust ได้รับความสนใจในหมู่งานด้านความมั่นคงปลอดภัย เนื่องจากภาษามีฟีเจอร์รักษาความปลอดภัยหน่วยความจำ แต่ก็ยังคงประสิทธิภาพของโค้ดในระดับเดียวกับโค้ดที่เขียนด้วยภาษา C ตัวอย่างเช่นไลบรารี Rustls นั้นประสิทธิภาพดีกว่า OpenSSL เสียอีก

ที่มา - jobs.apple.com

Tags:
Node Thumbnail

กูเกิลเปิดซอร์สโค้ด OpenSK เฟิร์มแวร์กุญแจล็อกอินขั้นตอนที่สอง FIDO U2F และ FIDO2 โดยเขียนด้วยภาษา Rust และรองรับชิป Nordic nRF52840 โดยระบุว่าเลือกชิปตัวนี้เพราะมันรองรับการเชื่อมต่อวิธีหลักๆ แทบทั้งหมด ทั้ง NFC, Bluetooth LE, และ USB นอกจากนี้ยังมีวงจรเร่งความเร็วเข้ารหัสไว้ให้ด้วย

ในชิป nRF52840 มีคอร์ ARM CryptoCell-310 อยู่ภายในแต่ตอนนี้เฟิร์มแวร์ที่เปิดเผยออกมายังไม่ได้ใช้ความสามารถส่วนนี้ แต่ใช้โค้ดเข้ารหัสภาษา Rust ไปก่อน แม้โค้ดจะใช้งานได้แต่กูเกิลเตือนว่ายังไม่ได้ตรวจสอบการโจมตีแบบ side channel และไม่ได้ผ่านการรับรองจาก FIDO แต่อย่างใด

Tags:
Topics: 
Node Thumbnail

1Password โปรแกรมช่วยจำรหัสผ่านออกส่วนขยายเบราว์เซอร์ 1Password X เวอร์ชั่น 1.17 โดยมีความเปลี่ยนแปลงสถาปัตยกรรมคือเปลี่ยนส่วน filling brain โมดูลวิเคราะห์หน้าเว็บเพื่อแนะนำว่าควรใช้ข้อมูลใดมาเติมอัตโนมัติ

ทาง 1Password ระบุว่าโมดูลนี้เขียนด้วยภาษา Rust และคอมไพล์เป็น WebAssembly โดยแนวทางนี้ทำให้โมดูลย่อยทำงานได้เร็วขึ้นและพอร์ตไปใช้ในแอปอื่นๆ ได้ด้วย

ตอนนี้ 1Password โดยรวมใช้ภาษา Rust ในส่วนการอ่านเอกสาร Markdown และการสร้างรหัสผ่านแบบใช้ครั้งเดียวตามเวลา (time-based one-time password - TOTP) โดยโมดูลเหล่านี้สามารถคอมไพล์เป็น WebAssembly ทำให้แชร์โค้ดระหว่างแอปเวอร์ชั่นต่างๆ ได้

Tags:
Node Thumbnail

Cloudflare เปิดตัวไลบรารี LOL HTML ชื่อเต็ม Low Output Latency streaming HTML rewriter/parser with CSS-selector based API หรือ "ตัวอ่านและแก้ไข HTML กำหนดข้อมูลที่แก้ด้วย CSS-selector แบบระยะเวลาหน่วงต่ำ"

LOL HTML เป็นไลบรารีภาษา Rust ที่ทาง Cloudflare สร้างไว้ใช้งานในบริการ Cloudflare Workers ที่รันซอฟต์แวร์แบบ serverless แก้ไข HTML ที่ปลายทางของ CDN ได้เลย

Tags:
Node Thumbnail

ไมโครซอฟท์ลงประกาศรับสมัครงานในตำแหน่ง Security Software Engineer รับผิดชอบการสร้างเครื่องมือวิจัยและลดผลกระทบช่องโหว่ความปลอดภัยในวินโดวส์และอุปกรณ์ของไมโครซอฟท์ โดยระบุว่าเครื่องมือภายในพัฒนาด้วยภาษา Rust เป็นหลัก ดังนั้นหากใครมีประสบการณ์จะพิจารณาเป็นพิเศษ

อย่างไรก็ดีภาษา Rust ไม่ได้เป็นเงื่อนไขหลักในการสมัครตำแหน่งนี้ โดนผู้สมัครต้องเขียนโปรแกรมภาษา C/C++ เป็น ระดับประสบการณ์ 3 ปีขึ้นไป, เข้าใจความมั่นคงปลอดภัยของระบบปฎิบัติการ มีประสบการณ์พัฒนาซอฟต์แวร์ระบบมากกว่า 1 ปี, มีความรู้ด้านวิทยาศาสตร์คอมพิวเตอร์อย่างแข็งแกร่ง

Pages