X9: W jaki sposób Resultados Digitais może automatycznie wykrywać wrażliwe dane w repozytoriach kodu

(Vitoria Rio) (9 października 2020 r.)

W miarę jak firmy stają się większe i mają stale rosnącą liczbę funkcji, programiści stale tworzą i integrują nowe fragmenty kodu jako zatwierdzenia, żądania ściągnięcia itp. Wraz ze wzrostem popularności metodologii zwinnych, szybsze rozwiązanie do analizy podatności staje się koniecznością. Gdy tylko kod zostanie zatwierdzony w repozytorium, jeśli to zatwierdzenie zawiera poufne informacje, należy podjąć działania w celu natychmiastowego rozwiązania tego problemu, ponieważ może to ostatecznie doprowadzić do wycieku danych.

Jednak zagłębienie się w setki zatwierdzeń i pull requesty nie jest łatwym zadaniem nawet dla zespołu wykwalifikowanych inżynierów ds. bezpieczeństwa, tutaj pojawia się X9. X9 to narzędzie typu open source stworzone w celu zautomatyzowania wykrywania poufnych informacji w repozytoriach organizacji GitHub. Może automatycznie analizować kod i tworzyć powiadomienia przez Slack niemal w czasie rzeczywistym.

Architektura

Github pozwala nam odczytywać kilka zdarzeń, takich jak zatwierdzenia i żądania ściągnięcia, za pomocą Github Webhooks . Na przykład, gdy programista tworzy PR, na platformie Github tworzone jest zdarzenie, które następnie wysyła ładunek wiadomości na wstępnie skonfigurowaną trasę (w tym przypadku interfejs X9) zawierającą szczegółowe informacje dotyczące tego zdarzenia. To podejście działa najlepiej, gdy weźmiemy pod uwagę, że Github pozwala nam skonfigurować webhooki dla całej organizacji, umożliwiając X9 analizowanie wszystkich repozytoriów z tego zakresu.

Konfigurując wydarzenia dla całej organizacji, X9 nie tylko gwarantuje, że wszystkie repozytoria są analizowane, ale także usprawnia proces analizy, zapewniając inżynierom bezpieczeństwa większą elastyczność i kontrolę nad potencjalnymi zagrożeniami bezpieczeństwa firmy.

Po otrzymaniu ładunku zdarzenia aplikacja klonuje gałąź repozytorium i wykonuje kilka zabezpieczeń testy. Każde zdarzenie jest przetwarzane przez niezależnego pracownika, który może być skalowany w przypadku większej przepustowości. Wszystkie przeskanowane luki są następnie przechowywane w bazie danych PostgreSQL i powiadamiane na kanale Slack. Interfejs Slack pozwala bezpośrednio stworzyć problem na Github lub oznaczyć lukę jako fałszywie pozytywną.

Analiza

X9 używa określonych sygnatur i wzorców do wykrywania sensownych danych w kodzie. Te podpisy to wyrażenia regularne dostosowane do tego konkretnego celu, takie jak r"[a-zA-Z0-9]*\@emailexample.com", które mogą wykrywać osobiste wiadomości e-mail lub następujące, które wykrywają klucze dostępu AWS w zawartości pliku (zdefiniowane dalej):

Aplikacja umożliwia również konfigurowanie niestandardowych wyrażenia regularne, umożliwiające podejście bardziej zorientowane na domenę. Istnieją cztery typy kontekstów podpisów dla X9:

  • nazwa pliku : Wyszukuje pełne nazwy plików
  • rozszerzenie : wyszukuje określone rozszerzenia (np.: .pem, .db)
  • ścieżka : wyszukuje pełną ścieżkę do z góry określonego folderu pliku w repozytorium
  • zawartość : wyszukuje wzorce w plikach

Powiadomienia i działania

Poprzez Slack Webhooks , X9 wysyła szczegółowe informacje o każdym znalezieniu do kanału zdefiniowanego przez użytkownika. Należy zauważyć, że wszelkie potencjalnie poufne informacje są odpowiednio zaciemniane, jak widać poniżej:

Komponenty interaktywne ( Otwórz problem i Fałszywie dodatnie przyciski) pozwalają na bezpośrednie tworzenie problemów na GitHub i zignorują lukę jako odpowiednio fałszywie pozytywną. Jeśli problem musi zostać utworzony z wiadomości, w repozytorium, w którym występują luki, tworzony jest następujący format sprawy:

Pulpit nawigacyjny

X9 ma również pulpit do wizualizacji luk w zabezpieczeniach. Ten pulpit nawigacyjny jest opcjonalną oddzielną aplikacją, która nie koliduje z analizą bezpieczeństwa. Używa OpenID Connect do uwierzytelniania logowania.

Pulpit nawigacyjny to widok tabeli, który umożliwia filtrowanie według nazwy repozytorium i typu luki. Jeśli zostanie utworzony, zostanie również wyświetlony link do problemu.

Ostatnie myśli

X9 jest nadal w toku i jest aktywnie aktualizowany, mile widziany jest wkład :).

Sprawdź to na github.com/ResultadosDigitais/ x9 .

Referencje

Inspiracją dla tego projektu były Shhgit i Gitleaks , który dostarczył większość sygnatur i strategii analitycznej.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *