[{"data":1,"prerenderedAt":1655},["ShallowReactive",2],{"/de-de/blog/developing-gitlab-duo-use-ai-to-remediate-security-vulnerabilities":3,"navigation-de-de":861,"banner-de-de":1293,"footer-de-de":1301,"blog-post-authors-de-de-Michael Friedrich|Alana Bellucci":1542,"blog-related-posts-de-de-developing-gitlab-duo-use-ai-to-remediate-security-vulnerabilities":1569,"blog-promotions-de-de":1594,"next-steps-de-de":1645},{"id":4,"title":5,"authors":6,"body":9,"category":835,"date":836,"description":837,"extension":838,"externalUrl":839,"faq":839,"featured":108,"heroImage":840,"meta":841,"navigation":108,"path":842,"seo":843,"slug":850,"stem":851,"tags":852,"template":858,"updatedDate":859,"__hash__":860},"blogPosts/de-de/blog/developing-gitlab-duo-use-ai-to-remediate-security-vulnerabilities.md","Die Entwicklung von GitLab Duo: KI zur Behebung von Sicherheitslücken nutzen ",[7,8],"Michael Friedrich","Alana Bellucci",{"type":10,"value":11,"toc":825},"minimark",[12,16,19,32,37,55,62,65,69,72,75,78,174,181,187,192,195,198,201,208,214,227,233,242,248,260,266,275,281,284,287,291,294,297,306,325,419,425,432,438,454,684,690,696,710,716,723,727,730,733,746,758,770,773,777,780,784,804,813,821],[13,14,15],"p",{},"Du hast gerade eine neue Stelle angetreten, und gleich an deinem ersten Tag gibt es einen schwerwiegenden Vorfall in der Produktion, bei dem alle verfügbaren Arbeitskräfte benötigt werden. Eine Reihe kritischer neuer Sicherheitslücken erfordert sofortige Aufmerksamkeit, Analyse, Schadensbegrenzung und Behebung. Aber wo genau fängst du mit deiner Untersuchung an?",[13,17,18],{},"Erfahre, wie du mit den GitLab-Duo-Funktionen zur Erläuterung von Sicherheitslücken und Behebung von Sicherheitslücken zusammen mit anderen KI-basierten Funktionen innerhalb weniger Minuten mit der Behebung von Sicherheitslücken beginnen kannst. Anhand eines praktischen Beispiels erfährst du, wie du von der KI-basierten Unterstützung bei der Analyse und Erläuterung von Sicherheitslücken profitieren kannst. Zusätzliche Abhilfemaßnahmen stehen in Form von KI-generierten Codekorrekturen in MRs im Vordergrund, um Sicherheitslücken schneller zu beheben.",[20,21,22],"blockquote",{},[13,23,24,25,31],{},"Starte ",[26,27,30],"a",{"href":28,"rel":29},"https://about.gitlab.com/gitlab-duo-agent-platform/#free-trial",[],"eine kostenlose Testversion von GitLab Duo",", um diese leistungsstarken Vorteile bei der Behebung von Sicherheitslücken auch in deinem Unternehmen zu nutzen.",[33,34,36],"h2",{"id":35},"so-gehst-du-vor-analyse","So gehst du vor: Analyse",[13,38,39,40,45,46,50,51,54],{},"Der erste Schritt besteht darin, die Auswirkungen und den Schweregrad der Sicherheitslücke zu analysieren. Öffne die GitLab-Benutzeroberfläche und navigiere zum ",[26,41,44],{"href":42,"rel":43},"https://docs.gitlab.com/user/application_security/vulnerability_report/",[],"Sicherheitslückenbericht"," im Menü ",[47,48,49],"code",{},"Schützen > Sicherheitslückenbericht",". Filtere die Liste der Sicherheitslücken nach ",[47,52,53],{},"SAST"," und identifiziere die kritischsten Sicherheitslücken, an denen du arbeiten musst.",[13,56,57],{},[58,59],"img",{"alt":60,"src":61},"Übersicht über Sicherheitslückenberichte","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098116/Blog/Content%20Images/Blog/Content%20Images/vulnerability_reports_overview_aHR0cHM6_1750098116056.png",[13,63,64],{},"Die Ergebnisse des SAST-Scanners werden in der Detailansicht zusammengefasst und mit dem Quellcode verknüpft. Sie enthalten Details aus öffentlich zugänglichen Sicherheitshinweisen. Für Entwickler(innen) ist es oft schwierig, direkt aus dem Sicherheitsbericht heraus mit der Analyse zu beginnen, es sei denn, sie kennen den Umfang des Angriffs, die technischen Details und die Sicherheitslücken genau.",[33,66,68],{"id":67},"verstehen-und-entschärfen-mit-der-erläuterung-von-sicherheitslücken","Verstehen und Entschärfen mit der Erläuterung von Sicherheitslücken",[13,70,71],{},"Es ist unerlässlich, dass du die Sicherheitslücke verstehst und weißt, wie du sie am besten und effizientesten beheben kannst. Die Korrekturen dürfen bestehende Funktionen nicht beeinträchtigen. Falls doch, ist eine Besprechung mit den zuständigen Betreuer(inne)n und Product Ownern mit einer Zusammenfassung und möglichen Abhilfemaßnahmen erforderlich. Code, den ein(e) ehemalige(r) Mitarbeiter(in) geschrieben hat, oder Code, für den es keine Tests gibt, kann die Planung eines Fixes noch schwieriger machen.",[13,73,74],{},"Die KI-basierte Erläuterung von Sicherheitslücken bietet eine Zusammenfassung, wie ein(e) Angreifer(in) die Sicherheitslücke ausnutzen könnte, und liefert weitere Erklärungen zu den Auswirkungen und möglichen Abhilfemaßnahmen.",[13,76,77],{},"Das folgende Beispiel zeigt eine OS-Command-Injection-Sicherheitslücke unter Verwendung dieses Codeschnipsels:",[79,80,85],"pre",{"className":81,"code":82,"language":83,"meta":84,"style":84},"language-php shiki shiki-themes github-light","\u003C?php \n\n// Read variable name from GET request\n$name = $_GET['name'];\n\n// Use the variable name to call eval and print its value \neval('echo $' . $name . ';');\n","php","",[47,86,87,103,110,117,136,141,147],{"__ignoreMap":84},[88,89,92,96,99],"span",{"class":90,"line":91},"line",1,[88,93,95],{"class":94},"sD7c4","\u003C?",[88,97,83],{"class":98},"sYu0t",[88,100,102],{"class":101},"sgsFI"," \n",[88,104,106],{"class":90,"line":105},2,[88,107,109],{"emptyLinePlaceholder":108},true,"\n",[88,111,113],{"class":90,"line":112},3,[88,114,116],{"class":115},"sAwPA","// Read variable name from GET request\n",[88,118,120,123,126,129,133],{"class":90,"line":119},4,[88,121,122],{"class":101},"$name ",[88,124,125],{"class":94},"=",[88,127,128],{"class":101}," $_GET[",[88,130,132],{"class":131},"sYBdl","'name'",[88,134,135],{"class":101},"];\n",[88,137,139],{"class":90,"line":138},5,[88,140,109],{"emptyLinePlaceholder":108},[88,142,144],{"class":90,"line":143},6,[88,145,146],{"class":115},"// Use the variable name to call eval and print its value \n",[88,148,150,153,156,159,162,165,168,171],{"class":90,"line":149},7,[88,151,152],{"class":98},"eval",[88,154,155],{"class":101},"(",[88,157,158],{"class":131},"'echo $'",[88,160,161],{"class":94}," .",[88,163,164],{"class":101}," $name ",[88,166,167],{"class":94},".",[88,169,170],{"class":131}," ';'",[88,172,173],{"class":101},");\n",[13,175,176,177,180],{},"Der Sicherheitslückenbericht ist nicht sehr detailliert und setzt voraus, dass du den gesamten Kontext und die Auswirkungen verstehst. Wähle oben rechts ",[47,178,179],{},"Sicherheitslücke erläutern",", um den GitLab Duo Chat mit einem vordefinierten Prompt zu öffnen. Dieser bietet eine zusätzliche Zusammenfassung der Sicherheitslücke, eine Beschreibung, wie die Sicherheitslücke ausgenutzt werden kann, und einen Lösungsvorschlag.",[13,182,183],{},[58,184],{"alt":185,"src":186},"Unsachgemäße Neutralisierung von\nspeziellen Elementen, die in einem Betriebssystembefehl verwendet werden\n(„OS Command Injection“) ","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098116/Blog/Content%20Images/Blog/Content%20Images/image9_aHR0cHM6_1750098116057.png",[188,189,191],"h3",{"id":190},"erläuterung-von-sicherheitslücken-in-einem-gespräch-mit-kontext","Erläuterung von Sicherheitslücken in einem Gespräch mit Kontext",[13,193,194],{},"Du wirst auch eine Änderung in der Benutzeroberfläche sehen: Das vorherige Overlay der Erläuterung von Sicherheitslücken wurde durch einen GitLab-Duo-Chat-Workflow ersetzt. Manchmal benötigt eine komplexe Sicherheitslücke mehrere Abhilfemaßnahmen oder sie führt zu unklaren Quellcodepfaden.",[13,196,197],{},"Du kannst zum Quellcodebaum navigieren und mit demselben Chat-Kontext fortfahren, um dir den Code erläutern zu lassen, ihn zu reparieren, zu überarbeiten und zu testen.",[13,199,200],{},"Probieren wir den kompletten Workflow anhand eines Beispiels in C aus, bei dem die Sicherheitsscans einen Pufferüberlauf entdeckt haben.",[202,203,204],"ol",{},[205,206,207],"li",{},"Öffne die Detailansicht der Sicherheitslücke und wähle oben rechts auf der Schaltfläche „Sicherheitslücke erläutern“. Dies öffnet den Chat-Prompt mit einer Zusammenfassung des Problems, potenziellen Angriffsvektoren und einem Lösungsvorschlag.",[13,209,210],{},[58,211],{"alt":212,"src":213},"KI für Sicherheitslücken – Bild 4","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098116/Blog/Content%20Images/Blog/Content%20Images/image11_aHR0cHM6_1750098116059.png",[202,215,216],{"start":105},[205,217,218,219,222,223,226],{},"Überprüfe den Lösungsvorschlag und bitte Duo Chat in einem Folge-Prompt, dir alternative Lösungsmöglichkeiten anzuzeigen, indem du den folgenden Text eingibst: ",[47,220,221],{},"Can you show an alternative fix using a different function",". Der Sinn dahinter ist, etwas über Alternativen zur Funktion ",[47,224,225],{},"strcpy()"," zu erfahren, die sicherer zu verwenden sind.",[13,228,229],{},[58,230],{"alt":231,"src":232},"KI für Sicherheitslücken – Bild 3","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098116/Blog/Content%20Images/Blog/Content%20Images/image4_aHR0cHM6_1750098116060.png",[202,234,235],{"start":112},[205,236,237,238,241],{},"Duo Chat bietet im folgenden Beispiel eine alternative Lösung mit ",[47,239,240],{},"strlcpy()",". Die Funktion kopiert nur so viele Zeichen, wie in der Zielzeichenfolge erlaubt sind, und beendet die Zeichenfolge immer mit Null. Sie gibt auch die Länge der Quellzeichenfolge zurück, um festzustellen, ob die Zeichenfolge abgeschnitten wurde.",[13,243,244],{},[58,245],{"alt":246,"src":247},"KI für Sicherheitslücken – Bild 5","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098116/Blog/Content%20Images/Blog/Content%20Images/image10_aHR0cHM6_1750098116062.png",[202,249,250],{"start":119},[205,251,252,253,256,257,167],{},"Klicke auf die URL der Datei ",[47,254,255],{},"Location",", um zur Quellcodeansicht zu gelangen. Öffne Duo Chat erneut und vergewissere dich, dass der vorherige Kontext zur Erläuterung der Sicherheitslücke noch vorhanden ist. Als Nächstes möchten wir Tests hinzufügen, bevor wir mit einem Lösungsvorschlag fortfahren. So vermeiden wir, dass Funktionen kaputt gehen oder Regressionen eingeführt werden. Verwende zum Beispiel den folgenden Chat-Prompt: ",[47,258,259],{},"Based on the vulnerability context and opened source code, how would you add tests for it?",[13,261,262],{},[58,263],{"alt":264,"src":265},"KI für Sicherheitslücken – Bild 7","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098116/Blog/Content%20Images/Blog/Content%20Images/image8_aHR0cHM6_1750098116063.png",[202,267,268],{"start":138},[205,269,270,271,274],{},"Nachdem du Tests erstellt hast (und angenommen, sie wurden jetzt hinzugefügt), kannst du Duo Chat mit dem Prompt ",[47,272,273],{},"Can you refactor the source code too?"," in der gleichen Sitzung auch darum bitten, den Quellcode zu überarbeiten.",[13,276,277],{},[58,278],{"alt":279,"src":280},"KI für Sicherheitslücken – Bild 6","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098116/Blog/Content%20Images/Blog/Content%20Images/image2_aHR0cHM6_1750098116063.png",[13,282,283],{},"Der Workflow zeigt dir, wie du Sicherheitslücken analysierst, verstehst, entschärfst, alternative Ansätze findest, Tests hinzufügst und sogar Refactoring durchführst.",[13,285,286],{},"Du kannst diesen Weg mit Duo Chat fortsetzen und dann in die Web IDE wechseln, um den Quellcode zu ändern, nachdem du gelernt hast, wie es geht. Zu den weiteren fortlaufenden Workflows gehören das Committen von Änderungen und das Auslösen der CI/CD-Pipeline und von Sicherheitsscans für den gesamten DevSecOps-Lebenszyklus.",[33,288,290],{"id":289},"beheben-mit-ki-unterstützter-behebung-von-sicherheitslücken","Beheben mit KI-unterstützter Behebung von Sicherheitslücken",[13,292,293],{},"Um eine Sicherheitslücke zu verstehen und zu beheben, sind immer noch Entwicklerfähigkeiten notwendig, um in einem neuen Merge Request eine Lösung für das Problem zu erstellen, Pipelines auszuführen und Sicherheitsscans durchzuführen. Es kann auch erforderlich sein, die Fixes in einer Staging-Umgebung bereitzustellen und über einen längeren Zeitraum zu testen.",[13,295,296],{},"Die KI kann dir dabei helfen, einen Lösungsvorschlag auf der Grundlage des bereitgestellten Kontexts der Sicherheitslücke und des Quellcodes zu generieren.",[13,298,299,300,305],{},"Tipp: Denke an die ärgerlichste Sicherheitslücke, die du in deiner Karriere bisher beheben musstest, und erstelle das Anwendungsbeispiel erneut für GitLab Duo. Die ",[26,301,304],{"href":302,"rel":303},"https://cwe.mitre.org/top25/archive/2023/2023_top25_list.html",[],"Mitre CWE Top 25 der gefährlichsten Software-Sicherheitslücken"," bietet ebenfalls einen guten Ausgangspunkt.",[13,307,308,309,314,315,318,319,324],{},"Das folgende Beispiel implementiert ",[26,310,313],{"href":311,"rel":312},"https://cwe.mitre.org/data/definitions/328.html",[],"CWE-328: Use of a weak hash function (Verwendung einer schwachen Hash-Funktion)"," unter Verwendung von ",[47,316,317],{},"md5",". Die Sicherheitslücke wird von ",[26,320,323],{"href":321,"rel":322},"https://docs.gitlab.com/user/application_security/sast/",[],"SAST-Scannern"," korrekt identifiziert.",[79,326,330],{"className":327,"code":328,"language":329,"meta":84,"style":84},"language-python shiki shiki-themes github-light","import hashlib\n\nclass User:\n    def __init__(self, username, password):\n        self.username = username\n        self.password = password\n\n    def set_password(self, password):\n        self.password = hashlib.md5(password.encode()).hexdigest()\n\n","python",[47,331,332,340,344,356,367,380,392,396,407],{"__ignoreMap":84},[88,333,334,337],{"class":90,"line":91},[88,335,336],{"class":94},"import",[88,338,339],{"class":101}," hashlib\n",[88,341,342],{"class":90,"line":105},[88,343,109],{"emptyLinePlaceholder":108},[88,345,346,349,353],{"class":90,"line":112},[88,347,348],{"class":94},"class",[88,350,352],{"class":351},"s7eDp"," User",[88,354,355],{"class":101},":\n",[88,357,358,361,364],{"class":90,"line":119},[88,359,360],{"class":94},"    def",[88,362,363],{"class":98}," __init__",[88,365,366],{"class":101},"(self, username, password):\n",[88,368,369,372,375,377],{"class":90,"line":138},[88,370,371],{"class":98},"        self",[88,373,374],{"class":101},".username ",[88,376,125],{"class":94},[88,378,379],{"class":101}," username\n",[88,381,382,384,387,389],{"class":90,"line":143},[88,383,371],{"class":98},[88,385,386],{"class":101},".password ",[88,388,125],{"class":94},[88,390,391],{"class":101}," password\n",[88,393,394],{"class":90,"line":149},[88,395,109],{"emptyLinePlaceholder":108},[88,397,399,401,404],{"class":90,"line":398},8,[88,400,360],{"class":94},[88,402,403],{"class":351}," set_password",[88,405,406],{"class":101},"(self, password):\n",[88,408,410,412,414,416],{"class":90,"line":409},9,[88,411,371],{"class":98},[88,413,386],{"class":101},[88,415,125],{"class":94},[88,417,418],{"class":101}," hashlib.md5(password.encode()).hexdigest()\n",[13,420,421],{},[58,422],{"alt":423,"src":424},"KI für Sicherheitslücken – Bild 8","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098116/Blog/Content%20Images/Blog/Content%20Images/image7_aHR0cHM6_1750098116064.png",[13,426,427,428,431],{},"Klicke oben rechts auf die Schaltfläche ",[47,429,430],{},"Mit Merge Request lösen",".  Dies öffnet einen MR, der KI verwendet, um eine Lösung vorzuschlagen. Eine mögliche Lösung für diese Sicherheitslücke könnte die Verwendung einer anderen Hash-Funktion sein.",[13,433,434],{},[58,435],{"alt":436,"src":437},"KI für Sicherheitslücken – Bild 9","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098116/Blog/Content%20Images/Blog/Content%20Images/image1_aHR0cHM6_1750098116065.png",[13,439,440,441,446,447,450,451,167],{},"Ein weiteres häufiges Beispiel für eine Sicherheitslücke ist die Nichtüberprüfung von Funktionsfehlercodes oder möglichen Exceptions. Die folgenden C-Codeschnipsel implementieren ein Beispiel für Timing-Angriffe auf Dateivorgänge mit ",[26,442,445],{"href":443,"rel":444},"https://cwe.mitre.org/data/definitions/362.html",[],"CWE-362"," für die Aufrufe ",[47,448,449],{},"fopen()"," und ",[47,452,453],{},"chmod()",[79,455,459],{"className":456,"code":457,"language":458,"meta":84,"style":84},"language-c shiki shiki-themes github-light","#include \u003Cstdio.h>\n#include \u003Cstring.h>\n#include \u003Csys/mman.h>\n#include \u003Csys/stat.h>\n#include \u003Cunistd.h>\n\nint main(int argc, char **argv) {\n\n    // File operations\n    char *fname = \"gitlab.keksi\";\n\n    FILE *fp;\n    fp = fopen(fname, \"r\");\n    fprintf(fp, \"Hello from GitLab Duo Vulnerability Resolution Challenge\");\n    fclose(fp);\n\n    // Potential chmod() timing attacks    \n\n    // Make the file world readable\n    chmod(fname, S_IRWXU|S_IRWXG|S_IRWXO);\n\n    return 0;\n}\n","c",[47,460,461,469,476,483,490,497,501,532,536,541,561,566,578,597,611,620,625,631,636,642,662,667,678],{"__ignoreMap":84},[88,462,463,466],{"class":90,"line":91},[88,464,465],{"class":94},"#include",[88,467,468],{"class":131}," \u003Cstdio.h>\n",[88,470,471,473],{"class":90,"line":105},[88,472,465],{"class":94},[88,474,475],{"class":131}," \u003Cstring.h>\n",[88,477,478,480],{"class":90,"line":112},[88,479,465],{"class":94},[88,481,482],{"class":131}," \u003Csys/mman.h>\n",[88,484,485,487],{"class":90,"line":119},[88,486,465],{"class":94},[88,488,489],{"class":131}," \u003Csys/stat.h>\n",[88,491,492,494],{"class":90,"line":138},[88,493,465],{"class":94},[88,495,496],{"class":131}," \u003Cunistd.h>\n",[88,498,499],{"class":90,"line":143},[88,500,109],{"emptyLinePlaceholder":108},[88,502,503,506,509,511,513,517,520,523,526,529],{"class":90,"line":149},[88,504,505],{"class":94},"int",[88,507,508],{"class":351}," main",[88,510,155],{"class":101},[88,512,505],{"class":94},[88,514,516],{"class":515},"sqxcx"," argc",[88,518,519],{"class":101},", ",[88,521,522],{"class":94},"char",[88,524,525],{"class":94}," **",[88,527,528],{"class":515},"argv",[88,530,531],{"class":101},") {\n",[88,533,534],{"class":90,"line":398},[88,535,109],{"emptyLinePlaceholder":108},[88,537,538],{"class":90,"line":409},[88,539,540],{"class":115},"    // File operations\n",[88,542,544,547,550,553,555,558],{"class":90,"line":543},10,[88,545,546],{"class":94},"    char",[88,548,549],{"class":94}," *",[88,551,552],{"class":101},"fname ",[88,554,125],{"class":94},[88,556,557],{"class":131}," \"gitlab.keksi\"",[88,559,560],{"class":101},";\n",[88,562,564],{"class":90,"line":563},11,[88,565,109],{"emptyLinePlaceholder":108},[88,567,569,572,575],{"class":90,"line":568},12,[88,570,571],{"class":101},"    FILE ",[88,573,574],{"class":94},"*",[88,576,577],{"class":101},"fp;\n",[88,579,581,584,586,589,592,595],{"class":90,"line":580},13,[88,582,583],{"class":101},"    fp ",[88,585,125],{"class":94},[88,587,588],{"class":351}," fopen",[88,590,591],{"class":101},"(fname, ",[88,593,594],{"class":131},"\"r\"",[88,596,173],{"class":101},[88,598,600,603,606,609],{"class":90,"line":599},14,[88,601,602],{"class":351},"    fprintf",[88,604,605],{"class":101},"(fp, ",[88,607,608],{"class":131},"\"Hello from GitLab Duo Vulnerability Resolution Challenge\"",[88,610,173],{"class":101},[88,612,614,617],{"class":90,"line":613},15,[88,615,616],{"class":351},"    fclose",[88,618,619],{"class":101},"(fp);\n",[88,621,623],{"class":90,"line":622},16,[88,624,109],{"emptyLinePlaceholder":108},[88,626,628],{"class":90,"line":627},17,[88,629,630],{"class":115},"    // Potential chmod() timing attacks    \n",[88,632,634],{"class":90,"line":633},18,[88,635,109],{"emptyLinePlaceholder":108},[88,637,639],{"class":90,"line":638},19,[88,640,641],{"class":115},"    // Make the file world readable\n",[88,643,645,648,651,654,657,659],{"class":90,"line":644},20,[88,646,647],{"class":351},"    chmod",[88,649,650],{"class":101},"(fname, S_IRWXU",[88,652,653],{"class":94},"|",[88,655,656],{"class":101},"S_IRWXG",[88,658,653],{"class":94},[88,660,661],{"class":101},"S_IRWXO);\n",[88,663,665],{"class":90,"line":664},21,[88,666,109],{"emptyLinePlaceholder":108},[88,668,670,673,676],{"class":90,"line":669},22,[88,671,672],{"class":94},"    return",[88,674,675],{"class":98}," 0",[88,677,560],{"class":101},[88,679,681],{"class":90,"line":680},23,[88,682,683],{"class":101},"}\n",[13,685,686,687,689],{},"Der SAST-Bericht für ",[47,688,453],{}," kann wie folgt aussehen:",[13,691,692],{},[58,693],{"alt":694,"src":695},"KI für Sicherheitslücken – Bild 10","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098116/Blog/Content%20Images/Blog/Content%20Images/image6_aHR0cHM6_1750098116065.png",[13,697,698,699,701,702,705,706,709],{},"Der vorgeschlagene Merge Request für ",[47,700,453],{}," beinhaltet die Fehlerbehandlung. Zusätzlich wird ein weiteres potenzielles Problem behoben, durch das Dateien öffentlich beschreibbar sind, indem die Berechtigungen von ",[47,703,704],{},"777"," auf ",[47,707,708],{},"600"," geändert werden.",[13,711,712],{},[58,713],{"alt":714,"src":715},"KI für Sicherheitslücken – Bild 11","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098116/Blog/Content%20Images/Blog/Content%20Images/image3_aHR0cHM6_1750098116066.png",[20,717,718],{},[13,719,720,721,167],{},"Probiere diese asynchrone Übung aus: Finde, analysiere und behebe die Sicherheitslücke für die Funktion ",[47,722,449],{},[33,724,726],{"id":725},"mehr-ki-unterstützung-von-gitlabduo-erforderlich","Mehr KI-Unterstützung von GitLab Duo erforderlich",[13,728,729],{},"Oft lässt sich ein Sicherheitsproblem mit einer schnellen Lösung oder einem Workaround beheben, der den Entwicklungsteams Zeit gibt, eine längerfristige Lösung zu diskutieren und zu planen. In anderen Fällen wird das Problem komplexer und erfordert die Deaktivierung von Funktions-APIs oder die Behebung von Problemen der Firewall, bis eine angemessene Lösung in die Produktion eingeführt werden kann.",[13,731,732],{},"GitLab Duo bietet zusätzliche KI-basierte Funktionen, die bei der Lösung dieser Probleme helfen können.",[13,734,735,739,740,745],{},[736,737,738],"strong",{},"Codeerläuterung:"," Als Entwickler(in) oder Sicherheitsingenieur(in) ist es wichtig, dass du dich auf deine Änderungen verlassen kannst. In der IDE kannst du die ",[26,741,744],{"href":742,"rel":743},"https://docs.gitlab.com/user/gitlab_duo_chat/examples/#explain-code-in-the-ide",[],"Funktion „Codeerläuterung“"," verwenden, um die von der KI vorgeschlagene Lösung für die Sicherheitslücke besser zu verstehen. So ist sichergestellt, dass du genau weißt, welche Anpassungen vorgenommen wurden und warum.",[13,747,748,751,752,757],{},[736,749,750],{},"Grundursachenanalyse:"," Wenn die Lösung deine Pipeline beschädigt, kannst du die ",[26,753,756],{"href":754,"rel":755},"https://about.gitlab.com/blog/developing-gitlab-duo-blending-ai-and-root-cause-analysis-to-fix-ci-cd/",[],"Grundursachenanalyse"," verwenden. Dieses Tool hilft dir bei der Identifizierung des zugrunde liegenden Problems und erklärt es dir, damit du es effektiv angehen kannst. Nachdem du die erforderlichen Korrekturen vorgenommen hast, kannst du die Tests erneut ausführen, um eine erfolgreiche Lösung zu gewährleisten.",[13,759,760,763,764,769],{},[736,761,762],{},"Refactoring:"," Auch wenn die Sicherheitslücke behoben wurde, lohnt es sich zu überlegen, ob der Code nicht sicherer geschrieben werden kann. In der IDE kannst du GitLab Duo Chat öffnen und die ",[26,765,768],{"href":766,"rel":767},"https://docs.gitlab.com/user/gitlab_duo_chat/examples/#refactor-code-in-the-ide",[],"Refactoring-Aktion"," verwenden, um alternative, sicherere Möglichkeiten zum Schreiben deines Codes zu finden. Dieser proaktive Ansatz trägt zur Aufrechterhaltung einer robusten und sicheren Codebase bei.",[13,771,772],{},"Mit diesen Funktionen von GitLab Duo kannst du Sicherheitslücken selbstbewusst erkennen und beheben und so sicherstellen, dass dein Code sicher und effizient bleibt.",[33,774,776],{"id":775},"wie-geht-es-weiter","Wie geht es weiter?",[13,778,779],{},"Wir planen, sowohl die Erläuterung von Sicherheitslücken als auch die Behebung von Sicherheitslücken „nach links“ zu verschieben, indem wir sie direkt in den MR-Prozess integrieren. Diese Integration stellt sicher, dass du Sicherheitslücken früher im Entwicklungszyklus angehen und beheben kannst, was deinen Workflow optimiert und die Codesicherheit von Anfang an erhöht.",[33,781,783],{"id":782},"erste-schritte-mit-gitlabduo","Erste Schritte mit GitLab Duo",[13,785,786,787,792,793,450,798,803],{},"In unserer ",[26,788,791],{"href":789,"rel":790},"https://docs.gitlab.com/user/gitlab_duo/turn_on_off/",[],"Dokumentation"," findest du Informationen dazu, wie du die Funktion für unsere GitLab-Ultimate-Kund(inn)en aktivieren kannst. Außerdem sind die GitLab-Duo-Funktionen ",[26,794,797],{"href":795,"rel":796},"https://docs.gitlab.com/user/application_security/vulnerabilities/#explaining-a-vulnerability",[],"Erläuterung von Sicherheitslücken",[26,799,802],{"href":800,"rel":801},"https://docs.gitlab.com/user/application_security/vulnerabilities/#vulnerability-resolution",[],"Behebung von Sicherheitslücken"," bald in GitLab Self-Managed und GitLab Dedicated verfügbar.",[13,805,806,807,812],{},"In ",[26,808,811],{"href":809,"rel":810},"https://about.gitlab.com/blog/developing-gitlab-duo-series/",[],"der Blog-Serie „Entwicklung von GitLab Duo“"," erfährst du regelmäßig, was es Neues in GitLab Duo gibt.",[20,814,815],{},[13,816,24,817,820],{},[26,818,30],{"href":28,"rel":819},[],", um diese leistungsstarken Vorteile bei der Behebung von Sicherheitslücken auch in deinem Unternehmen zu nutzen!",[822,823,824],"style",{},"html pre.shiki code .sD7c4, html code.shiki .sD7c4{--shiki-default:#D73A49}html pre.shiki code .sYBdl, html code.shiki .sYBdl{--shiki-default:#032F62}html pre.shiki code .s7eDp, html code.shiki .s7eDp{--shiki-default:#6F42C1}html pre.shiki code .sgsFI, html code.shiki .sgsFI{--shiki-default:#24292E}html pre.shiki code .sqxcx, html code.shiki .sqxcx{--shiki-default:#E36209}html pre.shiki code .sAwPA, html code.shiki .sAwPA{--shiki-default:#6A737D}html pre.shiki code .sYu0t, html code.shiki .sYu0t{--shiki-default:#005CC5}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":84,"searchDepth":105,"depth":105,"links":826},[827,828,831,832,833,834],{"id":35,"depth":105,"text":36},{"id":67,"depth":105,"text":68,"children":829},[830],{"id":190,"depth":112,"text":191},{"id":289,"depth":105,"text":290},{"id":725,"depth":105,"text":726},{"id":775,"depth":105,"text":776},{"id":782,"depth":105,"text":783},"ai","2024-07-15","Dieses Tutorial zeigt, wie dir die GitLab-Duo-Funktionen zur Erläuterung und Behebung von Sicherheitslücken zusammen mit unseren anderen KI-basierten Funktionen helfen können, Sicherheitslücken schnell zu beheben.","md",null,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098106/Blog/Hero%20Images/Blog/Hero%20Images/blog-hero-banner-1-0178-820x470-fy25_7JlF3WlEkswGQbcTe8DOTB_1750098106040.png",{},"/de-de/blog/developing-gitlab-duo-use-ai-to-remediate-security-vulnerabilities",{"ogTitle":844,"ogImage":840,"ogDescription":837,"ogSiteName":845,"noIndex":846,"ogType":847,"ogUrl":848,"title":844,"canonicalUrls":848,"description":849},"GitLab Duo: KI zur Behebung von Sicherheitslücken nutzen","https://about.gitlab.com",false,"article","https://about.gitlab.com/blog/developing-gitlab-duo-use-ai-to-remediate-security-vulnerabilities","Dieses Tutorial zeigt, wie dir die GitLab-Duo-Funktionen zur Erläuterung und Behebung von Sicherheitslücken zusammen mit unseren anderen KI-basierten Funktionen helfen können, Sicherheitslücken zu beheben.","developing-gitlab-duo-use-ai-to-remediate-security-vulnerabilities","de-de/blog/developing-gitlab-duo-use-ai-to-remediate-security-vulnerabilities",[853,854,855,856,857],"AI","security","product","features","tutorial","BlogPost","2024-11-29","-gWvLmbX3O1h7KcgKcUT2jocZzEEtXbmxj3CZI7ExgQ",{"logo":862,"freeTrial":867,"sales":872,"login":877,"items":882,"search":1211,"minimal":1245,"duo":1263,"switchNav":1272,"pricingDeployment":1283},{"config":863},{"href":864,"dataGaName":865,"dataGaLocation":866},"/de-de/","gitlab logo","header",{"text":868,"config":869},"Kostenlose Testversion anfordern",{"href":870,"dataGaName":871,"dataGaLocation":866},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/de-de&glm_content=default-saas-trial/","free trial",{"text":873,"config":874},"Demo anfordern",{"href":875,"dataGaName":876,"dataGaLocation":866},"/de-de/sales/?contact-topic=request-demo","sales",{"text":878,"config":879},"Anmelden",{"href":880,"dataGaName":881,"dataGaLocation":866},"https://gitlab.com/users/sign_in/","sign in",[883,912,1014,1019,1133,1189],{"text":884,"config":885,"menu":887},"Plattform",{"dataNavLevelOne":886},"platform",{"type":888,"columns":889},"cards",[890,896,904],{"title":884,"description":891,"link":892},"Die intelligente Orchestrierungsplattform für DevSecOps",{"text":893,"config":894},"Die Plattform erkunden",{"href":895,"dataGaName":886,"dataGaLocation":866},"/de-de/platform/",{"title":897,"description":898,"link":899},"GitLab Duo Agent Platform","Agentische KI für den gesamten Software-Lebenszyklus",{"text":900,"config":901},"Lerne GitLab Duo kennen",{"href":902,"dataGaName":903,"dataGaLocation":866},"/de-de/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":905,"description":906,"link":907},"Warum GitLab?","Erfahre, warum sich Unternehmen für GitLab entscheiden",{"text":908,"config":909},"Mehr erfahren",{"href":910,"dataGaName":911,"dataGaLocation":866},"/de-de/why-gitlab/","why gitlab",{"text":913,"left":108,"config":914,"menu":916},"Produkt",{"dataNavLevelOne":915},"solutions",{"type":917,"link":918,"columns":922,"feature":993},"lists",{"text":919,"config":920},"Alle Lösungen anzeigen",{"href":921,"dataGaName":915,"dataGaLocation":866},"/de-de/solutions/",[923,948,971],{"title":924,"description":925,"link":926,"items":931},"Automatisierung","CI/CD und Automatisierung zur Beschleunigung der Bereitstellung",{"config":927},{"icon":928,"href":929,"dataGaName":930,"dataGaLocation":866},"AutomatedCodeAlt","/de-de/solutions/delivery-automation/","automated software delivery",[932,936,939,944],{"text":933,"config":934},"CI/CD",{"href":935,"dataGaLocation":866,"dataGaName":933},"/de-de/solutions/continuous-integration/",{"text":897,"config":937},{"href":902,"dataGaLocation":866,"dataGaName":938},"gitlab duo agent platform - product menu",{"text":940,"config":941},"Quellcodeverwaltung",{"href":942,"dataGaLocation":866,"dataGaName":943},"/de-de/solutions/source-code-management/","Source Code Management",{"text":945,"config":946},"Automatische Softwarebereitstellung",{"href":929,"dataGaLocation":866,"dataGaName":947},"Automated software delivery",{"title":949,"description":950,"link":951,"items":956},"Sicherheit","Entwickle Code schneller ohne Abstriche bei der Sicherheit",{"config":952},{"href":953,"dataGaName":954,"dataGaLocation":866,"icon":955},"/de-de/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[957,961,966],{"text":958,"config":959},"Anwendungssicherheitstests",{"href":953,"dataGaName":960,"dataGaLocation":866},"Application security testing",{"text":962,"config":963},"Schutz der Software-Lieferkette",{"href":964,"dataGaLocation":866,"dataGaName":965},"/de-de/solutions/supply-chain/","Software supply chain security",{"text":967,"config":968},"Software-Compliance",{"href":969,"dataGaName":970,"dataGaLocation":866},"/de-de/solutions/software-compliance/","software compliance",{"title":972,"link":973,"items":978},"Messung",{"config":974},{"icon":975,"href":976,"dataGaName":977,"dataGaLocation":866},"DigitalTransformation","/de-de/solutions/visibility-measurement/","visibility and measurement",[979,983,988],{"text":980,"config":981},"Sichtbarkeit und Messung",{"href":976,"dataGaLocation":866,"dataGaName":982},"Visibility and Measurement",{"text":984,"config":985},"Wertstrommanagement",{"href":986,"dataGaLocation":866,"dataGaName":987},"/de-de/solutions/value-stream-management/","Value Stream Management",{"text":989,"config":990},"Analysen und Einblicke",{"href":991,"dataGaLocation":866,"dataGaName":992},"/de-de/solutions/analytics-and-insights/","Analytics and insights",{"title":994,"type":917,"items":995},"GitLab für",[996,1002,1008],{"text":997,"config":998},"Enterprise",{"icon":999,"href":1000,"dataGaLocation":866,"dataGaName":1001},"Building","/de-de/enterprise/","enterprise",{"text":1003,"config":1004},"Kleinunternehmen",{"icon":1005,"href":1006,"dataGaLocation":866,"dataGaName":1007},"Work","/de-de/small-business/","small business",{"text":1009,"config":1010},"Öffentlicher Sektor",{"icon":1011,"href":1012,"dataGaLocation":866,"dataGaName":1013},"Organization","/de-de/solutions/public-sector/","public sector",{"text":1015,"config":1016},"Preise",{"href":1017,"dataGaName":1018,"dataGaLocation":866,"dataNavLevelOne":1018},"/de-de/pricing/","pricing",{"text":1020,"config":1021,"menu":1023},"Ressourcen",{"dataNavLevelOne":1022},"resources",{"type":917,"link":1024,"columns":1028,"feature":1122},{"text":1025,"config":1026},"Alle Ressourcen anzeigen",{"href":1027,"dataGaName":1022,"dataGaLocation":866},"/de-de/resources/",[1029,1062,1089],{"title":1030,"items":1031},"Erste Schritte",[1032,1037,1042,1047,1052,1057],{"text":1033,"config":1034},"Installieren",{"href":1035,"dataGaName":1036,"dataGaLocation":866},"/de-de/install/","install",{"text":1038,"config":1039},"Kurzanleitungen",{"href":1040,"dataGaName":1041,"dataGaLocation":866},"/de-de/get-started/","quick setup checklists",{"text":1043,"config":1044},"Lernen",{"href":1045,"dataGaLocation":866,"dataGaName":1046},"https://university.gitlab.com/","learn",{"text":1048,"config":1049},"Produktdokumentation",{"href":1050,"dataGaName":1051,"dataGaLocation":866},"https://docs.gitlab.com/","product documentation",{"text":1053,"config":1054},"Best-Practice-Videos",{"href":1055,"dataGaName":1056,"dataGaLocation":866},"/de-de/getting-started-videos/","best practice videos",{"text":1058,"config":1059},"Integrationen",{"href":1060,"dataGaName":1061,"dataGaLocation":866},"/de-de/integrations/","integrations",{"title":1063,"items":1064},"Entdecken",[1065,1070,1075,1080,1084],{"text":1066,"config":1067},"Kundenerfolge",{"href":1068,"dataGaName":1069,"dataGaLocation":866},"/de-de/customers/","customer success stories",{"text":1071,"config":1072},"Blog",{"href":1073,"dataGaName":1074,"dataGaLocation":866},"/de-de/blog/","blog",{"text":1076,"config":1077},"Demo-Hub",{"href":1078,"dataGaName":1079,"dataGaLocation":866},"/de-de/demo-hub/","demo hub",{"text":1081,"config":1082},"The Source",{"href":1083,"dataGaName":1074,"dataGaLocation":866},"/de-de/the-source/",{"text":1085,"config":1086},"Remote",{"href":1087,"dataGaName":1088,"dataGaLocation":866},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":1090,"items":1091},"Vernetzen",[1092,1097,1102,1107,1112,1117],{"text":1093,"config":1094},"GitLab-Services",{"href":1095,"dataGaName":1096,"dataGaLocation":866},"/de-de/services/","services",{"text":1098,"config":1099},"Beitragen",{"href":1100,"dataGaName":1101,"dataGaLocation":866},"https://contributors.gitlab.com","contribute",{"text":1103,"config":1104},"Community",{"href":1105,"dataGaName":1106,"dataGaLocation":866},"/community/","community",{"text":1108,"config":1109},"Forum",{"href":1110,"dataGaName":1111,"dataGaLocation":866},"https://forum.gitlab.com/","forum",{"text":1113,"config":1114},"Veranstaltungen",{"href":1115,"dataGaName":1116,"dataGaLocation":866},"/events/","events",{"text":1118,"config":1119},"Partner",{"href":1120,"dataGaName":1121,"dataGaLocation":866},"/de-de/partners/","partners",{"config":1123,"title":1126,"text":1127,"link":1128},{"background":1124,"textColor":1125},"url('https://res.cloudinary.com/about-gitlab-com/image/upload/v1777322348/qpq8yrgn8knii57omj0c.png')","#000","Neues bei GitLab","Über die neuesten Funktionen und Verbesserungen auf dem Laufenden bleiben.",{"text":1129,"config":1130},"Aktuelle Nachrichten",{"href":1131,"dataGaName":1132,"dataGaLocation":866},"/de-de/whats-new/","whats new",{"text":1134,"config":1135,"menu":1137},"Unternehmen",{"dataNavLevelOne":1136},"company",{"type":917,"columns":1138},[1139],{"items":1140},[1141,1146,1152,1154,1159,1164,1169,1174,1179,1184],{"text":1142,"config":1143},"Über",{"href":1144,"dataGaName":1145,"dataGaLocation":866},"/de-de/company/","about",{"text":1147,"config":1148,"footerGa":1151},"Karriere",{"href":1149,"dataGaName":1150,"dataGaLocation":866},"/jobs/","jobs",{"dataGaName":1150},{"text":1113,"config":1153},{"href":1115,"dataGaName":1116,"dataGaLocation":866},{"text":1155,"config":1156},"Geschäftsführung",{"href":1157,"dataGaName":1158,"dataGaLocation":866},"/company/team/e-group/","leadership",{"text":1160,"config":1161},"Handbuch",{"href":1162,"dataGaName":1163,"dataGaLocation":866},"https://handbook.gitlab.com/","handbook",{"text":1165,"config":1166},"Investor Relations",{"href":1167,"dataGaName":1168,"dataGaLocation":866},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":1170,"config":1171},"Trust Center",{"href":1172,"dataGaName":1173,"dataGaLocation":866},"/de-de/security/","trust center",{"text":1175,"config":1176},"AI Transparency Center",{"href":1177,"dataGaName":1178,"dataGaLocation":866},"/de-de/ai-transparency-center/","ai transparency center",{"text":1180,"config":1181},"Newsletter",{"href":1182,"dataGaName":1183,"dataGaLocation":866},"/company/contact/#contact-forms","newsletter",{"text":1185,"config":1186},"Presse",{"href":1187,"dataGaName":1188,"dataGaLocation":866},"/press/","press",{"text":1190,"config":1191,"menu":1192},"Kontakt",{"dataNavLevelOne":1136},{"type":917,"columns":1193},[1194],{"items":1195},[1196,1201,1206],{"text":1197,"config":1198},"Vertrieb kontaktieren",{"href":1199,"dataGaName":1200,"dataGaLocation":866},"/de-de/sales/","talk to sales",{"text":1202,"config":1203},"Support-Portal",{"href":1204,"dataGaName":1205,"dataGaLocation":866},"https://support.gitlab.com/hc/en-us","support portal",{"text":1207,"config":1208},"Kundenportal",{"href":1209,"dataGaName":1210,"dataGaLocation":866},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":1212,"login":1213,"suggestions":1220},"Schließen",{"text":1214,"link":1215},"Um Repositorys und Projekte zu durchsuchen, melde dich an bei",{"text":1216,"config":1217},"gitlab.com",{"href":880,"dataGaName":1218,"dataGaLocation":1219},"search login","search",{"text":1221,"default":1222},"Vorschläge",[1223,1225,1230,1232,1237,1242],{"text":897,"config":1224},{"href":902,"dataGaName":897,"dataGaLocation":1219},{"text":1226,"config":1227},"Codevorschläge (KI)",{"href":1228,"dataGaName":1229,"dataGaLocation":1219},"/de-de/solutions/code-suggestions/","Code Suggestions (AI)",{"text":933,"config":1231},{"href":935,"dataGaName":933,"dataGaLocation":1219},{"text":1233,"config":1234},"GitLab auf AWS",{"href":1235,"dataGaName":1236,"dataGaLocation":1219},"/de-de/partners/technology-partners/aws/","GitLab on AWS",{"text":1238,"config":1239},"GitLab auf Google Cloud",{"href":1240,"dataGaName":1241,"dataGaLocation":1219},"/de-de/partners/technology-partners/google-cloud-platform/","GitLab on Google Cloud",{"text":905,"config":1243},{"href":910,"dataGaName":1244,"dataGaLocation":1219},"Why GitLab?",{"freeTrial":1246,"mobileIcon":1251,"desktopIcon":1256,"secondaryButton":1259},{"text":1247,"config":1248},"Kostenlos testen",{"href":1249,"dataGaName":871,"dataGaLocation":1250},"https://gitlab.com/-/trials/new/","nav",{"altText":1252,"config":1253},"GitLab-Symbol",{"src":1254,"dataGaName":1255,"dataGaLocation":1250},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":1252,"config":1257},{"src":1258,"dataGaName":1255,"dataGaLocation":1250},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":1030,"config":1260},{"href":1261,"dataGaName":1262,"dataGaLocation":1250},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/de-de/get-started/","get started",{"freeTrial":1264,"mobileIcon":1268,"desktopIcon":1270},{"text":1265,"config":1266},"Mehr über GitLab Duo erfahren",{"href":902,"dataGaName":1267,"dataGaLocation":1250},"gitlab duo",{"altText":1252,"config":1269},{"src":1254,"dataGaName":1255,"dataGaLocation":1250},{"altText":1252,"config":1271},{"src":1258,"dataGaName":1255,"dataGaLocation":1250},{"button":1273,"mobileIcon":1278,"desktopIcon":1280},{"text":1274,"config":1275},"/Option",{"href":1276,"dataGaName":1277,"dataGaLocation":1250},"#contact","switch",{"altText":1252,"config":1279},{"src":1254,"dataGaName":1255,"dataGaLocation":1250},{"altText":1252,"config":1281},{"src":1282,"dataGaName":1255,"dataGaLocation":1250},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":1284,"mobileIcon":1289,"desktopIcon":1291},{"text":1285,"config":1286},"Zurück zur Preisübersicht",{"href":1017,"dataGaName":1287,"dataGaLocation":1250,"icon":1288},"back to pricing","GoBack",{"altText":1252,"config":1290},{"src":1254,"dataGaName":1255,"dataGaLocation":1250},{"altText":1252,"config":1292},{"src":1258,"dataGaName":1255,"dataGaLocation":1250},{"title":1294,"button":1295,"config":1299},"GitLab Orbit ist da: die Kontextebene für KI-Agenten",{"text":908,"config":1296},{"href":1297,"dataGaName":1298,"dataGaLocation":866},"/de-de/gitlab-orbit/","orbit",{"layout":1300,"disabled":846},"release",{"data":1302},{"text":1303,"source":1304,"edit":1310,"contribute":1315,"config":1320,"items":1325,"minimal":1531},"Git ist eine Marke von Software Freedom Conservancy und unsere Verwendung von „GitLab“ erfolgt unter Lizenz.",{"text":1305,"config":1306},"Quelltext der Seite anzeigen",{"href":1307,"dataGaName":1308,"dataGaLocation":1309},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":1311,"config":1312},"Diese Seite bearbeiten",{"href":1313,"dataGaName":1314,"dataGaLocation":1309},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":1316,"config":1317},"Beteilige dich",{"href":1318,"dataGaName":1319,"dataGaLocation":1309},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":1321,"facebook":1322,"youtube":1323,"linkedin":1324},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[1326,1371,1424,1466,1498],{"title":1015,"links":1327,"subMenu":1342},[1328,1332,1337],{"text":1329,"config":1330},"Tarife anzeigen",{"href":1017,"dataGaName":1331,"dataGaLocation":1309},"view plans",{"text":1333,"config":1334},"Vorteile von Premium",{"href":1335,"dataGaName":1336,"dataGaLocation":1309},"/de-de/pricing/premium/","why premium",{"text":1338,"config":1339},"Vorteile von Ultimate",{"href":1340,"dataGaName":1341,"dataGaLocation":1309},"/de-de/pricing/ultimate/","why ultimate",[1343],{"title":1190,"links":1344},[1345,1347,1349,1351,1356,1361,1366],{"text":1197,"config":1346},{"href":1199,"dataGaName":876,"dataGaLocation":1309},{"text":1202,"config":1348},{"href":1204,"dataGaName":1205,"dataGaLocation":1309},{"text":1207,"config":1350},{"href":1209,"dataGaName":1210,"dataGaLocation":1309},{"text":1352,"config":1353},"Status",{"href":1354,"dataGaName":1355,"dataGaLocation":1309},"https://status.gitlab.com/","status",{"text":1357,"config":1358},"Nutzungsbedingungen",{"href":1359,"dataGaName":1360,"dataGaLocation":1309},"/terms/","terms of use",{"text":1362,"config":1363},"Datenschutzerklärung",{"href":1364,"dataGaName":1365,"dataGaLocation":1309},"/de-de/privacy/","privacy statement",{"text":1367,"config":1368},"Cookie-Einstellungen",{"dataGaName":1369,"dataGaLocation":1309,"id":1370,"isOneTrustButton":108},"cookie preferences","ot-sdk-btn",{"title":913,"links":1372,"subMenu":1381},[1373,1377],{"text":1374,"config":1375},"DevSecOps-Plattform",{"href":895,"dataGaName":1376,"dataGaLocation":1309},"devsecops platform",{"text":1378,"config":1379},"KI-unterstützte Entwicklung",{"href":902,"dataGaName":1380,"dataGaLocation":1309},"ai-assisted development",[1382],{"title":1383,"links":1384},"Themen",[1385,1389,1394,1399,1404,1409,1414,1419],{"text":933,"config":1386},{"href":1387,"dataGaName":1388,"dataGaLocation":1309},"/de-de/topics/ci-cd/","cicd",{"text":1390,"config":1391},"GitOps",{"href":1392,"dataGaName":1393,"dataGaLocation":1309},"/de-de/topics/gitops/","gitops",{"text":1395,"config":1396},"DevOps",{"href":1397,"dataGaName":1398,"dataGaLocation":1309},"/de-de/topics/devops/","devops",{"text":1400,"config":1401},"Versionskontrolle",{"href":1402,"dataGaName":1403,"dataGaLocation":1309},"/de-de/topics/version-control/","version control",{"text":1405,"config":1406},"DevSecOps",{"href":1407,"dataGaName":1408,"dataGaLocation":1309},"/de-de/topics/devsecops/","devsecops",{"text":1410,"config":1411},"Cloud-nativ",{"href":1412,"dataGaName":1413,"dataGaLocation":1309},"/de-de/topics/cloud-native/","cloud native",{"text":1415,"config":1416},"KI für das Programmieren",{"href":1417,"dataGaName":1418,"dataGaLocation":1309},"/de-de/topics/devops/ai-for-coding/","ai for coding",{"text":1420,"config":1421},"Agentische KI",{"href":1422,"dataGaName":1423,"dataGaLocation":1309},"/de-de/topics/agentic-ai/","agentic ai",{"title":1425,"links":1426},"Lösungen",[1427,1430,1432,1437,1441,1444,1447,1450,1452,1454,1456,1461],{"text":958,"config":1428},{"href":953,"dataGaName":1429,"dataGaLocation":1309},"Application Security Testing",{"text":945,"config":1431},{"href":929,"dataGaName":930,"dataGaLocation":1309},{"text":1433,"config":1434},"Agile Entwicklung",{"href":1435,"dataGaName":1436,"dataGaLocation":1309},"/de-de/solutions/agile-delivery/","agile delivery",{"text":1438,"config":1439},"SCM",{"href":942,"dataGaName":1440,"dataGaLocation":1309},"source code management",{"text":933,"config":1442},{"href":935,"dataGaName":1443,"dataGaLocation":1309},"continuous integration & delivery",{"text":984,"config":1445},{"href":986,"dataGaName":1446,"dataGaLocation":1309},"value stream management",{"text":1390,"config":1448},{"href":1449,"dataGaName":1393,"dataGaLocation":1309},"/de-de/solutions/gitops/",{"text":997,"config":1451},{"href":1000,"dataGaName":1001,"dataGaLocation":1309},{"text":1003,"config":1453},{"href":1006,"dataGaName":1007,"dataGaLocation":1309},{"text":1009,"config":1455},{"href":1012,"dataGaName":1013,"dataGaLocation":1309},{"text":1457,"config":1458},"Bildungswesen",{"href":1459,"dataGaName":1460,"dataGaLocation":1309},"/de-de/solutions/education/","education",{"text":1462,"config":1463},"Finanzdienstleistungen",{"href":1464,"dataGaName":1465,"dataGaLocation":1309},"/de-de/solutions/finance/","financial services",{"title":1020,"links":1467},[1468,1470,1472,1474,1477,1479,1482,1484,1486,1488,1490,1492,1494,1496],{"text":1033,"config":1469},{"href":1035,"dataGaName":1036,"dataGaLocation":1309},{"text":1038,"config":1471},{"href":1040,"dataGaName":1041,"dataGaLocation":1309},{"text":1043,"config":1473},{"href":1045,"dataGaName":1046,"dataGaLocation":1309},{"text":1048,"config":1475},{"href":1050,"dataGaName":1476,"dataGaLocation":1309},"docs",{"text":1071,"config":1478},{"href":1073,"dataGaName":1074,"dataGaLocation":1309},{"text":1480,"config":1481},"Neuerungen",{"href":1131,"dataGaName":1132,"dataGaLocation":1309},{"text":1066,"config":1483},{"href":1068,"dataGaName":1069,"dataGaLocation":1309},{"text":1085,"config":1485},{"href":1087,"dataGaName":1088,"dataGaLocation":1309},{"text":1093,"config":1487},{"href":1095,"dataGaName":1096,"dataGaLocation":1309},{"text":1098,"config":1489},{"href":1100,"dataGaName":1101,"dataGaLocation":1309},{"text":1103,"config":1491},{"href":1105,"dataGaName":1106,"dataGaLocation":1309},{"text":1108,"config":1493},{"href":1110,"dataGaName":1111,"dataGaLocation":1309},{"text":1113,"config":1495},{"href":1115,"dataGaName":1116,"dataGaLocation":1309},{"text":1118,"config":1497},{"href":1120,"dataGaName":1121,"dataGaLocation":1309},{"title":1134,"links":1499},[1500,1502,1504,1506,1508,1510,1515,1520,1522,1524,1526],{"text":1142,"config":1501},{"href":1144,"dataGaName":1136,"dataGaLocation":1309},{"text":1147,"config":1503},{"href":1149,"dataGaName":1150,"dataGaLocation":1309},{"text":1155,"config":1505},{"href":1157,"dataGaName":1158,"dataGaLocation":1309},{"text":1160,"config":1507},{"href":1162,"dataGaName":1163,"dataGaLocation":1309},{"text":1165,"config":1509},{"href":1167,"dataGaName":1168,"dataGaLocation":1309},{"text":1511,"config":1512},"Nachhaltigkeit",{"href":1513,"dataGaName":1514,"dataGaLocation":1309},"/sustainability/","Sustainability",{"text":1516,"config":1517},"Vielfalt, Inklusion und Zugehörigkeit",{"href":1518,"dataGaName":1519,"dataGaLocation":1309},"/de-de/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":1170,"config":1521},{"href":1172,"dataGaName":1173,"dataGaLocation":1309},{"text":1180,"config":1523},{"href":1182,"dataGaName":1183,"dataGaLocation":1309},{"text":1185,"config":1525},{"href":1187,"dataGaName":1188,"dataGaLocation":1309},{"text":1527,"config":1528},"Transparenzerklärung zu moderner Sklaverei",{"href":1529,"dataGaName":1530,"dataGaLocation":1309},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":1532},[1533,1536,1539],{"text":1534,"config":1535},"Terms",{"href":1359,"dataGaName":1360,"dataGaLocation":1309},{"text":1537,"config":1538},"Cookies",{"dataGaName":1369,"dataGaLocation":1309,"id":1370,"isOneTrustButton":108},{"text":1540,"config":1541},"Datenschutz",{"href":1364,"dataGaName":1365,"dataGaLocation":1309},[1543,1557],{"id":1544,"title":7,"body":839,"config":1545,"content":1547,"description":839,"extension":1551,"meta":1552,"navigation":108,"path":1553,"seo":1554,"stem":1555,"__hash__":1556},"blogAuthors/en-us/blog/authors/michael-friedrich.yml",{"template":1546},"BlogAuthor",{"name":7,"config":1548},{"headshot":1549,"ctfId":1550},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659879/Blog/Author%20Headshots/dnsmichi-headshot.jpg","dnsmichi","yml",{},"/en-us/blog/authors/michael-friedrich",{},"en-us/blog/authors/michael-friedrich","lJ-nfRIhdG49Arfrxdn1Vv4UppwD51BB13S3HwIswt4",{"id":1558,"title":8,"body":839,"config":1559,"content":1560,"description":839,"extension":1551,"meta":1564,"navigation":108,"path":1565,"seo":1566,"stem":1567,"__hash__":1568},"blogAuthors/en-us/blog/authors/alana-bellucci.yml",{"template":1546},{"name":8,"config":1561},{"headshot":1562,"ctfId":1563},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664907/Blog/Author%20Headshots/abellucci-headshot.jpg","abellucci",{},"/en-us/blog/authors/alana-bellucci",{},"en-us/blog/authors/alana-bellucci","3yZkXKzugCivW5k4M4NhFUWGwSBpmKUIdSB4MT4yl4U",[1570,1578,1586],{"title":1571,"description":1572,"heroImage":1573,"category":835,"date":1574,"authors":1575,"slug":1577,"externalUrl":839},"Wie ich einen Demo-Generator mit Duo Agent Platform baute","So sahen Demos nicht immer aus. Ein Rückblick auf ihre Entwicklung, plus ein Tutorial zum Bau einer eigenen Demo und eines eigenen Agenten.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1765809212/noh0mdfn9o94ry9ykura.png","2026-08-13",[1576],"Itzik Gan Baruch","agentic-click-through-demo",{"title":1579,"description":1580,"heroImage":1581,"category":835,"date":1582,"authors":1583,"slug":1585,"externalUrl":839},"Governance für agentische KI, MCPs und KI-Code-Assistenten","KI-Agenten schreiben, pushen und deployen, ohne dass jeder Schritt geprüft wird. Ein praktisches Framework für Zugriff, Berechtigungen und Audit-Trails.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1785337625/ifzlc2hyzaxhzmjgyymh.png","2026-07-31",[1584],"Julie Griffin","govern-agentic-ai-mcps-code-assistants",{"title":1587,"description":1588,"heroImage":1589,"category":835,"date":1590,"authors":1591,"slug":1593,"externalUrl":839},"Claude Opus 5 auf GitLab: Reasoning für die anspruchsvollsten Aufgaben","Anthropics Claude Opus 5 ist jetzt auf der GitLab Duo Agent Platform verfügbar und bringt tieferes Reasoning für die anspruchsvollsten Aufgaben.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099203/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%2820%29_2bJGC5ZP3WheoqzlLT05C5_1750099203484.png","2026-07-27",[1592],"Brittany Lutz","claude-opus-5-on-gitlab-duo-agent-platform",{"promotions":1595},[1596,1609,1620,1631],{"id":1597,"categories":1598,"header":1599,"text":1600,"button":1601,"image":1606},"ai-modernization",[835],"Hält KI, was uns versprochen wurde?","Das Quiz dauert maximal 5 Minuten.",{"text":1602,"config":1603},"Ermittle deinen KI-Reifegrad",{"href":1604,"dataGaName":1605,"dataGaLocation":1074},"/de-de/assessments/ai-modernization-assessment/","modernization assessment",{"config":1607},{"src":1608},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":1610,"categories":1611,"header":1612,"text":1600,"button":1613,"image":1617},"devops-modernization",[855,1408],"Verwaltest du Tool-Chaos oder stellst du Innovationen bereit?",{"text":1614,"config":1615},"Ermittle deinen DevOps-Reifegrad",{"href":1616,"dataGaName":1605,"dataGaLocation":1074},"/de-de/assessments/devops-modernization-assessment/",{"config":1618},{"src":1619},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":1621,"categories":1622,"header":1623,"text":1600,"button":1624,"image":1628},"security-modernization",[854],"Tauschst du Schnelligkeit gegen Sicherheit ein?",{"text":1625,"config":1626},"Ermittle deinen Sicherheitsreifegrad",{"href":1627,"dataGaName":1605,"dataGaLocation":1074},"/de-de/assessments/security-modernization-assessment/",{"config":1629},{"src":1630},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":1632,"paths":1633,"header":1636,"text":1637,"button":1638,"image":1643},"github-azure-migration",[1634,1635],"migration-from-azure-devops-to-gitlab","integrating-azure-devops-scm-and-gitlab","Ist dein Team bereit für den Umzug von GitHub nach Azure?","GitHub stellt bereits auf Azure um. Finde heraus, was das für dich bedeutet.",{"text":1639,"config":1640},"Erfahre, wie GitLab im Vergleich zu GitHub abschneidet",{"href":1641,"dataGaName":1642,"dataGaLocation":1074},"/de-de/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":1644},{"src":1619},{"header":1646,"blurb":1647,"button":1648,"secondaryButton":1653},"Beginne noch heute, schneller zu entwickeln","Entdecke, was dein Team mit der intelligenten Orchestrierungsplattform für DevSecOps erreichen kann.\n",{"text":1649,"config":1650},"Kostenlosen Test starten",{"href":1651,"dataGaName":871,"dataGaLocation":1652},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/de-de/","feature",{"text":1197,"config":1654},{"href":1199,"dataGaName":876,"dataGaLocation":1652},1786803757783]