Zabezpieczanie aplikacji Java za pomocą modernizacji GitHub Copilot

Modernizacja aplikacji Java nie jest jednorazowym zdarzeniem. Nowe CVE są publikowane każdego dnia, nowe ustalenia związane z CWE pojawiają się wraz z rozwojem kodu, a zależności przestają spełniać wymogi zgodności. Zapewnienie bezpieczeństwa aplikacji oznacza ciągłe wykrywanie i usuwanie długu bezpieczeństwa — to ponadczasowe podejście do myślenia o bezpieczeństwie aplikacji.

Modernizacja w GitHub Copilot oferuje dwie funkcje:

  • Ocena bezpieczeństwa — skanuje kod pod kątem wyników CWE zgodnie z normą ISO/IEC 5055 oraz podatności CVE w Twoich zależnościach bezpośrednich i przechodnich.
  • Korygowanie kodu — generuje plan wykonania w celu rozwiązania wybranych problemów i stosuje poprawki.

Te możliwości można znaleźć w następujących artykułach:

  • Visual Studio Code — interaktywne skanowanie i poprawka opisane w tym artykule.
  • Modernize CLI — bezpieczeństwo jest jednym z obszarów w ocenie wsadowej, dzięki czemu można skanować portfel aplikacji podczas jednego uruchomienia.

Skanowanie i rozwiązywanie problemów z zabezpieczeniami w Visual Studio Code

Wykonaj następujące kroki, aby ocenić i skorygować problemy z zabezpieczeniami w jednym przepływie.

1. Uruchom skanowanie zabezpieczeń

W okienku GitHub Copilot modernization otwórz widok Quick Start i wybierz Scan & Resolve Security Issues.

 Zrzut ekranu przedstawiający Visual Studio Code widok Szybki start z przyciskiem Skanuj i rozwiąż problemy z zabezpieczeniami.

Copilot przeprowadza ocenę w obszarze zabezpieczeń dla Twojego projektu. Skanowanie obejmuje:

  • Wyselekcjonowany zestaw reguł CWE zgodny z normą ISO/IEC 5055, pogrupowany w sześć kategorii: Zabezpieczenia plików i ścieżek, Ataki iniekcyjne, Bezpieczeństwo pamięci, Jakość kodu, Poświadczenia i Wpisy tajne oraz Współbieżność i synchronizacja.
  • Ustalenia CVE w Twoich bezpośrednich i przechodnich zależnościach, pochodzące z bazy danych GitHub Security Advisories.

Pełny katalog reguł CWE oraz szczegółowe informacje o zakresie pokrycia CVE znajdziesz w dokumencie Informacje o zakresie pokrycia oceny.

Note

Sprawdzanie CVE działa bez uwierzytelniania w GitHubie, ale anonimowe wywołania podlegają ograniczeniom liczby żądań. W przypadku dużych projektów zaloguj się przy użyciu gh auth login, aby uniknąć dławienia.

2. Przejrzyj raport

Po zakończeniu skanowania zostanie otwarty raport oceny z wynikami zabezpieczeń.

Ochwyt ekranu przedstawiający raport oceny w Visual Studio Code, który pokazuje wyniki CWE i CVE.

Aby określić, które identyfikatory CVE są wyświetlane, ustaw w konfiguracji oceny opcję Security: Minimum CVE Severity. Akceptowane wartości to critical, , highmediumi low; wartość domyślna to high.

3. Wybierz problemy, aby rozwiązać i utworzyć plan

Wybierz kategorie problemów, które chcesz rozwiązać. Przycisk akcji aktualizuje się, aby wyświetlić liczbę — na przykład Utwórz plan (3). Wybierz go, aby wygenerować plan wykonania.

Zrzut ekranu przedstawiający wybrany raport oceny z wybranymi kategoriami problemów z zabezpieczeniami i wyróżnionym przyciskiem Utwórz plan.

4. Przegląd planu

Copilot zapisuje plan wykonania jako plik Markdown i otwiera go w okienku podglądu, aby można było go odczytać przed zastosowaniem dowolnej poprawki. Plan opisuje, w jaki sposób Copilot grupuje i rozwiązuje wybrane problemy. Grupuje problemy CVE według zależności, a wyniki CWE według plików. Jeśli chcesz zmienić zakres lub kolejność, zmodyfikuj plik Markdown bezpośrednio.

Zrzut ekranu przedstawiający plan wykonywania zabezpieczeń otwarty w wersji zapoznawczej Visual Studio Code Markdown.

5. Wykonanie planu

Gdy będziesz zadowolony(-a) z planu, powiedz Copilotowi na czacie, żeby go wykonał. Copilot rozwiązuje wybrane problemy grupowane według grupy, kompiluje projekt w celu zweryfikowania każdej zmiany i zgłasza postęp czatu. Przejrzyj powstałe różnice i zacommituj zmiany, które chcesz zachować.

Pozostań wiecznie zielony

Dług bezpieczeństwa pojawia się ponownie wraz z publikowaniem nowych CVE i zmianami w Twojej aplikacji. Uruchamiaj ponownie Skanuj i rozwiązuj problemy z zabezpieczeniami w ramach regularnego cyklu modernizacji — na przykład dla każdej gałęzi wydania — aby na bieżąco wykrywać i usuwać problemy, zamiast kumulować je do czasu dużej aktualizacji.

Następne kroki