Google ประกาศช่วยเสริมความปลอดภัยให้กับโครงการ Open Source ทั่วโลกด้วยการทำ Fuzz Testing โดยอัตโนมัติผ่าน OSS-Fuzz และเชิญชวนให้เหล่า Developer ทั่วโลกใช้ในโครงการ Open Source ของตนให้กลายเป็นมาตรฐาน
Google นั้นเห็นว่า Open Source Software (OSS) นั้นได้กลายมาเป็นหัวใจหลักของหลายๆ Application และหลายๆ บริการทั่วโลก ในขณะที่ประเด็นทางด้านความปลอดภัยนั้นก็เป็นเรื่องสำคัญขึ้นในทุกๆ วัน ซึ่งที่ผ่านมานั้นช่องโหว่อย่าง Buffer Overflow หรือ Use-after-free นั้นก็อาจสร้างปัญหาร้ายแรงให้เกิดขึ้นมาได้ Google จึงได้มองว่าการทำ Fuzz Testing โดยอัตโนมัติกับเหล่า Open Source Software อย่างต่อเนื่องเพื่อค้นหาช่องโหว่หรือบั๊กเหล่านี้ให้เจอโดยเร็วที่สุดน่าจะเป็นทางออกได้สำหรับปัญหาเหล่านี้
Fuzz Testing นั้นคือการทดสอบโค้ดด้วยการยิงค่าแบบสุ่มเข้าไปยังฟังก์ชันหรือโปรแกรมต่างๆ และคอยดูผลลัพธ์เพื่อตรวจสอบว่าจะพบกับ Error ใดๆ หรือไม่ และแจ้งไปยังผู้พัฒนาเพื่อให้แก้ไขช่องโหว่เหล่านี้ทันทีโดยเร็ว
ที่ผ่านมา Google จึงได้ทดลองใช้งาน Fuzzing Engine ที่หลากหลาย ไม่ว่าจะเป็น AFL หรือ libFuzzer ก็ตามเพื่อใช้ในการค้นหาบั๊กหรือช่องโหว่บน Google Chrome และเมื่อนำ Fuzzer มาใช้ร่วมกับ Sanitizer แล้วก็จะทำให้สามารถค้นหาช่องโหว่ทางด้านความปลอดภัย (เช่น Buffer Overflow, Use-after-free, Bad Cast, Integer Overflow และอื่นๆ), บั๊กทางด้านความทนทาน (Null Dereference, Memory Leak, Out-of-memory Assertion Failure และอื่นๆ) รวมไปถึงบั๊กใน Logic ของโปรแกรมได้ด้วย
เป้าหมายของ Google ในการพัฒนา OSS-Fuzz นี้จึงเป็นความต้องการที่จะทำให้ Software ต่างๆ ทั่วโลกปลอดภัยและทนทานมากยิ่งขึ้นด้วยการนำ Fuzz Testing สมัยใหม่มาใช้ในแบบที่สามารถ Scale เพื่อรองรับการทดสอบขนาดใหญ่ได้ ซึ่งภายใน OSS-Fuzz เองนี้ก็ประกอบไปด้วย Fuzzing Engine อย่าง libFuzzer และ Sanitizer อย่าง AddressSanitizer ที่สามารถทำงานแบบ Distributed ได้ด้วย ClusterFuzz
ในการทดสอบของ Google ด้วยการใช้งาน OSS-Fuzz กับ FreeType Library ที่มีการใช้งานอยู่บนอุปกรณ์นับพันล้านชิ้นทั่วโลกนั้น ก็ทำให้สามารถตรวจพบช่องโหว่ Heap Buffer Overflow ได้ภายในการทดสอบเพียงไม่กี่ชั่วโมง โดยที่ผ่านมาจากการทดสอบใช้ในหลากหลายโครงการด้วยการทดสอบกว่า 4 ล้านล้านครั้งในแต่ละสัปดาห์ก็ทำให้สามารถพบช่องโหว่และบั๊กเพิ่มขึ้นได้มากถึง 150 รายการเลยทีเดียว ซึ่งทาง Google ก็อยากเชิญชวนเหล่านักพัฒนาให้มาใช้งาน OSS-Fuzz, มาร่วม Contribute ในโครงการ รวมถึงมาร่วมแสดงความคิดเห็นเพื่อปรับปรุงให้โครงการดียิ่งขึ้นต่อไป
สำหรับผู้ที่สนใจข้อมูลของ OSS-Fuzz นั้นสามารถเข้าไปศึกษาเพิ่มเติมได้ที่ https://github.com/google/oss-fuzz และ https://github.com/google/oss-fuzz/blob/master/docs/clusterfuzz.md เลยนะครับ ปัจจุบันนี้ OSS-Fuzz ยังอยู่ในขั้น Beta อยู่ ใครที่ทำโครงการ Open Source อะไรแล้วอยากเข้าร่วมก็สามารถอ่านวิธีการสมัครได้ที่ https://github.com/google/oss-fuzz#accepting-new-projects เลยนะครับ
ที่มา: https://testing.googleblog.com/2016/12/announcing-oss-fuzz-continuous-fuzzing.html