Fortify Static Code Analyzer (SCA), znany również jako statyczny analizator kodu, przeprowadza dogłębną analizę kodu źródłowego, aby wyodrębnić i zidentyfikować pierwotne przyczyny potencjalnych luk w zabezpieczeniach.
Narzędzie skanujące Fortify wyróżnia się tym, że nadaje priorytet najistotniejszym problemom związanym z bezpieczeństwem i dostarcza programistom konkretnych wskazówek, jak efektywnie rozwiązać te kwestie.
Zaawansowany Analizator Statyczny Kodu Fortify
Fortify Static Code Analyzer wykorzystuje różnorodne analizatory, które badają kod pod kątem słabych punktów. Wśród nich znajdują się analizatory: bufora, treści, przepływu sterowania, przepływu danych, semantyczny, konfiguracji oraz strukturalny. Każdy z tych analizatorów stosuje odmienny zestaw reguł, które są dostosowane do specyficznych aspektów analizy, aby dostarczyć jak najbardziej precyzyjne informacje.
Architektura Fortify Static Code Analyzer obejmuje kilka kluczowych komponentów:
- Kreator skanowania Fortify: To narzędzie umożliwia użytkownikom konfigurowanie skryptów, które mogą być uruchamiane zarówno przed, jak i po przeprowadzeniu analizy kodu.
- Stanowisko audytu: Aplikacja z graficznym interfejsem użytkownika, która pomaga w organizacji i zarządzaniu wynikami analizy. Ułatwia przeglądanie i interpretację zebranych danych.
- Edytor reguł niestandardowych: Narzędzie to pozwala programistom na tworzenie i modyfikację własnych reguł analizy kodu, które mogą być dostosowane do konkretnych wymagań projektowych.
- Wtyczka dla IntelliJ i Android Studio: Dzięki tej wtyczce, wyniki analizy są dostępne bezpośrednio w środowisku IDE, co znacznie usprawnia proces pracy programisty.
- Wtyczka do Eclipse: Podobnie jak w przypadku IntelliJ, ta wtyczka integruje wyniki analizy z środowiskiem Eclipse, oferując ciągły dostęp do informacji o bezpieczeństwie kodu.
- Wtyczka Bamboo: Umożliwia zbieranie wyników analizy przeprowadzanej w ramach zadań Bamboo, integrując proces analizy bezpieczeństwa z automatyzacją budowania.
- Wtyczka Jenkins: Ta wtyczka zbiera dane z analizy realizowanej w ramach zadań Jenkins, co pozwala na monitorowanie bezpieczeństwa kodu w potoku CI/CD.
Kluczowe Atuty Fortify SCA
#1. Szeroka Obsługa Języków Programowania
Fortify SCA obsługuje szeroki wachlarz języków programowania, w tym między innymi: ABAP/BSP, ActionScript, ASP (z VBScript), COBOL, ColdFusion, Apex, ASP.NET, C# (.NET), C/C++, Classic, VB.NET, VBScript, CFML, Go, HTML, Java (w tym Android), JavaScript/AJAX, JSP, Kotlin, Visual Basic, MXML (Flex), Objective C/C++, PHP, PL/SQL, Python, Ruby, Swift, T-SQL i XML. Dzięki temu narzędzie jest wszechstronne i może być używane w różnych projektach.
#2. Elastyczne Opcje Wdrożenia
- Fortify On-Prem: Daje organizacjom pełną kontrolę nad wszystkimi aspektami Fortify SCA, umożliwiając samodzielne zarządzanie infrastrukturą i konfiguracją.
- Fortify On Demand: Oferuje możliwość pracy w modelu Software as a Service, eliminując konieczność zarządzania infrastrukturą, co pozwala programistom skupić się na analizie i poprawie kodu.
- Fortify Hosted: Zapewnia balans między kontrolą i elastycznością, oferując izolowane środowisko wirtualne z pełną kontrolą nad danymi, co jest korzystne dla organizacji, które chcą zachować kontrolę nad swoimi zasobami.
#3. Bezproblemowa Integracja z Narzędziami CI/CD
- Integracja z IDE: Fortify SCA łatwo integruje się z popularnymi środowiskami IDE, takimi jak Visual Studio i Eclipse, co pozwala programistom na analizę kodu w czasie rzeczywistym, bez potrzeby opuszczania środowiska pracy.
- Współpraca z narzędziami open source: Narzędzie integruje się z innymi narzędziami open source, takimi jak Sonatype, WhiteSource, Snyk i BlackDuck, co zapewnia kompleksową ochronę i kontrolę nad całym procesem rozwoju oprogramowania.
- Integracja z repozytoriami kodu: Fortify SCA integruje się z repozytoriami kodu, takimi jak Bitbucket i GitHub, umożliwiając automatyczne skanowanie kodu pod kątem luk w zabezpieczeniach i powiadamianie o potencjalnych zagrożeniach.
#4. Alerty w Czasie Rzeczywistym
Fortify SCA dostarcza natychmiastowe aktualizacje podczas pisania kodu, eliminując konieczność czekania na zakończenie procesu kodowania, aby przeprowadzić testy bezpieczeństwa. Analizatory konfiguracji i struktury działają szybko i wydajnie, pomagając tworzyć bezpieczne aplikacje.
#5. Asystent Audytu Wspierany przez Uczenie Maszynowe
Asystent Audytu, korzystający z algorytmów uczenia maszynowego, przyspiesza proces audytu systemu. Asystent ten rozpoznaje potencjalne luki w zabezpieczeniach i priorytetyzuje je na podstawie poziomu pewności, co pozwala organizacjom zaoszczędzić na kosztach audytu i generować szczegółowe raporty.
#6. Elastyczność Działania
Użytkownicy mają możliwość wyboru rodzaju skanowania w zależności od swoich indywidualnych potrzeb. Mogą zdecydować się na skanowanie kompleksowe, które jest bardziej dokładne i szczegółowe, lub na skanowanie szybkie, które koncentruje się na wykrywaniu poważnych zagrożeń.
Jakie Funkcje Pełni Fortify SCA?
Fortify SCA pełni szereg istotnych ról w ekosystemie tworzenia oprogramowania. Oto niektóre z nich:
Testowanie Statyczne Kluczem do Lepszego Kodu
Statyczne testy bezpieczeństwa aplikacji (SAST) pozwalają na identyfikację luk w zabezpieczeniach na wczesnych etapach procesu rozwoju oprogramowania. Wczesne wykrycie i naprawa takich luk jest zazwyczaj mniej kosztowne. Takie podejście pozwala na znaczne obniżenie poziomu ryzyka bezpieczeństwa, poprzez natychmiastowe informowanie programistów o problemach pojawiających się w kodzie podczas jego tworzenia.
Ponadto, programiści poprzez statyczne testy bezpieczeństwa, poszerzają swoją wiedzę na temat bezpieczeństwa, co skutkuje pisaniem bezpieczniejszego kodu już na etapie produkcji.
Fortify SCA wykorzystuje rozbudowaną bazę wiedzy na temat zasad bezpiecznego kodowania oraz zaawansowane algorytmy do analizy kodu źródłowego pod kątem potencjalnych luk w zabezpieczeniach. Narzędzie analizuje każdą możliwą ścieżkę przepływu danych, aby zidentyfikować zagrożenia i zaproponować odpowiednie środki zaradcze.
Wczesne Wykrywanie Problemów Bezpieczeństwa
Fortify SCA imituje proces kompilacji. Podczas skanowania, narzędzie odczytuje pliki kodu źródłowego i przekształca je w format pośredni, który jest zoptymalizowany pod kątem analizy bezpieczeństwa. W formacie pośrednim wszystkie luki w zabezpieczeniach są łatwiejsze do zlokalizowania. Narzędzie jest wyposażone w silnik analityczny, który składa się z wielu wyspecjalizowanych analizatorów. Analizatory wykorzystują reguły bezpiecznego kodowania do sprawdzenia, czy kod nie narusza jakichkolwiek zasad bezpieczeństwa.
Fortify SCA oferuje również narzędzie do tworzenia reguł, które umożliwia rozszerzenie możliwości statycznej analizy i uwzględnienie niestandardowych reguł. Wyniki analizy mogą być prezentowane w różnorodnych formatach, dostosowanych do potrzeb i preferencji użytkowników.
Zarządzanie Wynikami z Fortify Software Security Center (SSC)
Fortify Software Security Center (SSC) to centralne repozytorium, które zapewnia pełny wgląd w program bezpieczeństwa aplikacji organizacji. SSC umożliwia użytkownikom przeprowadzanie audytów, przeglądanie, nadawanie priorytetów i zarządzanie działaniami naprawczymi w przypadku wykrycia luk w zabezpieczeniach.
Fortify SSC dostarcza rzetelny obraz stanu bezpieczeństwa aplikacji w całej organizacji. SSC znajduje się na centralnym serwerze, a dane do niego pochodzą z różnych działań związanych z testowaniem bezpieczeństwa, począwszy od analizy dynamicznej w czasie rzeczywistym, a skończywszy na analizie statycznej.
Jakiego Rodzaju Analizę Kodu Wykonuje Fortify SCA?
Skanowanie Fortify wykorzystuje koncepcję „zgubnych królestw” do analizy kodu. Oto rodzaje analiz, które przeprowadza Fortify SCA:
- Walidacja i reprezentacja danych wejściowych: Problemy związane z walidacją i reprezentacją danych wejściowych wynikają z różnic w kodowaniu, reprezentacji numerycznych oraz stosowaniu metaznaków. Przykładami takich problemów są „Przepełnienia bufora”, ataki „Cross-Site Scripting” oraz „SQL Injection”, które pojawiają się, gdy systemy ufają danym wejściowym.
- Nadużycie interfejsu API: Najczęstszym przykładem tego typu problemu jest sytuacja, gdy wywołujący nie przestrzega umowy interfejsu API.
- Funkcjonalność związana z bezpieczeństwem: Ta analiza rozróżnia oprogramowanie zabezpieczające i oprogramowanie, które wymaga zabezpieczeń. Analiza koncentruje się na zagadnieniach związanych z uwierzytelnianiem, zarządzaniem uprawnieniami, kontrolą dostępu, poufnością i kryptografią.
- Czas i stan: Komputery bardzo szybko przełączają się między różnymi zadaniami. Analiza czasu i stanu wyszukuje wady wynikające z nieoczekiwanych interakcji między wątkami, informacjami, procesami i czasem.
- Błędy: Fortify SCA sprawdza, czy komunikaty o błędach nie ujawniają zbyt wielu informacji potencjalnym atakującym.
- Jakość kodu: Niska jakość kodu często prowadzi do nieprzewidywalnego zachowania. Osoby atakujące mogą wykorzystać słabo napisany kod, by manipulować aplikacją.
- Kapsułkowanie: Proces tworzenia wyraźnych granic, na przykład między danymi zweryfikowanymi i niezweryfikowanymi.
Pobieranie i Instalacja Fortify SCA
Przed rozpoczęciem procesu instalacji należy:
- Sprawdzić wymagania systemowe w oficjalnej dokumentacji.
- Pobrać plik licencji Fortify. Wybierz odpowiedni pakiet ze strony pobierania Microfocus. Wyszukaj narzędzie Fortify Static Code Analyzer, załóż konto i pobierz plik licencyjny.
- Upewnij się, że masz zainstalowane Visual Studio Code lub inny obsługiwany edytor kodu.
Jak Zainstalować w Systemie Windows?
Uruchom instalator:
Fortify_SCA_and_Apps_<version>_windows_x64.exe
Uwaga: <version> oznacza wersję oprogramowania.
- Zaakceptuj umowę licencyjną i kliknij Dalej.
- Wybierz docelową lokalizację instalacji Fortify Static Code Analyzer i kliknij przycisk Dalej.
- Wybierz komponenty do zainstalowania i kliknij Dalej.
- Określ użytkowników, jeśli instalujesz rozszerzenie dla programu Visual Studio 2015 lub 2017.
- Wskaż ścieżkę do pliku fortify.license i kliknij Dalej.
- Określ ustawienia wymagane do aktualizacji zawartości zabezpieczeń. Możesz użyć serwera aktualizacji Fortify Rulepack, podając adres URL: https://update.fortify.com. Kliknij Dalej.
- Zdecyduj, czy chcesz zainstalować przykładowy kod źródłowy. Kliknij Dalej.
- Kliknij Dalej, aby zainstalować Fortify SCA i powiązane aplikacje.
- Po zakończeniu instalacji kliknij Aktualizuj zawartość zabezpieczeń, a następnie Zakończ.
Jak Zainstalować w Systemie Linux?
Możesz postępować analogicznie do instalacji w systemie Windows. Z tą różnicą, że w pierwszym kroku należy uruchomić plik instalacyjny:
Fortify_SCA_and_Apps__linux_x64.run
Alternatywnie, Fortify SCA można zainstalować, korzystając z wiersza poleceń.
Otwórz terminal i uruchom następujące polecenie:
./Fortify_SCA_and_Apps__linux_x64.run --mode text
Postępuj zgodnie z wyświetlanymi w wierszu poleceń instrukcjami, aż do zakończenia procesu instalacji.
Jak Uruchomić Skanowanie Fortify?
Po zakończeniu instalacji nadszedł czas na konfigurację narzędzia do analizy bezpieczeństwa:
- Przejdź do katalogu instalacyjnego i otwórz folder bin w wierszu poleceń.
- Wpisz komendę scapostinstall. Następnie użyj opcji s, aby wyświetlić bieżące ustawienia.
- Skonfiguruj ustawienia regionalne za pomocą poniższych poleceń:
Wpisz 2, aby wybrać Ustawienia.
Wpisz 1, aby wybrać Ogólne.
Wpisz 1, aby wybrać ustawienia regionalne.
Wpisz English: en, aby ustawić język na angielski.
- Skonfiguruj aktualizacje zawartości zabezpieczeń. Wpisz 2, aby wybrać Ustawienia, a następnie ponownie wpisz 2, aby wybrać Aktualizacje Fortify. Możesz teraz użyć serwera aktualizacji Fortify Rulepack, podając adres URL: https://update.fortify.com.
- Wpisz sourceanalyzer, aby sprawdzić, czy narzędzie jest poprawnie zainstalowane.
Od tego momentu Fortify SCA będzie działać w tle, analizując kod pod kątem luk w zabezpieczeniach.
Podsumowanie
W erze internetu przypadki hakowania systemów i wycieków danych stały się powszechne. Na szczęście dostępne są narzędzia, takie jak Fortify Static Code Analyzer, które mogą wykrywać zagrożenia bezpieczeństwa w trakcie pisania kodu, generować alerty i dostarczać rekomendacje dotyczące przeciwdziałania takim zagrożeniom. Fortify SCA, używane w połączeniu z innymi narzędziami, może zwiększyć wydajność pracy i obniżyć koszty operacyjne.
Zachęcamy także do zapoznania się z koncepcją analizy składu oprogramowania (SCA), która jest ważnym elementem w procesie poprawy bezpieczeństwa aplikacji.