Udostępnij za pośrednictwem


Przewodnik dołączania technicznego 42Crunch

42Crunch umożliwia ustandaryzowane podejście do zabezpieczania interfejsów API, które automatyzuje wymuszanie zgodności zabezpieczeń interfejsu API w rozproszonych zespołach programistycznych i zespołach ds. zabezpieczeń. Platforma zabezpieczeń interfejsu API 42Crunch umożliwia deweloperom tworzenie zabezpieczeń ze zintegrowanego środowiska projektowego (IDE) do potoku ciągłej integracji/ciągłego wdrażania. To bezproblemowe podejście DevSecOps do zabezpieczeń interfejsu API zmniejsza koszty ładu i przyspiesza dostarczanie bezpiecznych interfejsów API.

Podejście do testowania zabezpieczeń

W przeciwieństwie do tradycyjnych narzędzi DAST, które są używane do skanowania aplikacji internetowych i mobilnych, 42Crunch uruchamia zestaw testów, które są dokładnie spreparowane i ukierunkowane na każdy interfejs API w oparciu o ich konkretny projekt. Korzystając z pliku definicji OpenAPI (czyli struktury Swagger) jako podstawowego źródła, aparat skanowania 42Crunch uruchamia baterię testów, które sprawdzają, jak ściśle interfejs API jest zgodny z zamierzonym projektem. To skanowanie zgodności identyfikuje różne problemy z zabezpieczeniami, w tym OWASP 10 najważniejszych luk w zabezpieczeniach, nieprawidłowe kody odpowiedzi i naruszenia schematu. Te problemy są zgłaszane z bogatym kontekstem, w tym z możliwymi scenariuszami wykorzystującymi luki w zabezpieczeniach i wskazówkami dotyczącymi korygowania.

Skanowanie może być uruchamiane automatycznie w ramach potoku ciągłej integracji/ciągłego wdrażania lub ręcznie za pośrednictwem środowiska IDE lub platformy w chmurze 42Crunch.

Ponieważ jakość specyfikacji interfejsu API w dużej mierze określa pokrycie i skuteczność skanowania, ważne jest, aby upewnić się, że specyfikacja interfejsu OpenAPI jest dobrze zdefiniowana. 42Crunch Audit wykonuje statyczną analizę pliku specyfikacji OpenAPI mającego na celu pomoc deweloperowi w poprawie bezpieczeństwa i jakości specyfikacji. Inspekcja określa złożony wynik zabezpieczeń z zakresu od 0 do 100 dla każdego pliku specyfikacji. W miarę jak deweloperzy korygować problemy z zabezpieczeniami i semantyczne zidentyfikowane przez inspekcję, ocena poprawia się. 42Crunch zaleca ocenę inspekcji co najmniej 70 przed uruchomieniem skanowania zgodności.

Włączanie

Uwaga

W poniższych krokach przedstawiono proces konfigurowania bezpłatnej wersji programu 42Crunch. Zobacz sekcję Często zadawane pytania, aby dowiedzieć się więcej o różnicach między bezpłatnymi i płatnymi wersjami programu 42Crunch oraz o tym, jak kupić 42Crunch w witrynie Azure Marketplace.

Dzięki użyciu usług inspekcji i skanowania w wersji 42Crunch deweloperzy mogą aktywnie testować i wzmacniać zabezpieczenia interfejsów API w potokach ciągłej integracji/ciągłego wdrażania za pomocą statycznego i dynamicznego testowania interfejsów API w oparciu o najważniejsze czynniki ryzyka interfejsu API OWASP i najlepsze rozwiązania dotyczące specyfikacji OpenAPI. Wyniki skanowania zabezpieczeń z 42Crunch są teraz dostępne w Defender dla Chmury, zapewniając, że centralne zespoły ds. zabezpieczeń mają wgląd w kondycję interfejsów API w środowisku rekomendacji Defender dla Chmury i mogą wykonać kroki nadzoru natywnie dostępne za pośrednictwem zaleceń Defender dla Chmury.

Łączenie środowisk DevOps z Microsoft Defender dla Chmury

Ta funkcja wymaga połączenia środowiska DevOps z Defender dla Chmury.

Zobacz , jak dołączyć organizacje usługi GitHub.

Zobacz , jak dołączyć organizacje usługi Azure DevOps.

Konfigurowanie usługi inspekcji 42Crunch

Akcja statycznego testowania zabezpieczeń interfejsu API REST lokalizuje kontrakty interfejsu API REST zgodne ze specyfikacją interfejsu OpenAPI (OAS, wcześniej znaną jako Swagger) i przeprowadza dokładne kontrole zabezpieczeń. Obsługiwane są zarówno systemy OAS w wersji 2, jak i 3 w formacie JSON i YAML.

Akcja jest obsługiwana przez inspekcję zabezpieczeń interfejsu API 42Crunch. Inspekcja zabezpieczeń przeprowadza statyczną analizę definicji interfejsu API, która obejmuje ponad 300 kontroli najlepszych rozwiązań i potencjalnych luk w zabezpieczeniach dotyczących sposobu, w jaki interfejs API definiuje schematy uwierzytelniania, autoryzacji, transportu i żądań/odpowiedzi.

W środowiskach usługi GitHub

Zainstaluj wtyczkę inspekcji zabezpieczeń interfejsu API 42Crunch w potoku ciągłej integracji/ciągłego wdrażania, wykonując następujące kroki:

  1. Zaloguj się do usługi GitHub.

  2. Wybierz repozytorium, do którego chcesz skonfigurować akcję GitHub.

  3. Wybierz Akcje.

  4. Wybierz pozycję Nowy przepływ pracy.

    Zrzut ekranu przedstawiający wybór nowego przepływu pracy.

Aby utworzyć nowy domyślny przepływ pracy:

  1. Wybierz pozycję Skonfiguruj przepływ pracy samodzielnie.

  2. Zmień nazwę przepływu pracy z main.yaml na 42crunch-audit.yml.

  3. Przejdź do https://github.com/marketplace/actions/42crunch-rest-api-static-security-testing-freemium#full-workflow-example.

  4. Skopiuj pełny przykładowy przepływ pracy i wklej go w edytorze przepływu pracy.

    Uwaga

    W tym przepływie pracy przyjęto założenie, że włączono skanowanie kodu w usłudze GitHub. W przypadku włączenia upewnij się, że opcja przekazywania do kodu jest ustawiona na wartość true. Jeśli nie masz włączonego skanowania kodu w usłudze GitHub, upewnij się, że opcja przekazywania do kodu jest ustawiona na wartość false, a następnie wykonaj dodatkowe kroki opisane w sekcji Włączanie integracji Defender dla Chmury bez skanowania kodu w usłudze GitHub.

    Zrzut ekranu przedstawiający edytor przepływu pracy usługi GitHub.

  5. Wybierz pozycję Zatwierdź zmiany. Możesz bezpośrednio zatwierdzić gałąź główną lub utworzyć żądanie ściągnięcia. Zalecamy stosowanie najlepszych rozwiązań usługi GitHub przez utworzenie żądania ściągnięcia, ponieważ domyślny przepływ pracy jest uruchamiany po otwarciu żądania ściągnięcia względem głównej gałęzi.

  6. Wybierz pozycję Akcje i sprawdź, czy nowa akcja jest uruchomiona.

    Zrzut ekranu przedstawiający uruchomioną nową akcję.

  7. Po zakończeniu przepływu pracy wybierz pozycję Zabezpieczenia, a następnie wybierz pozycję Skanowanie kodu, aby wyświetlić wyniki.

  8. Wybierz alert skanowania kodu wykryty przez 42Crunch STATYCZNe testowanie zabezpieczeń interfejsu API REST. Możesz również filtrować według narzędzia na karcie Skanowanie kodu. Filtruj według statycznego testowania zabezpieczeń interfejsu API REST 42Crunch.

    Zrzut ekranu przedstawiający alert skanowania kodu.

Teraz sprawdzono, że wyniki inspekcji są wyświetlane w skanowaniu kodu w usłudze GitHub. Następnie sprawdzimy, czy te wyniki inspekcji są dostępne w Defender dla Chmury. Wyświetlenie wyników w Defender dla Chmury może potrwać do 30 minut.

Włączanie integracji Defender dla Chmury bez skanowania kodu w usłudze GitHub

Jeśli nie masz skanowania kodu w usłudze GitHub dla środowiska i chcesz zintegrować wyniki skanowania zabezpieczeń z wersji 42Crunch w Defender dla Chmury, możesz wykonać następujące kroki. Po dodaniu kroku przepływu pracy 42Crunch dodaj następujące kroki do przepływu pracy usługi GitHub, aby wysyłać wyniki skanowania bezpośrednio do Defender dla Chmury przy użyciu akcji GitHub DevOps zabezpieczeń firmy Microsoft.

- name: save-sarif-report
        if: always()
        uses: actions/upload-artifact@v4
        with:
          name: 42Crunch_AuditReport_${{ github.run_id }}
          path: 42Crunch_AuditReport_${{ github.run_id }}.SARIF
          if-no-files-found: error
- name: Upload results to MSDO
        uses: microsoft/security-devops-action@v1
        id: msdo
        with:
          existingFilename: 42Crunch_AuditReport_${{ github.run_id }}.SARIF

Następnie dodaj dodatkowe uprawnienie do przepływu pracy, ustawiając identyfikator token do zapisu.

Po uruchomieniu przepływu pracy wyświetlenie wyników w Defender dla Chmury może potrwać do 30 minut.

  1. Wybierz pozycję Rekomendacje.
  2. Wybierz pozycję Wszystkie zalecenia.
  3. Filtruj, wyszukując testy zabezpieczeń interfejsu API.
  4. Wybierz zalecenie Repozytoria GitHub, które powinny mieć rozwiązane wyniki testów zabezpieczeń interfejsu API.

Wybrane zalecenie przedstawia wszystkie wyniki inspekcji 42Crunch. Ukończono dołączanie dla kroku inspekcji 42Crunch.

Zrzut ekranu przedstawiający podsumowanie interfejsu API.

W przypadku środowisk usługi Azure DevOps

  1. Zainstaluj rozszerzenie 42Crunch usługi Azure DevOps w organizacji.

  2. Utwórz nowy potok w projekcie usługi Azure DevOps. Aby zapoznać się z samouczkiem dotyczącym tworzenia pierwszego potoku, zobacz Tworzenie pierwszego potoku.

  3. Edytuj utworzony potok, kopiując w następującym przepływie pracy:

    trigger:
    branches:
       include:
          - main
    
    jobs:
    - job: run_42crunch_audit
       displayName: 'Run Audit'
       pool:
          vmImage: 'ubuntu-latest'
       steps:
          - task: UsePythonVersion@0
          inputs:
             versionSpec: '3.11'
             addToPath: true
             architecture:  x64
          - task: APISecurityAuditFreemium@1
          inputs:
             enforceSQG: false
             sarifReport: '$(Build.Repository.LocalPath)/42Crunch_AuditReport.sarif'
             exportAsPDF: '$(Build.Repository.LocalPath)/42Crunch_AuditReport.pdf'
          - task: PublishBuildArtifacts@1
          displayName: publishAuditSarif
          inputs:
             PathtoPublish: '$(Build.Repository.LocalPath)/42Crunch_AuditReport.sarif '
             ArtifactName: 'CodeAnalysisLogs'
             publishLocation: 'Container'
    
  4. Uruchom potok.

  5. Aby sprawdzić, czy wyniki są poprawnie publikowane w usłudze Azure DevOps, sprawdź, czy plik 42Crunch-AuditReport.sarif jest przekazywany do artefaktów kompilacji w folderze CodeAnalysisLogs .

  6. Ukończono proces dołączania. Następnie sprawdzimy, czy wyniki są wyświetlane w Defender dla Chmury.

Przejdź do Defender dla Chmury:

  1. Wybierz pozycję Rekomendacje.
  2. Wybierz pozycję Wszystkie zalecenia.
  3. Filtruj, wyszukując testy zabezpieczeń interfejsu API.
  4. Wybierz zalecenie Repozytoria Usługi AzureDevOps, które powinny mieć rozwiązane wyniki testowania zabezpieczeń interfejsu API.

Wybrane zalecenie przedstawia wszystkie wyniki inspekcji 42Crunch. Ukończono dołączanie dla kroku inspekcji 42Crunch.

Zrzut ekranu przedstawiający zalecenie usługi Azure DevOps.

Konfigurowanie usługi skanowania 42Crunch

Skanowanie interfejsu API stale skanuje interfejs API w celu zapewnienia zgodności z kontraktem openAPI i wykrywania luk w zabezpieczeniach w czasie testowania. Wykrywa ona problemy z zabezpieczeniami interfejsu API OWASP Top 10 na wczesnym etapie cyklu życia interfejsu API i sprawdza, czy interfejsy API mogą obsługiwać nieoczekiwane żądania.

Skanowanie wymaga nieprodukcyjnego punktu końcowego interfejsu API na żywo i wymaganych poświadczeń (klucz interfejsu API/token dostępu). Wykonaj następujące kroki , aby skonfigurować skanowanie 42Crunch.

Zapoznaj się z artykułem azure-pipelines-scan.yaml w samouczku dotyczącym określonych zadań ADO.

Często zadawane pytania

Jak narzędzie 42Crunch ułatwia deweloperom identyfikowanie i korygowanie problemów z zabezpieczeniami interfejsu API?

Skanowanie inspekcji zabezpieczeń i zgodności 42Crunch identyfikuje potencjalne luki w zabezpieczeniach, które istnieją w interfejsach API na wczesnym etapie cyklu projektowania. Wyniki skanowania obejmują bogaty kontekst, w tym opis luki w zabezpieczeniach i skojarzonych luk w zabezpieczeniach oraz szczegółowe wskazówki dotyczące korygowania. Skanowanie można wykonać automatycznie na platformie ciągłej integracji/ciągłego wdrażania lub przyrostowo przez dewelopera w środowisku IDE za pomocą jednego z 42Crunch rozszerzeń IDE.

Czy 42Crunch może służyć do wymuszania zgodności z minimalnymi standardami jakości i zabezpieczeń dla deweloperów?

Tak. 42Crunch obejmuje możliwość wymuszania zgodności przy użyciu bram jakości zabezpieczeń (SQG). SqGs składają się z pewnych kryteriów, które muszą zostać spełnione, aby pomyślnie przejść inspekcję lub skanowanie. Na przykład SQG może zagwarantować, że inspekcja lub skanowanie z co najmniej jednym krytycznym problemem ważności nie zostanie przekazana. W ciągłej integracji/ciągłego wdrażania inspekcja lub skanowanie 42Crunch można skonfigurować tak, aby kompilacja nie powiodła się, jeśli nie przekaże SQG, co wymaga od dewelopera rozwiązania problemu podstawowego przed wypchnięciem kodu.

Bezpłatna wersja 42Crunch używa domyślnych grup SQG zarówno do inspekcji, jak i skanowania, podczas gdy płatna wersja przedsiębiorstwa umożliwia dostosowanie sqg i tagów, które umożliwiają selektywne stosowanie sqg do grupowania interfejsów API.

Jakie dane są przechowywane w usłudze SaaS firmy 42Crunch?

Ograniczona bezpłatna wersja próbna skanowania inspekcji i zgodności zabezpieczeń 42Crunch można wdrożyć w ciągłej integracji/ciągłego wdrażania, co generuje raporty lokalnie bez potrzeby połączenia SaaS z 42Crunch. W tej wersji nie ma danych udostępnionych platformy 42Crunch.

W przypadku pełnej wersji przedsiębiorstwa platformy 42Crunch następujące dane są przechowywane na platformie SaaS:

  • Imię, Nazwisko, adresy e-mail użytkowników platformy 42Crunch.
  • Pliki OpenAPI/Swagger (opisy interfejsów API klienta).
  • Raporty generowane podczas zadań skanowania inspekcji zabezpieczeń i zgodności wykonywanych przez program 42Crunch.

W jaki sposób licencjonowany jest program 42Crunch?

42Crunch jest licencjonowany na podstawie kombinacji liczby interfejsów API i liczby deweloperów, którzy są aprowizowani na platformie. Na przykład pakiety cenowe można znaleźć na tej liście w witrynie Marketplace. Cennik niestandardowy jest dostępny za pośrednictwem ofert prywatnych na komercyjnej platformie handlowej platformy Azure. W przypadku oferty niestandardowej skontaktuj się z mailto :sales@42crunch.com.

Jaka jest różnica między bezpłatną i płatną wersją 42Crunch?

Pakiet 42Crunch oferuje zarówno bezpłatną ograniczoną wersję, jak i płatną wersję enterprise skanowania inspekcji i zgodności zabezpieczeń.

W przypadku bezpłatnej wersji 42Crunch wtyczka 42Crunch ci/CD działa autonomicznie, bez konieczności logowania się do platformy 42Crunch. Wyniki inspekcji i skanowania są następnie udostępniane w Microsoft Defender dla Chmury, a także na platformie ciągłej integracji/ciągłego wdrażania. Inspekcje i skanowania są ograniczone do maksymalnie 25 wykonań miesięcznie na każde repozytorium z maksymalnie trzema repozytoriami.

W przypadku płatnej wersji 42Crunch inspekcje i skanowania są nadal wykonywane lokalnie w ciągłej integracji/ciągłego wdrażania, ale mogą być synchronizowane z usługą platformy 42Crunch, gdzie można używać kilku zaawansowanych funkcji, w tym dostosowywalnych bram jakości zabezpieczeń, słowników danych i tagowania. Wersja przedsiębiorstwa jest licencjonowana na określoną liczbę interfejsów API, ale nie ma żadnych ograniczeń dotyczących liczby inspekcji i skanowań, które mogą być uruchamiane co miesiąc.

Czy 42Crunch jest dostępny na komercyjnej platformie handlowej platformy Azure?

Tak, 42Crunch jest dostępny do zakupu na platformie handlowej firmy Microsoft tutaj.

Pamiętaj, że zakupy z 42Crunch wykonane za pośrednictwem komercyjnej platformy handlowej platformy Azure są liczone do minimalnych zobowiązań dotyczących użycia platformy Azure (MACC).

Następne kroki

Omówienie interfejsów API usługi Microsoft Defender dla interfejsów API