Cel projektu
Wdrożenie i konfiguracja systemu SIEM (Splunk, QRadar) w celu centralizacji analizy logów oraz skrócenia czasu reakcji na incydenty bezpieczeństwa. Integracja narzędzi do skanowania podatności i monitoringu ruchu sieciowego.
Zastosowane technologie i narzędzia
SIEM: Splunk, IBM QRadar
Skanery podatności: Nessus, OpenVAS
Analiza ruchu sieciowego: Wireshark
Automatyzacja: PowerShell, Python (skrypty do zbierania i przetwarzania logów)
Dashboardy i raportowanie: Splunk (KPI, wizualizacje trendów)
Realizacja projektu
- Integracja logów z różnych źródeł (serwery, aplikacje, urządzenia sieciowe).
- Konfiguracja reguł korelacyjnych i alertów w Splunk.
- Automatyzacja wybranych procesów analitycznych z użyciem skryptów w Python i PowerShell.
- Uruchomienie skanerów podatności (Nessus, OpenVAS) i integracja wyników z SIEM.
- Analiza ruchu sieciowego za pomocą Wireshark w przypadkach incydentów.
- Stworzenie dashboardów KPI dla monitoringu bezpieczeństwa i wsparcia decyzji biznesowych.
- Szkolenie dla zespołu marketingowego z podstaw analizy danych i korzystania z dashboardów.
Przykłady skryptów
- Odczyt i filtrowanie logów (analiza nieudanych logowań)
# Odczyt pliku logów i wyszukiwanie nieudanych prób logowania
with open(„auth.log”, „r”) as logfile:
for line in logfile:
if „Failed password” in line:
print(line.strip())
Używane do szybkiego znajdowania linii z błędami logowania w systemie.
- Automatyczne sprawdzanie otwartych portów (mini skaner)
import socket
target = „192.168.1.10”
ports = [22, 80, 443, 3389]
for port in ports:
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(1)
result = sock.connect_ex((target, port))
if result == 0:
print(f”[+] Port {port} jest OTWARTY na {target}”)
else:
print(f”[-] Port {port} jest ZAMKNIĘTY”)
sock.close()
Prosty odpowiednik nmap w Pythonie do sprawdzania dostępności portów.
- Analiza ruchu sieciowego z wykorzystaniem Scapy
from scapy.all import sniff
def packet_callback(packet):
if packet.haslayer(„IP”):
src = packet[„IP”].src
dst = packet[„IP”].dst
print(f”Pakiet: {src} -> {dst}”)
# Przechwytuje pierwsze 10 pakietów
sniff(count=10, prn=packet_callback)
Mini analizator: pokazuje adresy IP źródłowe i docelowe.
- Automatyczne generowanie raportu z logów
import json
alerts = [{„type”: „failed_login”, „user”: „admin”, „ip”: „192.168.1.50”},
{„type”: „port_scan”, „user”: „-„, „ip”: „10.0.0.7”}]
with open(„report.json”, „w”) as report_file:
json.dump(alerts, report_file, indent=4)
print(„Raport zapisano w report.json”)
Zapisuje zdarzenia bezpieczeństwa w formacie JSON do dalszego przetwarzania w SIEM.
- Integracja ze Splunk przez API
import requests
splunk_url = „https://splunk-server:8089”
auth = („admin”, „password”)
search_query = ‚search index=main „failed login” | stats count by user’
payload = {„search”: search_query}
response = requests.post(f”{splunk_url}/services/search/jobs”, auth=auth, data=payload, verify=False)
print(„Zapytanie wysłane do Splunk:”, response.status_code)
Ten kod może być użyty do automatyzacji zapytań do Splunk.
Rezultaty
- Skrócenie czasu wykrywania incydentów o 35%
- Zbudowanie dashboardów KPI umożliwiających bieżące śledzenie wyników
- Przeprowadzenie szkolenia z analityki dla zespołu marketingowego
- Zwiększenie przejrzystości procesów bezpieczeństwa i lepsza współpraca między działami
Wartość biznesowa
Projekt pozwolił nie tylko na poprawę bezpieczeństwa, ale również na wykorzystanie danych z SIEM do analityki biznesowej i wsparcia innych działów organizacji.