Code Velocity
AI Drošība

AI darbināta drošība: GitHub atvērtā koda ievainojamību skenēšanas ietvars

·7 min lasīšana·GitHub·Sākotnējais avots
Dalīties
Diagramma, kas ilustrē GitHub drošības laboratorijas ar AI darbinātā ievainojamību skenēšanas Taskflow aģenta darbplūsmu

Ievainojamību skenēšanas revolucionizēšana ar AI darbinātām uzdevumu plūsmām

Nepārtraukti mainīgajā programmatūras izstrādes ainavā drošība joprojām ir galvenā problēma. Tradicionālās ievainojamību skenēšanas metodes, lai gan būtiskas, bieži cīnās ar milzīgo koda apjomu un moderno ļaunprātīgo izmantojumu niansēto dabu. Risinot šo izaicinājumu, GitHub drošības laboratorija ir atklājusi savu atvērtā koda, ar AI darbināto ietvaru: Taskflow aģentu. Mēnešiem ilgi šī novatoriskā sistēma ir bijusi nozīmīga augstas ietekmes drošības ievainojamību atklāšanā dažādos atvērtā koda projektos, iezīmējot būtisku soli AI darbinātā drošībā.

Taskflow aģents, kopā ar specializētajām audita uzdevumu plūsmām, ir ļāvis drošības pētniekiem pārorientēties no laikietilpīgas ievainojamību atklāšanas uz efektīvu verifikāciju un ziņošanu. Ietvars konsekventi identificē kritiskas problēmas, piemēram, autorizācijas apietības un informācijas atklāšanu, kas ļauj neatļauti piekļūt vai atklāt sensitīvus datus. Līdz šim, izmantojot šo sistēmu, ir ziņots par vairāk nekā 80 ievainojamībām, daudzas no tām jau ir publiski atklātas. Šajā rakstā aplūkots, kā darbojas šis revolucionārais atvērtā koda ietvars, tā praktiskās pielietošanas iespējas un kā jūs varat to izmantot saviem projektiem, lai stiprinātu programmatūras drošību.

GitHub AI ievainojamību skenera izvietošana jūsu projektos

Uzsākt darbu ar GitHub Security Lab Taskflow aģentu ir vienkārši, ļaujot izstrādātājiem un drošības speciālistiem integrēt šo jaudīgo AI drošības rīku savā darbplūsmā. Būtiska priekšprasība uzdevumu plūsmu palaišanai ir aktīva GitHub Copilot licence, jo pamatā esošās uzvednes izmanto premium modeļu pieprasījumus no sarežģītiem LLM, piemēram, openai-gpt-5-2-codex un claude-opus-4-6.

Šeit ir ātrs ceļvedis skenēšanas uzsākšanai:

  1. Piekļūstiet repozitorijam: Dodieties uz seclab-taskflows GitHub repozitoriju.
  2. Sāciet Codespace: Palaidiet Codespace tieši no repozitorija. Tas nodrošina iepriekš konfigurētu vidi, kas gatava izpildei.
  3. Inicializējiet vidi: Ļaujiet dažas minūtes, lai Codespace pilnībā inicializētos.
  4. Izpildiet auditu: Terminālī palaidiet komandu: ./scripts/audit/run_audit.sh myorg/myrepo. Aizstājiet myorg/myrepo ar konkrēto GitHub organizāciju un repozitoriju, ko vēlaties auditēt.

Tipiska skenēšana vidēja izmēra repozitorijā var ilgt 1-2 stundas. Pēc pabeigšanas atvērsies SQLite skatītājs, kas parādīs rezultātus tabulā audit_results. Meklējiet rindas, kas apzīmētas ar atzīmi has_vulnerability kolonnā, lai identificētu potenciālās problēmas.

Padoms: Lielo valodu modeļu (LLM) nedeterminētās dabas dēļ, audita uzdevumu plūsmu vairākkārtēja palaišana uz vienu un to pašu kodbāzi var dot atšķirīgus, vērtīgus rezultātus. Apsveriet iespēju izmantot dažādus modeļus secīgām palaišanām, piemēram, gpt-52-in-chatgpt vai claude-and-codex-now-available-for-copilot-business-pro-users, lai maksimizētu detektēšanas pārklājumu.

Ietvars atbalsta arī privātus repozitorijus, taču tam nepieciešams modificēt Codespace konfigurāciju, lai piešķirtu nepieciešamās piekļuves atļaujas.

Uzdevumu plūsmu dekonstrukcija: AI darbinātais audita mehānisms

GitHub AI darbinātās drošības ietvara pamatā ir uzdevumu plūsmas (Taskflows) – YAML faili, kas orķestrē virkni uzdevumu LLM. Šī strukturētā pieeja nodrošina sarežģītas, daudzpakāpju darbības, kuras būtu apgrūtinošas vai neiespējamas ar vienu, masīvu uzvedni. seclab-taskflow-agent pārvalda šo uzdevumu secīgu izpildi, nodrošinot, ka viena uzdevuma izvade nemanāmi nonāk nākamajā.

Apsveriet tipisku koda auditu: sistēma vispirms sadala repozitoriju funkcionālos komponentos. Katram komponentam tā apkopo kritisko informāciju, piemēram, ieejas punktus, paredzētos privilēģiju līmeņus un kopējo mērķi. Šie dati pēc tam tiek glabāti repo_context.db datu bāzē, kalpojot par būtisku kontekstu turpmākiem audita uzdevumiem.

Šis modulārais dizains ir ļoti svarīgs, jo LLM ir raksturīgi konteksta loga ierobežojumi. Lai gan jaunākiem modeļiem ir lielāki logi, uzdevumu sadalīšana mazākos, savstarpēji saistītos soļos ievērojami uzlabo uzticamību, atkļūdojamību un spēju risināt plašākus koda audita projektus. seclab-taskflow-agent vēl vairāk uzlabo efektivitāti, asinhroni palaižot veidņu uzdevumus vairākos komponentos, dinamiski aizstājot komponentam specifiskas detaļas, kad nepieciešams.

Attīstība no specifiskiem brīdinājumiem līdz vispārējiem drošības auditiem

Sākotnēji seclab-taskflow-agent izrādījās ļoti efektīvs koncentrētiem uzdevumiem, piemēram, CodeQL brīdinājumu šķirošanai, kur instrukcijas bija stingras un kritēriji labi definēti. Tā lietderības paplašināšana uz vispārīgākiem drošības pētījumiem un auditu radīja izaicinājumu: kā dot LLM brīvību izpētīt dažādus ievainojamību veidus, neļaujot tiem pakļauties halucinācijām un paaugstinātam viltus pozitīvo rezultātu skaitam.

Šīs paplašināšanas atslēga slēpjas sarežģītā uzdevumu plūsmas dizainā un uzvedņu inženierijā. Tā vietā, lai izmantotu plašas, neskaidras instrukcijas, ietvars izmanto rūpīgi izstrādātu procesu, lai vadītu LLM. Šī pieeja ļauj aģentam identificēt plašāku ievainojamību klāstu, vienlaikus saglabājot augstu patieso pozitīvo rezultātu līmeni, imitējot pieredzējuša cilvēka drošības analītiķa niansēto lēmumu pieņemšanu.

Stratēģisks dizains uzlabotai ievainojamību noteikšanai

Lai samazinātu LLM tendenci uz halucinācijām un viltus pozitīvajiem rezultātiem, Taskflow aģents ietver spēcīgu apdraudējumu modelēšanas posmu. Šis kritiskais sākotnējais solis nodrošina, ka LLM darbojas labi definētā drošības kontekstā, kas ir izplatīta kļūda daudziem automatizētiem statiskās analīzes rīkiem.

Apdraudējumu modelēšanas posma uzdevumi

UzdevumsAprakstsPriekšrocības drošības auditā
Identificēt lietojumprogrammasNosaka atšķirīgus komponentus repozitorijā, jo viens repozitorijs var saturēt vairākas atsevišķas lietojumprogrammas vai moduļus, katrs ar savām drošības robežām un problēmām. Šis uzdevums palīdz definēt tvērumu.Nodrošina, ka audita centieni tiek koncentrēti uz loģiskām vienībām, novēršot tvēruma paplašināšanos un ļaujot veikt pielāgotu drošības analīzi, pamatojoties uz katra komponenta unikālajām funkcionalitātēm un potenciālo uzbrukuma virsmu.
Apkopot komponenta kontekstuApkopota būtiska informācija par katru identificēto komponentu, tostarp tā ieejas punkti (kur tas saņem neuzticamu ievadi), paredzētais privilēģiju līmenis un kopējais mērķis.Nodrošina LLM ar dziļu izpratni par katra komponenta lomu un potenciālajām ievainojamībām. Šis konteksts ir būtisks, lai atšķirtu paredzēto funkcionalitāti no patiesām drošības nepilnībām, piemēram, nosakot, vai komandu injekcija CLI rīkā ir ievainojamība vai paredzēta uzvedība tā dizainā.
Definēt drošības robežuIzveido drošības perimetru katram komponentam, pamatojoties uz apkopoto kontekstu. Tas palīdz noteikt, kas ir drošības problēma un kas – dizaina iezīme. Piemēram, 'ievainojamība' smilškastes vidē, kurai trūkst smilškastes izbēgšanas iespējas, var nebūt drošības risks.Novērš LLM no nekaitīgu problēmu atzīmēšanas kā ievainojamību, ievērojami samazinot viltus pozitīvos rezultātus. Tas saskaņo auditu ar reālās pasaules apdraudējumu modeli, nodrošinot, ka ziņotās problēmas ir patiesi izmantojamas un rada risku lietojumprogrammas darbības kontekstā.
Ievainojamības ieteikumsPirmajā audita solī LLM analizē katru komponentu, izmantojot tā kontekstu, lai ieteiktu ievainojamību veidus, kas visdrīzāk parādīsies konkrētajā komponentā (piemēram, SQL injekcija, XSS, autentifikācijas apietība).Sašaurina tvērumu turpmākai, detalizētākai analīzei. Tas darbojas kā inteliģents pirmsfiltrs, vadot LLM koncentrēties uz izplatītām vai kontekstuāli atbilstošām ievainojamību klasēm, uzlabojot atklājumu efektivitāti un atbilstību.
Rūpīgs audits un šķirošanaOtrais audita solis ņem iepriekšējā posma ieteikumus un pakļauj tos stingriem kritērijiem. Pēc tam LLM ar svaigu kontekstu un specifiskām uzvednēm nosaka, vai katrs ieteikums atspoguļo derīgu, izmantojamu ievainojamību. Šis posms simulē cilvēka drošības pētnieka šķirošanas procesu.Darbojas kā būtisks validācijas slānis, ievērojami palielinot patieso pozitīvo rezultātu līmeni. Atdalot ieteikumu no rūpīgas pārbaudes, tas mazina LLM halucinācijas un nodrošina, ka tikai apstiprinātas, augstas ietekmes problēmas tiek virzītas tālākai cilvēka pārbaudei, tādējādi optimizējot kopējo ievainojamību skenēšanas darbplūsmu.

Apkopotie konteksta dati, tostarp paredzētais lietojums un drošības robeža, tiek tieši iegulti LLM uzvednēs. Tas nodrošina, ka aģents ievēro stingras vadlīnijas, lai noteiktu, vai problēma kvalificējas kā patiesa ievainojamība, kā redzams uzvednes fragmentā:

        You need to take into account of the intention and threat model of the component in component notes to determine if an issue
        is a valid security issue or if it is an intended functionality. You can fetch entry points, web entry points and user actions
        to help you determine the intended usage of the component.

Šis divpakāpju audita process — vispirms ierosinot potenciālās problēmas un pēc tam tās rūpīgi šķirojot — ir ietvara panākumu pamatā. Tas simulē cilvēka eksperta darbplūsmu, kur sākotnējām plašām pārbaudēm seko detalizēta, kontekstam atbilstoša analīze.

Reālās pasaules ietekme: kritisku nepilnību atklāšana ar AI

GitHub drošības laboratorijas Taskflow aģenta praktiskās pielietošanas iespējas ir dziļas. Tas ir veiksmīgi identificējis nopietnas drošības nepilnības, kurām varētu būt postošas sekas. Piemēram, ietvars atklāja ievainojamību, kas ļāva piekļūt personiski identificējamai informācijai (PII) e-komercijas lietojumprogrammu iepirkumu grozos. Šāda veida informācijas atklāšana varētu novest pie nopietniem privātuma pārkāpumiem un atbilstības problēmām.

Vēl viens ievērojams atklājums bija kritiska nepilnība tērzēšanas lietojumprogrammā, kur lietotāji varēja pieteikties ar jebkuru paroli. Tas būtībā padarīja autentifikācijas mehānismu bezjēdzīgu, paverot durvis pilnīgai konta pārņemšanai. Šie piemēri uzsver Taskflow aģenta spēju pārsniegt virspusējas pārbaudes un precīzi noteikt dziļi iesakņojušās loģikas nepilnības un autorizācijas vājības, kuru atklāšana bieži prasa ievērojamus manuālus pūliņus.

Padarot šo AI darbinātās drošības ietvaru par atvērtā koda risinājumu, GitHub veicina sadarbības vidi, kurā drošības kopiena var kopīgi uzlabot un izmantot šos rīkus. Jo vairāk komandu pieņems un veicinās šo ietvaru, jo ātrāk pieaugs kolektīvā spēja identificēt un novērst ievainojamības, padarot digitālo ekosistēmu drošāku ikvienam. Tas atspoguļo sadarbības ētiku, kas redzama citās iniciatīvās, piemēram, github-agentic-workflows, veicinot nepārtrauktas inovācijas AI drošības rīkos.

Bieži uzdotie jautājumi

What is the GitHub Security Lab Taskflow Agent and how does it enhance vulnerability scanning?
The GitHub Security Lab Taskflow Agent is an open-source, AI-powered framework designed to automate and improve the process of identifying security vulnerabilities in software projects. It leverages Large Language Models (LLMs) to perform structured security audits by breaking down complex tasks into manageable steps, enabling more precise analysis. This framework significantly enhances traditional vulnerability scanning by reducing false positives and focusing on high-impact issues, such as authorization bypasses and information disclosure. By integrating threat modeling and prompt engineering, it guides LLMs to understand context and intended functionality, leading to more accurate and actionable vulnerability reports, allowing security researchers to spend more time on verification rather than initial discovery.
What are the core components of the Taskflow Agent's design for accurate vulnerability detection?
The core design of the Taskflow Agent emphasizes minimizing hallucinations and increasing true positive rates through a multi-stage approach. It begins with a comprehensive threat modeling stage where a repository is divided into components, and crucial information like entry points, intended privilege, and purpose is gathered. This context is then used to define security boundaries and inform subsequent tasks. The auditing process itself is bifurcated: first, the LLM suggests potential vulnerability types for each component, and then a second, more rigorous task audits these suggestions against strict criteria. This two-step validation, combined with meticulous prompt engineering, ensures a high level of accuracy, simulating a human-like triage process for identified issues.
What specific types of vulnerabilities has the Taskflow Agent been successful in identifying?
The Taskflow Agent has proven exceptionally effective at identifying high-impact vulnerabilities that often elude traditional scanning methods. Examples include authorization bypasses, which allow unauthorized users to gain access to restricted functionalities, and information disclosure vulnerabilities, enabling access to private or sensitive data. Specifically, it has uncovered cases like accessing personally identifiable information (PII) in e-commerce shopping carts and critical weaknesses allowing users to sign in with arbitrary passwords in chat applications. These findings highlight the framework's capability to pinpoint subtle yet severe security flaws that could have significant real-world consequences for affected projects and their users.
What are the prerequisites for running GitHub Security Lab's Taskflow Agent on a project?
To utilize the GitHub Security Lab Taskflow Agent for vulnerability scanning on your own projects, there is a primary prerequisite: a GitHub Copilot license. The underlying LLM prompts and advanced capabilities of the framework rely on GitHub Copilot's infrastructure, specifically utilizing premium model requests. Users also need a GitHub account to access and initialize a Codespace from the `seclab-taskflows` repository. While the framework is designed to be user-friendly, familiarity with command-line operations and basic understanding of repository structures will be beneficial for effective deployment and interpretation of audit results, especially when dealing with private repositories requiring additional Codespace configuration.
How does the Taskflow Agent address the limitations of Large Language Models (LLMs) in security auditing?
The Taskflow Agent addresses inherent LLM limitations, such as restricted context windows and susceptibility to hallucinations, through an intelligent taskflow design and prompt engineering. Instead of using one large prompt, it breaks down complex auditing into a series of smaller, interdependent tasks described in YAML files. This modular approach allows for better control, debugging, and sequential execution, passing results from one task to the next. Threat modeling helps provide strict context and guidelines to the LLM, enabling it to differentiate between true security vulnerabilities and intended functionalities, significantly reducing false positives. By iterating through components and applying templated prompts, the agent maximizes LLM efficiency and accuracy even for extensive codebases, overcoming challenges related to LLM's non-deterministic nature through multiple runs.

Esiet informēti

Saņemiet jaunākās AI ziņas savā e-pastā.

Dalīties