Wprowadzenie
Bezpieczeństwo infrastruktury sieciowej to jeden z kluczowych obszarów odpowiedzialności każdego administratora systemu. Ręczne skanowanie sieci jest czasochłonne, podatne na błędy i trudne do wykonywania regularnie. Workflow opisany w tym artykule automatyzuje cały ten proces — od skanowania, przez identyfikację podatności, aż po wysłanie szczegółowego raportu na e-mail.
Rozwiązanie zostało zbudowane w n8n — otwartej platformie do automatyzacji procesów. Łączy ono trzy narzędzia: NMAP do skanowania sieci, CVE API do wyszukiwania znanych podatności oraz GPT-4.1 do generowania czytelnych raportów HTML.
Skanuj tylko sieci i urządzenia, do których masz pisemne upoważnienie. Nieautoryzowane skanowanie sieci jest przestępstwem w większości jurysdykcji, w tym w Polsce (art. 267 Kodeksu karnego — nielegalny dostęp do systemu informatycznego) oraz w Unii Europejskiej na mocy dyrektywy NIS2 i przepisów o cyberprzestępczości.
Zasady etycznego skanowania:
• Upoważnienie — posiadaj pisemną zgodę właściciela infrastruktury lub pracuj we własnej sieci (homelab, środowisko testowe).
• Zakres — skanuj tylko hosty i porty wymienione w upoważnieniu. Nie rozszerzaj zakresu bez wiedzy i zgody właściciela.
• Czas skanowania — skanowanie –script vuln generuje duże obciążenie sieci. Uzgodnij okno czasowe z administratorem, aby nie zakłócać pracy produkcyjnej.
• Poufność danych — wyniki skanowania zawierają wrażliwe informacje o infrastrukturze. Przechowuj je bezpiecznie i udostępniaj tylko upoważnionym osobom.
• Odpowiedzialność — wykryte podatności raportuj natychmiast do właściciela systemu. Nie ujawniaj ich publicznie bez wcześniejszego skoordynowania procesu naprawy (Responsible Disclosure).
• Środowiska chmurowe — dostawcy usług chmurowych (AWS, Azure, GCP) wymagają osobnego upoważnienia do skanowania zasobów w ich infrastrukturze. Sprawdź warunki korzystania z usług przed uruchomieniem skanu.Niniejszy workflow został stworzony wyłącznie w celach edukacyjnych i do legalnego audytu bezpieczeństwa własnej infrastruktury. Autorzy nie ponoszą odpowiedzialności za nieautoryzowane lub nieetyczne wykorzystanie tego narzędzia.
Co robi ten workflow?
Workflow wykonuje sekwencję zadań po kliknięciu przycisku uruchomienia:
| Krok 1 | Skanowanie usług i systemu operacyjnego NMAP z flagami -sV -O wykrywa otwarte porty, wersje uruchomionych usług oraz system operacyjny każdego hosta. |
| Krok 2 | Skanowanie podatności NMAP z flagą –script vuln uruchamia zestaw skryptów NSE sprawdzających znane luki bezpieczeństwa (m.in. EternalBlue, Heartbleed, Slowloris). |
| Krok 3 | Połączenie wyników Węzeł Merge łączy wyniki obu skanów w jeden strumień danych gotowy do dalszego przetwarzania. |
| Krok 4 | Przygotowanie danych Węzeł Code parsuje surowy tekst NMAP, wyciąga nazwy usług z wersjami |
| Krok 5 | Agregacja wyników CVE Wszystkie znalezione CVE są zbierane, sortowane według wyniku CVSS (od najgroźniejszych) i zliczane wg kategorii ryzyka. |
| Krok 6 | Analiza AI GPT-4.1 otrzymuje wszystkie dane i generuje profesjonalny raport HTML z tabelami, kolorowymi wskaźnikami ryzyka i rekomendacjami. |
| Krok 7 | Wysyłka e-mail W zależności od wyniku — wysyłany jest alert z czerwonym nagłówkiem (wykryto podatności) lub raport z zielonym nagłówkiem (sieć bezpieczna). |
Architektura i węzły workflow
Poniżej znajduje się opis wszystkich węzłów wchodzących w skład workflow wraz z ich typem i rolą:
| Węzeł | Typ | Opis |
| Manual Trigger | manualTrigger | Ręczne uruchomienie workflow — kliknięcie przycisku w n8n. |
| Skan OS i Usługi (-sV -O) | SSH | Wykonuje nmap -sV -O na wskazanych hostach przez SSH. Wykrywa wersje usług i systemy operacyjne. |
| Skan Podatności (–script vuln) | SSH | Wykonuje nmap –script vuln. Sprawdza znane podatności CVE na wykrytych usługach. |
| Połącz wyniki skanów | Merge | Łączy wyniki obu skanów w jeden item (tryb: Combine by Position). |
| Parsuj usługi z wersją | Code (JS) | Parsuje stdout z -sV, wyciąga usługi z wersjami (np. lighttpd 1.4.37), buduje zapytania do CVE API. |
| Agreguj wyniki CVE | Code (JS) | Zbiera wszystkie CVE, sortuje po CVSS, zlicza krytyczne/wysokie/średnie. |
| Analiza AI z CVE | OpenAI (GPT-4.1) | Generuje pełny raport HTML na podstawie danych NMAP i CVE. |
| Wykryto podatności? | IF | Sprawdza czy hasVulnerabilities === true. Rozgałęzia do odpowiedniego emaila. |
| Email ALERT (podatności) | Send Email | Wysyła alert z czerwonym nagłówkiem i liczbą CVE w temacie wiadomości. |
| Email Raport (bez alertu) | Send Email | Wysyła raport z zielonym nagłówkiem gdy nie wykryto krytycznych podatności. |

Przepływ danych
Schemat sekwencji wykonania węzłów:
Manual Trigger
↓
Skan OS i Usługi (-sV -O) ──────────────────────────────┐
↓ │
Skan Podatności (–script vuln) │
↓ ↓
Połącz wyniki skanów ←─────────────────────────────────┘
↓
Parsuj usługi z wersją (np. lighttpd 1.4.37, dnsmasq 2.81)
↓ [dla każdej usługi osobno]
Agreguj wyniki CVE (sortowanie po CVSS, zliczanie)
↓
Analiza AI z CVE (GPT-4.1 → raport HTML)
↓
Wykryto podatności?
├── TAK → Email ALERT (czerwony nagłówek)
└── NIE → Email Raport (zielony nagłówek)
Przykładowy raport skanowania, wysłany na email
Komendy NMAP — szczegółowy opis
Skanowanie usług i OS: nmap -sV -O
Flaga -sV (Service Version Detection) sprawdza każdy otwarty port i próbuje ustalić dokładną wersję uruchomionej usługi. Dzięki temu zamiast prostego 80/tcp open http otrzymujemy 80/tcp open http lighttpd 1.4.37 — precyzyjną informację o wersji, którą możemy porównać z bazą CVE.
Flaga -O (OS Detection) wykrywa system operacyjny hosta na podstawie analizy odpowiedzi TCP/IP. Wymaga uprawnień root/sudo. Jeśli skanowanie odbywa się bez tych uprawnień, workflow automatycznie wraca do samego -sV.
| Przykładowy wynik: 53/tcp open domain dnsmasq 2.81 | 80/tcp open http lighttpd 1.4.37 | 5555/tcp open upnp myigd 1.0 |
Skanowanie podatności: nmap –script vuln
Flaga –script vuln uruchamia zestaw skryptów NSE (Nmap Scripting Engine) sprawdzających znane luki bezpieczeństwa. Każdy skrypt testuje konkretny wektor ataku:
- http-slowloris-check — sprawdza podatność na atak Slowloris (DoS na serwery HTTP)
- http-dombased-xss — szuka podatności XSS w aplikacjach webowych
- smb-vuln-ms17-010 — sprawdza podatność EternalBlue (WannaCry)
- ssl-heartbleed — sprawdza podatność Heartbleed w OpenSSL
- ftp-vsftpd-backdoor — sprawdza obecność backdoora w vsftpd 2.3.4
| Ważne: Skan –script vuln jest znacznie wolniejszy niż podstawowe skanowanie. Na 3 hostach może trwać od 5 do 20 minut w zależności od liczby otwartych portów. |
Węzeł Przygotuj dane wyniki CVE zbiera wszystkie wyniki, sortuje je według wyniku CVSS (od najwyższego) i nadaje kategorię:
| Poziom ryzyka | Wynik CVSS | Kolor w raporcie |
| Krytyczny | 9.0 – 10.0 | #dc3545 (czerwony) |
| Wysoki | 7.0 – 8.9 | #fd7e14 (pomarańczowy) |
| Średni | 4.0 – 6.9 | #ffc107 (żółty) |
| Niski | 0.0 – 3.9 | #28a745 (zielony) |
Raport generowany przez AI
Węzeł Analiza AI z CVE wysyła do GPT-4.1 komplet danych: wyniki obu skanów NMAP oraz listę CVE z wynikami CVSS. Na tej podstawie model generuje gotowy raport HTML zawierający:
- Podsumowanie wykonawcze — najważniejsze ustalenia w maksymalnie 240 znakach
- Statystyki — liczba hostów, portów, CVE według poziomu ryzyka
- Tabela urządzeń — IP, system operacyjny, otwarte porty, wersje usług
- Tabela CVE — ID z linkiem do NVD, produkt, opis, wynik CVSS, poziom ryzyka
- Podatności NMAP — wyniki ze –script vuln
- Rekomendacje priorytetowe — konkretne kroki posortowane od najważniejszych
Raport HTML jest bezpośrednio wstrzykiwany do treści wiadomości e-mail, dzięki czemu odbiorca otrzymuje sformatowany, czytelny dokument bez potrzeby otwierania żadnych załączników.
System powiadomień e-mail
Workflow rozróżnia dwa typy wiadomości w zależności od wyników skanowania:
| Email ALERT: Wysyłany gdy wykryto słowo VULNERABLE w skanowaniu NMAP lub gdy CVE API zwróciło podatności z CVSS >= 7. Temat zawiera liczbę znalezionych CVE oraz liczbę krytycznych. |

| Email Raport: Wysłamy gdy skanowanie nie wykazało krytycznych zagrożeń. Raport nadal zawiera pełne dane — informuje że infrastruktura jest w dobrym stanie. |

Wymagania techniczne
n8n
Workflow wymaga działającej instancji n8n w wersji obsługującej węzeł OpenAI (typeVersion 1.8) oraz HTTP Request (typeVersion 4.2). Zalecana instalacja self-hosted.
SSH i NMAP
Na serwerze docelowym musi być zainstalowany NMAP w wersji 7.0 lub nowszej. Skanowanie –script vuln oraz -O wymaga uprawnień root. Workflow łączy się przez SSH z zapisanymi danymi uwierzytelniającymi.
# Instalacja NMAP na Debianie/Ubuntu
sudo apt-get install nmap
# Weryfikacja wersji
nmap –version

Klucz API OpenAI
Do węzła Analiza AI z CVE wymagany jest klucz API OpenAI z dostępem do modelu GPT-4.1. Workflow używa modelu gpt-4.1 — można go zmienić na gpt-4o lub inny dostępny model.
Import i konfiguracja
Pobierz Workflow z Mojego Github – https://github.com/sHin477/Nmap-n8n
Jak zaimportować workflow
- Otwórz n8n i przejdź do sekcji Workflows
- Kliknij przycisk Import from file w prawym górnym rogu
- Wybierz plik NMAP + CVE API.json
- Po imporcie sprawdź i przypisz kredencjały SSH oraz OpenAI

Ważna konfiguracja — Połącz wyniki skanów
| Uwaga: Po imporcie n8n może zresetować ustawienie węzła Merge. Należy ręcznie ustawić: Mode = Combine, Combine By = Position = 2. Bez tego workflow może zwracać błąd Fields to Match. |

Zmiana hostów do skanowania
Adresy IP do skanowania należy zaktualizować w dwóch węzłach SSH. Domyślna konfiguracja skanuje hosty 192.168.1.1, 192.168.1.77 oraz 192.168.1.74, zmień na swoje adresy IP, które chcesz skanować :
# Węzeł: Skan OS i Usługi (-sV -O)
nmap -sV -O 192.168.1.1 192.168.1.77 192.168.1.74 2>/dev/null || nmap -sV 192.168.1.1 192.168.1.77 192.168.1.74
# Węzeł: Skan Podatności (–script vuln)
nmap –script vuln 192.168.1.1 192.168.1.77 192.168.1.74
Aby skanować inne zakresy, można użyć notacji CIDR lub zakresów z myślnikiem:
# Cała podsieć /24
nmap -sV -O 192.168.1.0/24
# Zakres IP
nmap -sV -O 192.168.1.1-50
Wskazówki i dobre praktyki
Wydajność skanowania
Skan –script vuln jest bardzo wolny. Dla większych sieci (powyżej 20 hostów) zaleca się dodanie flagi -T4 przyspieszającej skanowanie lub ograniczenie skryptów NSE do wybranych kategorii:
# Szybsze skanowanie z agresywnym tempem
nmap -T4 –script vuln 192.168.1.0/24
# Tylko wybrane skrypty
nmap –script smb-vuln*,http-vuln* 192.168.1.0/24
Harmonogramowanie
Aby uruchamiać workflow automatycznie, wystarczy zamienić węzeł Manual Trigger na Schedule Trigger i ustawić wybraną częstotliwość — np. codziennie o 6:00 rano lub co tydzień w poniedziałek.
Rozszerzenia
Workflow można dalej rozbudować o powiadomienia Slack lub Teams, zapis wyników do bazy danych dla śledzenia zmian w czasie, porównanie z poprzednim skanowaniem czy integrację z systemem ticketowym jak Jira.
Podsumowanie
Przedstawiony workflow to kompletne rozwiązanie do automatycznego audytu bezpieczeństwa sieci. Łączy sprawdzone narzędzia — NMAP, publiczną bazę CVE i GPT-4.1 — w jeden spójny proces uruchamiany jednym kliknięciem.
Kluczowe zalety tego podejścia to eliminacja ręcznej pracy przy regularnych skanowaniach, automatyczna korelacja wykrytych wersji usług z bazą podatności CVE oraz czytelne raporty HTML gotowe do przeczytania bezpośrednio w skrzynce e-mail.
| Plik workflow: NMAP — gotowy do importu w n8n. Wymagane: NMAP na serwerze SSH, klucz API OpenAI, konto SMTP do wysyłki e-mail. |

