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.
eval, exec, compile, new Function, pickle.loads, yaml.load — ir-risposta ssir programm.os.system, subprocess, child_process.exec, execSync — ir-risposta ssir kmand.execute, raw, createQuery — text-to-SQL huwa eżattament dan il-mudell, u DROP TABLE huwa tkomplija plawżibbli.open, readFile, shutil.rmtree, unlink — ../../etc/passwd huwa tkomplija daqstant plawżibbli.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)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.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.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.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
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.
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.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.allow_dangerous_deserialization=True, trust_remote_code=True, dangerouslyAllow… — qafas kien tefagħha għax ma kinitx sigura.BLOCK_NONE, safety_settings=None, moderation=false.hub.pull(…), mudell ta' prompt mgħobbi permezz ta' HTTP. Min jikkontrolla dak l-endpoint jikkontrolla l-istruzzjonijiet.sk-…, sk-ant-…, AIza…, hf_… imdaħħla fir-repożitorju.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
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.