AI โอเพนซอร์สได้เติบโตจนกลายเป็นระบบนิเวศที่แผ่ขยายกว้างขวาง โดยที่ผลิตภัณฑ์เพียงชิ้นเดียวอาจดึงโค้ดมาจากเรโพสิทอรีหลายสิบแห่ง พึ่งพาข้อมูลการฝึกฝนจากหลายแหล่ง และทำงานบนการกำหนดค่าฮาร์ดแวร์เฉพาะทางที่น้อยทีมจะทำเอกสารประกอบไว้ครบถ้วน การติดตามความเกี่ยวเนื่อง (dependencies) เหล่านี้เป็นเรื่องยาก และการทำความเข้าใจว่าส่วนใดของสแต็ก (stack) นั้นเปิดสู่สาธารณะผ่านอินเทอร์เน็ตยิ่งยากกว่า การเปิดตัว Open Source AI Gap Map v0.1 โดย Current AI พยายามที่จะสร้างความเป็นระเบียบท่ามกลางความวุ่นวายนี้ และทีมรักษาความปลอดภัยควรปฏิบัติกับมันเสมือนเป็นเอกสารที่ต้องอ่านอย่างยิ่ง
ดัชนีนี้รวบรวมผลิตภัณฑ์ AI โอเพนซอร์สไว้ 421 รายการ โดยแบ่งออกเป็นสี่หมวดหมู่ ได้แก่ โมเดล AI, ชุดข้อมูล (datasets), เครื่องมือซอฟต์แวร์ (software tools) และฮาร์ดแวร์ เบื้องหลังโครงการทั้งหมดนี้ทำงานบนไฟล์ YAML จำนวน 1,184 ไฟล์ ที่ติดตามเรโพสิทอรีบน GitHub มากกว่า 16,000 แห่ง ช่องว่างระหว่างผลิตภัณฑ์ 421 รายการกับเรโพสิทอรี 16,000 แห่งนั้นบอกเล่าเรื่องราวในตัวมันเอง แอปพลิเคชัน AI ส่วนใหญ่ไม่ใช่โมโนลิท (monolith) ที่รวมศูนย์อยู่ในตัวเอง แต่เป็นการประกอบกันของเอนจินการอนุมาน (inference engines), สคริปต์สำหรับ fine-tuning, ตัวโหลดข้อมูล (data loaders), เกณฑ์การวัดผล (evaluation benchmarks) และเลเยอร์ของไดรเวอร์ (driver layers) ซึ่งแต่ละส่วนอาศัยอยู่ในเรโพสิทอรีของตัวเอง พร้อมด้วยผู้ดูแล ประวัติการแก้ไข (commit histories) และโปรไฟล์ช่องโหว่ (vulnerability profiles) ของตัวเอง
Current AI เผยแพร่ชุดข้อมูลนี้ภายใต้ไลเซนส์ MIT และเปิดให้เป็นสาธารณะอย่างเต็มรูปแบบ ความเปิดกว้างนี้คือหัวใจสำคัญ ใครก็ตามสามารถดาวน์โหลดไฟล์ วิเคราะห์ไฟล์ YAML และสร้างเครื่องมือต่อยอดจากมันได้ สำหรับฝ่ายป้องกัน ความสามารถในการเข้าถึงนี้คือโอกาส แต่สำหรับผู้โจมตี มันก็สะดวกสบายไม่แพ้กัน
สิ่งที่แผนที่นี้ติดตามจริง ๆ
องค์กรส่วนใหญ่ที่ใช้ AI มักไม่มีรายการสิ่งของ (inventory) ที่ชัดเจนว่าพวกเขาได้ติดตั้งอะไรไปบ้าง ทีมงานอาจดาวน์โหลดโมเดลภาษาจากฮับยอดนิยม ติดตั้งแพ็กเกจ Python ไม่กี่ตัวเพื่อรันมัน และคิดว่างานเสร็จสิ้นแล้ว แต่ภายใต้เวิร์กโฟลว์ที่ดูเรียบง่ายนั้น กลับมีชุดความเกี่ยวเนื่อง (dependencies) ที่ซ้อนทับกันอยู่ น้ำหนักของโมเดล (model weights) มาจากเรโพสิทอรีหนึ่ง การตั้งค่า tokenizer มาจากอีกแห่งหนึ่ง เฟรมเวิร์กการอนุมาน (inference framework) อาจเป็นฟอร์ก (fork) จากโปรเจกต์ที่สาม ส่วนไดรเวอร์ CUDA และคอนเทนเนอร์อิมเมจ (container images) ก็ดึงมาจากแหล่งอื่น ๆ อีกมากมาย
Gap Map จับประเด็นนี้โดยการจัดระเบียบไฟล์ YAML ทั้ง 1,184 ไฟล์รอบผลิตภัณฑ์ AI ที่แตกต่างกัน 421 รายการ เรโพสิทอรีบน GitHub กว่า 16,000 แห่งที่ถูกจัดทำแผนที่ไว้ที่นี่คือโค้ด การกำหนดค่า และอาร์ติแฟกต์ (artifacts) ที่ทำให้ผลิตภัณฑ์เหล่านั้นทำงานได้จริง การแยกรายการออกเป็นโมเดล, ชุดข้อมูล, เครื่องมือซอฟต์แวร์ และฮาร์ดแวร์ ทำให้ดัชนีนี้บังคับให้เกิดคำถามพื้นฐานว่า: คุณรู้หรือไม่ว่าระบบของคุณสัมผัสกับเลเยอร์ใดในสี่เลเยอร์นี้จริง ๆ?
หากคุณกำลังรันโมเดลภาษาขนาดใหญ่ (LLM) แบบโอเพนซอร์สในระบบโปรดักชัน คุณมีแนวโน้มที่จะสัมผัสกับทั้งสี่เลเยอร์ คุณพึ่งพาน้ำหนักโมเดลและสถาปัตยกรรม คุณพึ่งพาชุดข้อมูลที่ใช้ในการฝึกฝนล่วงหน้า (pre-training) หรือการ fine-tuning แม้ว่าคุณจะไม่เคยดาวน์โหลดพวกมันโดยตรงก็ตาม คุณพึ่งพาเครื่องมือซอฟต์แวร์เพื่อแปลง (convert), ควอนไทซ์ (quantize) หรือให้บริการโมเดล (serve the model) และหากคุณรันบน GPU หรือตัวเร่งความเร็วเฉพาะทาง คุณก็พึ่งพาเฟิร์มแวร์และสแต็กไดรเวอร์ (firmware and driver stacks) ที่จัดอยู่ในหมวดหมู่ฮาร์ดแวร์
ดาบสองคมด้านความปลอดภัย
ชุดข้อมูลนี้รับใช้สองฝ่าย และผู้นำด้านความปลอดภัยจำเป็นต้องเข้าใจทั้งสองด้าน
ในด้านการป้องกัน Gap Map ทำหน้าที่เหมือนสมุดโทรศัพท์สำหรับซัพพลายเชน AI ของคุณ คุณสามารถเปรียบเทียบเรโพสิทอรีและเครื่องมือที่องค์กรของคุณพึ่งพาเทียบกับดัชนีนี้เพื่อหาช่องว่างในการมองเห็น (visibility) หากพบเรโพสิทอรีที่สำคัญปรากฏในแผนที่แต่ไม่ปรากฏในรายการซอฟต์แวร์ (software bill of materials) ของคุณ แสดงว่าคุณอาจพบโครงสร้างพื้นฐาน AI ที่ไม่ได้รับการตรวจสอบ (shadow AI infrastructure) ซึ่งเป็นเรื่องที่ควรทราบก่อนที่ผู้ไม่หวังดีจะพบมันแทนคุณ
ในด้านการโจมตี ชุดข้อมูลนี้คือขุมทรัพย์ของการสอดแนม (reconnaissance) ผู้โจมตีมักจะสแกนหาโครงสร้างพื้นฐาน AI ที่เปิดเผยอยู่, เอนด์พอยต์การให้บริการโมเดล (model serving endpoints) และความเกี่ยวเนื่องที่มีช่องโหว่ใน ML pipeline ยอดนิยม Gap Map มอบรายการเป้าหมายที่อยู่ในรูปแบบที่เครื่องสามารถอ่านได้ (machine-readable) และมีการจัดโครงสร้างตามหมวดหมู่ที่พวกเขาสนใจพอดี เพียงแค่ใช้ตัววิเคราะห์ YAML (YAML parser) ตัวเดียว ก็สามารถดึง URL ของเรโพสิทอรีได้หลายพันแห่ง และจากจุดนั้น ผู้โจมตีสามารถนำไปตรวจสอบย้อนกลับกับช่องโหว่ที่รู้จัก ค้นหาอินสแตนซ์สาธารณะที่ตั้งค่าผิดพลาด หรือระบุเป้าหมายที่มีมูลค่าสูงสำหรับการโจมตีแบบ dependency confusion
เนื่องจากข้อมูลนี้ได้รับไลเซนส์ MIT และเป็นสาธารณะ จึงไม่มีอุปสรรคในการเข้าถึง ไม่ต้องมีการสมัครสมาชิก ไม่ต้องมีกระบวนการอนุมัติ ทางเลือกในการออกแบบนี้ช่วยเพิ่มประโยชน์สูงสุดสำหรับนักวิจัยและฝ่ายป้องกัน แต่ในขณะเดียวกันก็เพิ่มประโยชน์สูงสุดสำหรับผู้ไม่หวังดี (threat actors) ด้วย ไฟล์เดียวกันที่ช่วยให้คุณเสริมความแข็งแกร่งให้กับสแต็กของคุณ ก็ช่วยให้คนอื่นสร้างรายการเป้าหมายได้เช่นกัน
สิ่งที่ควรทำกับข้อมูลนี้
ปฏิบัติต่อชุดข้อมูลนี้เหมือนกับที่คุณปฏิบัติต่อฟีดข้อมูลภัยคุกคาม (threat intelligence feed) อย่าเพียงแค่บันทึกหน้าเว็บไว้แล้วลืมมันไป แต่จงทำการตรวจสอบสภาพแวดล้อมของคุณอย่างสม่ำเสมอ
เริ่มต้นด้วยการรวบรวมรายชื่อส่วนประกอบ AI แบบ open-source ทั้งหมดที่ทีมของคุณใช้งานอยู่ในปัจจุบัน มองให้ไกลกว่าสิ่งที่เห็นได้ชัดเจน สอบถามว่า repository ใดที่เป็นแหล่งที่มาของ tokenizer, สคริปต์การประเมินผล (evaluation scripts), ไลบรารีการทำ quantization และ container base images ของคุณ จากนั้นให้นำ repository เหล่านั้นไปตรวจสอบกับ 16,000 รายการที่ถูกติดตามไว้ใน Gap Map หากคุณพบรายการที่ตรงกัน นั่นเป็นการยืนยันว่า dependency ของคุณอยู่ในมุมที่ถูกจัดทำดัชนีไว้อย่างโดดเด่นที่สุดแห่งหนึ่งในโลกของ open-source AI ความโดดเด่นนั้นเป็นดาบสองคม โดยปกติแล้วมันหมายถึงการดูแลรักษาที่สม่ำเสมอและการตรวจสอบจากชุมชน แต่ในขณะเดียวกันก็หมายความว่าผู้โจมตีก็รู้เช่นกันว่า repository เหล่านี้มีตัวตนอยู่
ต่อไป ให้ดูที่โครงสร้าง YAML เอง ไฟล์ทั้ง 1,184 ไฟล์จะเชื่อมโยงผลิตภัณฑ์เข้ากับ repository พื้นฐานในรูปแบบมาตรฐาน คุณสามารถเขียนสคริปต์ง่ายๆ เพื่อเปรียบเทียบ dependency manifests, รายการแพ็กเกจ (package lists) หรือการส่งออก SBOM ของคุณกับแผนผังเหล่านี้ หากคุณพบว่า production stack ของคุณพึ่งพา repository ที่คุณไม่เคยได้ยินชื่อมาก่อน ให้ขุดลึกลงไป เพราะ dependency ที่ไม่รู้จักคือจุดที่การโจมตีแบบ supply chain มักจะซ่อนตัวอยู่
ให้ความสำคัญเป็นพิเศษกับ hardware layer ทีมรักษาความปลอดภัยมักจะมุ่งเน้นไปที่ซอฟต์แวร์และโมเดล ในขณะที่มองว่า drivers และ firmware เป็นเพียงเรื่องรองที่ไม่ได้สำคัญนัก Gap Map มีการจัดทำดัชนี repository ที่เกี่ยวข้องกับฮาร์ดแวร์ไว้อย่างชัดเจน ซึ่งควรเตือนให้คุณระลึกว่า GPU driver stacks, compiler toolchains และ accelerator firmware ก็คือโค้ดเช่นกัน สิ่งเหล่านี้มีบั๊ก มีการอัปเดต และเมื่อพวกมันล้าสมัย พวกมันอาจกลายเป็นเป้าหมายที่อ่อนแอที่สุดใน pipeline ของคุณ
สุดท้าย ให้ใช้
