ผู้สร้าง C++ วิพากษ์วิจารณ์การใช้ภาษาโปรแกรมที่ปลอดภัย

Bjarne Stroustrup ผู้สร้างภาษา C++ ได้เผยแพร่ข้อโต้แย้งต่อข้อสรุปของรายงาน NSA ซึ่งแนะนำให้องค์กรต่างๆ เลิกใช้ภาษาการเขียนโปรแกรม เช่น C และ C++ ซึ่งปล่อยให้นักพัฒนาจัดการหน่วยความจำ หันไปใช้ภาษาแทน ​​เช่น C#, Go, Java, Ruby, Rust และ Swift ซึ่งให้การจัดการหน่วยความจำอัตโนมัติหรือดำเนินการตรวจสอบความปลอดภัยของหน่วยความจำเวลาคอมไพล์

จากข้อมูลของ Stroustrup ภาษาที่ปลอดภัยที่กล่าวถึงในรายงานของ NSA นั้นแท้จริงแล้วไม่ได้เหนือกว่า C++ ในแอปพลิเคชันที่มีความสำคัญจากมุมมองของเขา โดยเฉพาะอย่างยิ่ง คำแนะนำพื้นฐานสำหรับการใช้ C++ (C++ Core Guidelines) ที่พัฒนาขึ้นในช่วงไม่กี่ปีที่ผ่านมา ครอบคลุมวิธีการเขียนโปรแกรมที่ปลอดภัย และกำหนดให้ใช้เครื่องมือที่รับประกันการทำงานที่ปลอดภัยกับประเภทและทรัพยากร ซึ่งทำให้มีทางเลือกสำหรับนักพัฒนาที่ไม่ต้องการการรับประกันความปลอดภัยที่เข้มงวดดังกล่าวเพื่อใช้วิธีการพัฒนาแบบเก่าต่อไป

Stroustrup เชื่อว่าเครื่องวิเคราะห์แบบคงที่ที่ดีซึ่งปฏิบัติตามหลักเกณฑ์หลักของ C++ สามารถให้การรับประกันที่จำเป็นสำหรับความปลอดภัยของโค้ด C++ ด้วยต้นทุนที่ต่ำกว่าอย่างมากเมื่อเทียบกับการย้ายไปยังภาษาการเขียนโปรแกรมที่ปลอดภัยใหม่ ตัวอย่างเช่น คำแนะนำหลักส่วนใหญ่มีการใช้งานแล้วในตัววิเคราะห์แบบคงที่และโปรไฟล์ความปลอดภัยของหน่วยความจำที่รวมอยู่ใน Microsoft Visual Studio คำแนะนำบางประการยังนำมาพิจารณาในตัววิเคราะห์คงที่ที่เป็นระเบียบเรียบร้อยของ Clang ด้วย

รายงานของ NSA ยังถูกวิพากษ์วิจารณ์ว่ามุ่งเน้นไปที่ปัญหาหน่วยความจำเท่านั้น โดยไม่ทิ้งปัญหาภาษาโปรแกรมอื่นๆ มากมายที่ส่งผลต่อความปลอดภัยและความน่าเชื่อถือ Stroustrup มองว่าการรักษาความปลอดภัยเป็นแนวคิดที่กว้างขึ้น ซึ่งแง่มุมต่างๆ สามารถทำได้โดยการผสมผสานระหว่างรูปแบบการเขียนโค้ด ไลบรารี และเครื่องวิเคราะห์แบบคงที่ เพื่อควบคุมการรวมกฎเพื่อความปลอดภัยในการทำงานกับประเภทและทรัพยากร ขอเสนอให้ใช้คำอธิบายประกอบในตัวเลือกโค้ดและคอมไพเลอร์

ในแอปพลิเคชันที่ประสิทธิภาพมีความสำคัญมากกว่าความปลอดภัย วิธีการนี้อนุญาตให้มีการใช้งานคุณสมบัติที่เลือกสรรซึ่งรับประกันความปลอดภัยเฉพาะเมื่อจำเป็นเท่านั้น เครื่องมือรักษาความปลอดภัยยังสามารถนำไปใช้ในลักษณะทีละน้อย เช่น เริ่มต้นด้วยการตรวจสอบช่วงและกฎการเริ่มต้น จากนั้นค่อย ๆ ปรับโค้ดให้เข้ากับข้อกำหนดที่เข้มงวดยิ่งขึ้น

ที่มา: opennet.ru

เพิ่มความคิดเห็น