Granska AI-bibliotek med öppen källkod

Slutförd

Programvara med öppen källkod (OSS) är en integrerad del av modern programvaruutveckling och AI-system är inget undantag. AI-projekt är vanligtvis beroende av ramverk med öppen källkod, modellbibliotek, förtränad modeller och databearbetningsverktyg. Precis som andra OSS-komponenter medför AI-specifika bibliotek risker i leveranskedjan som kräver en omfattande säkerhetsgranskning innan de införs.

Därför behöver AI-bibliotek med öppen källkod särskild uppmärksamhet

AI OSS-bibliotek medför vissa risker som går utöver traditionella programvaruberoenden:

  • Förtränade modeller: Många AI-bibliotek levereras med eller laddar ned förtränade modeller. En komprometterad modell kan innehålla bakdörrar eller partiskt beteende som är svårt att identifiera enbart via kodgranskning.
  • Beroenden för datapipelines: AI-bibliotek hanterar ofta datainläsning, transformering och extrahering av egenskaper. Sårbarheter i dessa komponenter kan exponera träningsdata eller tillåta dataförgiftning.
  • Serialiseringsrisker: AI-modeller sparas ofta och läses in med serialiseringsformat (till exempel pickle i Python). Om du avserialiserar ej betrodda modellfiler kan det leda till godtycklig kodkörning.
  • Snabba lanseringscykler: AI-bibliotek utvecklas snabbt, med frekventa kompatibilitetsbrytande ändringar. Organisationer som håller sig till äldre versioner kan missa kritiska säkerhetsuppdateringar.

Diagram som visar fyra AI-specifika leveranskedjerisker för bibliotek med öppen källkod: förtränade modeller med bakdörrar, sårbarheter i datapipelinen, serialiserings- och deserialiseringsrisker och snabba lanseringscykler.

Utvärdera lämpligheten för OSS-bibliotek

Innan du börjar använda ett AI OSS-bibliotek bör du utvärdera det ur både funktionella och säkerhetsperspektiv:

  • Kontext och syfte: Definiera varför du granskar det här biblioteket. Integrerar du det i ett produktionssystem, använder det för experimentering eller utvärderar du det mot alternativ? Upprätta tydliga kriterier för godkännande för granskningen.
  • Riskbedömning: Överväg de potentiella riskerna med att använda biblioteket. Använd hotmodellering för att identifiera attackvektorer – hur passar det här biblioteket in i programmets attackyta? Vad händer om biblioteket komprometteras?
  • Licensefterlevnad: Kontrollera att bibliotekets licens är kompatibel med organisationens principer, särskilt för kommersiell användning eller myndighetsanvändning.
  • Underhållshälsa: Kontrollera hur aktivt biblioteket underhålls. Titta på ändringsfrekvens, svarstider för ärenden och antalet aktiva deltagare. Övergivna eller minimalt underhållna bibliotek är högre risk.

Kodgranskning och beroendeanalys

Utför en teknisk granskning av bibliotekets kod och dess beroendekedja:

  • Kodgranskning: Granska bibliotekets källkod för säkerhetsbrister, till exempel sårbarheter vid inmatning, osäkra kryptografiska metoder och osäker deserialisering. Var uppmärksam på autentiseringsmekanismer, indataverifiering och felhantering.
  • Beroendeutvärdering: Utvärdera bibliotekets transitiva beroenden. Inaktuella eller sårbara komponenter i beroendeträdet kan medföra risker även om bibliotekets egen kod är säker.
  • Analys av programvarusammansättning (SCA): Använd automatiserade SCA-verktyg för att identifiera kända sårbarheter (CVE) i biblioteket och dess beroenden. Många organisationer integrerar dessa verktyg i sin CI/CD-pipeline för att fånga upp problem tidigt.

AI-specifika kontroller för leveranskedjan

Utöver standardmetoder för OSS-granskning tillämpar du dessa AI-specifika kontroller:

  • Verifiering av modell proveniens: När ett bibliotek innehåller förtränade modeller kontrollerar du var modellen kommer ifrån, vem som har tränat den och om träningsdata och -processen dokumenteras. En AI-produktförteckning (AI-BOM) – en strukturerad förteckning över modellkomponenter, källor för träningsdata och beroenden – bidrar till att skapa förtroende.
  • Modellgenomsökning: Genomsök nedladdade modellfiler efter kända skadliga nyttolaster innan du läser in dem. Undvik att deserialisera modellfiler från ej betrodda källor.
  • Reproducerbarhetskontroller: Kontrollera om det är möjligt att modeller kan återskapas från dokumenterade träningsdata och konfigurationer. Detta bekräftar att modellen inte har manipulerats.
  • Utvärdering i begränsat läge: Testa nya AI-bibliotek i isolerade miljöer innan du distribuerar dem i produktion för att innehålla oväntade beteenden.

Sårbarhetsgenomsökning och reparation

Anta inte att andra har utfört sårbarhetskontroller. Använd din egen utvärderingsverktygskedja:

  • Omfattande genomsökningar: Använd sårbarhetsskannrar för att identifiera potentiella säkerhetsbrister i biblioteket och dess beroenden.
  • Prioriterad reparation: Om sårbarheter upptäcks kan du utvärdera deras inverkan och sårbarhet. Prioritera korrigeringar baserat på allvarlighetsgrad och exponering.
  • Kontinuerlig övervakning: OSS-sårbarhetsdatabaser uppdateras regelbundet. Konfigurera automatiserade aviseringar för nya CVE:er som påverkar bibliotek i din AI-stack.

Flödesschema för säkerhetsgranskningsprocessen för AI-bibliotek med öppen källkod från utvärdering till godkännande.