Code Velocity
AI უსაფრთხოება

AI-ზე დაფუძნებული უსაფრთხოება: GitHub-ის ღია კოდის მოწყვლადობის სკანირების ფრეიმვორკი

·7 წუთი კითხვა·GitHub·ორიგინალი წყარო
გაზიარება
დიაგრამა, რომელიც ასახავს GitHub Security Lab-ის AI-ზე დაფუძნებული მოწყვლადობის სკანირების Taskflow Agent-ის სამუშაო პროცესს

მოწყვლადობის სკანირების რევოლუციონიზაცია AI-ზე დაფუძნებული Taskflow-ებით

პროგრამული უზრუნველყოფის განვითარების მუდმივად ცვალებად ლანდშაფტში, უსაფრთხოება რჩება უმნიშვნელოვანეს საკითხად. ტრადიციული მოწყვლადობის სკანირების მეთოდები, მიუხედავად იმისა, რომ აუცილებელია, ხშირად უჭირთ კოდის უზარმაზარ მოცულობასთან და თანამედროვე ექსპლოიტების დახვეწილ ბუნებასთან გამკლავება. ამ გამოწვევის საპასუხოდ, GitHub Security Lab-მა წარმოადგინა თავისი ღია კოდის, AI-ზე დაფუძნებული ფრეიმვორკი: Taskflow Agent. თვეების განმავლობაში, ეს ინოვაციური სისტემა გადამწყვეტი იყო სხვადასხვა ღია კოდის პროექტებში მაღალი რისკის მქონე უსაფრთხოების მოწყვლადობების გამოსავლენად, რაც მნიშვნელოვან წინსვლას ნიშნავს AI-ზე დაფუძნებულ უსაფრთხოებაში.

Taskflow Agent-მა, თავის სპეციალიზებულ აუდიტის Taskflow-ებთან ერთად, უსაფრთხოების მკვლევარებს საშუალება მისცა, აქცენტი გადაეტანათ დროის შთანთქმელი მოწყვლადობის აღმოჩენიდან ეფექტურ გადამოწმებასა და ანგარიშგებაზე. ფრეიმვორკი მუდმივად ავლენს კრიტიკულ პრობლემებს, როგორიცაა ავტორიზაციის გვერდის ავლით და ინფორმაციის გამჟღავნება, რაც იძლევა არაავტორიზებული წვდომის ან მგრძნობიარე მონაცემების გამოვლენის საშუალებას. დღემდე, ამ სისტემის გამოყენებით 80-ზე მეტი მოწყვლადობაა დაფიქსირებული, რომელთაგან ბევრი უკვე საჯაროდ არის გაჟღერებული. ეს სტატია განიხილავს, თუ როგორ მუშაობს ეს ინოვაციური ღია კოდის ფრეიმვორკი, მის პრაქტიკულ გამოყენებას და როგორ შეგიძლიათ გამოიყენოთ ის თქვენი პროექტებისთვის პროგრამული უზრუნველყოფის უსაფრთხოების გასაძლიერებლად.

GitHub-ის AI მოწყვლადობის სკანერის განთავსება თქვენს პროექტებზე

GitHub Security Lab Taskflow Agent-ის დაწყება მარტივია, რაც დეველოპერებსა და უსაფრთხოების სპეციალისტებს საშუალებას აძლევს, ეს მძლავრი AI უსაფრთხოების ხელსაწყო საკუთარ სამუშაო პროცესში ჩართონ. Taskflow-ების გასაშვებად აუცილებელი წინაპირობაა აქტიური GitHub Copilot ლიცენზია, რადგან ძირითადი პრომპტები იყენებენ პრემიუმ მოდელის მოთხოვნებს დახვეწილი LLM-ებიდან, როგორიცაა openai-gpt-5-2-codex და claude-opus-4-6.

აქ მოცემულია სკანირების დაწყების მოკლე სახელმძღვანელო:

  1. რეპოზიტორიუმზე წვდომა: გადადით seclab-taskflows GitHub რეპოზიტორიუმზე.
  2. Codespace-ის დაწყება: გაუშვით Codespace პირდაპირ რეპოზიტორიუმიდან. ეს უზრუნველყოფს წინასწარ კონფიგურირებულ გარემოს შესასრულებლად.
  3. გარემოს ინიციალიზაცია: მიეცით რამდენიმე წუთი Codespace-ს სრულად ინიციალიზაციისთვის.
  4. აუდიტის შესრულება: ტერმინალში გაუშვით ბრძანება: ./scripts/audit/run_audit.sh myorg/myrepo. შეცვალეთ myorg/myrepo GitHub-ის კონკრეტული ორგანიზაციით და რეპოზიტორიუმით, რომლის აუდიტიც გსურთ.

საშუალო ზომის რეპოზიტორიუმის ტიპიურ სკანირებას შეიძლება დასჭირდეს 1-2 საათი. დასრულების შემდეგ, გაიხსნება SQLite Viewer, რომელიც აჩვენებს შედეგებს audit_results ცხრილში. მოძებნეთ მონიშნული რიგები has_vulnerability სვეტში პოტენციური პრობლემების იდენტიფიცირებისთვის.

პროფესიონალური რჩევა: დიდი ენობრივი მოდელების (LLM) არადეტერმინისტული ბუნების გამო, ერთი და იგივე კოდის ბაზაზე აუდიტის Taskflow-ების მრავალჯერადი გაშვება შეიძლება სხვადასხვა, ღირებულ შედეგებს იძლეოდეს. განიხილეთ სხვადასხვა მოდელების გამოყენება თანმიმდევრული გაშვებისთვის, როგორიცაა gpt-52-in-chatgpt ან claude-and-codex-now-available-for-copilot-business-pro-users, რათა მაქსიმალურად გაზარდოთ აღმოჩენის დაფარვა.

ფრეიმვორკი ასევე მხარს უჭერს კერძო რეპოზიტორიებს, თუმცა ეს მოითხოვს Codespace-ის კონფიგურაციის შეცვლას საჭირო წვდომის უფლებების მინიჭების მიზნით.

Taskflow-ების დეკონსტრუქცია: AI-ზე დაფუძნებული აუდიტის მექანიზმი

GitHub-ის AI-ზე დაფუძნებული უსაფრთხოების ფრეიმვორკის გულშია Taskflow-ები – YAML ფაილები, რომლებიც LLM-ისთვის ამოცანების სერიას კოორდინირებენ. ეს სტრუქტურირებული მიდგომა იძლევა კომპლექსური, მრავალსაფეხურიანი ოპერაციების განხორციელების საშუალებას, რაც ერთადერთი, მასიური პრომპტის შემთხვევაში მოუხერხებელი ან შეუძლებელი იქნებოდა. seclab-taskflow-agent მართავს ამ ამოცანების თანმიმდევრულ შესრულებას, რაც უზრუნველყოფს, რომ ერთი ამოცანის გამოსავალი შეუფერხებლად გადაეცემა მეორეს.

განვიხილოთ ტიპიური კოდის აუდიტი: სისტემა ჯერ ყოფს რეპოზიტორიუმს ფუნქციურ კომპონენტებად. თითოეული კომპონენტისთვის ის აგროვებს კრიტიკულ ინფორმაციას, როგორიცაა შესვლის წერტილები, დანიშნულების პრივილეგიების დონეები და საერთო დანიშნულება. ეს მონაცემები შემდეგ ინახება repo_context.db მონაცემთა ბაზაში, რაც ემსახურება სასიცოცხლო კონტექსტს შემდგომი აუდიტის ამოცანებისთვის.

ეს მოდულური დიზაინი გადამწყვეტია, რადგან LLM-ებს აქვთ თანდაყოლილი კონტექსტური ფანჯრის შეზღუდვები. მიუხედავად იმისა, რომ ახალ მოდელებს უფრო დიდი ფანჯრები აქვთ, ამოცანების მცირე, ურთიერთდაკავშირებულ ნაბიჯებად დაყოფა მნიშვნელოვნად აუმჯობესებს საიმედოობას, გამართვადობას და უფრო ფართომასშტაბიანი კოდის აუდიტის პროექტებთან გამკლავების შესაძლებლობას. seclab-taskflow-agent კიდევ უფრო ზრდის ეფექტურობას შაბლონური ამოცანების ასინქრონულად გაშვებით მრავალ კომპონენტზე, დინამიურად ცვლის კომპონენტებისთვის დამახასიათებელ დეტალებს საჭიროებისამებრ.

სპეციფიკური გაფრთხილებებიდან ზოგად უსაფრთხოების აუდიტებზე გადასვლა

თავდაპირველად, seclab-taskflow-agent მაღალეფექტური აღმოჩნდა მიზნობრივი ამოცანებისთვის, როგორიცაა CodeQL გაფრთხილებების ტრიაჟირება, სადაც ინსტრუქციები მკაცრი იყო და კრიტერიუმები კარგად განსაზღვრული. მისი გამოყენების გაფართოებამ უფრო ზოგად უსაფრთხოების კვლევასა და აუდიტზე გამოწვევა წარმოშვა: როგორ მივცეთ LLM-ებს თავისუფლება, გამოიკვლიონ მოწყვლადობის მრავალფეროვანი ტიპები ჰალუცინაციებსა და გაზრდილ ცრუ დადებით შედეგებში ჩავარდნის გარეშე.

ამ გაფართოების გასაღები მდგომარეობს დახვეწილ Taskflow დიზაინსა და პრომპტ ინჟინერიაში. ფართო, ბუნდოვანი ინსტრუქციების ნაცვლად, ფრეიმვორკი იყენებს გულდასმით შემუშავებულ პროცესს LLM-ის სამართავად. ეს მიდგომა აგენტს საშუალებას აძლევს, გამოავლინოს მოწყვლადობების უფრო ფართო სპექტრი, ამავდროულად შეინარჩუნოს მაღალი ჭეშმარიტი დადებითი მაჩვენებელი, რითაც მიბაძავს გამოცდილი ადამიანის უსაფრთხოების ანალიტიკოსის ნიუანსირებულ გადაწყვეტილებებს.

სტრატეგიული დიზაინი გაუმჯობესებული მოწყვლადობის აღმოსაჩენად

LLM-ის ჰალუცინაციებისა და ცრუ დადებითი შედეგების ტენდენციის შესამცირებლად, Taskflow Agent მოიცავს საფრთხეების მოდელირების მძლავრ ეტაპს. ეს კრიტიკული საწყისი ნაბიჯი უზრუნველყოფს, რომ LLM ფუნქციონირებს კარგად განსაზღვრული უსაფრთხოების კონტექსტში, რაც მრავალი ავტომატური სტატიკური ანალიზის ხელსაწყოსთვის საერთო ხაფანგია.

საფრთხეების მოდელირების ეტაპის ამოცანები

ამოცანააღწერაუსაფრთხოების აუდიტის სარგებელი
აპლიკაციების იდენტიფიცირებაგანსაზღვრავს განცალკევებულ კომპონენტებს რეპოზიტორიუმში, რადგან ერთმა რეპოზიტორიუმმა შეიძლება შეიცავდეს მრავალ ცალკეულ აპლიკაციას ან მოდულს, თითოეულს თავისი უსაფრთხოების საზღვრებითა და პრობლემებით. ეს ამოცანა ხელს უწყობს მოცულობის განსაზღვრას.უზრუნველყოფს, რომ აუდიტის ძალისხმევა მიმართულია ლოგიკურ ერთეულებზე, ხელს უშლის მოცულობის გაფართოებას და იძლევა მორგებული უსაფრთხოების ანალიზის საშუალებას თითოეული კომპონენტის უნიკალურ ფუნქციონალობასა და პოტენციურ თავდასხმის ზედაპირზე დაყრდნობით.
კომპონენტის კონტექსტის შეგროვებააგროვებს აუცილებელ ინფორმაციას თითოეული იდენტიფიცირებული კომპონენტისთვის, მათ შორის მის შესვლის წერტილებს (სადაც ის იღებს არასანდო შეტანას), დანიშნულების პრივილეგიის დონეს და საერთო დანიშნულებას.აძლევს LLM-ს თითოეული კომპონენტის როლისა და პოტენციური მოწყვლადობების ღრმა გაგებას. ეს კონტექსტი გადამწყვეტია განზრახ ფუნქციონალობასა და ლეგიტიმურ უსაფრთხოების ხარვეზებს შორის განსხვავების დასადგენად, მაგალითად, იმის დასადგენად, არის თუ არა ბრძანების ინექცია CLI ხელსაწყოში მოწყვლადობა, თუ მოსალოდნელი ქცევა მისი დიზაინის ფარგლებში.
უსაფრთხოების საზღვრის განსაზღვრაადგენს უსაფრთხოების პერიმეტრს თითოეული კომპონენტისთვის შეგროვებული კონტექსტის საფუძველზე. ეს ხელს უწყობს იმის განსაზღვრას, თუ რა წარმოადგენს უსაფრთხოების პრობლემას დიზაინის მახასიათებლისგან განსხვავებით. მაგალითად, "მოწყვლადობა" sandbox გარემოში, რომელსაც არ აქვს sandbox-დან გაქცევა, შეიძლება არ იყოს უსაფრთხოების რისკი.ხელს უშლის LLM-ს უწყინარი პრობლემების მოწყვლადობად მონიშვნაში, რაც მნიშვნელოვნად ამცირებს ცრუ დადებით შედეგებს. ის აუდიტს ასწორებს რეალურ საფრთხეების მოდელთან, უზრუნველყოფს, რომ მოხსენებული საკითხები ნამდვილად ექსპლოიტაბელურია და საფრთხეს წარმოადგენს აპლიკაციის ოპერაციულ კონტექსტში.
მოწყვლადობის შეთავაზებაპირველ აუდიტის ეტაპზე, LLM აანალიზებს თითოეულ კომპონენტს, მისი კონტექსტის გამოყენებით, რათა შემოგვთავაზოს მოწყვლადობების ტიპები, რომლებიც ყველაზე სავარაუდოა გამოჩნდეს ამ კონკრეტულ კომპონენტში (მაგ., SQL ინექცია, XSS, ავთენტიფიკაციის გვერდის ავლით).ავიწროებს მოცულობას შემდგომი, უფრო დეტალური ანალიზისთვის. ის მოქმედებს როგორც ინტელექტუალური წინასწარი ფილტრი, რომელიც LLM-ს მიმართავს გავრცელებულ ან კონტექსტურად რელევანტურ მოწყვლადობის კლასებზე ფოკუსირებისკენ, აუმჯობესებს აღმოჩენების ეფექტურობასა და აქტუალობას.
მკაცრი აუდიტი და ტრიაჟიმეორე აუდიტის ეტაპი იღებს წინა ეტაპის წინადადებებს და ექვემდებარება მათ მკაცრ კრიტერიუმებს. შემდეგ LLM განსაზღვრავს, ახალი კონტექსტითა და კონკრეტული პრომპტებით, წარმოადგენს თუ არა თითოეული წინადადება ვალიდურ, ექსპლოიტაბელურ მოწყვლადობას. ეს ეტაპი ახდენს ადამიანის უსაფრთხოების მკვლევარის ტრიაჟის პროცესის სიმულაციას.მოქმედებს როგორც გადამწყვეტი ვალიდაციის ფენა, მნიშვნელოვნად ზრდის ჭეშმარიტი დადებითი შედეგების მაჩვენებელს. წინადადების მკაცრი გადამოწმებისგან გამოყოფით, ის ამცირებს LLM-ის ჰალუცინაციებს და უზრუნველყოფს, რომ მხოლოდ დადასტურებული, მაღალი რისკის მქონე საკითხები გადაეცეს ადამიანის მიმოხილვისთვის, რითაც ოპტიმიზაციას უკეთებს საერთო მოწყვლადობის სკანირების სამუშაო პროცესს.

შეგროვებული კონტექსტური მონაცემები, მათ შორის დანიშნულების გამოყენება და უსაფრთხოების საზღვრები, პირდაპირ ჩაშენებულია LLM პრომპტებში. ეს უზრუნველყოფს, რომ აგენტი იცავს მკაცრ მითითებებს იმის დასადგენად, კვალიფიცირდება თუ არა პრობლემა ნამდვილ მოწყვლადობად, როგორც ეს ნაჩვენებია პრომპტის ამონარიდში:

        თქვენ უნდა გაითვალისწინოთ კომპონენტის განზრახვა და საფრთხეების მოდელი კომპონენტის ჩანაწერებში, რათა დაადგინოთ, არის თუ არა პრობლემა
        უსაფრთხოების ვალიდური საკითხი თუ დანიშნულების ფუნქციონალობა. შეგიძლიათ მოიძიოთ შესვლის წერტილები, ვებ შესვლის წერტილები და მომხმარებლის მოქმედებები
        რათა დაგეხმაროთ კომპონენტის დანიშნულების გამოყენების განსაზღვრაში.

აუდიტის ეს ორსაფეხურიანი პროცესი — ჯერ პოტენციური პრობლემების შემოთავაზება, შემდეგ კი მათი მკაცრი ტრიაჟირება — ფრეიმვორკის წარმატების ცენტრალური ნაწილია. ის ახდენს ადამიანის ექსპერტის სამუშაო პროცესის სიმულაციას, სადაც საწყის ფართო სკანირებას მოსდევს დეტალური, კონტექსტზე ორიენტირებული ანალიზი.

რეალური სამყაროს გავლენა: კრიტიკული ხარვეზების აღმოჩენა AI-ით

GitHub Security Lab-ის Taskflow Agent-ის პრაქტიკული გამოყენება ღრმაა. მან წარმატებით გამოავლინა უსაფრთხოების სერიოზული ხარვეზები, რომლებსაც შეიძლება დამანგრეველი შედეგები მოჰყოლოდა. მაგალითად, ფრეიმვორკმა აღმოაჩინა მოწყვლადობა, რომელიც იძლეოდა პერსონალურად იდენტიფიცირებად ინფორმაციაზე (PII) წვდომას ელექტრონული კომერციის აპლიკაციების კალათებში. ინფორმაციის ამ ტიპის გამჟღავნებამ შეიძლება გამოიწვიოს სერიოზული კონფიდენციალურობის დარღვევა და შესაბამისობის პრობლემები.

კიდევ ერთი მნიშვნელოვანი აღმოჩენა იყო კრიტიკული ხარვეზი ჩეთის აპლიკაციაში, სადაც მომხმარებლებს შეეძლოთ სისტემაში შესვლა ნებისმიერი პაროლით. ამან არსებითად უსარგებლო გახადა ავთენტიფიკაციის მექანიზმი, რამაც კარის გაუხსნა ანგარიშის სრულ კონტროლს. ეს მაგალითები ხაზს უსვამს Taskflow Agent-ის უნარს, სცილდება ზედაპირულ შემოწმებებს და ზუსტად განსაზღვროს ღრმად ჩამჯდარი ლოგიკური ხარვეზები და ავტორიზაციის სისუსტეები, რომელთა აღმოჩენას ხშირად მნიშვნელოვანი ხელით შრომა სჭირდება.

ამ AI-ზე დაფუძნებული უსაფრთხოების ფრეიმვორკის ღია კოდის გახდით, GitHub ხელს უწყობს თანამშრომლობით გარემოს, სადაც უსაფრთხოების საზოგადოებას შეუძლია ერთობლივად გააუმჯობესოს და გამოიყენოს ეს ხელსაწყოები. რაც მეტი გუნდი მიიღებს და წვლილს შეიტანს ამ ფრეიმვორკში, მით უფრო სწრაფად გაიზრდება მოწყვლადობების იდენტიფიცირებისა და აღმოფხვრის კოლექტიური შესაძლებლობა, რაც ციფრულ ეკოსისტემას ყველასთვის უსაფრთხოს გახდის. ეს ასახავს თანამშრომლობით ეთოსს, რომელიც სხვა ინიციატივებშიც შეინიშნება, როგორიცაა github-agentic-workflows, რაც ხელს უწყობს მუდმივ ინოვაციას AI უსაფრთხოების ხელსაწყოებში.

ხშირად დასმული კითხვები

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.

იყავით ინფორმირებული

მიიღეთ უახლესი AI სიახლეები ელფოსტაზე.

გაზიარება