Tags:
Node Thumbnail

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

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

กูเกิลมีประวัติช่วยเหลือโครงการโอเพนซอร์สแก้ปัญหาช่องโหว่จากบั๊กหน่วยความจำมานาน เช่น โครงการ OSS-Fuzz ชุดทดสอบหน่วยความจำอัตโนมัติ ที่เปิดตัวตั้งแต่ปี 2016 และจนตอนนี้พบช่องโหว่ไปแล้ว 5,500 รายการจาก 375 โครงการ หากดูเฉพาะช่องโหว่ความปลอดภัยของโครงการ curl จำนวน 95 รายการ จะพบว่าช่องโหว่กว่าครึ่งจะหายไปหากอิมพลีเมนต์ด้วยภาษาที่ปลอดภัยจากช่องโหว่หน่วยความจำ

ที่มา - Google Security Blog

Get latest news from Blognone

Comments

By: A4
iPhoneAndroidRed HatSUSE
on 19 February 2021 - 02:41 #1199627
A4's picture

แล้วภาษาโกของท่านหละ

By: mr_tawan
ContributoriPhoneAndroidWindows
on 19 February 2021 - 02:47 #1199629 Reply to:1199627
mr_tawan's picture

เข้าใจว่า go มันเป็นระดับสูงกว่า Rust นะครับ


  • 9tawan.net บล็อกส่วนตัวฮับ
By: PH41
ContributorAndroidUbuntuWindows
on 19 February 2021 - 04:23 #1199632 Reply to:1199627
PH41's picture

โกเคยมีบัค memory ที่ตัวภาษา

By: WattZ
AndroidRed HatSymbianWindows
on 19 February 2021 - 09:40 #1199654 Reply to:1199632
WattZ's picture

bug นี้หมายถึงว่า ไม่ใช้ user error ใช่ป่าวครับ เช่นเปิดแล้วลืมปิด เป็นที่ตัวภษาจริงๆ เลย

By: lew
FounderJusci's WriterMEconomicsAndroid
on 19 February 2021 - 09:40 #1199653 Reply to:1199627
lew's picture

ภาษา Go เป็นภาษาที่มี garbage collector ทำให้ไม่เหมาะกับบางงาน โดยเฉพาะกลุ่มที่ต้องติดต่อกับฮาร์ดแวร์โดยตรง

เอาจริงๆ แม้แต่เว็บเองภาษา Go ก็เคยต้องปรับปรุงการทำงาน garbage collector ไปแล้วหลายรอบเพื่อให้แอปไม่กระตุกในจังหวะที่มันกำลังทำงาน

แต่โดยทั่วไปเราไม่ต้องเลือกภาษาเดียวทุกงานครับ ภาษาหนึ่งก็มีที่มีทาง มีความนิยมในการใช้งานของมัน


lewcpe.com, @wasonliw

By: rattananen
AndroidWindows
on 19 February 2021 - 12:39 #1199690 Reply to:1199627

เคยไป skim doc ของ GO มาเหมือนจะสร้างมาเพื่องาน concurrent/parallel ระดับ CPU ครับ
ส่วน Rust ก็ใช้แทน C ที่เกิดช่องโหว่เรื่องหน่วยความจำได้ง่าย
คนละจุดประสงค์กัน

By: mk
FounderAndroid
on 19 February 2021 - 15:46 #1199730 Reply to:1199627
mk's picture

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

By: whitebigbird
Contributor
on 19 February 2021 - 08:52 #1199642
whitebigbird's picture

ที่พูดกันว่า C เป็นภาษาที่ดีที่สุดนี่ยังเป็นจริงมั้ยครับ

By: lew
FounderJusci's WriterMEconomicsAndroid
on 19 February 2021 - 09:36 #1199652 Reply to:1199642
lew's picture

ผมเขียน C ไม่เคยได้ยินนะครับ


lewcpe.com, @wasonliw

By: whitebigbird
Contributor
on 19 February 2021 - 09:53 #1199664 Reply to:1199652
whitebigbird's picture

น่าจะเป็นความเห็นมากกว่า fact ครับ

By: planepisode on 19 February 2021 - 11:57 #1199684 Reply to:1199642
planepisode's picture

คิดว่าไม่น่าใช่ครับ เพราะเหมือนเคยได้ยินว่า C++ หรือ C# นี่แหละ ทำมาแก้ pain point บางอย่างของ C เช่น เรื่องการเขียนเป็น OOP

By: whitebigbird
Contributor
on 19 February 2021 - 12:49 #1199695 Reply to:1199684
whitebigbird's picture

C ที่ผมพูดถึงคงรวม C++ ด้วยครับ แต่ไม่ใช่ Visual

By: mr_tawan
ContributoriPhoneAndroidWindows
on 19 February 2021 - 15:27 #1199726 Reply to:1199695
mr_tawan's picture

ถ้าหมายถึง Linus ล่ะก็ไม่ใช่ครับ หมอนี่ด่า C++ อยู่เนือง ๆ


  • 9tawan.net บล็อกส่วนตัวฮับ
By: heart
ContributoriPhone
on 8 April 2021 - 10:17 #1205286 Reply to:1199642
heart's picture

ทุกภาษา มันมีดี มีแย่ในข้อต่างๆ ที่ต่างกันไป
ถ้าจะบอกว่า C ดีกว่า ก็ต้องมาดู ว่าดีกว่าข้อไหน

บางที C อาจจะมีพลังที่สูงมาก
แต่ด้วยการที่เขียนยากกว่า หรือเปิดโอกาสให้เกิดบั๊กมากกว่า
นั่นก็เป็นข้อเสีย เพราะเราไม่สามารถไปบังคับให้คนทั้งโลกจะต้องเก่งเท่ากันทุกคน

By: panther
ContributorAndroidUbuntuWindows
on 19 February 2021 - 10:16 #1199669
panther's picture

ผมชอบแนวคิดเรื่องที่ไม่มี GC แล้วก็พวก owenership กับ borrowing นะ กำลังศึกษาอยู้เหมือนกัน
ผมเห็นคนที่ใช้ Go บอก rust ช้ามากกกก compile นาน ผมก็สงสัยนะว่ามันเร็วช้า ต่างกันขนาดจะทนไม่ได้เลยรึ
ปล...ผมเคยใช้ EJB กับ GWT ของ google อยู่ อันนั้นก็นานจิงๆ

By: lew
FounderJusci's WriterMEconomicsAndroid
on 19 February 2021 - 12:58 #1199698 Reply to:1199669
lew's picture

ถ้าคอมไพล์ช้านี่คือจริงนะครับ แนวคิดเขาต่างออกไป

  • Go = เขียนง่าย, concurrent ง่าย, และ compile เร็ว
  • Rust = ไม่มี GC แต่ memory safe, compiler หาปัญหาก่อนรัน (คอมไพล์ช้าไม่ใช่ปัญหา)

lewcpe.com, @wasonliw

By: mr_tawan
ContributoriPhoneAndroidWindows
on 19 February 2021 - 15:29 #1199727 Reply to:1199698
mr_tawan's picture

Rust ทำ static linking หรือเปล่าครับ (ผมยังไม่เคยเขียน Rust เลยไม่ทราบครับ)


  • 9tawan.net บล็อกส่วนตัวฮับ
By: nuimk on 20 February 2021 - 18:19 #1199893 Reply to:1199727

ขึ้นอยู่กับ compilation target ครับ เลือกได้แต่ default เป็น dynamic linking

By: nuimk on 20 February 2021 - 18:17 #1199892 Reply to:1199669

Go lang compile เร็วอยู่แล้วครับจุดขายเค้าเลย ภาษามันไม่ได้ซับซ้อนมาก compiler เลยไม่ต้องทำงานหนัก
Rust ถ้าเคย compile ไปแล้วรอบนึง มันก็จะมี cache เป็น incremental build เหมือน C/C++ แหละครับ ไม่ได้ช้าขนาดนั้น

By: heart
ContributoriPhone
on 19 February 2021 - 12:53 #1199697
heart's picture

เป็น Rust ก็ดีนะ
บางท่ีก็ปวดหัวกะ C++ มาก จะโหลดมา Build เองก็เจอคอนฟิกยากๆ