Code Velocity
AI biztonság

AI-vezérelt biztonság: A GitHub nyílt forráskódú sebezhetőség-vizsgáló keretrendszere

·7 perc olvasás·GitHub·Eredeti forrás
Megosztás
Diagram, amely a GitHub Security Lab AI-vezérelt sebezhetőség-vizsgáló Taskflow Agent munkafolyamatát illusztrálja

Forradalmasító sebezhetőség-vizsgálat AI-vezérelt munkafolyamatokkal

A szoftverfejlesztés folyamatosan fejlődő világában a biztonság továbbra is alapvető fontosságú. A hagyományos sebezhetőség-vizsgálati módszerek, bár elengedhetetlenek, gyakran küszködnek a kódtömeggel és a modern támadások árnyalt jellegével. E kihívás kezelésére a GitHub Security Lab bemutatta nyílt forráskódú, AI-vezérelt keretrendszerét: a Taskflow Agentet. Ez az innovatív rendszer hónapok óta kulcsszerepet játszik a nagy hatású biztonsági rések feltárásában különböző nyílt forráskódú projektekben, ami jelentős előrelépést jelent az AI-vezérelt biztonság terén.


A Taskflow Agent, speciális auditáló munkafolyamataival együtt, lehetővé tette a biztonsági kutatóknak, hogy a sok időt igénylő sebezhetőség-felderítésről a hatékony ellenőrzésre és jelentéskészítésre helyezzék át a hangsúlyt. A keretrendszer következetesen azonosítja az olyan kritikus problémákat, mint az engedélyezési megkerülések és az információfeltárás, amelyek jogosulatlan hozzáférést vagy érzékeny adatok nyilvánosságra hozatalát teszik lehetővé. Eddig több mint 80 sebezhetőséget jelentettek ezzel a rendszerrel, és sok közülük már nyilvánosan is közzé lett téve. Ez a cikk részletesen bemutatja, hogyan működik ez az úttörő nyílt forráskódú keretrendszer, milyen gyakorlati alkalmazásai vannak, és hogyan használhatja fel saját projektjeiben a szoftverbiztonság megerősítésére.

A GitHub AI sebezhetőség-vizsgálójának telepítése a projektjein

A GitHub Security Lab Taskflow Agent használatának megkezdése egyszerű, lehetővé téve a fejlesztők és biztonsági szakemberek számára, hogy integrálják ezt az erőteljes AI biztonsági eszközt a munkafolyamatukba. A munkafolyamatok futtatásának alapvető előfeltétele egy aktív GitHub Copilot licenc, mivel az alapul szolgáló promptok prémium modellkéréseket használnak olyan kifinomult LLM-ektől, mint az openai-gpt-5-2-codex és a claude-opus-4-6.


Íme egy gyors útmutató a vizsgálat elindításához:

  1. Hozzáférés a tárolóhoz: Lépjen a seclab-taskflows GitHub tárolóhoz.
  2. Codespace indítása: Indítson el egy Codespace-t közvetlenül a tárolóból. Ez egy előre konfigurált környezetet biztosít a végrehajtáshoz.
  3. Környezet inicializálása: Hagyjon néhány percet a Codespace teljes inicializálásához.
  4. Audit végrehajtása: A terminálban futtassa a következő parancsot: ./scripts/audit/run_audit.sh myorg/myrepo. Cserélje ki a myorg/myrepo részt arra a konkrét GitHub szervezet és tárolóra, amelyet auditálni szeretne.

Egy közepes méretű tároló tipikus vizsgálata 1-2 órát vehet igénybe. A befejezés után egy SQLite nézegető nyílik meg, amely az audit_results táblázatban jeleníti meg az eredményeket. Keresse azokat a sorokat, amelyek a has_vulnerability oszlopban pipa jellel vannak megjelölve, a potenciális problémák azonosításához.


Pro-Tipp: A nagy nyelvi modellek (LLM-ek) nem determinisztikus természete miatt ugyanazon kódbázison az auditáló munkafolyamatok többszöri futtatása eltérő, értékes eredményeket hozhat. Fontolja meg különböző modellek használatát egymást követő futtatásokhoz, például a gpt-52-in-chatgpt vagy a claude-and-codex-now-available-for-copilot-business-pro-users modelleket, a detektálási lefedettség maximalizálása érdekében.


A keretrendszer privát tárolókat is támogat, bár ez a Codespace konfigurációjának módosítását igényli a szükséges hozzáférési engedélyek megadásához.

A munkafolyamatok elemzése: Az AI-vezérelt auditáló mechanizmus

A GitHub AI-vezérelt biztonsági keretrendszerének középpontjában a munkafolyamatok (Taskflows) állnak – YAML fájlok, amelyek feladatok sorozatát hangolják össze egy LLM számára. Ez a strukturált megközelítés lehetővé teszi komplex, többlépcsős műveleteket, amelyek egyetlen, hatalmas prompttal nehezen kezelhetők vagy lehetetlenek lennének. A seclab-taskflow-agent kezeli ezen feladatok szekvenciális végrehajtását, biztosítva, hogy az egyik feladat kimenete zökkenőmentesen táplálja a következőt.


Vegyünk egy tipikus kódauditot: a rendszer először funkcionális komponensekre bontja a tárolót. Minden komponenshez kritikus információkat gyűjt, például belépési pontokat, tervezett jogosultsági szinteket és általános célt. Ezeket az adatokat ezután egy repo_context.db adatbázisban tárolja, amely alapvető kontextusként szolgál a későbbi auditálási feladatokhoz.

Ez a moduláris kialakítás kulcsfontosságú, mivel az LLM-eknek eredendő kontextusablak-korlátai vannak. Bár az újabb modellek nagyobb ablakokkal rendelkeznek, a feladatok kisebb, egymással összefüggő lépésekre bontása jelentősen javítja a megbízhatóságot, a hibakereshetőséget és a kiterjedtebb kódauditálási projektek kezelésének képességét. A seclab-taskflow-agent tovább növeli a hatékonyságot azáltal, hogy a sablonos feladatokat aszinkron módon futtatja több komponensen keresztül, dinamikusan helyettesítve a komponensspecifikus részleteket, amikor szükséges.

Fejlődés a specifikus riasztásoktól az általános biztonsági auditokig

Kezdetben a seclab-taskflow-agent rendkívül hatékonynak bizonyult a fókuszált feladatok, például a CodeQL riasztások osztályozása során, ahol az utasítások szigorúak és a kritériumok jól meghatározottak voltak. Hasznosságának kiterjesztése az általánosabb biztonsági kutatásra és auditálásra kihívást jelentett: hogyan lehet az LLM-eknek szabadságot adni a különböző sebezhetőségi típusok feltárására anélkül, hogy hallucinációkba és növekvő téves pozitív találatokba esnének.


A bővítés kulcsa a kifinomult munkafolyamat-tervezésben és a prompt engineeringben rejlik. Széles, homályos utasítások helyett a keretrendszer gondosan kidolgozott folyamatot alkalmaz az LLM irányítására. Ez a megközelítés lehetővé teszi az ügynök számára, hogy sebezhetőségek szélesebb skáláját azonosítsa, miközben magas valós pozitív arányt tart fenn, utánozva egy tapasztalt emberi biztonsági elemző árnyalt döntéshozatalát.

Stratégiai tervezés a továbbfejlesztett sebezhetőség-észleléshez

Az LLM hallucinációkra és téves pozitív találatokra való hajlamának minimalizálása érdekében a Taskflow Agent robusztus fenyegetésmodellezési szakaszt tartalmaz. Ez a kritikus kezdeti lépés biztosítja, hogy az LLM egy jól definiált biztonsági kontextuson belül működjön, ami sok automatizált statikus elemző eszköz gyakori hibája.

Fenyegetésmodellezési szakasz feladatai

FeladatLeírásElőnyök a biztonsági auditálás szempontjából
Alkalmazások azonosításaMeghatározza a tárolón belüli különálló komponenseket, mivel egyetlen tároló több különálló alkalmazást vagy modult is tartalmazhat, mindegyik saját biztonsági határaival és aggályaival. Ez a feladat segít a hatókör meghatározásában.Biztosítja, hogy az auditálási erőfeszítések logikai egységekre koncentrálódjanak, megakadályozva a hatókör bővülését, és lehetővé téve a testre szabott biztonsági elemzést az egyes komponensek egyedi funkcionalitásai és potenciális támadási felülete alapján.
Komponenskontextus gyűjtéseGyűjti az alapvető információkat minden azonosított komponenshez, beleértve a belépési pontjait (ahol megbízhatatlan bemenetet kap), a tervezett jogosultsági szintet és az általános célt.Mélyreható megértést biztosít az LLM számára minden komponens szerepéről és potenciális sebezhetőségeiről. Ez a kontextus kulcsfontosságú a tervezett funkcionalitás és a valódi biztonsági hibák megkülönböztetéséhez, például annak meghatározásához, hogy egy parancsbefecskendezés egy CLI eszközben sebezhetőség-e vagy a tervezésen belüli elvárt viselkedés.
Biztonsági határ meghatározásaMeghatározza az egyes komponensek biztonsági peremét a gyűjtött kontextus alapján. Ez segít eldönteni, hogy mi minősül biztonsági problémának, és mi tervezési funkciónak. Például egy 'sebezhetőség' egy sandbox környezetben, amelyből hiányzik a sandbox escape, nem feltétlenül jelent biztonsági kockázatot.Megakadályozza, hogy az LLM jóindulatú problémákat sebezhetőségként jelöljön meg, jelentősen csökkentve a téves pozitív találatokat. Összehangolja az auditot a valós fenyegetésmodellel, biztosítva, hogy a jelentett problémák valóban kihasználhatók legyenek, és kockázatot jelentsenek az alkalmazás működési kontextusában.
Sebezhetőségi javaslatAz első auditálási lépésben az LLM elemzi az egyes komponenseket, kihasználva azok kontextusát, hogy olyan sebezhetőségi típusokat javasoljon, amelyek a legnagyobb valószínűséggel fordulnak elő az adott komponensen belül (pl. SQL injection, XSS, hitelesítési megkerülés).Szűkíti a későbbi, részletesebb elemzés hatókörét. Intelligens előszűrőként működik, amely az LLM-et a gyakori vagy kontextuálisan releváns sebezhetőségi osztályokra irányítja, javítva a hatékonyságot és a találatok relevanciáját.
Szigorú audit és osztályozásA második auditálási lépés az előző szakaszból származó javaslatokat szigorú kritériumoknak veti alá. Az LLM ezután egy friss kontextussal és specifikus promptokkal határozza meg, hogy minden javaslat érvényes, kihasználható sebezhetőséget jelent-e. Ez a szakasz egy emberi biztonsági kutató osztályozási folyamatát szimulálja.Kulcsfontosságú validációs rétegként működik, jelentősen növelve a valós pozitív találatok arányát. Azáltal, hogy a javaslatot elkülöníti a szigorú ellenőrzéstől, enyhíti az LLM hallucinációját, és biztosítja, hogy csak a megerősített, nagy hatású problémák kerüljenek emberi felülvizsgálatra, ezáltal optimalizálva az általános sebezhetőség-vizsgálati munkafolyamatot.

Az összegyűjtött kontextusadatok, beleértve a tervezett felhasználást és a biztonsági határt, közvetlenül beágyazódnak az LLM promptjaiba. Ez biztosítja, hogy az ügynök szigorú iránymutatásokat tartson be annak meghatározásában, hogy egy probléma valódi sebezhetőségnek minősül-e, ahogy az a prompt részletében is látható:

        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.

Ez a kétlépcsős auditálási folyamat – először a potenciális problémák javaslata, majd azok szigorú osztályozása – központi szerepet játszik a keretrendszer sikerében. Szimulálja egy emberi szakértő munkafolyamatát, ahol a kezdeti átfogó áttekintéseket részletes, kontextustudatos elemzés követi.

Valós hatás: Kritikus hibák feltárása AI segítségével

A GitHub Security Lab Taskflow Agent gyakorlati alkalmazásai mélyrehatóak. Sikeresen azonosított súlyos biztonsági hibákat, amelyek pusztító következményekkel járhatnak. Például a keretrendszer olyan sebezhetőséget észlelt, amely lehetővé tette a személyazonosításra alkalmas adatok (PII) elérését az e-kereskedelmi alkalmazások bevásárlókosaraiban. Ez a típusú információfeltárás súlyos adatvédelmi jogsértésekhez és megfelelőségi problémákhoz vezethet.


Egy másik figyelemre méltó felfedezés egy kritikus hiba volt egy csevegőalkalmazásban, ahol a felhasználók bármilyen jelszóval bejelentkezhettek. Ez lényegében használhatatlanná tette a hitelesítési mechanizmust, megnyitva az utat a teljes fiókátvétel előtt. Ezek a példák aláhúzzák a Taskflow Agent azon képességét, hogy túlmutat a felületes ellenőrzéseken, és olyan mélyen gyökerező logikai hibákat és engedélyezési gyengeségeket találjon, amelyek feltárása gyakran jelentős kézi erőfeszítést igényel.


Ennek az AI-vezérelt biztonsági keretrendszernek a nyílt forráskódúvá tételével a GitHub olyan együttműködési környezetet ösztönöz, ahol a biztonsági közösség együttesen fejlesztheti és használhatja ezeket az eszközöket. Minél több csapat fogadja el és járul hozzá ehhez a keretrendszerhez, annál gyorsabban nő a kollektív képesség a sebezhetőségek azonosítására és kiküszöbölésére, biztonságosabbá téve a digitális ökoszisztémát mindenki számára. Ez tükrözi az együttműködési szellemet, amely más kezdeményezésekben is megfigyelhető, mint például a github-agentic-workflows, elősegítve az AI biztonsági eszközök folyamatos innovációját.

Gyakran ismételt kérdések

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.

Maradjon naprakész

Kapja meg a legfrissebb AI híreket e-mailben.

Megosztás