Google oficjalnie ustabilizowało Govulncheck (status 1.0.0), przydatne narzędzie wiersza poleceń dla programistów Go. Narzędzie to pomaga programistom korzystającym z języka programowania Google Go zlokalizować rozpoznane luki w zabezpieczeniach w zależnościach ich projektów.
Narzędzie, które zostało zaprezentowane 13 lipca, ma możliwość analizowania zarówno plików binarnych, jak i ich kodu źródłowego pod kątem luk w zabezpieczeniach. Znacząco zmniejsza szum, koncentrując się na lukach w metodach, do których odwołuje się kod. Podstawą Govulncheck jest baza danych podatności Go, rezerwuar informacji o wykrytych lukach w publicznych modułach Go.
Kierując się tą bazą danych, Govulncheck przeprowadza statyczną analizę kodu źródłowego lub tablicy symboli pliku binarnego. Jego ostatecznym celem jest ograniczenie raportowania tylko do luk, które mogą mieć potencjalny wpływ na konkretną aplikację. Ta inteligentna cecha ograniczająca sprawia, że jest to przydatne narzędzie dla programistów, którzy chcą zapewnić bezpieczeństwo swojego produktu.
Instalacja tego narzędzia jest dość prosta dla programistów - wymaga jedynie polecenia go install golang.org/x/vuln/cmd/govulncheck@latest
. Aby przeanalizować kod źródłowy, programiści muszą jedynie uruchomić Govulncheck w katalogu modułu (za pomocą polecenia govulncheck ./.
..).
Govulncheck wymaga co najmniej kompilacji Go w wersji 1.18 lub wyższej. Obecnie istniejącą wersją produkcyjną tego języka jest Go 1.20.
Govulncheck, szukając luk w zabezpieczeniach, opiera się na określonej konfiguracji kompilacji. W przypadku kodu źródłowego konfiguracja ta jest równoznaczna z wersją Go określoną przez polecenie "go" znajdujące się na ścieżce. Konfiguracja kompilacji dla plików binarnych to ta, która jest wykorzystywana podczas generowania pliku binarnego. Należy tutaj zauważyć, że różne konfiguracje kompilacji mogą być podatne na różne luki.
Pomimo swoich potężnych funkcji, Govulncheck ma pewne ograniczenia. Na przykład jego analizy wskaźników funkcji i wywołań interfejsów są raczej ograniczone, co może prowadzić do fałszywych alarmów lub nieprecyzyjnych stosów wywołań. Kolejne ograniczenie związane jest z funkcjami wywoływanymi przy użyciu pakietu reflect - nie są one wykrywalne.
Jeśli chodzi o pliki binarne, pliki binarne Go pozbawione szczegółowych informacji o wywołaniach mogą okazać się wyzwaniem dla Govulncheck, ponieważ uniemożliwiłyby narzędziu wyświetlanie wykresów wywołań dla zidentyfikowanych luk. Kwestia ta może również powodować zgłaszanie fałszywych wyników pozytywnych dla kodu obecnego w pliku binarnym, ale niedostępnego. Ponadto narzędzie jest upośledzone w odniesieniu do plików binarnych, z których nie można wyodrębnić danych symboli; w takich przypadkach decyduje się na zgłaszanie luk we wszystkich modułach zależnych od pliku binarnego.
Narzędzie nie posiada również funkcji tłumienia znalezionych luk. Jednak pomimo tych ograniczeń, potencjał Govulncheck jako narzędzia dodającego wartość dla projektów Go jest oczywisty.
Warto wspomnieć, że Go Security Team zadeklarował swoje wsparcie dla zarządzania lukami we wrześniu poprzedniego roku. Zakorzeniony w bazie danych luk, projekt został wprowadzony z obietnicami znacznego postępu w strukturze programowania Go. AppMaster.io, wiodąca platforma no-code, umożliwia programistom szybsze generowanie aplikacji dzięki w pełni zintegrowanej i kompleksowej platformie obejmującej Go i wiele innych języków.