LLMs และการสร้างโค้ดที่ไม่ปลอดภัย: สถานการณ์เริ่มต้น
Backslash Security ได้ทำการทดสอบกับ LLMs รุ่นต่างๆ เช่น OpenAI’s GPT models, Anthropic’s Claude และ Google’s Gemini เพื่อประเมินว่าเทคนิคการกระตุ้น (prompting techniques) ต่างๆ มีผลต่อความสามารถในการสร้างโค้ดที่ปลอดภัยอย่างไร ความปลอดภัยของโค้ดที่ได้ถูกประเมินโดยอิงจากความสามารถในการต้านทานต่อ 10 กรณีการใช้งาน Common Weakness Enumeration (CWE) ซึ่งแสดงถึงช่วงของช่องโหว่ซอฟต์แวร์ทั่วไป
ผลการทดสอบแสดงให้เห็นอย่างสม่ำเสมอว่าความปลอดภัยของโค้ดที่สร้างขึ้นนั้นดีขึ้นเมื่อใช้เทคนิคการกระตุ้นที่ซับซ้อนมากขึ้น อย่างไรก็ตาม หัวข้อหลักคือ LLMs ที่ทดสอบทั้งหมดโดยทั่วไปจะสร้างโค้ดที่ไม่ปลอดภัยเมื่อปล่อยให้เป็นไปตามธรรมชาติ ซึ่งบ่งชี้ว่าโมเดลเหล่านี้ในการกำหนดค่าเริ่มต้นไม่ได้ให้ความสำคัญกับความปลอดภัยและมักจะล้มเหลวในการจัดการกับจุดอ่อนในการเขียนโค้ดทั่วไป
Prompts แบบง่าย: สูตรสำหรับช่องโหว่
เมื่อนำเสนอด้วย prompts ที่เรียบง่ายและ ‘naive’ ที่ไม่ได้กล่าวถึงข้อควรพิจารณาด้านความปลอดภัยอย่างชัดเจน LLMs ที่ทดสอบทั้งหมดได้สร้างโค้ดที่ไม่ปลอดภัยซึ่งมีช่องโหว่อย่างน้อยสี่ในสิบ CWE ทั่วไป ซึ่งเน้นให้เห็นถึงการขาดความตระหนักรู้ด้านความปลอดภัยโดยธรรมชาติในโมเดลเหล่านี้เมื่อทำงานโดยไม่มีคำแนะนำเฉพาะ
ผลกระทบของ Prompts ที่เน้นความปลอดภัย
Prompts ที่ระบุความต้องการด้านความปลอดภัยโดยทั่วไปนำไปสู่ผลลัพธ์ที่ปลอดภัยยิ่งขึ้น ซึ่งบ่งชี้ว่า LLMs สามารถสร้างโค้ดที่ปลอดภัยยิ่งขึ้นได้เมื่อได้รับคำสั่งอย่างชัดเจนให้ทำเช่นนั้น ยิ่งไปกว่านั้น prompts ที่ขอโค้ดที่เป็นไปตามแนวทางปฏิบัติที่ดีที่สุดของ Open Web Application Security Project (OWASP) ให้ผลลัพธ์ที่ดียิ่งขึ้น OWASP เป็นมูลนิธิที่ไม่แสวงหาผลกำไรที่ทำงานเพื่อปรับปรุงความปลอดภัยของซอฟต์แวร์ อย่างไรก็ตาม แม้จะมี prompts ที่ซับซ้อนกว่าเหล่านี้ ช่องโหว่ของโค้ดบางอย่างยังคงมีอยู่ในห้าในเจ็ด LLMs ที่ทดสอบ ซึ่งเน้นย้ำถึงความท้าทายในการสร้างโค้ดที่ปลอดภัยอย่างสม่ำเสมอด้วย LLMs
Prompts ที่อิงตามกฎ: เส้นทางสู่โค้ดที่ปลอดภัย
วิธีการที่มีประสิทธิภาพมากที่สุดสำหรับการสร้างโค้ดที่ปลอดภัยเกี่ยวข้องกับ prompts ที่ผูกติดอยู่กับกฎที่ระบุโดย Backslash เพื่อจัดการกับ CWEs เฉพาะ prompts ที่อิงตามกฎเหล่านี้ส่งผลให้โค้ดปลอดภัยและไม่มีช่องโหว่ต่อ CWEs ที่ทดสอบ ซึ่งบ่งชี้ว่าการให้คำแนะนำที่เฉพาะเจาะจงและตรงเป้าหมายแก่ LLMs เป็นสิ่งสำคัญอย่างยิ่งสำหรับการรับประกันความปลอดภัยของโค้ดที่สร้างขึ้น
ความผันแปรของประสิทธิภาพระหว่าง LLMs
โดยรวมแล้ว OpenAI’s GPT-4o แสดงให้เห็นถึงประสิทธิภาพที่ต่ำที่สุดในทุก prompts โดยให้ผลลัพธ์โค้ดที่ปลอดภัยเพียง 1 ใน 10 เมื่อใช้ prompts ‘naive’ แม้จะได้รับแจ้งให้สร้างโค้ดที่ปลอดภัย แต่ก็ยังสร้างผลลัพธ์ที่ไม่ปลอดภัยซึ่งมีช่องโหว่ต่อแปดในสิบประเด็น GPT-4.1 ไม่ได้มีประสิทธิภาพดีขึ้นอย่างมีนัยสำคัญด้วย prompts naive โดยได้คะแนน 1.5 จาก 10
ในทางตรงกันข้าม Claude 3.7 Sonnet กลายเป็นผู้ที่มีประสิทธิภาพดีที่สุดในบรรดาเครื่องมือ GenAI ที่ทดสอบ โดยได้คะแนน 6 จาก 10 โดยใช้ prompts naive และ 10 เต็ม 10 เมื่อใช้ prompts ที่เน้นความปลอดภัย ซึ่งบ่งชี้ว่า LLMs บางตัวมีความพร้อมที่ดีกว่าในการจัดการกับข้อควรพิจารณาด้านความปลอดภัย แม้จะไม่มีคำแนะนำที่ชัดเจน
โซลูชันของ Backslash Security สำหรับ Safe Vibe Coding
เพื่อจัดการกับปัญหาที่เปิดเผยโดยการทดสอบ prompt LLM Backslash Security กำลังแนะนำคุณสมบัติใหม่หลายอย่างที่ออกแบบมาเพื่อให้การเขียนโค้ดที่ปลอดภัยเป็นไปได้ Vibe coding หมายถึงการฝึกฝนการสร้างโค้ดโดยใช้เครื่องมือ AI เช่น LLMs
Backslash AI Rules & Policies
Backslash AI Rules & Policies จัดเตรียมกฎที่เครื่องอ่านได้ซึ่งสามารถแทรกเข้าไปใน prompts เพื่อให้แน่ใจว่าครอบคลุม CWEs กฎเหล่านี้สามารถใช้กับเครื่องมือต่างๆ เช่น Cursor ซึ่งเป็นโปรแกรมแก้ไขโค้ดยอดนิยม นอกจากนี้ นโยบาย AI ยังควบคุมกฎ AI ใดที่ใช้งานอยู่ใน IDEs ผ่านแพลตฟอร์ม Backslash ซึ่งช่วยให้องค์กรต่างๆ สามารถปรับแต่งการตั้งค่าความปลอดภัยได้
Backslash IDE Extension
Backslash IDE Extension ผสานรวมเข้ากับเวิร์กโฟลว์ที่มีอยู่ของนักพัฒนาโดยตรง ทำให้พวกเขาสามารถรับการตรวจสอบความปลอดภัย Backslash บนโค้ดที่เขียนโดยทั้งมนุษย์และ AI การผสานรวมนี้มีความสำคัญอย่างยิ่งเพื่อให้แน่ใจว่าข้อควรพิจารณาด้านความปลอดภัยได้รับการแก้ไขตลอดกระบวนการพัฒนา
Backslash Model Context Protocol (MCP) Server
Backslash Model Context Protocol (MCP) Server เป็น API ที่รับรู้บริบทซึ่งเป็นไปตามมาตรฐาน MCP โดยเชื่อมต่อ Backslash กับเครื่องมือ AI ทำให้สามารถเขียนโค้ด สแกน และแก้ไขได้อย่างปลอดภัย มาตรฐาน MCP จัดเตรียมเฟรมเวิร์กทั่วไปสำหรับเครื่องมือ AI ในการสื่อสารและแบ่งปันข้อมูล ซึ่งอำนวยความสะดวกในการพัฒนาแอปพลิเคชันที่ขับเคลื่อนด้วย AI ที่ปลอดภัย
การจัดการกับความท้าทายของโค้ดที่สร้างโดย AI
Yossi Pik ผู้ร่วมก่อตั้งและ CTO ของ Backslash Security เน้นย้ำถึงความท้าทายที่โค้ดที่สร้างโดย AI ก่อให้เกิดกับทีมรักษาความปลอดภัย เขาตั้งข้อสังเกตว่า ‘โค้ดที่สร้างโดย AI – หรือ vibe coding – อาจรู้สึกเหมือนเป็นฝันร้ายสำหรับทีมรักษาความปลอดภัย มันสร้างโค้ดใหม่มากมายและนำความเสี่ยง LLM เช่น ภาพหลอนและความไวต่อ prompt’ ภาพหลอนหมายถึงกรณีที่ LLMs สร้างข้อมูลที่ไม่ถูกต้องหรือไม่สมเหตุสมผล ในขณะที่ความไวต่อ prompt หมายถึงแนวโน้มที่ LLMs จะสร้างเอาต์พุตที่แตกต่างกันตามการเปลี่ยนแปลงเล็กน้อยใน prompt อินพุต
อย่างไรก็ตาม Pik ยังเชื่อว่า AI สามารถเป็นเครื่องมือที่มีค่าสำหรับทีม AppSec เมื่อใช้ร่วมกับการควบคุมที่เหมาะสม เขาแย้งว่า ‘ด้วยการควบคุมที่เหมาะสม – เช่น กฎที่กำหนดโดยองค์กรและเซิร์ฟเวอร์ MCP ที่รับรู้บริบทซึ่งเสียบเข้ากับแพลตฟอร์มความปลอดภัยที่สร้างขึ้นตามวัตถุประสงค์ – AI สามารถให้การควบคุมแก่ทีม AppSec ได้มากขึ้นตั้งแต่เริ่มต้น’ Backslash Security มุ่งมั่นที่จะให้การควบคุมเหล่านี้ผ่านกฎที่อิงตามนโยบายแบบไดนามิก เซิร์ฟเวอร์ MCP ที่คำนึงถึงบริบท และส่วนขยาย IDE ซึ่งทั้งหมดนี้ได้รับการออกแบบมาสำหรับยุคการเขียนโค้ดใหม่
ผลกระทบของโค้ดที่สร้างโดย AI ที่ไม่ปลอดภัย
ผลการวิจัยจาก Backslash Security มีผลกระทบอย่างมากต่ออุตสาหกรรมการพัฒนาซอฟต์แวร์ ในขณะที่เครื่องมือสร้างโค้ดที่ขับเคลื่อนด้วย AI แพร่หลายมากขึ้น การทำความเข้าใจความเสี่ยงที่เกี่ยวข้องกับการพึ่งพาเครื่องมือเหล่านี้โดยไม่มีมาตรการรักษาความปลอดภัยที่เหมาะสมจึงเป็นสิ่งสำคัญ
ความเสี่ยงที่เพิ่มขึ้นต่อการโจมตีทางไซเบอร์
โค้ดที่สร้างโดย AI ที่ไม่ปลอดภัยสามารถสร้างช่องโหว่ใหม่ที่อาชญากรไซเบอร์สามารถใช้ประโยชน์ได้ ช่องโหว่เหล่านี้อาจนำไปสู่การละเมิดข้อมูล การประนีประนอมระบบ และเหตุการณ์ด้านความปลอดภัยอื่นๆ
ความยากลำบากในการระบุและแก้ไขช่องโหว่
ปริมาณโค้ดที่สร้างโดย AI จำนวนมากอาจทำให้การระบุและแก้ไขช่องโหว่เป็นเรื่องท้าทาย ทีมรักษาความปลอดภัยอาจต้องดิ้นรนเพื่อให้ทันกับความเร็วในการสร้างโค้ดอย่างรวดเร็ว ซึ่งนำไปสู่ปัญหาด้านความปลอดภัยที่ค้างอยู่
การขาดความตระหนักรู้ด้านความปลอดภัยในหมู่นักพัฒนา
นักพัฒนาหลายคนอาจไม่ทราบถึงความเสี่ยงด้านความปลอดภัยที่เกี่ยวข้องกับโค้ดที่สร้างโดย AI อย่างเต็มที่ การขาดความตระหนักรู้นี้อาจนำไปสู่นักพัฒนาที่นำช่องโหว่เข้ามาในแอปพลิเคชันโดยไม่ได้ตั้งใจ
ความท้าทายในการปฏิบัติตามกฎระเบียบ
องค์กรที่พึ่งพาโค้ดที่สร้างโดย AI อาจเผชิญกับความท้าทายในการปฏิบัติตามกฎระเบียบ กฎระเบียบหลายข้อกำหนดให้องค์กรต่างๆ ดำเนินการมาตรการรักษาความปลอดภัยที่เพียงพอเพื่อปกป้องข้อมูลที่ละเอียดอ่อน โค้ดที่สร้างโดย AI ที่ไม่ปลอดภัยอาจทำให้การปฏิบัติตามข้อกำหนดเหล่านี้เป็นเรื่องยาก
แนวทางปฏิบัติที่ดีที่สุดสำหรับการสร้างโค้ดที่ขับเคลื่อนด้วย AI ที่ปลอดภัย
เพื่อลดความเสี่ยงที่เกี่ยวข้องกับโค้ดที่สร้างโดย AI ที่ไม่ปลอดภัย องค์กรต่างๆ ควรนำแนวทางปฏิบัติที่ดีที่สุดต่อไปนี้มาใช้:
จัดอบรมด้านความปลอดภัยแก่นักพัฒนา
นักพัฒนาควรได้รับการฝึกอบรมเกี่ยวกับความเสี่ยงด้านความปลอดภัยที่เกี่ยวข้องกับโค้ดที่สร้างโดย AI การฝึกอบรมนี้ควรครอบคลุมหัวข้อต่างๆ เช่น CWEs ทั่วไป แนวทางปฏิบัติในการเขียนโค้ดที่ปลอดภัย และวิธีการใช้เครื่องมือรักษาความปลอดภัย
ดำเนินการนโยบายและขั้นตอนการรักษาความปลอดภัย
องค์กรต่างๆ ควรรวบรวมนโยบายและขั้นตอนการรักษาความปลอดภัยที่จัดการกับการใช้โค้ดที่สร้างโดย AI นโยบายเหล่านี้ควรกำหนดกรณีการใช้งานที่ยอมรับได้ ข้อกำหนดด้านความปลอดภัย และกระบวนการสำหรับการตรวจสอบและอนุมัติโค้ดที่สร้างโดย AI
ใช้เครื่องมือรักษาความปลอดภัยเพื่อสแกนโค้ดที่สร้างโดย AI
องค์กรต่างๆ ควรใช้เครื่องมือรักษาความปลอดภัยเพื่อสแกนโค้ดที่สร้างโดย AI เพื่อหาช่องโหว่ เครื่องมือเหล่านี้สามารถช่วยระบุ CWEs ทั่วไปและปัญหาด้านความปลอดภัยอื่นๆ
ดำเนินการ Secure Development Lifecycle (SDLC)
องค์กรต่างๆ ควรรวบรวม Secure Development Lifecycle (SDLC) ที่รวมข้อควรพิจารณาด้านความปลอดภัยตลอดกระบวนการพัฒนา ซึ่งรวมถึงการดำเนินการตรวจสอบความปลอดภัยของโค้ดที่สร้างโดย AI การดำเนินการทดสอบการเจาะระบบ และการดำเนินการตรวจสอบความปลอดภัย
สร้างโปรแกรม Bug Bounty
องค์กรต่างๆ ควรสร้างโปรแกรม bug bounty เพื่อสนับสนุนให้นักวิจัยด้านความปลอดภัยค้นหาและรายงานช่องโหว่ในโค้ดที่สร้างโดย AI ซึ่งสามารถช่วยระบุช่องโหว่ที่ทีมรักษาความปลอดภัยภายในอาจพลาดไป
รับทราบข้อมูลเกี่ยวกับภัยคุกคามด้านความปลอดภัยล่าสุด
องค์กรต่างๆ ควรรักษาข้อมูลเกี่ยวกับภัยคุกคามด้านความปลอดภัยและช่องโหว่ล่าสุดที่ส่งผลกระทบต่อโค้ดที่สร้างโดย AI ซึ่งสามารถช่วยให้พวกเขาจัดการกับปัญหาด้านความปลอดภัยที่อาจเกิดขึ้นได้
ร่วมมือกับผู้เชี่ยวชาญด้านความปลอดภัย
องค์กรต่างๆ ควรร่วมมือกับผู้เชี่ยวชาญด้านความปลอดภัยเพื่อประเมินความปลอดภัยของโค้ดที่สร้างโดย AI และพัฒนากลยุทธ์สำหรับการลดความเสี่ยง
อนาคตของการสร้างโค้ดที่ขับเคลื่อนด้วย AI ที่ปลอดภัย
ในขณะที่เครื่องมือสร้างโค้ดที่ขับเคลื่อนด้วย AI ยังคงพัฒนาต่อไป การให้ความสำคัญกับความปลอดภัยเป็นสิ่งสำคัญอย่างยิ่ง การดำเนินการตามแนวทางปฏิบัติที่ดีที่สุดที่กล่าวมาข้างต้น องค์กรต่างๆ สามารถควบคุมประโยชน์ของการสร้างโค้ดที่ขับเคลื่อนด้วย AI ได้ในขณะที่ลดความเสี่ยงที่เกี่ยวข้องกับโค้ดที่ไม่ปลอดภัย
ความก้าวหน้าใน AI Security
ความพยายามในการวิจัยและพัฒนาอย่างต่อเนื่องมุ่งเน้นไปที่การปรับปรุงความปลอดภัยของระบบ AI ความพยายามเหล่านี้รวมถึงการพัฒนาเทคนิคใหม่ๆ สำหรับการตรวจจับและป้องกันการโจมตีแบบ adversarial การปรับปรุงความแข็งแกร่งของโมเดล AI และการสร้างสถาปัตยกรรม AI ที่ปลอดภัยยิ่งขึ้น
การบูรณาการ Security เข้ากับการพัฒนา AI
Security กำลังถูกรวมเข้ากับกระบวนการพัฒนา AI มากขึ้น ซึ่งรวมถึงการรวมข้อควรพิจารณาด้านความปลอดภัยในการออกแบบโมเดล AI การใช้แนวทางปฏิบัติในการเขียนโค้ดที่ปลอดภัย และการดำเนินการทดสอบความปลอดภัยตลอดวงจรชีวิตการพัฒนา
ความร่วมมือระหว่าง AI และ Security Experts
ความร่วมมือระหว่าง AI และ Security Experts เป็นสิ่งจำเป็นเพื่อให้แน่ใจว่าความปลอดภัยของระบบ AI ความร่วมมือนี้สามารถช่วยระบุความเสี่ยงด้านความปลอดภัยที่อาจเกิดขึ้นและพัฒนากลยุทธ์การลดความเสี่ยงที่มีประสิทธิภาพ
การรับรู้ถึงความเสี่ยงด้าน AI Security ที่เพิ่มขึ้น
การรับรู้ถึงความเสี่ยงด้าน AI Security ที่เพิ่มขึ้นกำลังขับเคลื่อนการพัฒนาเครื่องมือและเทคนิคการรักษาความปลอดภัยใหม่ๆ ซึ่งรวมถึงเครื่องมือสำหรับการตรวจจับการโจมตีแบบ adversarial การวิเคราะห์ความปลอดภัยของโมเดล AI และการตรวจสอบระบบ AI เพื่อหากิจกรรมที่น่าสงสัย
ด้วยการจัดการกับความท้าทายด้านความปลอดภัยที่เกี่ยวข้องกับโค้ดที่สร้างโดย AI องค์กรต่างๆ สามารถปลดล็อกศักยภาพสูงสุดของการพัฒนาที่ขับเคลื่อนด้วย AI ในขณะที่ปกป้องระบบและข้อมูลของตนจากการโจมตีทางไซเบอร์