GitHub udostępnia właśnie narzędzie AI, które znajdzie błędy w kodzie programu, zanim ten zostanie wydany i trafi do testów. Skupi się jednak na specyficznych zagrożeniach.
Platforma GitHub nieustannie rozwija swoje rozwiązania wykorzystujące sztuczną inteligencję. Narzędzie o nazwie Copilot już teraz potrafi być nieocenionym wsparciem dla programistów. Model AI potrafiący nawet pisać testy jednostkowe zyskał kolejną umiejętność.
O udostępnionym rozwiązaniu mówiło się już od listopada, gdy GitHub podzielił się ze światem pierwszymi zapowiedziami. Opracowane narzędzie potrafi nie tylko odnaleźć błędy, ale przede wszystkim wprowadzić poprawki, dzięki którym zagrożenia zostaną na dobre wyeliminowane.
AI od GitHuba zlokalizuje i załata luki bezpieczeństwa w powstającym oprogramowaniu
Nowe narzędzie, dzięki któremu oprogramowanie ma szansę stać się bezpieczniejsze działa w ramach platformy Copilot ze wsparciem silnika CodeQL, który jest w stanie analizować kod programu w poszukiwaniu błędów i niezgodności. Co ciekawe, zapytania adresowane do CodeQL polegają na składni przypominającej nieco SQL, co znacznie upraszcza korzystanie z tego rozwiązania, ponieważ jest to dość powszechny język, a ponadto raz wprowadzone zapytanie można bez problemu udostępnić innym członkom zespołu lub społeczności i korzystać z niego wielokrotnie.
Nowe narzędzie nie ma jednak szukać błędów w kodzie, które potencjalnie wywołałyby awarię oprogramowania. Chodzi o system, który – jak zapewniają jego twórcy – potrafi naprawić ponad dwie trzecie wykrytych luk w zabezpieczeniach – często bez konieczności samodzielnej edycji kodu przez programistów. Platforma chwali się także, że jej narzędzie prześwietlające kod obejmuje ponad 90% typów alertów w obsługiwanych językach, do których w tym momencie zaliczają się JavaScript, Typescript, Java i Python.
Przedstawiciele GtiHub podkreślają, że dzięki ich rozwiązaniom oprogramowanie może powstawać znacznie szybciej, co w żadnym wypadku nie oznacza, że ucierpieć miałaby jego jakość czy bezpieczeństwo.
Tak jak GitHub Copilot uwalnia deweloperów od żmudnych i powtarzalnych zadań, tak automatyczne skanowanie kodu pomoże zespołom deweloperskim odzyskać czas poświęcany wcześniej na naprawianie błędów. Zespoły ds. bezpieczeństwa również skorzystają na zmniejszonej liczbie luk w zabezpieczeniach, dzięki czemu będą mogły skupić się na strategiach ochrony biznesu, jednocześnie nadążając za przyspieszonym tempem rozwoju.
Al od Github to wsparcie czy zagrożenie dla zawodu programisty?
Przedstawiciele platformy zwracają uwagę, że mimo iż aplikacje pozostają pod niesłabnącą presją atakujących, duża część firm programistycznych zmaga się z problemem rosnącej liczby niezałatanych luk w zabezpieczeniach znajdujących się w repozytoriach. Skanowanie kodu narzędziem takim jak to – oferowane przez GitHub – jest znaczącym krokiem naprzód w stronę redukcji tego długu technologicznego.
A jak to wygląda w szczegółach? Gdy jakakolwiek luka zostanie wykryta, narzędzie zasugeruje rozwiązanie i co ważne, objaśnienie dotyczące proponowanej poprawki zostanie przygotowane w języku naturalnym. Podpowiedź będzie zawierać sugestię poprawionego kodu, którą programista może zaakceptować, zmodyfikować albo w całości odrzucić. Oprócz zmian w bieżącym pliku sugestie mogą obejmować zmiany w innych plikach lub zależnościach, które znajdują się w projekcie.
Jak pisałem wyżej, nowa funkcja korzysta z silnika CodeQL. Pierwsza wersja tego narzędzia została wydana jeszcze w 2019, gdy GitHub przejmował startup Semmle, pod którego skrzydłami powstawał CodeQL. Przez ostatnie lata aplikacja mocno się rozwinęła i choć pozostaje rdzeniem opisywanego przeze mnie rozwiązania, to jak mówią przedstawiciele GitHub, ten system to kombinacja heurystyki i połączonych ze sobą interfejsów usługi Copilot. Warto także wspomnieć, że do generowania poprawek wykorzystywany jest model GPT-4 od OpenAI.
Mamy więc do czynienia z prawdziwym multi narzędziem, które odpowiednio wykorzystane może istotnie wpłynąć na bezpieczeństwo wydawanych aplikacji i myślę, że jest to fantastyczny przykład współpracy człowieka i technologii AI, a nie rywalizacji.
Żródło: TechCrush, GitHub
Zdjęcie wyróżniające wygenerowane przez recraft.ai