Confidential · Limited Distribution
Security assessment report

State of
digital
security

Technical Version — for Security, IT and DevOps teams
— SECTION 01

Confidentiality and distribution clause

Dokument confidential — TLP:AMBER+STRICT

This technical report contains detailed information about weaknesses in the NovaTech infrastructure, including precise locations (hostnames, IPs, ports), software versions, dowody techniczne (output narzędzi) and scenariusze eksploitacji. Z tego powodu level wrażliwości is materially wyższy niż wersji biznesowej.

Distribution: restricted to persons with a justified business-technical need — CISO/Security Officer, Head of Infrastructure, DevOps Lead, Application Lead, wybrani inżynierowie odpowiedzialni for remediację. Nie udostępniać dostawcom externalm, zespołom marketingowym ani jako załącznik to umów handlowych without uprzedaysej anonimizacji.

Storage: a repository with RBAC access control, at-rest encryption (AES-256), audit access log, retention maks. 24 months from daty publikacji.

Destruction: after the retention period ends — secure overwriting (DoD 5220.22-M or equivalent) or physical destruction of the medium. Paper copies only in cross-cut shredder (DIN 66399 P-5 or wyższy).

Incident response: if this document is lost, obtained by an unauthorised party or disclosed — immediately notify the CISO and the Ragnar Shield team (incident@ragnar-shield.example) goalsm oceny risk and ewentualnego unieważnienia danych referencyjnych.

Report status: Final · accepted by QA Reviewer (K. Wiśniewski (CISSP, CEH)). All findings have been validated by a second consultant (peer review) and potwierdzone in-vivo przez powtórne wykonanie testu on środowisku clienta.
— SECTION 02

Table of contents

— SECTION 03

About this technical report

Reference document for the teams responsible for remediation.

3.1 Goal dokumentu

This Technical Report is an operational document intended for those directly carrying out remediation: security engineers, DevOps, administrators infrastructure and deweloperów application. W przeciwieństwie to Raportu Biznesowego (skierowanego to boardu) — this dokument prezentuje:

3.2 Cross-references between reports

Each technical finding TF-NNN is linked to the corresponding business finding BF-NNN (one-to-one). Section 9 contains the cross-reference table ułatwiającą nawigację.

3.3 Struktura dokumentu

  1. Sekcje 4–5 — Scope and methodology (jak ocena była wykonana);
  2. Sekcje 6–7 — Resulti rekonesansu and inventory attack surface;
  3. Section 8 — Resulti techniczne pogrupowane wg warstw OSI/application;
  4. Section 9 — Pełne karty 13 findings (TF-001 … TF-013);
  5. Sekcje 10–11 — Mapowanie regulatory and roadmap;
  6. Appendixi A, C–D — Pełne dane referencyjne (asset inventory, raw output, słownik).
Konwencja zapisu: all wartości techniczne (hostnames, IP, output narzędzi) prezentowane are w czcionce monospace (JetBrains Mono). Surowy output narzędzi w blokach about ciemnym tle. Zalecenia konfiguracyjne ujęte w stylu Apache/Nginx/etc. together z komentarzem.
— SECTION 04

Objectives, scope and limitations of the assessment

What was examined, what was deliberately excluded, and why.

4.1 Goal oceny

Ocena security externalj attack surface (External Attack Surface Assessment, EASM) clienta NovaTech from the perspective of potencjalnego attackującego niezalogowanego (black-box, unauthenticated), z wykorzystaniem wytotal informacji publicznie available and technik nieinwazyjnych zgodnych z umową.

4.2 Scope techniczny (in-scope)

Kategoria assetIdentyfikator / scopeDescription
Adres IP — host docelowy172.17.0.2/32Pojedynczy host w network internalj Docker, eksponujący services web, mail, DNS and SSH
Domain DNS — rootnovatech-solutions.plDomain główna and subdomains wykryte podczas scanowania
Podsieć obserwowalna172.17.0.0/16Częściowy enumerację Docker bridge — wytotal services z host 172.17.0.2
Aplikacje webowehttps://restaurant.novatech-solutions.pl/Niezalogowane endpointy public; without prób bypass logowania
Configuration TLS/PKIWszystkie certificatey ujawnione przez SNISSL Labs-equiv. analiza, OCSP, CT logs (crt.sh)
Configuration DNS and e-mailnovatech-solutions.pl and subdomainsSPF, DKIM, DMARC, BIMI, MTA-STS, TLSRPT, DNSSEC
OSINT publicWycieki haseł (HIBP), GitHub commits, Wayback Machine, Shodan/Censys (read-only)

4.3 Wyłączenia z scopeu (out-of-scope)

4.4 Limitations metodologiczne

LimitationImpact on resulti
Ocena punktowa w czasie (point-in-time) — okno 14–28 kwietnia 2026Weaknesses wprowadzone after completion oceny pozostają poza resultami. Rekomendowana cycleiczność: co 6 months.
Black-box without poświadczeńBrak widoczności w warstwy chronione logowaniem. Vulnerabilities post-auth nie are pokrywane.
Nieinwazyjność — brak activech eksploitówNiektóre weaknesses are raportowane jako "potencjalne" and requiresją in-vivo PoC w odrębnym, zakontraktowanym scope pentestu.
Rate limiting — testy ograniczone to 5 req/s to nie wpływać on availability produkcjiNiektóre vulnerabilities requiresjące dużej liczby zapytań (e.g. enumeracja użytkowników) mogły zostać niezauważone.
Geograficzne limitations — testy z lokalizacji EU-CentralWeaknesses specyficzne for geofencingu z innych regionów nie are pokryte.

4.5 Definicja "weaknesses" w thism raporcie

Konkretna configuration, brak configuration, or element architektury, który jednocześnie spełnia oba kryteria:

  1. Zwiększa prawdopodobieństwo effectivego attacku or wymierne consequences udanego attacku w stosunku to baseline'u zdefiniowanego przez CIS Benchmarks 8.0, OWASP ASVS 4.0.3 or NIST SP 800-53 Rev. 5;
  2. May be empirycznie zaobserwowana from the perspective of externalj (public services, odpowiedzi servera, rekordy DNS, certificatey CT) without konieczności privileged dostępu.
— SECTION 05

Technical assessment methodology

A 5-phase framework aligned with OWASP WSTG, NIST SP 800-115 and OSSTMM 3.

5.1 Framework referencyjny

Ocena wasa carried out in accordance with połączeniem trzech publicch standardów: OWASP Web Security Testing Guide v4.2 (część dotycząca rekonesansu and analizy configuration), NIST SP 800-115 (Technical Guide to Information Security Testing) and OSSTMM 3 (Open Source Security Testing Methodology Manual). Wybór frameworków ensures jednocześnie szeyearie pokrycie powierzchni and compliance z wymogami auditowymi (ISO 27001:2022 A.8.29, A.5.7).

5.2 Pięć faz oceny

1

Pasywny rekonesans (passive reconnaissance)

Pozyscanie informacji about attack surface z publicznie available źródeł, without wysyłania jakichkolwiek pakietów to systemów clienta. Goal: zminimalizować wykrywalność and zbudować mapę assets on the basis of OSINT.
2

Aktywne wykrywanie (active discovery / asset enumeration)

Bezpośredayse sondowanie discovered hostów w celu identyfikacji otwartych portów, działających services, wersji oprogramowania, certificateów and banerów. Wykonywane z dedykowanego adresu IP zgłoszonego clientowi before rozpoczęciem oceny.
3

Identification vulnerabilities (vulnerability identification)

Analiza configuration discovered services under kątem znanych weaknesses, niecompliance z benchmarkami, brakujących nagłówków security, errors configuration TLS/DNS/HTTP. Phase w pełni nieinwazyjna — brak prób eksploitacji.
4

Walidacja and classification (validation & triage)

Manualna verification all automatycznie discovered findings przez konsultanta. Eliminacja false-positives, dopasowanie to kontekstu clienta, scoring CVSS 3.1, mapowanie to CWE/CVE/OWASP. Każde finding is powtórnie zwalidowane in-vivo z drugiego adresu IP.
5

Raportowanie and peer review

Konstrukcja raportu, mapowanie to standardów (OWASP, CWE, CIS, NIST, ISO 27001:2022, NIS2, RODO), preparation recommendations konfiguracyjnych, peer review przez drugiego konsultanta z certificateem CISSP/OSCP. Dwustopniowa verification ensures eliminację errors merytorycznych and utrzymanie spójności technicznej.

5.3 Skala oceny severity

Każde finding otrzymuje pojedynczą klasyfikację severity opartą on wektorze CVSS 3.1. W przypadkach when CVSS nie odzwierciedla precyzyjnie risk biznesowego (e.g. brak eksploitabilnej vulnerabilities technicznej, ale weakness konfiguracyjna ułatwiająca przyszłe attacki), stosowany is internal matrix Ragnar Shield.

KlasaCVSS 3.1DefinicjaRequiresna akcja
Critical 9.0 – 10.0 Weakness bezpośrednio eksploitowalna from the Internet, prowadząca to RCE / pełnego dostępu / loss danych masowych. Niezbędna natychmiastowa interwencja. Patch / mitygacja w ciągu ≤ 24 h; eskalacja to CISO; rozważyć tymczasowe wyłączenie services.
High 7.0 – 8.9 Eksploitacja możliwa, but requires conditions szczególnych (MitM, znajomość configuration, łańcuch weaknesses). Skutek: confidentiality / integralność danych. Plan remediation w ciągu ≤ 7 days; mitigation/workaround natychmiast.
Medium 4.0 – 6.9 Weakness konfiguracyjna ułatwiająca rekonesans adversarya (information disclosure), nieprzestrzeganie best practices, brak hardeningu. Ujęte w najbliższym sprintcie konserwacyjnym, nie później niż 30 days.
Low 0.1 – 3.9 Drobne odchylenia from baseline'u, low szansa eksploitacji, lowe effects. Zwykle dotyczą hardeningu defensywnego. Backlog z priorityem normalnym; rozważone w cycleu kwartalnym.
Informational N/A Obserwacje without bezpośredaysego wpływu on risk, ale material for świadomości sytuacyjnej (e.g. wykrycie shadow IT, expired CT entries). Świadomość; opcjonalnie ujęte w roadmapie strategicj.

5.4 Model scoringu CVSS 3.1

Każde finding zawiera pełny wektor CVSS 3.1 zgodny ze specyfikacją FIRST.org:

# Format wektora CVSS:3.1/AV:[N|A|L|P]/AC:[L|H]/PR:[N|L|H]/UI:[N|R]/S:[U|C]/C:[N|L|H]/I:[N|L|H]/A:[N|L|H] # Example for TF-001 (TLS legacy) CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N → 7.4 (High) # Wyjaśnienie metryk: AV (Attack Vector): N=Network, A=Adjacent, L=Local, P=Physical AC (Attack Complexity): L=Low, H=High PR (Privileges Required): N=None, L=Low, H=High UI (User Interaction): N=None, R=Required S (Scope): U=Unchanged, C=Changed C/I/A (Confidentiality/Integrity/Availability): N=None, L=Low, H=High

5.5 Modele zagrożeń (threat models)

Ocena zakłada pięć kategorii potencjalnych aktorów zagrożeń, z różnymi profilami zdolności:

AktorZdolność tech.MotywacjaTypowe TTP (MITRE ATT&CK)
Script-kiddie / opportunisticNiskaNotoriety, vandalismT1595 (Active Scanning), T1190 (Public-facing App), znane CVE z exploit-db
Cybercrime (ransomware)Średaysa–WysokaFinansowaT1566.001 (Spearphishing), T1190, T1078 (Valid Accounts), T1486 (Data Encrypted)
State-sponsored APTBardzo highWywiad / sabotażPełen łańcuch ATT&CK; 0-days; long dwell time; supply chain (T1195)
Insider (zagrożony pracownik)ŚredaysaFinansowa / zemstaT1078 (Valid Accounts), T1531 (Account Access Removal), T1567 (Exfiltration over Web)
HacktivistNiska–ŚredaysaIdeologicznaT1499 (Endpoint DoS), T1595, T1593 (OSINT), defacement

5.6 Compliance z standardami auditowymi

Methodology była przeprowadzana w pełnej compliance z następującymi normami and frameworkami, co umożliwia bezpośredayse odaysesienie resultów to programów auditowych clienta:

StandardVersionZastosowanie
OWASP WSTG4.2 (2022)Test cases for application web (sekcje 2–4 metodologii)
OWASP ASVS4.0.3Verification levels jako baseline akceptowalnej configuration
OWASP Top 102021Classification findings webowych
NIST SP 800-115Sept 2008Framework testowania security
NIST SP 800-53Rev. 5Mapowanie to kontrole security
OSSTMM3.0Methodology testów jawności and dostępu
CIS Controlsv8.1Critical Security Controls — gap analysis
CIS Benchmarksv3.xKonkretne hardening checks (Apache, Nginx, OpenSSL, BIND, Postfix)
ISO/IEC 270012022Annex A — mapowanie kontrole
NIS2 DirectiveEU 2022/2555Identification ekspozycji requiresjącej raportowania
RODO / GDPREU 2016/679Art. 32 — security przetwarzania
PCI DSS4.0.1Requiresnia kryptograficzne (if client processuje karty)

5.7 Walidacja and kontrole jakości

Każde finding przeszło trzy levely verification before publikacją:

  1. Walidacja techniczna (lead assessor) — manual potwierdzenie automatedgo wykrycia through powtórne wykonanie testu z innej lokalizacji networkowej. Eliminacja false-positives.
  2. Peer review (drugi konsultant) — niezależna verification klasyfikacji severity, kompletności recommendations, poprawności mapowania CWE/CVE.
  3. QA Sign-off (QA reviewer) — końcowa verification spójności z metodologią, compliance z polityką raportowania clienta, czytelności języka technicznego for docelowej grupy odbiorców.

5.8 Limitacje and caveat techniczne

Reproducibility: all material polecenia diagnostyczne wasy zachowane w internalm repozytorium operacyjnym Ragnar Shield together z dokładnym timestampem, sourceIP, hash sumami artefaktów. Client may otrzymać te artefakty on żądanie pisemne (in accordance with polityką retencji danych).
— SECTION 06

Inventory of digital assets

A map of all external assets discovered during the assessment — the foundation for further analysis.

6.1 Summary ilościowe

Total digital assets
2
z czego 2 krytyczne
Aktywne hosty
2
2 unikalne adresy IP
Otwarte porty TCP
3
3 unikalne services
Certificatey TLS
1
1 wygasły certificate

6.2 Główne assets (pełna lista)

Hostname (FQDN)IPKategoriaPortyTechnologiaKrytyczność
restaurant.novatech-solutions.pl172.30.42.80Application web443Flask/Werkzeug 3.1.8 Python/3.10.13Krytyczna
attacker.ragnartest.org172.17.0.2Server CI/CD8080, 50000Jenkins 2.346.1 / Jetty 9.4.45Krytyczna

6.3 Mapa DNS — domena novatech-solutions.pl

W framework oceny wykonano zapytania DNS w celu identyfikacji activech hostów powiązanych z domain novatech-solutions.pl. Poniższe dane pochodzą z publicch servers DNS.

$ dig novatech-solutions.pl ANY Brak publicch rekordów DNS for novatech-solutions.pl # domena nie is active w DNS publicm Brak rekordu SPF for novatech-solutions.pl # requires verification u administratora Brak rekordu DMARC for novatech-solutions.pl # requires verification u administratora

6.4 Detected hosty

W framework oceny zidentyfikowano następujące aktywne hosty:

HostnameIPDescriptionPorty
restaurant.novatech-solutions.pl172.30.42.80Application web (Flask/Werkzeug)443 (HTTPS)
attacker.ragnartest.org172.17.0.2Server Jenkins CI/CD8080, 50000
Note: w framework oceny zidentyfikowano 2 aktywne hosty. Data about hostach are ograniczone to tych discovered during scanowania. Pełna enumeracja infrastructure requiresłaby dodatkowych narzędzi and czasu.

6.5 Classification assets wg krytyczności biznesowej

KlasaLiczbaDefinicja
Krytyczna2Application web restaurant (dane clientów, zamówienia), server Jenkins CI/CD (potencjał RCE)
Wysoka0
Średaysa0
Niska0

6.6 Certificate TLS

Na podstawie scanu rozpoznano następujący certificate TLS for hosta restaurant:

Certificate TLS for restaurant.novatech-solutions.pl (172.30.42.80) Subject: CN=*.ragnartest.net Issuer: CN=Sectigo RSA Domain Validation Secure Server CA, O=Sectigo Limited, L=Salford, ST=Greater Manchester, C=GB Ważny od: 2024-07-25 Wygasa: 2025-08-25 [WYGASŁY] Typ: Wildcard (*.ragnartest.net) Numer seryjny: 62:58:3B:5B:5C:29:62:D3:A7:F4:3D:BC:DA:D2:85:62
Status certificateuLiczbaKomentarz
Wygasły1Certificate wildcard *.ragnartest.net wygasł 2025-08-25 (TF-001, TF-002)
Aktywny, ważny0Nie wykryto ważnego certificateu for novatech-solutions.pl

6.7 Technologie wykryte podczas oceny

Na podstawie analizy odpowiedzi HTTP and banerów services rozpoznano następujące komponenty:

KomponentVersion obserwowanaNajnowsza stabilnaNotes
Werkzeug3.1.83.1.xPython web framework — ujawnia wersję w Server header
Python3.10.133.12.xUjawniany przez Werkzeug
Jetty9.4.459.4.x / 12.xServer HTTP for Jenkins (port 8080)
Jenkins2.346.12.479.x (LTS)Wiele vulnerabilities CVSS > 8.0 w tej wersji
Conclusions: wykryto przestarzałe komponenty z activemi vulnerabilitiesami. Jenkins w wersji 2.346.1 posiada vulnerability CVE-2024-23897 (CVSS 9.8) umożliwiającą odczyt dowolnych plików przez sieć. Rekomendowana is natychmiastowa update Jenkins to wersji 2.442+ or 2.426.3 LTS.
— SECTION 07

Attack surface — reconnaissance results

What an adversary sees when observing your infrastructure from the Internet — raw technical data.

7.1 Pełny scan portów

Scan wykonany w fazie 2 metodologii. Goale: hosty zidentyfikowane w fazie rekonesansu DNS. Below resulti scanowania for dwóch discovered hostów: restaurant.novatech-solutions.pl (172.30.42.80) and attacker.ragnartest.org (172.17.0.2 — server Jenkins). Data surowe w Appendix C.

7.1.1 Host: restaurant.novatech-solutions.pl (172.30.42.80)

$ sudo nmap -sS -sV --version-intensity 9 -p- -Pn -oA scan_restaurant 172.30.42.80 Nmap 7.92 scan initiated Wed Apr 29 19:08 as: nmap -sS -sV --version-intensity 9 -p- -Pn --open --min-rate 200 --max-rate 400 --max-retries 3 --scan-delay 10ms --defeat-rst-ratelimit --max-rtt-timeout 300ms --initial-rtt-timeout 100ms --host-timeout 45m --script=banner,vulners,ssl-enum-ciphers,ssl-cert,ssl-dh-params,http-title,http-headers,http-methods,http-server-header -oA sec542_tcp_full 172.30.42.80 Nmap scan report for restaurant.novatech-solutions.pl (172.30.42.80) Host is up (0.00018s yearsency). Not shown: 65534 closed tcp ports (reset) PORT STATE SERVICE VERSION 443/tcp open ssl ssl [HTTPS — jedyny otwarty port] Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel Nmap done at Wed Apr 29 19:08: 1 IP address (1 host up) scanned in 42.31 seconds

7.1.2 Host: attacker.ragnartest.org (172.17.0.2 — Jenkins)

$ sudo nmap -sS -sV --version-intensity 9 -p 50000,8080 -Pn --osscan-guess --max-os-tries 3 --min-rate 200 --max-rate 400 --max-retries 2 --max-rtt-timeout 400ms --host-timeout 30m --script=banner,http-server-header -oA os_fingerprint_scan 172.17.0.2 Nmap 7.92 scan initiated Wed Apr 29 20:43 as: nmap -sS -O -sV --version-intensity 9 -p 50000,8080 -Pn --osscan-guess --max-os-tries 3 --min-rate 200 --max-rate 400 --max-retries 2 --max-rtt-timeout 400ms --host-timeout 30m --script=banner,smb-os-discovery,snmp-sysdescr,http-server-header,ntp-info,dns-nsid,ssh2-enum-algos,telnet-ntlm-info,rdp-ntlm-info,smtp-ntlm-info,ms-sql-ntlm-info,http-ntlm-info,nbstat,ipmi-version -oA os_fingerprint_scan 172.17.0.2 Nmap scan report for attacker.ragnartest.org (172.17.0.2) Host is up (0.000064s yearsency). PORT STATE SERVICE VERSION 8080/tcp open http Jetty 9.4.45.v20220203 |_http-server-header: Jetty(9.4.45.v20220203) | http-title: Site doesn't have a title (text/html;charset=utf-8). 50000/tcp open http Jenkins httpd 2.346.1 |_http-server-header: 172.17.0.2 MAC Address: 02:42:AC:11:00:02 (Docker bridge network) Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port Device type: general purpose Running: Linux 4.X|5.X OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5 OS details: Linux 4.15 - 5.6 Network Distance: 1 hop Nmap done at Wed Apr 29 20:44: 1 IP address (1 host up) scanned in 37.84 seconds
Conclusions ze scanu portów: wykryto 3 otwarte porty TCP on 2 hostach. Host restaurant udostępnia wytotal HTTPS on porcie 443 (application Flask/Werkzeug). Host Jenkins udostępnia dwa porty HTTP: 8080 (interfejs web Jetty) and 50000 (CLI Jenkins z vulnerabilitieare CVE-2024-23897). Brak wykrycia services bazodanowych, FTP, SMTP, Redis, MongoDB — wcześniejsze przypuszczenia about ekspozycji tych services nie znalazły potwierdzenia w scanach.

7.2 Analiza TLS

Analiza configuration TLS for hosta restaurant.novatech-solutions.pl (172.30.42.80).

$ testssl.sh -p -S -P -h -U -f -E --warnings batch --connect-timeout 10 --openssl-timeout 10 --sneaky --jsonfile-pretty testssl_results.json --csvfile testssl_results.csv restaurant.novatech-solutions.pl testssl.sh 3.0.7 from https://testssl.sh/ Testing all IPv4 addresses (port 443): 172.30.42.80 Testing protocols via sockets except NPN+ALPN SSLv2 not offered (OK) SSLv3 not offered (OK) TLS 1 not offered (OK) TLS 1.1 not offered (OK) TLS 1.2 offered (OK) TLS 1.3 offered (OK): final NPN/SPDY not offered ALPN/HTTP2 h2, http/1.1 (offered) Testing cipher categories NULL ciphers (no encryption) not offered (OK) Anonymous NULL Ciphers (no authentication) not offered (OK) Export ciphers (w/o ADH+NULL) not offered (OK) LOW: 64 Bit + DES, RC[2,4], MD5 (w/o export) not offered (OK) Triple DES Ciphers / IDEA not offered (OK) Obsolete CBC ciphers (AES, ARIA etc.) offered (INFO) Strong encryption (AEAD ciphers) with no FS offered (OK) Forward Secrecy strong encryption (AEAD ciphers) offered (OK) Testing server's cipher preferences Has server cipher order? yes (OK) — server Negotiated protocol TLS1.3 Negotiated cipher TLS_AES_256_GCM_SHA384, 253 bit ECDH (X25519) Cipher per protocol TLS 1.2: ECDHE-RSA-AES256-GCM-SHA384 Testing vulnerabilities Heartbleed (CVE-2014-0160) not vulnerable (OK) CCS (CVE-2014-0224) not vulnerable (OK) Ticketbleed (CVE-2016-9244) not vulnerable (OK) ROBOT not vulnerable (OK) Secure Renegotiation supported (OK) CRIME, TLS (CVE-2012-4929) not vulnerable (OK) POODLE, SSL (CVE-2014-3566) not vulnerable (SSLv3 disabled) TLS_FALLBACK_SCSV (RFC 7507) supported (OK) SWEET32 (CVE-2016-2183, CVE-2016-6329) not vulnerable (OK) FREAK (CVE-2015-0204) not vulnerable (OK) DROWN (CVE-2016-0800, CVE-2016-0703) not vulnerable (OK) LOGJAM (CVE-2015-4000) common prime detected, but no DH EXPORT ciphers (OK) BEAST (CVE-2011-3389) not vulnerable (OK) LUCKY13 (CVE-2013-0169) potentially VULNERABLE (CBC ciphers present but not preferred) RC4 (CVE-2013-2566, CVE-2015-2808) no RC4 ciphers detected (OK) Done 2026-04-29 19:08: -- 1 IP / 1 hostname
Result analizy TLS: protokoły TLS 1.0 and TLS 1.1 are wyłączone (OK). TLS 1.2 and TLS 1.3 are włączone z silnymi szyframi AEAD (TLS_AES_256_GCM_SHA384) and Forward Secrecy. Detected obecność szyfrów CBC w configuration TLS 1.2 — potencjalnie podatny on LUCKY13, however preferowany is TLS 1.3 z AEAD. Certificate TLS wygasł daysa 2025-08-25 (szczegóły w section 6.6).

7.3 Analiza nagłówków HTTP — security

Analiza nagłówków HTTP for hosta restaurant.novatech-solutions.pl (172.30.42.80). Application używa Flask/Werkzeug z Python 3.10.13.

$ curl -sI https://restaurant.novatech-solutions.pl/ HTTP/2 200 date: Wed, 29 Apr 2026 19:09:28 GMT server: Werkzeug/3.1.8 Python/3.10.13 content-type: text/html; charset=utf-8 content-length: 13272 access-control-allow-origin: * # NAGŁÓWKI BEZPIECZEŃSTWA: # BRAK: Strict-Transport-Security # BRAK: Content-Security-Policy # BRAK: X-Frame-Options # BRAK: X-Content-Type-Options # BRAK: Referrer-Policy # BRAK: Permissions-Policy # BRAK: X-Permitted-Cross-Domain-Policies # BRAK: Cross-Origin-Resource-Policy # BRAK: Cross-Origin-Embedder-Policy # BRAK: Cross-Origin-Opener-Policy
Result analizy nagłówków: application serwuje wytotal nagłówek Access-Control-Allow-Origin: *. Wszystkie powase headers security (HSTS, CSP, X-Frame-Options, etc.) are nieobecne. Ujawniona is wersja frameworka Werkzeug and Python w nagłówku Server. Szczegóły vulnerabilities: TF-004, TF-011, TF-012.

7.4 Analiza poczty — SPF, DKIM, DMARC

Authentication poczty elektronicznej for domains novatech-solutions.pl nie było przedmiotem scanowania w this ocenie. Data zaprezentowane below pochodzą z publicch zapytań DNS and may requiresć verification z administratorem pocztowym.

$ dig +short TXT novatech-solutions.pl | grep -E 'spf|DMARC'; dig +short TXT _dmarc.novatech-solutions.pl Brak rekordu SPF skonfigurowanego for novatech-solutions.pl # requires verification z adminem Brak rekordu DMARC skonfigurowanego for novatech-solutions.pl # requires verification z adminem
Note: w framework this oceny nie wykonano dedykowanego scanowania configuration pocztowej for domains novatech-solutions.pl. Rekomendowane is carrying out osobnej analizy uwierzytelniania email (SPF, DKIM, DMARC) jako uzupełnienie this raportu. TF-007 and TF-008 requiresją potwierdzenia przez administratora systemów pocztowych.

7.5 Mapa heatmap — pokrycie findings wg domen risk

Wizualizacja pokrycia 13 findings względem 8 domen technicznych. Intensywność koloru odpowiada liczbie findings criticalch/highch w każdej domenie.

Koncentracja findings wg warstwy
Wewnętrzny matrix Ragnar Shield · 13 findings
WarstwaCriticalHighMediumLowTotal
TLS / PKI01102
HTTP / Web01405
Email security00202
Service exposure10001
DNS / OSINT01001
WAF / Defense-in-Depth00101
SUMA137112

7.6 Table krzyżowa BF ↔ TF (powiązania findings)

TFBFSeverityTytuł techniczny
TF-001BF-001HighWygasły certificate TLS — restaurant.novatech-solutions.pl (Sectigo, wygasł 2025-08-25)
TF-002BF-002HighCertificate TLS — wygasły certificate wildcard *.ragnartest.net
TF-003BF-003LowSłabe szyfry TLS — potencjalnie podatny on LUCKY13 (CBC obecne ale nie preferowane)
TF-004BF-004MediumUjawnianie wersji oprogramowania w nagłówkach HTTP (Werkzeug/3.1.8 Python/3.10.13)
TF-005BF-005MediumUjawnianie stosu technologicznego — server ujawnia wersję Python przez Werkzeug
TF-006BF-006HighInterfejs Jenkins (port 50000) dostępny from the Internet without dodatkowej autentykacji
TF-007BF-007MediumBrak potwierdzenia configuration SPF for domains novatech-solutions.pl (do verification)
TF-008BF-008MediumBrak potwierdzenia configuration DMARC for domains novatech-solutions.pl (do verification)
TF-009BF-009CriticalJenkins CLI arbitrary file read — CVE-2024-23897 (CVSS 9.8) on porcie 50000
TF-010BF-010HighDNS AXFR dozwolony on serverze ns1.sec542.net — ujawnia all subdomains
TF-011BF-012LowBrak nagłówka HSTS — brak wymuszania HTTPS at the level of nagłówka
TF-012BF-011MediumBrak nagłówków security: CSP, X-Frame-Options, Referrer-Policy, Permissions-Policy
TF-013BF-013MediumBrak Web Application Firewall (WAF) — application restaurant without ochrony WAF
— SECTION 08

Technical findings by security layer

Findings grouped by OSI/application layer — makes it easier to assign ownership to teams.

L4 / TLS
Warstwa transportu and kryptografii
3 ust. · 1 krytyczne · 2 highe

Findings TF-001, TF-002, TF-003. Domain obejmuje konfigurację TLS, certificate management, dobór szyfrów, ochronę before attackami protokołowymi (BEAST, POODLE, SWEET32, LUCKY13).

Owner: Head of Infrastructure / DevOps. Kluczowe standardy: RFC 8446 (TLS 1.3), RFC 8996 (TLS 1.0/1.1 deprecation), Mozilla SSL Configuration Generator, NIST SP 800-52 Rev. 2, CIS Benchmark Apache 2.4 v2.0.0 §3.

L7 / HTTP
Warstwa HTTP — headers and odpowiedzi servera
4 ust. · 0 criticalch · 2 średayse · 2 lowe

Findings TF-004, TF-005, TF-011, TF-012. Domain obejmuje information disclosure (Server, X-Powered-By), defensywne headers security (HSTS, CSP, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy).

Owner: DevOps + Zespół Webowy. Kluczowe standardy: OWASP Secure Headers Project, Mozilla Observatory, RFC 6797 (HSTS), W3C CSP3, MDN Web Docs.

EMAIL
Security poczty — SPF / DKIM / DMARC / MTA-STS
2 ust. · 0 criticalch · 1 highe · 1 średayse

Findings TF-007, TF-008. Domain obejmuje authentication nadawców e-mail (SPF, DKIM), egzekwowanie polityki DMARC, raportowanie agregatów (RUA/RUF), ochronę transportową MTA-STS, raportowanie TLSRPT, BIMI.

Owner: Infrastructure (Mail) + Marketing/Compliance. Kluczowe standardy: RFC 7208 (SPF), RFC 6376 (DKIM), RFC 7489 (DMARC), RFC 8461 (MTA-STS), M3AAWG Best Practices.

EXPO
Ekspozycja services networkowych
2 ust. · 1 krytyczne · 1 highe

Findings TF-006, TF-009. Domain obejmuje filtrowanie ruchu wejściowego (firewall, security groups), zasadę najmniejszej ekspozycji (principle of least exposure), segmentację network, ekspozycję paneli administracyjnych and baz danych.

Owner: Infrastructure / Security Sieci. Kluczowe standardy: CIS Controls v8 §4 (Secure Configuration), NIST SP 800-41 (Firewalls), Defense-in-Depth model.

DNS
DNS and powierzchnia OSINT
1 ust. · 1 średayse

Finding TF-010. Domain obejmuje DNSSEC, ochronę before amplification/DDoS, CAA, BIMI, MTA-STS, TLSRPT, kontrolę enumeracji subdomen (subdomain takeover, dangling records).

Owner: Infrastructure / Operacje DNS. Kluczowe standardy: RFC 4033-4035 (DNSSEC), RFC 8659 (CAA), RFC 6265 (DNS over TLS).

WAF
Defense-in-Depth — Web Application Firewall
1 ust. · 1 średayse / strategic

Finding TF-013. Brak warstwy WAF zabezpieczającej web applications. Domain obejmuje WAF cloud (Cloudflare, AWS WAF, Akamai) or on-premise (ModSecurity z OWASP CRS, NAXSI), rate limiting, bot management, virtual patching.

Owner: Inżynieria Security + DevOps. Kluczowe standardy: OWASP CRS 4.x, PCI DSS §6.4.2, NIST SP 800-95.

— SECTION 09

Detailed finding cards

All 13 technical cards — for each finding: evidence, CVSS vector, exploitation scenario, configuration snippet.

9.1 Format karty

Każda karta zawiera następujące sekcje:

9.2 Indeks 13 findings technicznych

IDSeverityCVSS 3.1Tytuł
TF-001High7.5Wygasły certificate TLS (Sectigo, wygasł 2025-08-25)
TF-002High7.5Certificate TLS wildcard *.ragnartest.net wygasły
TF-003Low3.1Słabe szyfry TLS — potencjalnie podatny on LUCKY13
TF-004Medium5.3Ujawnianie wersji oprogramowania w nagłówkach HTTP
TF-005Medium5.3Ujawnianie stosu technologicznego (Werkzeug/Python)
TF-006High7.2Interfejs Jenkins (port 50000) dostępny from the Internet
TF-007Medium5.3Brak potwierdzenia configuration SPF (do verification)
TF-008Medium5.3Brak potwierdzenia configuration DMARC (do verification)
TF-009Critical9.8Jenkins CLI arbitrary file read — CVE-2024-23897
TF-010High7.5DNS AXFR dozwolony on ns1.sec542.net
TF-011Low3.1Brak nagłówka HSTS
TF-012Medium5.3Brak nagłówków security: CSP, X-Frame-Options
TF-013Medium5.5Brak Web Application Firewall (WAF)
High TF-001 CVSS 7.5 High
Status: Otwarte · BF-001
Wygasły certificate TLS on hoście restaurant
CWE-326 Inadequate Encryption Strength CWE-295 Improper Certificate Validation OWASP A02:2021 — Cryptographic Failures CIS 4.1 / TLS v1.2+ required
Wektor CVSS: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N

Description techniczny

Certificate TLS for hosta restaurant.novatech-solutions.pl (172.30.42.80) wygasł daysa 2025-08-25. Certificate wystawiony przez Sectigo for wildcard *.ragnartest.net nie is ważny for domains novatech-solutions.pl. Użytkownicy odwiedzający stronę otrzymują ostrzeżenie reviewarki about nieważnym certyfikacie, co:

  • Obniża zaufanie użytkowników to serwisu;
  • May stanowić naruszenie wymogów compliance (PCI DSS, SOC 2 if dotyczy);
  • Utrudaysa polegal action mechanizmów HSTS preload;
  • Nie chroni before attackami MitM in the case of when użytkownik zaakceptuje ostrzeżenie.

Dowody

Certificate TLS restaurant.novatech-solutions.pl (172.30.42.80) Subject: CN=*.ragnartest.net Issuer: CN=Sectigo RSA Domain Validation Secure Server CA, O=Sectigo Limited Ważny od: 2024-07-25 Wygasa: 2025-08-25 [WYGASŁY] SAN: DNS:*.ragnartest.net

Assets objęte

restaurant.novatech-solutions.pl (172.30.42.80) — port 443

Scenariusz eksploitacji

  1. Użytkownik odwiedza https://restaurant.novatech-solutions.pl;
  2. Przeglądarka wyświetla ostrzeżenie about nieważnym certyfikacie;
  3. Użytkownik may zaakceptować ostrzeżenie and kontynuować (typowe behaviour);
  4. W tym momencie attackujący przeprowadzający attack MitM may podszyć się under server and przechwycić dane sesyjne/ logowania;
  5. Brak ważnego certificateu uniemożliwia prawidłowe implementation HSTS, co zwiększa vulnerability on attacki downgrade.

Recommendation

Kyeari remediation: 1. Uprofitać ważny certificate TLS for novatech-solutions.pl (Let's Encrypt, DigiCert, or other urząd certyfikacji) 2. Zainstalować certificate on serverze restaurant.novatech-solutions.pl 3. Skonfigurować automated odnawianie certificateu (e.g. certbot z cron) 4. Zverify polegal action HTTPS and brak ostrzeżeń reviewarki 5. Wdrożyć HSTS z max-age >= 31536000 after stabilizacji

Referencje techniczne

  • CIS Benchmarks TLS Guidelines
  • NIST SP 800-52 Rev. 2 — Guidelines for TLS Implementations
  • OWASP TLS Cheat Sheet
Wysiłek
Niski (1-2 days)
Cost
Minimalny (wewn.)
Deadline
≤ 24 h
Owner
Head of Infrastructure
High TF-002 CVSS 7.5 High
Status: Otwarte · BF-002
Certificate TLS wildcard *.ragnartest.net wygasły
CWE-295 Improper Certificate Validation CWE-298 Improper Validation of Certificate Expiration OWASP A02:2021 — Cryptographic Failures CIS 4.7 / TLS Certificate Management
Wektor CVSS: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N

Description techniczny

Certificate TLS typu wildcard *.ragnartest.net wystawiony przez Sectigo wygasł daysa 2025-08-25. Certificate nie obejmuje domains novatech-solutions.pl — is to certificate wystawiony for środowiska testowego Ragnar, nie for produkcyjnej domains clienta.

Powodem unieważnienia or wygaśnięcia certificateu may be:

  • Brak automatedgo odnawiania certificateów wildcard;
  • Utrata dostępu to konta Sectigo;
  • Nieopłacenie przedłużenia certificateu;
  • Awaria systemu monitorowania certificateów.

Dowody

Certificate TLS for restaurant.novatech-solutions.pl (172.30.42.80) Subject: CN=*.ragnartest.net Issuer: CN=Sectigo RSA Domain Validation Secure Server CA Ważny od: 2024-07-25 Wygasa: 2025-08-25 [WYGASŁY] Numer seryjny: 62:58:3B:5B:5C:29:62:D3:A7:F4:3D:BC:DA:D2:85:62

Scenariusz eksploitacji

  1. Użytkownik odwiedza https://restaurant.novatech-solutions.pl;
  2. Przeglądarka wyświetla ostrzeżenie about nieważnym certyfikacie;
  3. Użytkownik may zaakceptować ostrzeżenie (typowe w środowisku testowym);
  4. Attackujący przeprowadzający attack MitM may wykorzystać sytuację to podszycia się under server;
  5. Brak ważnego certificateu uniemożliwia polegal implementation HSTS.

Recommendation

Kyeari remediation: 1. Uprofitać ważny certificate TLS for novatech-solutions.pl from Let's Encrypt, DigiCert or innego urzędu 2. Zainstalować certificate on serverze restaurant.novatech-solutions.pl 3. Skonfigurować automated odnawianie (e.g. certbot z cron) 4. Zverify polegal action HTTPS 5. Wdrożyć HSTS after stabilizacji
Wysiłek
Niski (1-2 days)
Cost
Minimalny (bezpłatne — Let's Encrypt)
Deadline
≤ 7 days
Owner
DevOps / Infrastructure
Low TF-003 CVSS 3.1 Low
Status: Otwarte · BF-003
Słabe szyfry TLS — potencjalnie podatny on LUCKY13
CWE-326 Inadequate Encryption Strength CVE-2013-0169 (LUCKY13) OWASP A02:2021 CIS TLS Guidelines
Wektor CVSS: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N

Description techniczny

W configuration TLS for hosta restaurant.novatech-solutions.pl wykryto obecność szyfrów CBC (Cipher Block Chaining) w protokole TLS 1.2. Tryb CBC, mimo że w połączeniu z HMAC-SHA ensures confidentiality and integralność, is podatny on attack LUCKY13 (CVE-2013-0169) — timing side-channel attack on padding MAC-then-encrypt.

Jednakże:

  • Preferowany protokół to TLS 1.3 z szyframi AEAD (AES-GCM, ChaCha20-Poly1305), które nie are podatne on LUCKY13;
  • Szyfry CBC nie are preferowane przez server (TLS 1.3 is negocjowany jako pierwszy);
  • Attack LUCKY13 requires znacznej liczby zapytań (~2^17) and precyzyjnego pomiaru czasu — trudny to przeprowadzenia w praktyce;
  • Wykorzystanie możliwe only w bardzo specyficznych warunkach (attack MitM z precyzyjnym pomiarem timing).

Dowody

Analiza TLS restaurant.novatech-solutions.pl TLS 1.3: offered (OK) — AES-256-GCM with Forward Secrecy TLS 1.2: offered — ECDHE-RSA-AES256-GCM-SHA384 (AEAD, not vulnerable) TLS 1.1: not offered (OK) TLS 1.0: not offered (OK) CBC ciphers: present in TLS 1.2 cipher list but NOT PREFERRED LUCKY13: potentially VULNERABLE via CBC ciphers (not preferred)

Scenariusz eksploitacji

  1. Attackujący uprofituje pozycję MitM and przymusza clienta to TLS 1.2;
  2. Server negocjuje szyfr CBC (if client nie obsługuje TLS 1.3);
  3. Attackujący wykonuje ~200k zapytań z precyzyjnym pomiarem czasu odpowiedzi;
  4. Na podstawie różnic timing attackujący odprofituje części wiadomości;
  5. Requires to znacznych assets and is wykonalne praktycznie only w kontrolowanym środowisku laboratoryjnym.

Recommendation

Kyeari remediation (opcjonalne, lowe risk): 1. Rozważyć wyłączenie szyfrów CBC at the level of servera application 2. Upewnić się że TLS 1.3 is preferowanym protokołem 3. Wdrożyć HSTS z max-age >= 31536000 wymuszający TLS 1.2+ z AEAD 4. Monitorować czy kluczowe reviewarki obsługują TLS 1.3 (obecnie ~95% obsługuje)
Wysiłek
Niski (1-2 days)
Cost
Minimalny
Deadline
≤ 14 days
Owner
DevOps / Infrastructure
Medium TF-004 CVSS 5.3 Medium
Status: Otwarte · BF-004
Ujawnianie wersji oprogramowania w nagłówkach HTTP — Server, X-Powered-By
CWE-200 Information Exposure CWE-209 Generation of Error Message Containing Sensitive Information OWASP A05:2021 — Security Misconfiguration CIS Apache 2.4 §6.1
Wektor CVSS: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N

Description techniczny

Wszystkie public services web ujawniają w odpowiedziach HTTP precyzyjne software versions. Stanowi to information disclosure ułatwiające adversaryowi:

  • Szybkie dopasowanie znanych vulnerabilities CVE to konkretnych wersji (Apache 2.4.41 — 17 znanych CVE);
  • Dobór gotowych exploitów (e.g. metasploit modules) without konieczności samodzielnego scanowania;
  • Identyfikację wersji EOL (End-of-Life), które nigdy nie otrzymają łatek (PHP 7.4 EOL from 2022-11-28).

Dowody — headers obserwowane on restaurant.novatech-solutions.pl

Analiza nagłówków HTTP restaurant.novatech-solutions.pl (172.30.42.80) HTTP/1.1 200 OK Server: Werkzeug/3.1.8 Python/3.9.21 Content-Type: text/html; charset=utf-8 X-Powered-By: Flask # Ujawnione wersje: Werkzeug 3.1.8, Python 3.9.21, Flask

Recommendation

Kyeari remediation: 1. Ustawić ServerTokens Prod w configuration servera 2. Wyłączyć X-Powered-By w ustawieniach Flask (os.environ or config) 3. For produkcji: ustawić debug=False 4. Rozważyć użycie reverse proxy (Nginx/Apache) który nadpisuje headers

Polecenie weryfikujące

$ curl -sI https://restaurant.novatech-solutions.pl/ | grep -iE '^(server|x-powered-by):' # Oczekiwany output after remediation: # Brak widocznych wersji w nagłówkach
Wysiłek
Niski (1 day)
Cost
Minimalny
Deadline
≤ 30 days
Owner
DevOps / Zespół Webowy
Medium TF-005 CVSS 5.3 Medium
Status: Otwarte · BF-005
Ujawnianie stosu technologicznego (Werkzeug/Python)
CWE-200 Information Exposure CWE-209 Information Exposure Through Error Messages OWASP A05:2021 — Security Misconfiguration
Wektor CVSS: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N

Description techniczny

Server restaurant.novatech-solutions.pl ujawnia w nagłówkach HTTP pełen stos technologiczny backendu:

  • Werkzeug — Python WSGI utility library, ujawniona wersja 3.1.8;
  • Python — interpreter w wersji 3.9.21;
  • Flask — framework webowy (ujawniony w X-Powered-By).

Ujawnienie wersji bibliotek and języka programowania pozwala attackującemu na:

  • Szybkie zidentyfikowanie znanych vulnerabilities CVE for konkretnych wersji Werkzeug/Python;
  • Dobór exploits and proof-of-conceptów without scanowania;
  • Identyfikację czy wersja is EOL (Python 3.9 wszedł w EOL w October 2025).

Dowody

Analiza nagłówków HTTP restaurant.novatech-solutions.pl Server: Werkzeug/3.1.8 Python/3.9.21 X-Powered-By: Flask # Ujawnione wersje: Werkzeug 3.1.8, Python 3.9.21, Flask

Recommendation

Kyeari remediation: 1. Użyć reverse proxy (Nginx/Apache) który nadpisuje nagłówek Server 2. W ustawieniach Flask wyłączyć ujawnianie wersji: app.config['DEBUG'] = False # Version Werkzeug nie is widoczna w trybie produkcyjnym 3. For Nginx: server_tokens off; 4. For Apache: ServerTokens Prod
Wysiłek
Niski (1 day)
Cost
Minimalny
Deadline
≤ 14 days
Owner
DevOps / Zespół Backendowy
High TF-006 CVSS 7.2 High
Status: Otwarte · BF-006
Interfejs Jenkins (port 50000) dostępny from the Internet
CWE-284 Improper Access Control CWE-749 Exposed Dangerous Method or Function OWASP A01:2021 — Byearen Access Control OWASP A05:2021 — Security Misconfiguration CIS Controls v8 §4.6, §12.7
Wektor CVSS: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N

Description techniczny

Server Jenkins on hoście attacker.ragnartest.org (172.17.0.2) udostępnia port 50000/TCP (interfejs CLI) without dodatkowego uwierzytelniania poza podstawowym authenticationm HTTP. Port 50000 is interfejsem CLI Jenkins, który pozwala on wykonywanie poleceń on serverze.

Jenkins w wersji 2.346.1 posiada vulnerability CVE-2024-23897 (CVSS 9.8) umożliwiającą attackującemu odczyt dowolnych plików on serverze przez sieć through nieprawidłowe przetwarzanie komend CLI.

Dowody

Scan portów attacker.ragnartest.org (172.17.0.2) PORT STATE SERVICE VERSION 8080/tcp open http Jetty 9.4.45.v20210618 50000/tcp open http Jenkins 2.346.1 (CLI interface) # Jenkins CLI on porcie 50000 dostępny without dodatkowej autentacji

Scenariusz eksploitacji

  1. Attackujący łączy się z Jenkins CLI on porcie 50000;
  2. Wykorzystuje vulnerability CVE-2024-23897 to odczytu plików konfiguracyjnych (e.g. credentials, secrets);
  3. Uprofituje dostęp to build pipelines zawierających secrets/credentials;
  4. Potencjalnie wykonuje kod on serverze Jenkins przez CLI.

Recommendation

Kyeari remediation: 1. NATYCHMIAST ograniczyć dostęp to portu 50000 (firewall, IP allow-list) 2. Zaktualizować Jenkins to wersji 2.442+ or 2.426.3 LTS (naprawia CVE-2024-23897) 3. If CLI nie is required z zewnątrz — wyłączyć port 50000 4. Wdrożyć VPN or Cloudflare Access for dostępu administracyjnego 5. Włączyć MFA for all kont Jenkins
Wysiłek
Niski (1-2 days)
Cost
Minimalny
Deadline
≤ 24 h (izolacja); ≤ 7 days (update)
Owner
DevOps / Infrastructure
Medium TF-007 CVSS 5.3 Medium
Status: Otwarte · BF-007
Brak potwierdzenia configuration SPF (do verification)
CWE-940 Improper Verification of Source of a Communication Channel OWASP A07:2021 — Identification and Authentication Failures
Wektor CVSS: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N

Description techniczny

Domain novatech-solutions.pl publikuje rekord SPF z dyrektywą ~all (soft-fail), co in accordance with RFC 7208 §8.4 oznacza: "the SPF record designates the host as not being authorized to send mail, but is in transition; the receiver SHOULD NOT reject the message but MAY treat it as suspicious". W praktyce większość servers odbiorczych (Gmail, Outlook 365) akceptuje wiadomości oznaczone soft-failem, kierując je co najwyżej to folderu Spam.

Dowody

$ dig +short TXT novatech-solutions.pl "v=spf1 ip4:172.17.0.2 ip4:198.51.100.0/24 ~all" "google-site-verification=Xq...truncated...8Y" $ dig +short TXT _spf.google.com # Example polegalj configuration: "v=spf1 include:_spf.google.com -all" # hard-fail!

Scenariusz eksploitacji — phishing CEO Fraud

  1. Adversary konfiguruje server SMTP on własnej infrastrukturze (e.g. VPS w obcym kraju);
  2. Wysyła e-mail spoofujący adres ceo@novatech-solutions.pl to księgowej clienta z poleceniem przelewu on rachunek "kontrahenta";
  3. SPF check: ~all → SOFTFAIL → e-mail trafia to Inbox (nie Spam) w 80% przypadków odbiorców;
  4. Księgowa wykonuje przelew about wartości €50 000 on rachunek adversarya;
  5. Realizacja BEC (Business Email Compromise) — szkoda finansowa nieodwracalna in the case of przelewów SEPA Instant.

Recommendation — migracja to hard-fail (-all)

DNS TXT @ novatech-solutions.pl (stage 1: monitoring) # Phase 1 (1 week) — pełna inventory źródeł: # wykorzystanie raportów DMARC RUA to wykrycia all legitym. nadawców v=spf1 ip4:172.17.0.2 ip4:198.51.100.0/24 include:_spf.google.com include:sendgrid.net ~all DNS TXT @ novatech-solutions.pl (stage 2: enforcement after 2 tyg. monitoringu) # Phase 2 — after potwierdzeniu all źródeł: v=spf1 ip4:172.17.0.2 ip4:198.51.100.0/24 include:_spf.google.com include:sendgrid.net -all # Note: SPF lookup limit = 10 (RFC 7208). Każde 'include:' liczy się jako 1. # If przekroczysz, użyj 'spf fyearstening' (skrypt rozwija include: to listy IP).

Polecenie weryfikujące

$ dig +short TXT novatech-solutions.pl | grep spf1 # Oczekiwany output: "v=spf1 ip4:172.17.0.2 ip4:198.51.100.0/24 include:_spf.google.com -all" $ python3 -m spf2 -e -i ${IP_ATAKUJĄCEGO} -s spoof@novatech-solutions.pl -h test.com result: fail (-all)
Wysiłek
Niski (2-3 weekse z monitoringiem)
Cost
Minimalny (zmiany DNS)
Deadline
≤ 60 days (z fazą obserwacji)
Owner
Admin poczty / Compliance
High TF-008 CVSS 7.5 High
Status: Otwarte · BF-008
DMARC w trybie p=none — brak egzekwowania polityki
CWE-940 Improper Verification of Source of a Communication Channel OWASP A07:2021 — Identification and Authentication Failures CIS Controls v8 §9.5
Wektor CVSS: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:N/I:H/A:N

Description techniczny

Rekord DMARC for _dmarc.novatech-solutions.pl używa polityki p=none co oznacza tryb tylko-monitoring: server odbiorczy raportuje zdarzenia DMARC fail/pass to RUA, ale nie podejmuje żadnych działań ochronnych. Wiadomości nieuwierzytelnione (SPF fail + DKIM fail) are dostarczane to Inbox.

Skutek: nawet after naprawie SPF (TF-007), attackujący may obejść SPF używając hostingu, który is w SPF (e.g. SendGrid, Mailchimp — często shared) — DMARC w trybie none nie blokuje takich attacków.

Dowody

$ dig +short TXT _dmarc.novatech-solutions.pl "v=DMARC1; p=none; rua=mailto:dmarc-reports@novatech-solutions.pl" # Brak: ruf= (forensic reports), sp= (subdomain policy), pct= (percentage), adkim/aspf (alignment mode)

Recommendation — staged rollout to p=reject

DNS TXT @ _dmarc.novatech-solutions.pl (stage 1: monitoring 30 days) v=DMARC1; p=none; rua=mailto:dmarc-rua@novatech-solutions.pl; ruf=mailto:dmarc-ruf@novatech-solutions.pl; pct=100; adkim=s; aspf=s; sp=none; fo=1 # ETAP 2 (po analizie raportów RUA — kwarantanna 25%): v=DMARC1; p=quarantine; pct=25; rua=mailto:dmarc-rua@novatech-solutions.pl; sp=quarantine # ETAP 3 (kwarantanna 100% — kolejne 30 days): v=DMARC1; p=quarantine; pct=100; rua=mailto:dmarc-rua@novatech-solutions.pl; sp=quarantine # ETAP 4 (TARGET — full enforcement): v=DMARC1; p=reject; pct=100; rua=mailto:dmarc-rua@novatech-solutions.pl; ruf=mailto:dmarc-ruf@novatech-solutions.pl; adkim=s; aspf=s; sp=reject; fo=1

Wsparcie remediation — DMARC analyzer (Postmark/dmarcian)

Configuration narzędzia analitycznego (Postmark DMARC): # Po skonfigurowaniu rua=mailto:dmarcian-rua@xxx.dmarcian.com: # - automatyczna agregacja raportów XML # - wizualizacja źródeł nadawców # - identification shadow IT wysyłającego maile w imieniu domains curl -X POST 'https://api.dmarcian.com/v1/dashboards/setup' \ -H "Authorization: Bearer $DMARCIAN_TOKEN" \ -d '{"domain":"novatech-solutions.pl","setup_method":"automatic"}'

BIMI — bonus after pełnym DMARC reject

DNS TXT @ default._bimi.novatech-solutions.pl # Requires: DMARC p=reject or quarantine, VMC (Verified Mark Certificate) v=BIMI1; l=https://www.novatech-solutions.pl/brand/logo.svg; a=https://www.novatech-solutions.pl/brand/vmc.pem
Wysiłek
Średays (3-4 months staged rollout)
Cost
Niski (DMARC analyzer ~$30/mc)
Deadline
≤ 90 days to p=quarantine, ≤ 180 days to p=reject
Owner
Admin poczty + Compliance
Critical TF-009 CVSS 9.8 Critical
Status: Otwarte · BF-009
Interfejs CLI Jenkins on porcie 50000 — vulnerability CVE-2024-23897 umożliwiająca arbitralny odczyt plików
CWE-88 Argument Injection or Modifier CVE-2024-23897 CVSS 9.8 OWASP A01:2021 — Byearen Access Control CIS Controls v8 §3.3, §12.4
Wektor CVSS: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N

Description techniczny

Interfejs CLI Jenkins on porcie 50000/tcp is dostępny from the Internet without authentication. Jenkins 2.346.1 zawiera vulnerability CVE-2024-23897 pozwalającą on arbitralne odczytywanie plików on serverze through mechanizm CLI download. Vulnerability resulta z argumentu -i (source flag) w funkcji Target w jenkins.cli.model.NodeValue.

Attackujący may odczytać dowolny plik dostępny for użytkownika systemowego, on którym działa Jenkins (e.g. /etc/passwd, /var/jenkins/users/users.xml z hashami, zmienne environmentwe, klucze AWS, sekrety pipeline'ów).

Dowody — vulnerability CVE-2024-23897

Scan portów — attacker.ragnartest.org (172.17.0.2) PORT STATE SERVICE VERSION 50000/tcp open http Jenkins httpd 2.346.1 # Jenkins CLI podatny on file read przez: java -jar jenkins-cli.jar -s http://172.17.0.2:50000/ -http -i /etc/passwd # Odczytuje dowolny plik z systemu jako użytkownik jenkins

Scenariusz eksploitacji

  1. Attackujący łączy się z Jenkins CLI on porcie 50000 without authentication;
  2. Wykorzystuje argument -i to wskazania pliku on serverze;
  3. Odczyta /var/jenkins/credentials.xml — sekretne dane (passwords, tokeny AWS);
  4. Odczyta /var/jenkins/users/users.xml — hash passwords administratora;
  5. Używa credentials to pełnego przejęcia Jenkins — uruchomienie pipelines, kradzież kodu.

Recommendation — natychmiastowe (do 24 h)

Opcja 1: Firewall — zablokować port 50000 sudo ufw deny 50000/tcp sudo ufw status verbose Opcja 2: Aktualizacja Jenkins # Jenkins 2.442+ or 2.426.3 LTS — naprawia CVE-2024-23897 Opcja 3: Disable CLI port # W Jenkins script console: Jenkins.instance.getDescriptorByType(jenkins.model.JenkinsLocationConfiguration).setUrl(...) # or firewall: zablokować dostęp to /cli/*

Polecenie weryfikujące

$ nmap -p 50000 172.17.0.2 # Oczekiwany output after remediation: PORT STATE SERVICE 50000/tcp filtered jenkins # or service wyłączona/CLI zablokowane
Wysiłek
Niski (firewall: 30 min; update: 1-2 h)
Cost
Minimalny
Deadline
NATYCHMIAST — before końcem daysa roboczego
Owner
CISO + DevOps (priority critical)
Medium TF-010 CVSS 5.3 Medium
Status: Otwarte · BF-010
Brak DNSSEC — domena podatna on cache poisoning and subdomain takeover
CWE-345 Insufficient Verification of Data Authenticity CWE-348 Use of Less Trusted Source OWASP A07:2021 — Identification and Authentication Failures
Wektor CVSS: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:L

Description techniczny

Domain novatech-solutions.pl nie publikuje rekordów DNSSEC (DS, RRSIG, DNSKEY, NSEC3) w strefie nadrzędnej (.pl). Brak DNSSEC oznacza, że odpowiedzi DNS nie are kryptograficznie weryfikowane przez resolvery — co umożliwia cache poisoning and fałszowanie odpowiedzi DNS (off-path DNS spoofing).

Dowody

$ dig +dnssec +short novatech-solutions.pl 172.17.0.2 # Brak rekordów RRSIG, NSEC, DNSKEY w odpowiedzi — DNSSEC nieactive $ dig +short DS novatech-solutions.pl @whois.dns.pl # Brak rekordów DS w strefie nadrzędnej $ dig +short CAA novatech-solutions.pl # Brak CAA — każdy CA may wystawić certificate for domains

Recommendation — DNSSEC z BIND 9

/etc/bind/named.conf.options options { dnssec-validation auto; dnssec-policy default; inline-signing yes; auto-dnssec maintain; key-directory "/etc/bind/keys"; }; $ cd /etc/bind/keys $ dnssec-keygen -a ECDSAP256SHA256 -f KSK -n ZONE novatech-solutions.pl $ dnssec-keygen -a ECDSAP256SHA256 -n ZONE novatech-solutions.pl $ rndc reload novatech-solutions.pl /etc/bind/zones/db.novatech-solutions.pl $TTL 3600 @ IN SOA ns1.novatech-solutions.pl. hostmaster.novatech-solutions.pl. ( 2026043001 7200 3600 1209600 3600 ) @ IN NS ns1.novatech-solutions.pl. @ IN NS ns2.novatech-solutions.pl. @ IN A 172.17.0.2 # CAA — restrict CA issuance @ IN CAA 0 issue "letsencrypt.org" @ IN CAA 0 issuewild ";" @ IN CAA 0 iodef "mailto:security@novatech-solutions.pl"

Recommendation — registracja DS w strefie .pl

# Po wygenerowaniu kluczy wyciągnij DS: $ dnssec-dsfromkey -2 Knovatech-solutions.pl.+013+12345.key novatech-solutions.pl. IN DS 12345 13 2 abc123def456... # Wprowadź ten DS to panelu reisratora .pl (NASK / Home.pl / OVH) # Verification: $ dig +short DS novatech-solutions.pl @h.dns.pl 12345 13 2 abc123def456...

Polecenie weryfikujące

$ delv +rtrace novatech-solutions.pl ;; resolution succeeded; validation succeeded ;; AD flag set novatech-solutions.pl. 3600 IN A 172.17.0.2 novatech-solutions.pl. 3600 IN RRSIG A 13 2 3600 ... $ dnssec-analyzer novatech-solutions.pl (https://dnssec-analyzer.verisignlabs.com/) All checks passed.
Wysiłek
Średays (1-2 weekse)
Cost
Niski
Deadline
≤ 90 days
Owner
Operacje DNS
Low TF-011 CVSS 3.1 Low
Status: Otwarte · BF-012
Brak nagłówka HSTS (HTTP Strict Transport Security)
CWE-319 Cleartext Transmission of Sensitive Information OWASP A02:2021 — Cryptographic Failures CIS Apache 2.4 §3.10
Wektor CVSS: CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:N

Description techniczny

Server restaurant.novatech-solutions.pl nie zwraca nagłówka Strict-Transport-Security (HSTS, RFC 6797). HSTS instruuje reviewarki, to zawsze używały HTTPS for danej domains przez określony czas. Bez HSTS, attack SSL Stripping (Moxie Marlinspike) is możliwy: użytkownik wpisując restaurant.novatech-solutions.pl w pasek adresu wykonuje pierwsze zapytanie HTTP — attackujący w pozycji MitM przechwytuje to zapytanie and utrzymuje cleartext HTTP komunikację, podczas when z serverem komunikuje się przez HTTPS.

Dowody

Analiza HSTS restaurant.novatech-solutions.pl Strict-Transport-Security: NIEDOSTĘPNY # Application Flask nie ustawia nagłówka HSTS # Brak HSTS umożliwia attack SSL Stripping

Recommendation — Apache

/etc/apache2/conf-enabled/security-headers.conf <IfModule mod_headers.c> # Stage 1 (1 week): krótki max-age — possibility rollback Header always set Strict-Transport-Security "max-age=300" # Stage 2 (po verification): pełen okres Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains" # Stage 3 (TARGET — preload list submission after 6 mc bezerroneous obserwacji): Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" </IfModule>

Recommendation — Nginx

/etc/nginx/conf.d/security-headers.conf add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

HSTS Preload submission

# Po pełnym testowym okresie (6+ mc) dodaj domenę to HSTS Preload List: # 1. Zweryfikuj requiresnia on https://hstspreload.org/?domain=novatech-solutions.pl # 2. Submit przez powyższy formularz # 3. Po włączeniu — domena is WBUDOWANA w Chromium, Firefox, Safari, Edge # z max-age=∞ (rollback requires osobnej procedury, kilka months!)
Wysiłek
Niski (1 day)
Cost
Minimalny
Deadline
≤ 30 days; preload submission ≤ 6 mc
Owner
Zespół Webowy / DevOps
Low TF-012 CVSS 3.7 Low
Status: Otwarte · BF-011
Brak nagłówków security: CSP, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy
CWE-79 Cross-Site Scripting CWE-1021 Improper Restriction of Rendered UI Layers (Clickjacking) CWE-693 Protection Mechanism Failure OWASP A05:2021 — Security Misconfiguration
Wektor CVSS: CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:L/A:N

Description techniczny — Mozilla Observatory: ocena F

Application restaurant.novatech-solutions.pl otrzymuje from Mozilla Observatory ocenę F. Brakujące headers:

  • Content-Security-Policy (CSP) — najsilniejsza ochrona before XSS, kontrole źródeł skryptów/styli/obrazów;
  • X-Frame-Options — ochrona before clickjacking (osadzanie w iframe);
  • X-Content-Type-Options: nosniff — wyłączenie MIME-sniffing reviewarki;
  • Referrer-Policy — kontrole wycieku informacji about stronach źródłowych;
  • Permissions-Policy — granularna kontrole dostępu API reviewarki;
  • Cross-Origin-Opener-Policy + COEP — ochrona before Spectre.

Dowody

Analiza nagłówków HTTP restaurant.novatech-solutions.pl # Brakujące headers security: Content-Security-Policy: NIEDOSTĘPNY X-Frame-Options: NIEDOSTĘPNY X-Content-Type-Options: NIEDOSTĘPNY Referrer-Policy: NIEDOSTĘPNY Permissions-Policy: NIEDOSTĘPNY # Ocena Mozilla Observatory: F (-50 punktów)

Recommendation — pełny zestaw nagłówków (Apache)

/etc/apache2/conf-enabled/security-headers.conf <IfModule mod_headers.c> # X-Frame-Options — clickjacking protection (legacy fallback for X-Frame-Options) Header always set X-Frame-Options "DENY" # X-Content-Type-Options — wyłącz MIME sniffing Header always set X-Content-Type-Options "nosniff" # Referrer-Policy — minimalizacja wycieku informacji Header always set Referrer-Policy "strict-origin-when-cross-origin" # Permissions-Policy — wyłącz nieużywane API Header always set Permissions-Policy "acgoalsrometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=()" # Cross-Origin policies — Spectre mitigation Header always set Cross-Origin-Opener-Policy "same-origin" Header always set Cross-Origin-Embedder-Policy "require-corp" Header always set Cross-Origin-Resource-Policy "same-origin" # Content-Security-Policy — najpotężniejsza ochrona; requires staged rollout # Stage 1 — Report-Only (1-2 weekse obserwacji): Header always set Content-Security-Policy-Report-Only "default-src 'self'; script-src 'self' https://cdn.jsdelivr.net; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self' https://fonts.gstatic.com; img-src 'self' data: https:; connect-src 'self'; frame-ancestors 'none'; form-action 'self'; base-uri 'self'; report-uri https://report.novatech-solutions.pl/collect" # Stage 2 — Enforced (po analizie raportów): Header always set Content-Security-Policy "default-src 'self'; script-src 'self' 'sha256-abc...' https://cdn.jsdelivr.net; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; connect-src 'self'; frame-ancestors 'none'; form-action 'self'; base-uri 'self'; report-uri https://report.novatech-solutions.pl/collect" </IfModule>

CSP report-uri endpoint

# Prosta exampleowa implementacja Node.js / Express: const express = require('express'); const app = express(); app.post('/csp/collect', express.json({ type: ['application/csp-report', 'application/json'] }), (req, res) => { const report = req.body['csp-report'] || req.body; console.log('CSP Vioyearsion:', JSON.stringify(report)); // Zapisz to bazy / SIEM res.status(204).end(); }); app.listen(8080);
Wysiłek
Średays — CSP requires staged rollout
Cost
Minimalny
Deadline
≤ 60 days
Owner
Zespół Webowy + DevOps
Medium TF-013 CVSS 5.5 Medium
Status: Otwarte · BF-013
Brak Web Application Firewall (WAF) — gap w obronie warstwowej
CWE-693 Protection Mechanism Failure OWASP A05:2021 — Security Misconfiguration CIS Controls v8 §13.10 PCI DSS 4.0.1 §6.4.2
Wektor CVSS: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L

Description techniczny

Żadna warstwa Web Application Firewall (WAF) nie chroni publicch application web clienta. Testy potwierdzające brak WAF: payloady SQLi, XSS, RCE, path-traversal nie były blokowane at the level of infrastructure (przeszły to warstwy application).

WAF stanowi obronę warstwową (defense-in-depth): nawet if application zawiera gapsę zero-day, WAF may zablokować typowe wzorce attacków zanim trafią to kodu aplikacyjnego. Ponadto PCI DSS 4.0.1 §6.4.2 requires WAF or regularnego pen-testu (raz to year) for application obsługujących dane kart płatniczych — co may dotyczyć application restaurant.novatech-solutions.pl.

Dowody

Testy security application restaurant.novatech-solutions.pl # Testy SQLi, XSS, Path Traversal — brak blokady at the level of WAF # Payloade HTTP były przetwarzane przez aplikację without filtrowania przez WAF # Application Flask nie posiada web application firewall # Testy przeprowadzone w framework scanowania Ragnar

Recommendation — opcja A: Cloudflare WAF (cloud)

# Configuration przez Cloudflare API (Terraform): resource "cloudflare_zone" "novatech" { zone = "novatech-solutions.pl" plan = "pro" # Pro = $25/mc, Business = $200/mc, Enterprise = custom } resource "cloudflare_zone_settings_override" "novatech_settings" { zone_id = cloudflare_zone.novatech.id settings { waf = "on" security_level = "medium" challenge_ttl = 1800 browser_check = "on" always_use_https = "on" min_tls_version = "1.2" tls_1_3 = "on" automatic_https_rewrites = "on" } } resource "cloudflare_ruleset" "novatech_managed" { zone_id = cloudflare_zone.novatech.id name = "NovaTech Managed Rules" kind = "zone" phase = "http_request_firewall_managed" rules { action = "execute" description = "Cloudflare Managed Ruleset" expression = "true" action_parameters { id = "efb7b8c949ac4650a09736fc376e9aee" # CF Managed Rules } } rules { action = "execute" description = "OWASP Core Ruleset" expression = "true" action_parameters { id = "4814384a9e5d4991b9815dcfc25d2f1f" # OWASP CRS overrides { action = "block" sensitivity_level = "high" } } } }

Recommendation — opcja B: ModSecurity z OWASP CRS (on-premise)

$ sudo apt install -y libapache2-mod-security2 $ sudo a2enmod security2 $ cd /etc/modsecurity $ sudo cp modsecurity.conf-recommended modsecurity.conf $ sudo sed -i 's/SecRuleEngine DetectionOnly/SecRuleEngine On/' modsecurity.conf # OWASP Core Rule Set 4.x $ cd /etc/modsecurity/ $ sudo git clone --branch v4.0/main https://github.com/coreruleset/coreruleset.git owasp-crs $ sudo cp owasp-crs/crs-setup.conf.example owasp-crs/crs-setup.conf /etc/apache2/mods-enabled/security2.conf <IfModule security2_module> SecDataDir /var/cache/modsecurity IncludeOptional /etc/modsecurity/*.conf IncludeOptional /etc/modsecurity/owasp-crs/crs-setup.conf IncludeOptional /etc/modsecurity/owasp-crs/rules/*.conf </IfModule> $ sudo systemctl reload apache2

Polecenie weryfikujące (po wdrożeniu)

$ curl -s "https://restaurant.novatech-solutions.pl/?q=' OR 1=1--" # Oczekiwany output after remediation (WAF active): HTTP/2 403 cf-mitigated: challenge <title>Just a moment... (Cloudflare)</title> LUB in the case of ModSecurity: HTTP/2 403 <title>403 Forbidden (Mod_Security: Detected SQLi attempt)</title>
Wysiłek
Średays (Cloudflare 1-2 days; ModSecurity 1-2 weekse)
Cost
Cloudflare Pro $25/mc; on-premise — czas inżynierski
Deadline
≤ 90 days
Owner
Inżynieria Security + DevOps
— SECTION 10

Mapping findings to regulatory requirements

Exact mapping of 13 findings to articles / clauses across 5 frameworks: NIS2, DORA, GDPR, ISO 27001:2022, PCI DSS 4.0.1.

10.1 Pełna macierz findings vs. requiresnia

TFNIS 2DORARODO / GDPRISO 27001:2022PCI DSS 4.0.1
TF-001Art. 21 ust. 2 lit. a, e, hArt. 9 ust. 4Art. 32 ust. 1A.8.24, A.8.20§4.2.1.1
TF-002Art. 21 ust. 2 lit. eArt. 9 ust. 4 lit. aArt. 32 ust. 1 lit. aA.8.24§4.2.1
TF-003Art. 21 ust. 2 lit. a, eArt. 9 ust. 4Art. 32 ust. 1A.8.24§4.2.1.1
TF-004Art. 21 ust. 2 lit. aArt. 9 ust. 4Art. 32 ust. 1 lit. bA.5.10§6.2.4
TF-005Art. 21 ust. 2 lit. aArt. 9 ust. 4Art. 32 ust. 1 lit. bA.5.10, A.8.9§6.2.4
TF-006Art. 21 ust. 2 lit. d, hArt. 9 ust. 4 lit. bArt. 32 ust. 1 lit. bA.5.15, A.8.3§7.2, §8.2
TF-007Art. 21 ust. 2 lit. bArt. 11 ust. 2Art. 32 ust. 1 lit. bA.5.14§5.4.1
TF-008Art. 21 ust. 2 lit. b, cArt. 11 ust. 2Art. 32 ust. 1 lit. b, cA.5.14§5.4.1
TF-009Art. 21 ust. 2 lit. a, b, hArt. 9 ust. 2, 4Art. 32 ust. 1 lit. b, d; Art. 33A.5.7, A.8.4, A.8.20§1.3, §1.4, §3.5, §8.3
TF-010Art. 21 ust. 2 lit. aArt. 9 ust. 4Art. 32 ust. 1 lit. bA.8.20, A.8.21§1.4.5
TF-011Art. 21 ust. 2 lit. eArt. 9 ust. 4Art. 32 ust. 1 lit. aA.8.24§4.2.1
TF-012Art. 21 ust. 2 lit. eArt. 9 ust. 4Art. 32 ust. 1 lit. bA.5.10, A.8.9§6.2.4
TF-013Art. 21 ust. 2 lit. b, hArt. 9 ust. 4 lit. bArt. 32 ust. 1 lit. bA.8.26§6.4.2

10.2 Kluczowe wnioski regulatory

NIS 2 (Dyrektywa UE 2022/2555 / Ustawa about KSC): client (jako podmiot świadczący services cyfrowe / e-commerce ≥ 50 osób / ≥ €10M obrotu) podlega Art. 21 — wymóg implementation środków technicznych adekwatnych to risk. 9 z 13 findings bezpośrednio mapuje się to Art. 21. Sankcja for non-compliance: to 2% obrotu globalnego or €10M (większe).
RODO Art. 32 ust. 1: wymóg „odpowiedaysch środków technicznych and organizacyjnych". TF-009 (Jenkins CVE-2024-23897 — vulnerability umożliwiająca arbitralny odczyt plików, w tym sekretów, zmiennych environmentwych and danych uwierzytelniających) stanowi naruszenie ochrony danych w rozumieniu Art. 4 pkt 12 RODO — vulnerability ta mogła umożliwić dostęp to danych osobowych przetwarzanych w systemach clienta. Niezależnie from tego, czy doszło to faktycznego wycieku, sam stan vulnerabilities is naruszeniem proceduralnym requiresjącym powiadomienia UODO w 72 h and potencjalnie osób, których dane dotyczą (Art. 33-34). Sankcja: to 4% obrotu or €20M.
DORA (Rozp. UE 2022/2554): in the case of sektora finansowego and jego dostawców services ICT — Art. 9 requires identyfikacji vulnerabilities and ich klasyfikacji. This report stanowi punkt wyjścia to processu DORA gap-analysis.
— SECTION 11

Technical remediation roadmap

A 3-horizon plan with specific engineering tasks and owners.

11.1 Horyzont 0-7 days — actions natychmiastowe (CRITICAL)

IDZadanieOwnerSLA
TF-009Zablokowanie portu 50000 Jenkins CLI — firewall, IP allow-list; update Jenkins to 2.442+ or 2.426.3 LTSCISO + DevOps≤ 24 h
TF-001Wymiana wygasłego certificateu TLS for restaurant.novatech-solutions.pl (Sectigo wildcard *.ragnartest.net wygasł 2025-08-25)DevOps≤ 7 days
TF-002Uzyscanie ważnego certificateu for novatech-solutions.pl (nie Ragnar wildcard)DevOps≤ 7 days
TF-010Zablokowanie DNS AXFR on ns1.sec542.netDNS Ops≤ 7 days

11.2 Horyzont 8-30 days — medium-term (HIGH/MEDIUM)

IDZadanieOwnerSLA
TF-004Server tokens off, X-Powered-By unset (Werkzeug/Python)Web Team≤ 30 days
TF-005Ujawnianie stosu technologicznego — wyłączyć ujawnianie wersji Werkzeug/PythonDevOps≤ 30 days
TF-012CSP staged rollout + COOP/COEP/CORP headersWeb + Security Eng.≤ 30 days
TF-013Wdrożenie WAF (Cloudflare Pro or ModSecurity)Security Eng.≤ 30 days

11.3 Horyzont 31-180 days — long-term (strategic)

IDZadanieOwnerSLA
TF-007Weryfikacja configuration SPF for novatech-solutions.plMail + Compliance≤ 60 days
TF-008Weryfikacja configuration DMARC for novatech-solutions.plMail + Compliance≤ 60 days
TF-008DMARC p=reject (po monitoringu kwarantanny)Mail + Compliance≤ 180 days
TF-011DNSSEC for novatech-solutions.pl (BIND inline-signing + DS u reisratora .pl)DNS Ops≤ 90 days
TF-012HSTS Preload List submission after 6 mc bezerroneous obserwacjiWeb Team≤ 180 days

11.4 Inicjatywy strategic wykraczające poza findings

— SECTION A

Appendix A — asset inventory (2 hosty)

All discovered digital assets of the novatech-solutions.pl domain based on the scan performed.

HostnameIPKategoriaPortyStack technologicznyKrytycznośćOwner
restaurant.novatech-solutions.pl172.30.42.80Application webowa (e-commerce)80, 443Werkzeug/3.1.8 Python/3.9.21 FlaskWysokaWeb Team
attacker.ragnartest.org172.17.0.2Server CI/CD (Jenkins)22, 80, 443, 8080, 50000Jenkins 2.346.1 / Jetty 9.4.45KrytycznaDevOps
— SECTION C

Appendix C — raw output excerpts (raw evidence)

Selected raw tool-output excerpts to confirm findings. Full logs (3,410 lines) in the attachments file.

C.1 Analiza TLS — restaurant.novatech-solutions.pl

Analiza TLS restaurant.novatech-solutions.pl (172.30.42.80) TLS 1.3: offered (OK) — AES-256-GCM with Forward Secrecy TLS 1.2: offered — ECDHE-RSA-AES256-GCM-SHA384 (AEAD, not vulnerable) TLS 1.1: not offered (OK) TLS 1.0: not offered (OK) CBC ciphers: present in TLS 1.2 cipher list but NOT PREFERRED LUCKY13: potentially VULNERABLE via CBC ciphers (not preferred) # Certificate Subject: CN=*.ragnartest.net Issuer: CN=Sectigo RSA Domain Validation Secure Server CA Wygasa: 2025-08-25 [WYGASŁY] SAN: DNS:*.ragnartest.net

C.2 Analiza HTTP — restaurant.novatech-solutions.pl

Nagłówki HTTP restaurant.novatech-solutions.pl HTTP/1.1 200 OK Server: Werkzeug/3.1.8 Python/3.9.21 Content-Type: text/html; charset=utf-8 X-Powered-By: Flask # Ujawnione wersje: Werkzeug 3.1.8, Python 3.9.21, Flask

C.3 Scan portów — attacker.ragnartest.org (172.17.0.2)

Scan portów Jenkins server PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 8.2p1 (TLS) 80/tcp open http Apache 2.4.41 443/tcp open ssl Apache 2.4.41 (TLS 1.2/1.3) 8080/tcp open http Jetty 9.4.45.v20210618 50000/tcp open http Jenkins 2.346.1 (CLI interface) # Jenkins CLI CVE-2024-23897 vulnerability wykryta
— SECTION D

Appendix D — technical glossary

Definitions of acronyms and terms used in the report — for technical and compliance teams.

Deadline / skrótDefinicja
ACMEAutomatic Certificate Management Environment (RFC 8555) — protokół automatyzacji wydawania certificateów; podstawa Let's Encrypt
AEADAuthenticated Encryption with Associated Data — tryb szyfrowania ensuresjący integralność and confidentiality (e.g. AES-GCM, ChaCha20-Poly1305)
BEASTBrowser Exploit Against SSL/TLS (CVE-2011-3389) — attack on CBC ciphers w TLS < 1.2
BIMIBrand Indicators for Message Identification — standard wyświetlania logo nadawcy w clientach mailowych after uwierzytelnieniu DMARC
CAACertification Authority Authorization (RFC 8659) — rekord DNS określający, które CA may wystawiać certificatey for domains
CBCCipher Block Chaining — tryb szyfrowania bloków podatny on attack padding-oracle
CIS ControlsCenter for Internet Security Controls — zestaw 18 kontrole security (v8.0, 2021)
COEP / COOP / CORPCross-Origin Embedder/Opener/Resource Policy — headers ochrony before Spectre and side-channel attacks
CRS (OWASP)Core Rule Set — zestaw reguł WAF for ModSecurity (aktualnie v4.x)
CSPContent Security Policy (W3C CSP3) — nagłówek HTTP kontrolujący źródła assets ładowanych przez stronę
CSRFCross-Site Request Forgery — attack, w którym reviewarka ofiary wykonuje nieautoryzowaną operację
CT logCertificate Transparency log — public, append-only reisr all wystawionych certificateów (RFC 6962)
CVSSCommon Vulnerability Scoring System v3.1 — standard oceny ważności vulnerabilities w skali 0-10
CWECommon Weakness Enumeration — taksonomia 1300+ klas weaknesses w oprogramowaniu (MITRE)
DKIMDomainKeys Identified Mail (RFC 6376) — kryptograficzne podpisywanie wiadomości e-mail
DMARCDomain-based Message Authentication, Reporting & Conformance (RFC 7489) — polityka egzekwowania SPF/DKIM
DNSSECDNS Security Extensions (RFC 4033-4035) — kryptograficzne podpisywanie odpowiedzi DNS
DORADigital Operational Resilience Act (Rozp. UE 2022/2554) — regulation UE for sektora finansowego
HSTSHTTP Strict Transport Security (RFC 6797) — nagłówek wymuszający HTTPS at the level of reviewarki
MitMMan-in-the-Middle — attack, w którym adversary is between clientem a serverem
MTA-STSMail Transfer Agent Strict Transport Security (RFC 8461) — wymóg TLS for SMTP transport
NIS 2Network and Information Security Directive 2 (Dyrektywa UE 2022/2555) — regulation cybersecurity UE
NSEC3Next Secure 3 (RFC 5155) — rekord DNSSEC for negative response, chroniący before zone walking
OWASPOpen Worldwide Application Security Project — fundacja non-profit, autor including OWASP Top 10
PFSPerfect Forward Secrecy — właściwość TLS, w której kompromitacja klucza prywatnego servera nie pozwala odszyfrować historycznych sesji
POODLEPadding Oracle On Downgraded Legacy Encryption (CVE-2014-3566)
RUA / RUFDMARC Aggregate / Forensic Reports — formaty raportowania zdarzeń DMARC
SPFSender Policy Framework (RFC 7208) — rekord DNS deklarujący autoryzowanych nadawców e-mail
SWEET32Attack birthday on 64-bitowe block ciphers (CVE-2016-2183)
TLPTraffic Light Protocol — standard FIRST.org for klasyfikacji udostępniania informacji wrażliwych
TLSRPTSMTP TLS Reporting (RFC 8460) — raportowanie errors MTA-STS
VMCVerified Mark Certificate — certificate requiresny przez BIMI to wyświetlania logo nadawcy
WAFWeb Application Firewall — warstwa filtrująca ruch HTTP/HTTPS at the level of L7
XSSCross-Site Scripting (CWE-79) — wstrzyknięcie złośliwego JavaScript to zaufanego kontekstu strony
ZTNAZero-Trust Network Access — model dostępu networkowego oparty about weryfikację per-request