GitHub AI Scan dodaje wyniki dotyczące bezpieczeństwa do kwalifikujących się żądań ściągnięcia, w tym zmian w plikach PHP, Shell i Dockerfile. Może pomóc w przeglądzie kodu i konfiguracji aplikacji hostowanych samodzielnie. Wyniki mają charakter doradczy: nie powodują niezaliczenia kontroli analizy kodu ani nie stają się wymogiem zestawu reguł blokującym scalanie.
Korzystaj z tej funkcji jako z dodatkowego sygnału podczas przeglądu repozytoriów, którymi zarządzasz. Nie sprawdza ona każdej działającej usługi na Twoim serwerze NAS, nie aktualizuje zainstalowanego środowiska PHP ani nie dowodzi, że kontener innej firmy jest bezpieczny. Łącz przegląd kodu z obsługiwanymi aktualizacjami i weryfikacją działającej aplikacji.
Co sprawdza GitHub AI Scan?
AI Scan uzupełnia CodeQL, oferując obsługę wybranych języków i frameworków. GitHub opisuje analizę opartą na PR, a nie skanowanie zaległości w całym repozytorium. Wyniki pojawiają się w żądaniu ściągnięcia z etykietą AI, dzięki czemu można je odróżnić od wyników CodeQL.
W przypadku projektu serwera domowego może to dotyczyć skryptu wdrożeniowego lub pliku Dockerfile, które faktycznie zmieniasz. Nie zastępuje to sprawdzania statusu dostawcy obrazu bazowego i spakowanej aplikacji.

O jakich lukach w przepływie pracy należy wiedzieć?
| Oczekiwanie | Rzeczywiste ograniczenia, które należy uwzględnić |
|---|---|
| Sprawdź każdy wkład | Żądania ściągnięcia z forków i Dependabot są wykluczone |
| Automatycznie blokuj niebezpieczne scalanie | Wyniki AI Scan mają charakter doradczy |
| Skanuj cały działający serwer NAS | Funkcja analizuje kwalifikujące się żądania ściągnięcia |
| Zaktualizuj wszystkie zależności | Aktualizacje dostawcy i pakietów są osobną kwestią |
| Dowiedź, że czysty wynik oznacza bezpieczeństwo | Wyniki mogą być niepełne lub niedokładne |
Traktuj brak wyników jako ograniczony dowód. Recenzent nadal musi uwzględnić rzeczywistą ścieżkę kodu i ustawienia wdrożenia.
Dlaczego repozytorium może być skanowane, a konkretne żądanie ściągnięcia nadal pozostać nieprzeanalizowane?
Kwalifikowalność, włączenie funkcji, obsługiwane zmienione pliki i pochodzenie PR to odrębne warunki. W repozytorium może być skonfigurowana analiza kodu, a mimo to określony wkład może nie podlegać zakresowi AI Scan. Dokumentacja AI Scan GitHub opisuje wyłączenia i odróżnia te wyniki dotyczące wyłącznie PR od analizy zaległości w całym repozytorium.
Rozważ repozytorium oprogramowania serwera domowego, które przyjmuje zmiany od osób z zewnątrz. Zmiana w tym samym repozytorium i wkład przesłany z forka niekoniecznie są objęte takim samym zakresem AI Scan. Zachowaj ścieżkę przeglądu dla zmian wykluczonych ze skanowania; nie traktuj pustej listy ustaleń AI jako dowodu, że sprawdzono każdą zmianę.
Dlaczego ma to znaczenie po incydencie związanym z bezpieczeństwem PHP?
Reakcja na zagrożenia związane z PHP zwraca uwagę zarówno na ryzyko w kodzie aplikacji, jak i na konieczność utrzymywania środowiska wykonawczego. Skaner pull requestów może pomóc wykrywać ryzykowny kod, który piszesz; podatność w środowisku wykonawczym wymaga odpowiedniej aktualizacji od dostawcy pierwotnego lub dalszego. To powiązane obowiązki, ale wymagają różnych dowodów.
Przewodnik po stosie oprogramowania i wyjaśnienie inicjatywy Patch the Planet pomagają określić tę granicę. Czystsze repozytorium nie oznacza automatycznie zastąpienia podatnego pliku binarnego w środowisku produkcyjnym.
Jak powinien postąpić opiekun projektu po wykryciu problemu?
Przeczytaj kod na ścieżce, której dotyczy problem, sprawdź, czy zgłoszone warunki mają zastosowanie, i przeanalizuj każdą sugerowaną zmianę. Ogranicz poprawkę do niezbędnego zakresu. Przetestuj odpowiednie oczekiwane działanie i upewnij się, że poprawka związana z bezpieczeństwem nie usuwa wymaganego zabezpieczenia ani nie zakłóca prawidłowego scenariusza użycia.
Nasz poradnik dotyczący śledzenia komunikatów o zagrożeniach i weryfikowania poprawek opisuje późniejszy etap wdrożenia. Pliki odzyskiwania przechowuj poza katalogami, do których aplikacja może zapisywać.
O co recenzent powinien zapytać w sprawie ustalenia dotyczącego bezpieczeństwa oznaczonego jako wykryte przez AI?
| Pytanie | Dowody do sprawdzenia |
|---|---|
| Czy można kontrolować dane wejściowe? | Rzeczywiste źródło wartości i ścieżka żądania |
| Czy można doprowadzić do wykonania niebezpiecznej operacji? | Warunki wywołania i istniejąca walidacja |
| Czy poprawka zachowuje prawidłowe działanie? | Odpowiedni test danych wejściowych/wyjściowych lub uprawnień |
| Czy wdrożenie również jest zagrożone? | Uruchomiony obraz, konfiguracja i ekspozycja |
| Co pozostaje poza zakresem skanowania? | Środowisko uruchomieniowe, zależności i wykluczone zmiany |
Na przykład wykryty problem związany z konstruowaniem polecenia powłoki należy prześledzić, analizując budowanie argumentów i zamierzone działanie polecenia. Sugerowana zmiana, która całkowicie zatrzymuje polecenie, może usunąć objaw, nie realizując zadania aplikacji. Sprawdź rzeczywisty diff i najbliższy użyteczny test działania.
Skorzystaj z porównania z CodeQL, aby odróżnić wyniki o charakterze doradczym od możliwych do wyegzekwowania kontroli. Powiąż każdą zaakceptowaną poprawkę z rejestrem wdrożonych artefaktów. Dokumentacja analizy CodeQL opisuje inny proces analizy; żadna z tych funkcji nie dowodzi, że niezwiązany z nimi plik binarny PHP działający już na Twoim NAS-ie został zaktualizowany poprawką.
Co należy skonfigurować w pierwszej kolejności?
Sprawdź, czy repozytorium się kwalifikuje, czy skanowanie kodu jest włączone, jakie ustawienie AI Scan faktycznie obowiązuje oraz jaki budżet odpowiada za rozliczenia. Zasady organizacji i przedsiębiorstwa mogą ograniczać ustawienia repozytorium. Zacznij od jednego kwalifikującego się repozytorium, zanim włączysz tę funkcję w większej liczbie repozytoriów.
Skorzystaj z przewodnika po włączaniu AI Scan. Jeśli już korzystasz z CodeQL, przeczytaj porównanie AI Scan i CodeQL, aby zrozumieć, dlaczego uzupełniający się zakres nie oznacza identycznych mechanizmów kontroli scalania.
Często zadawane pytania
Czy AI Scan blokuje scalanie pull requestu?
Nie. Jego wyniki mają charakter doradczy i nie mogą wymuszać wymagań dotyczących scalania za pomocą zestawów reguł.
Czy AI Scan sprawdza aplikacje już działające na moim NAS-ie?
Nie. Analizuje kwalifikujące się zmiany w pull requestach w repozytoriach GitHub.
Czy działa w przypadku pull requestów z forków lub Dependabota?
GitHub informuje, że te pull requesty są wykluczone.
Czy AI Scan może zastąpić aktualizacje środowiska uruchomieniowego PHP?
Nie. Zaktualizuj pakiety lub obrazy aplikacji, korzystając z odpowiedniej procedury obsługiwanej przez dostawcę.
Powiązane artykuły
- Jak włączyć GitHub AI Scan w repozytorium aplikacji hostowanej samodzielnie
- GitHub AI Scan a CodeQL: porównanie zakresu, wykrytych problemów i kontroli scalania
Źródła
- Ogłoszenie GitHub AI Scan: zakres PR, dostępność i rozliczenia
- Dokumentacja GitHub AI Scan: wykryte problemy, ograniczenia i włączanie
Okładka: Oficjalna grafika z ogłoszenia GitHub AI Scan. Źródło obrazu.
Centrum Technologii i Sztucznej Inteligencji
Więcej do przeczytania

Jak sprawdzić, czy uprawnienia agenta obejmują wyłącznie wymagane działania narzędziowe
Wyjaśnienie w pierwszej kolejności mechanizmu dotyczące tego, czy uprawnienia agenta obejmują tylko wymagane działania narzędzi, kompromisów związanych ze współdzielonymi zasobami, trzech często zadawanych pytań...

Jak zmierzyć wzmocnienie zapisu NAS podczas importowania indeksu wektorowego
Wyjaśnienie write amplification w serwerach NAS oparte na mechanizmach, kompromisy związane ze współdzielonymi zasobami, trzy często zadawane pytania dotyczące rozsyłania zapytań oraz praktyczny protokół...

Jak testować spójność punktu przywracania między modelami, indeksami i metadanymi
Wyjaśnienie spójności punktu przywracania z naciskiem na mechanizm, kompromisy związane ze współdzielonymi zasobami, trzy często zadawane pytania dotyczące rozgałęziania zapytań oraz praktyczny protokół weryfikacji.

