Software Supply Chain Failures: Weryfikacja konfiguracji
Weryfikacja konfiguracji aplikacji i serwera
Skupiamy się na ustawieniach, które mogą prowadzić do wykorzystania nieaktualnych lub podatnych komponentów.
🔹 1. Backend / aplikacja
- Czy aplikacja automatycznie aktualizuje zależności bez walidacji?
- Czy zablokowano możliwość dynamicznego
require()/eval()? - Czy użyto określonych wersji zależności, zamiast
*,latest,^? - Czy są środowiskowe alerty o znanych lukach CVE (np. GitHub Dependabot)?
- Czy system CI/CD wymusza audyty (
npm audit,snyk test,trivy)?
🔹 2. Serwer i środowisko
- Czy system operacyjny jest wspierany (np. Ubuntu LTS, RHEL)?
- Czy aktualizacje bezpieczeństwa są włączone (
unattended-upgrades,yum-cron)? - Czy Docker host używa aktualnego kernela?
- Czy zaplanowano okresowe skanowanie podatności (cron + Trivy/Grype)?
- Czy obrazy bazowe w Dockerfile są wersjonowane?
🔹 3. DevOps i pipeline
- Czy masz wdrożony proces
Software Composition Analysis (SCA)? - Czy zależności są cache’owane i kontrolowane przez
lockfile? - Czy repozytorium ma wyłączone
pull requestsz nieautoryzowanych źródeł? - Czy masz
policy enforcementna użycie sprawdzonych wersji?
🔹 4. Przegląd manualny
- Sprawdź
package.json,requirements.txt,pom.xml– czy są biblioteki porzucone? - Upewnij się, że w
package-lock.jsonlubyarn.locknie ma zależności z CVE. - Sprawdź, czy zespół usuwa przestarzałe pakiety zależne (dead code).
🔹 5. Łańcuch dostaw (zakres 2025)
Lista kontrolna na podstawie A03:2025:
- Czy istnieje SBOM całej aplikacji i czy jest generowany automatycznie przy buildzie?
- Czy repozytorium kodu ma ochronę gałęzi, wymagany przegląd zmian, MFA i brak sekretów w historii?
- Czy build server / CI/CD ma rozdzielone uprawnienia, sekrety ograniczone do środowiska, podpisane buildy i logi, w których da się wykryć modyfikację?
- Czy artefakty są niezmienne, podpisane, ze znacznikiem czasu i udokumentowanym pochodzeniem?
- Czy zmiany w konfiguracji CI/CD, repozytoriach artefaktów, rejestrach kontenerów i integracjach SaaS są śledzone?
- Czy infrastruktura jako kod przechodzi przez PR i kontrolę wersji jak zwykły kod?
- Czy aktualizacje są wdrażane etapami (canary), a nie na wszystkie systemy naraz?
✅ Rekomendacje
- Regularnie przeprowadzaj code review zależności.
- Wprowadź alerty i CI linting dla podatnych wersji.
- Automatyzuj testy SCA i konfiguracji w pipeline CI/CD.
W kolejnym kroku: Narzędzia do testowania