Oħloq kont bla ħlas
Sigurtà tal-kodiċi ta' applikazzjonijiet LLM

L-output tal-mudell tiegħek huwa input li ma jistax jiġi fdat. Sib fejn il-kodiċi tiegħek jinsa dan.

Analiżi statika tal-kodiċi madwar l-LLM tiegħek — il-kodiċi li jibni l-prompt, isejjaħ il-mudell u jagħmel xi ħaġa bir-risposta. Mhux il-mudell. Mhux ir-reżistenza tal-prompt għal jailbreak. Il-kodiċi.

Il-pjan bla ħlas ikopri 3 proġetti u 30 analiżi fix-xahar, mingħajr limitu fuq in-numru ta' utenti u mingħajr karta ta' kreditu. Din l-analiżi tidħol fih.

Il-problema

Mudell mhuwiex librerija. Huwa interpretu li ma jistax jiġi fdat: tagħtih sensiela ta' karattri u jtik oħra lura. Kull ma influwenza dik is-sensiela — il-prompt tal-utent innifsu, paġna li ntwerietlu, dokument li ngħatalu, ir-riżultat ta' għodda oħra — influwenza r-risposta.

Ir-risposta hija bla ħsara sakemm il-kodiċi ma jagħtihiex il-ħila li taġixxi. Il-periklu mhuwiex li mudell qal xi ħaġa; huwa li programm emmnu. Kull post fejn programm jittratta t-test iġġenerat bħala kodiċi, bħala kmand, bħala mistoqsija, bħala passaġġ jew bħala URL huwa injezzjoni qabża waħda 'l bogħod — u, b'differenza mill-mistoqsija jekk prompt jistax jiġi evitat b'jailbreak, dik il-qabża tidher fil-kodiċi sors.

X'ifittex Cybseco

Fejn l-output tal-mudell jasal f'xi ħaġa li taġixxi. Dawn huma l-kategoriji, il-gradi ta' serjetà u l-identifikaturi CWE tal-magna nnifisha.

Eżekuzzjoni ta' kodiċi — CWE-94
kritika
eval, exec, compile, new Function, pickle.loads, yaml.load — ir-risposta ssir programm.
Shell — CWE-78
kritika
os.system, subprocess, child_process.exec, execSync — ir-risposta ssir kmand.
Mistoqsija SQL — CWE-89
għolja
execute, raw, createQuery — text-to-SQL huwa eżattament dan il-mudell, u DROP TABLE huwa tkomplija plawżibbli.
Passaġġ fis-sistema tal-fajls — CWE-22
għolja
open, readFile, shutil.rmtree, unlink — ../../etc/passwd huwa tkomplija daqstant plawżibbli.
Talba 'l barra — CWE-918
għolja
requests, httpx, fetch, axios, urlopen — falsifikazzjoni ta' talbiet min-naħa tas-server, magħżula mill-mudell.

Eżempju konkret

Disa' linji, u l-forma sħiħa tar-riskju.

from openai import OpenAI
client = OpenAI()

def run_plan(task: str):
    answer = client.chat.completions.create(
        model="gpt-4o-mini",
        messages=[{"role": "user", "content": task}],
    )
    exec(answer.choices[0].message.content)
Sors
client.chat.completions.create(…) — sejħa li tirritorna l-output tal-mudell. L-analizzatur jorbot il-varjabbli li ġie assenjat lilha, u huwa proprju dan li jħallih isegwi l-valur matul il-funzjoni mingħajr analiżi interproċedurali.
Fluss
answer fih test li attakkant seta' influwenza. Bejn is-sejħa u l-punt tal-wasla xejn ma jeżaminah, ma jillimitahx u lanqas ma jnaqqsu għal sett fiss ta' operazzjonijiet.
Punt tal-wasla
exec(…) — it-test isir programm fil-proċess tal-applikazzjoni nnifisha, bil-kredenzjali tagħha, bin-netwerk tagħha u bis-sistema tal-fajls tagħha.
Għaliex dan jgħodd
Kull ma jista' jinfluwenza task — direttament, jew permezz ta' dokument li ntwera lill-mudell — jagħżel x'jitħaddem. Din hija eżekuzzjoni ta' kodiċi mill-bogħod qabża waħda 'l bogħod.

Imħaddem fuq il-magna attwali, dak is-silta jipproduċi sejba waħda: llm-output-to-code-execution, CWE-94, serjetà kritika, fiduċja għolja, fuq il-linja exec. Il-fiduċja hija għolja għax il-varjabbli hija marbuta ma' sejħa completion reali. Isem li biss jixbah risposta ta' mudell — llm_response, reply — jiġi rrappurtat b'fiduċja medja minflok, għax dik hija suppożizzjoni u li tgħid mod ieħor tkun gidba dwar l-evidenza.

X'mhijiex din

Mhijiex test tal-mudell
Ma nissondjawx il-mudell, ma nagħmlulux red teaming u ma nevalwawx kif iġib ruħu taħt pressjoni. Xejn hawn ma jgħid jekk prompt jistax jiġi evitat b'jailbreak: dan ma jistax jiġi deċiż mill-kodiċi sors, u li tgħidu tkun eżattament it-tip ta' dikjarazzjoni li din il-magna teżisti biex tevita.
Mhijiex detezzjoni sħiħa ta' injezzjoni ta' prompt
L-injezzjoni indiretta tiġi rrappurtata fejn kontenut li ma jistax jiġi fdat jasal b'mod dimostrabbli fi prompt. Kanal li ma narawx fil-kodiċi huwa kanal li ma nirrappurtawx.
Mhijiex garanzija dwar aġent
Nirrappurtaw li lil aġent ingħatat għodda li tħaddem kodiċi jew kmandi. X'jagħmel l-aġent wara, waqt it-tħaddim, huwa barra minn dak li tista' tiddeċiedi analiżi statika.
Kumplimentari għas-sigurtà tal-IA waqt it-tħaddim
Il-gwardarails, il-banek ta' evalwazzjoni u r-red teaming iwieġbu mistoqsijiet li din ma tistax twieġeb, u din twieġeb mistoqsijiet li huma ma jistgħux. L-ebda waħda ma tissostitwixxi l-oħra.

Riskji oħra speċifiċi għal LLM fil-kodiċi

Kull wieħed minnhom ġie attivat fuq kampjun kontra l-magna attwali qabel ma nkiteb hawn.

Sigrieti u data personali interpolati fi prompt — CWE-200
api_key, password, IBAN jew rekord mediku mpoġġi fit-test li tibgħat. Jiġi rrappurtat fejn qed jinbena kuntest ta' prompt reali, mhux ma' kull f-string li b'kumbinazzjoni fih ċavetta.
Aġent li ngħata għodda li tħaddem kodiċi jew kmandi — CWE-250
PythonREPLTool, ShellTool, interpretu tal-kodiċi, terminal. Li tagħti waħda minnhom tibdel kull mistoqsija dwar injezzjoni ta' prompt f'mistoqsija dwar eżekuzzjoni ta' kodiċi mill-bogħod.
Salvagwardja tal-qafas mitfija mill-ġdid — CWE-502
allow_dangerous_deserialization=True, trust_remote_code=True, dangerouslyAllow… — qafas kien tefagħha għax ma kinitx sigura.
Kontrolli ta' sikurezza tal-fornitur diżattivati — CWE-693
BLOCK_NONE, safety_settings=None, moderation=false.
Prompt jew definizzjoni ta' aġent miġjuba waqt it-tħaddim — CWE-829
hub.pull(…), mudell ta' prompt mgħobbi permezz ta' HTTP. Min jikkontrolla dak l-endpoint jikkontrolla l-istruzzjonijiet.
Kontenut li ma jistax jiġi fdat mgħobbi direttament fi prompt — CWE-77
Paġna miġbura, PDF, repożitorju, wiki. Dan huwa l-kanal tal-injezzjoni indiretta, magħruf minn fejn ġie t-test aktar milli minn dak li jgħid.
Ċavetta API ta' mudell miktuba fil-kodiċi sors — CWE-798
sk-…, sk-ant-…, AIza…, hf_… imdaħħla fir-repożitorju.
Mudell irtirat jew mibdul imwaħħal fil-kodiċi — CWE-1104
text-davinci-*, gpt-4-0314, claude-instant — ġerarkija ta' istruzzjonijiet aktar dgħajfa, mingħajr separazzjoni tal-prompt tas-sistema.

Għaliex għandek temmen xi ħaġa minn dan

Benchmark ippubblikat
Preċiżjoni, tiftix u F1 skont CWE, skont lingwa u skont saff ta' analiżi, fuq korpus verżjonat u ttikkettjat bl-idejn. Ara ċ-ċifri.
Perimetru ppubblikat
Kull saff li ma nkejlux huwa msemmi, bir-raġuni. Aqra l-metodoloġija.
Validazzjoni fuq kodiċi pubbliku
Repożitorji u commits analizzati, lingwi misjuba, rata ta' tlestija u determiniżmu — volumi u rati, mhux dikjarazzjonijiet dwar l-eżattezza. Ara t-tħaddim.
Kull sejba ġġorr l-evidenza tagħha
Il-fajl, il-linja, l-istruttura misjuba u s-CWE. Sejba li ma tistax tiċċekkja hija sejba li m'għandekx taġixxi fuqha.

Indipendenti mill-fornitur bil-mod kif inhu mibni. L-analizzatur jagħraf il-forma — xi ħaġa tipproduċi test, xi ħaġa tikkunsmah — aktar milli l-kitba ta' SDK partikolari. Isemmi l-qafas li ra meta jista' (OpenAI, Anthropic, Google, Azure OpenAI, Mistral, Bedrock, Ollama, LiteLLM, LangChain, LangGraph, LlamaIndex, Semantic Kernel, AutoGen, CrewAI, Hugging Face) biex sejba tkun tista' tgħid minn fejn ġiet. Dik hija tikketta fuq is-sejba, mhux integrazzjoni għal kull SDK, u qafas li mhuwiex f'dik il-lista jiġi analizzat eżattament bl-istess mod.

Ara lil Cybseco jirraġuna dwar sistema tad-dinja reali

Ara d-demo interattiva, imbagħad itlob prova ggwidata għat-tim tiegħek.