Skip to content

Conversation

@pokermonik
Copy link

Zadanie 3

name: Security Scan

on:
  push:
    branches: [ "main" ]
  pull_request:
    branches: [ "main" ]

jobs:
  security-tests:
    runs-on: ubuntu-latest

    steps:
      - name: Check out code
        uses: actions/checkout@v2

      - name: Build Docker image
        run: |
          docker build -t myapp:latest .
      - name: Run Trivy scan
        uses: aquasecurity/trivy-action@0.18.0
        with:
          image-ref: 'myapp:latest'
          vuln-type: 'os,library'
          format: 'table'

      - name: Install Semgrep
        run: |
          sudo pip install semgrep --ignore-installed
      - name: Run Semgrep SAST
        run: |
          semgrep --config p/security-audit --error --json .

Przygotowano proces CI/CD w github Actions - jednak dostawałem kilkukrotnie błędy, które musiałem naprawić, tzn:

  1. Błąd z Trivy - winowajcą było "v" przed numerem wersji
  2. Błąd z DockerFile - openjdk11 slim nie działał - nie znajdowało tego podczas pobierania, więc zastąpiłem to eclipse-temurin:11-jdk-alpine, które już jest widoczne
  3. Błąd Semgrep - dodanie ignore installed do security-scan.yml naprawiło błąd
    Link: https://github.com/pokermonik/task4/actions/runs/20095160338
image Trivy znalazł parę luk bezpieczeństwa - 3 niskiego zagrożenia, 5 średniego i 3 wysokiego. image Semgrep nie znalazł nic niepokojącego (przeskanował, ale tablice które zwrócił (errors i results) są puste).

Zadanie 4

image

Zap znalazł 4 zagrożenia średniego stopnia, 4 niskiego oraz 4 "informacyjne".
Porównanie wyników:

  • Semgrep nie wykrył problemów w kodzie aplikacji - czyli w samym kodzie wszystko jest ok.
  • Trivy skupia się na zależnościach pakietów, paczek itp. Wykrył liczne problemy/podatności, np. busybox, libpng. Pokazuje to, że nawet pisząc własny kod bardzo dobrze i bez popełniania błędów bezpieczeństwa, to przez nadmierne używanie paczek zewnętrznych, bardzo "otwieramy" naszą aplikację na potencjalne ataki.
  • Zap wykonał testy dynamiczne aplikacji i znalazł głównie problemy z nagłówkami HTTP (brak CSP, brak X-Content-Type-Options, brak anti-clickjacking), oraz potencjalne XSS i wycieki informacji. Z punktu widzenia tworzenia aplikacji są to głównie problemy servera i zabezpieczeń front-endu.

Są to różne rodzaje testów, ale każdy z nich jest przydatny - trzeba wykonywać każdy z nich, jeśli chcemy mieć bezpieczne oprogramowanie.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant