Threat Feed automatizacija — dnevni cron ciklus cron (1:00 AM) 0 1 * * * ip_block.sh curl threat feed FireHOL / CISA evil_IP.feed awk dedup !x[$0]++ bez duplikata iptables -I INPUT 1 -s IP/CIDR -j DROP za svaki IP iz feeda iptables-save | awk '!seen[$0]++' | iptables-restore remove-malware.sh — hash-based detekcija i uklanjanje find / -name "*.exe" → sha256sum → usporedi s KNOWN_HASH → rm -f Neovisno o nazivu datoteke | ne detektira polimorfne varijante

iptables automatizacija

iptables je Linux vatrozidni alat koji filtrira mrežni promet na razini kernela. U skripti za automatizaciju, IP adrese iz threat feeda se dodaju kao INPUT DROP pravila — vatrozid odbacuje sve pakete s tih adresa.

iptables sintaksa za blokiranje

iptables -I INPUT 1 -s IP_ADRESA -j DROP
  • -I INPUT 1 — umetni na vrh INPUT chain-a (prioritet)
  • -s IP_ADRESA — source (izvorišna adresa)
  • -j DROP — tiho odbaci paket (bez odgovora)
  • vs -j REJECT — odbaci i pošalji ICMP poruku pošiljatelju

ip_block.sh — automatizacija

#!/bin/bash
while read ip; do
  iptables -I INPUT 1 -s $ip -j DROP
done < /root/evil_IP.feed
  • Čita svaki IP iz datoteke (jedan po redu)
  • Za svaki IP dodaje iptables pravilo
  • Izvodi se kao root (potrebne privilegije)

Threat feed i dedupliciranje

curl i preuzimanje feed-a

curl 127.0.0.1/evil_IP.feed
  • Threat feed = lista poznatih malicioznih IP adresa
  • Može sadržavati duplikate — potrebno deduplicirati

awk dedupliciranje

curl 127.0.0.1/evil_IP.feed | awk '!x[$0]++'
  • !x[$0]++ — ispisuje samo prvi pojava svake linije
  • $0 = cijela trenutna linija
  • x[$0] = associativni array koji broji pojave
  • Čita se: "ispiši liniju ako je x[$0] bio 0 (nije viđen prije)"

Kompletna pipeline naredba

curl 127.0.0.1/evil_IP.feed \
  | awk '!x[$0]++' \
  > /root/evil_IP.feed
  • 1. Preuzme feed s web servera
  • 2. Ukloni duplikate s awk-om
  • 3. Spremi u lokalnu datoteku
  • Zatim ip_block.sh pročita datoteku i doda pravila

Uklanjanje malwarea skriptom

remove-malware.sh — logika

#!/bin/bash
KNOWN_HASH="abc123def456..."
for file in $(find / -name "*.exe" 2>/dev/null); do
  FILE_HASH=$(sha256sum "$file" | cut -d' ' -f1)
  if [ "$FILE_HASH" = "$KNOWN_HASH" ]; then
    rm -f "$file"
    echo "Uklonjen: $file"
  fi
done

Princip rada

  • Skripta pretražuje datotečni sustav za sumnjive datoteke
  • Izračunava SHA256 hash svake pronađene datoteke
  • Uspoređuje s poznatim hash-om malwarea
  • Ako se poklapa → briše datoteku
  • Prednost: radi bez obzira na naziv datoteke
  • Mana: ne detektira nove/modificirane varijante
Automatizacija u SOC-u: Ove skripte su osnova za SOAR playbook akcije. Umjesto da analitičar ručno blokira stotine IP adresa, skripta to radi automatski iz threat feeda. Redovito pokretanje (cron) osigurava ažuran popis.
Na ispitu zapamti:
  • iptables -I INPUT 1 -s IP -j DROP = umetni na vrh INPUT lanca (prioritet!)
  • DROP = tiho odbaci (napadač ne zna pravilo postoji) | REJECT = odbaci + ICMP poruka pošiljatelju
  • Dedup iptables: iptables-save | awk '!seen[$0]++' | iptables-restore
  • awk '!x[$0]++' = ispiši samo prvu pojavu svake linije (deduplicira feed)
  • Cron format: minuta sat * * * naredba0 1 * * * /bin/bash /root/ip_block.sh = svaki dan u 1:00
  • echo "cron_entry" | crontab - = dodaj cron unos bez otvaranja editora
  • Threat feed = lista IoC-ova (maliciozni IP, domene, hashevi); npr. FireHOL, CISA, AlienVault OTX
  • Hash-based detekcija: sha256sum datoteka | cut -d' ' -f1 → usporedba s poznatim hashom

Kviz — 15 pitanja

0 / 15
Odgovori na pitanja da vidiš rezultat.

1. Koja iptables naredba blokira dolazni promet s određene IP adrese?

iptables -I INPUT 1 -s IP -j DROP: -I INPUT 1 = umetni kao prvo pravilo u INPUT chain, -s = source (izvorišna adresa), -j DROP = tiho odbaci. Pozicija 1 = visoki prioritet.

2. Koja je razlika između -j DROP i -j REJECT u iptablesu?

DROP = paket se tiho odbacuje, pošiljatelj ne dobiva odgovor (connection timeout). REJECT = paket se odbacuje i pošiljatelju se šalje ICMP "destination unreachable" poruka. Za obranu, DROP je bolji jer ne otkriva napadaču da pravilo postoji.

3. Što radi awk filter !x[$0]++?

awk '!x[$0]++': $0 = cijela linija, x[$0] = array koji broji pojavljivanja. Uvjet !x[$0]++ je istinit samo za PRVO pojavljivanje (kad je x[$0]=0). Ispisuje samo prvu pojavu svake linije → deduplicira.

4. Zašto je dedupliciranje threat feeda važno prije dodavanja pravila u iptables?

Svako iptables pravilo se provjerava za svaki paket. Duplikatna pravila znače da se ista provjera radi više puta — što usporava procesiranje. Na velikom feedu (tisuće IP-jeva) duplikati mogu značajno opteretiti sustav.

5. Zašto remove-malware.sh koristi SHA256 hash umjesto naziva datoteke za identifikaciju malwarea?

Hash je kriptografski otisak sadržaja datoteke — neovisan o nazivu. Malware koji se preimenuje (npr. malware.exe → svchost.exe) ima isti hash. Uspoređujući hash, skripta identificira malware bez obzira na naziv.

6. Što znači -I (veliko i) u iptables naredbi za razliku od -A?

-I (Insert) umeće pravilo na određenu poziciju (npr. -I INPUT 1 = na vrh). -A (Append) dodaje na kraj chain-a. Redoslijed pravila je važan — iptables primjenjuje prvo pravilo koje odgovara paketu.

7. Koji je redoslijed koraka u potpunoj automatizaciji blokade iz threat feeda?

Ispravan redoslijed: 1. curl URL — preuzmi feed, 2. awk '!x[$0]++' — ukloni duplikate, 3. > datoteka — spremi, 4. ip_block.sh čita datoteku i za svaki IP dodaje iptables -I INPUT 1 -s IP -j DROP.

8. Koja naredba u Linuxu izračunava SHA256 hash datoteke?

sha256sum datoteka ispisuje SHA256 hash i naziv datoteke. Za samo hash: sha256sum datoteka | cut -d' ' -f1 — uzima samo prvi dio (hash, bez naziva datoteke). Remove-malware.sh koristi ovo za identifikaciju.

9. Kako bi izgledala cron unos za pokretanje ip_block.sh svakog dana u 3:00?

Crontab format: minuta sat dan_u_mj. mjesec dan_u_tjednu naredba. Za svaki dan u 3:00: 0 3 * * * (minuta=0, sat=3, ostalo *=bilo koji). Isti format kao block-DNS.sh iz Lab 22.

10. Što je "threat feed" i otkuda dolazi?

Threat feed (Threat Intelligence Feed) = lista IoC-ova (indikatora kompromisa) poput malicioznih IP adresa, domena, URL-ova, hasheva. Dolazi od: komercijalni davatelji (CrowdStrike, Recorded Future), besplatni (CISA, AlienVault OTX, Abuse.ch, Emerging Threats).

11. Koja je ograničenost hash-based detekcije malwarea skriptom?

Hash-based detekcija radi samo za poznate, točno iste varijante. Polimorfni malware, obfuscirani kod, ili bilo koja modifikacija (čak i jedan byte) mijenja SHA256 hash i nije detektiran. Heuristička ili bihevioralna analiza pokriva ovo.

12. Na koji chain se dodaju pravila za blokiranje dolaznog prometa u iptablesu?

INPUT chain procesira pakete namijenjene lokalnom sustavu (dolazni promet). OUTPUT = paketi koji odlaze s lokalnog sustava. FORWARD = paketi koji prolaze kroz sustav (router/gateway). Za blokiranje dolaznih napada koristimo INPUT.

13. Koja bash konstrukcija u ip_block.sh čita jednu po jednu IP adresu iz datoteke?

while read ip; do ... done < datoteka čita datoteku redak po redak — svaki redak se stavlja u varijablu ip. Ovo je standardna bash idiom za procesiranje datoteka s jednom stavkom po retku (npr. lista IP adresa).

14. Zašto automatizacija sigurnosnih zadataka skriptama (vs. ručno) poboljšava sigurnosni posture?

Automatizacija: smanjuje MTTR (reakcija u sekundama umjesto minutama), eliminiira human error (npr. pogrešno upisana IP adresa), skalabilnost (blokira 10.000 IP-jeva jednako brzo kao 10). SOC analitičari se fokusiraju na složene zadatke koji zahtijevaju rasuđivanje.

15. Koja naredba deduplicira iptables pravila bez brisanja cijelih pravila i ponovnog dodavanja?

iptables-save eksportira sva pravila kao tekst → awk '!seen[$0]++' filtrira duplikate (isti princip kao za feed — prvu instancu zadrži) → iptables-restore učita dedupliciranu listu. Ovo je standardni idiom za čišćenje iptables duplikata bez gubitka pravila.
0 / 15
Riješi kviz da vidiš rezultat! 💡