Slijede razlike između dviju inačica stranice.
Starije izmjene na obje strane Starija izmjena Novija izmjena | Starija izmjena | ||
racfor_wiki:seminari2024:pisanje_yara_pravila [2025/01/25 17:54] Mikulić Katarina [Zaključak] |
racfor_wiki:seminari2024:pisanje_yara_pravila [2025/01/26 21:50] (trenutno) Mikulić Katarina [Pisanje YARA pravila] |
||
---|---|---|---|
Redak 1: | Redak 1: | ||
- | ===== Naslov | + | ===== Pisanje YARA pravila |
+ | Video [[https:// | ||
===== Sažetak ===== | ===== Sažetak ===== | ||
+ | YARA pravila predstavljaju moćan alat u području kibernetičke sigurnosti, omogućujući stručnjacima detekciju i klasifikaciju zlonamjernog softvera na temelju unaprijed definiranih obrazaca. Fleksibilnost i jednostavna sintaksa YARA pravila omogućuju njihovu primjenu u širokom spektru sigurnosnih alata, uključujući SIEM sustave, antivirusne programe i laboratorije za analizu zlonamjernog softvera. Koriste se za prepoznavanje prijetnji u datotekama, procesima i memoriji, što ih čini ključnim dijelom strategija za obranu od prijetnji i forenzičkih analiza. | ||
+ | ===== Uvod ===== | ||
+ | U današnjem svijetu kibernetičke sigurnosti, pravovremena detekcija i prepoznavanje prijetnji ključni su za zaštitu sustava i podataka. YARA pravila predstavljaju moćan alat za identifikaciju zlonamjernog softvera, prepoznavanje sumnjivog ponašanja te analizu prijetnji. Ovaj seminarski rad detaljno će obraditi kako se pišu YARA pravila, njihovu strukturu, praktičnu primjenu te najbolje prakse. | ||
+ | ===== YARA pravila ===== | ||
+ | YARA pravila predstavljaju snažan alat za prepoznavanje i klasifikaciju prijetnji u kibernetičkoj sigurnosti. Dizajnirana su kako bi pomogla stručnjacima u analizi i detekciji zlonamjernog softvera temeljenog na prepoznatljivim obrascima i ponašanju. | ||
+ | Osnovna ideja YARA pravila je njihova jednostavna i intuitivna sintaksa koja omogućuje korisnicima definiranje uzoraka na temelju tekstualnih stringova, heksadecimalnih nizova i regularnih izraza [[# | ||
- | ===== Uvod ===== | + | * Detekciju zlonamjernog softvera u datotekama, procesima i memoriji. |
+ | * Praćenje sustava u realnom vremenu radi otkrivanja sumnjivih aktivnosti. | ||
+ | * Unapređenje strategija kibernetičke sigurnosti kroz integraciju u napredne sigurnosne sustave poput SIEM platformi i antivirusnih alata. | ||
+ | Zahvaljujući otvorenom kodu i velikoj zajednici, YARA pravila kontinuirano evoluiraju i prilagođavaju se novim prijetnjama, | ||
+ | ===== Pisanje YARA pravila ===== | ||
+ | Pisanje YARA pravila zahtijeva razumijevanje strukture pravila i mogućnosti koje pružaju njihovi elementi. Pravila su dizajnirana tako da budu intuitivna i fleksibilna, | ||
+ | ==== Struktura YARA pravila ==== | ||
+ | Svako YARA pravilo sastoji se od tri glavna dijela: | ||
- | ===== Poglavlje | + | Naslov pravila (rule) - definira jedinstveno ime koje služi za identifikaciju pravila. Treba biti opisno, ali kratko. |
+ | Primjer: | ||
+ | rule ZlonamjerniKodDetektor { | ||
+ | ---- | ||
+ | |||
+ | Stringovi (strings) - definiraju uzorke koje pravilo treba prepoznati. Postoje tri vrste stringova: | ||
+ | Tekstualni stringovi (npr. " | ||
+ | Heksadecimalni uzorci (npr. {4D 5A 90 00}). | ||
+ | Regularni izrazi (npr. / | ||
+ | Primjer: | ||
+ | strings: | ||
+ | $string1 = " | ||
+ | $string2 = {4D 5A 90 00} | ||
+ | $regex = / | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | Uvjeti (condition) - definiraju logiku koja određuje kada će se pravilo aktivirati. | ||
+ | |||
+ | Primjeri uvjeta: | ||
+ | any of them: Aktivira se ako je pronađen bilo koji od definiranih stringova. | ||
+ | all of them: Aktivira se samo ako su pronađeni svi stringovi. | ||
+ | |||
+ | Kombinacija uvjeta uz logičke operatore (and, or, not). | ||
+ | |||
+ | Primjer: | ||
+ | condition: | ||
+ | $string1 or ($string2 and $regex) | ||
+ | |||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | Meta sekcija - sadrži dodatne informacije o pravilu poput autora, opisa, datuma i verzije. Ovi podaci pomažu u organizaciji i dokumentaciji pravila. | ||
+ | |||
+ | Primjer: | ||
+ | meta: | ||
+ | author = " | ||
+ | description = " | ||
+ | date = " | ||
+ | version = " | ||
+ | |||
+ | |||
+ | ==== Primjeri YARA pravila ==== | ||
+ | * Jednostavno pravilo | ||
+ | Pravilo koje detektira tekstualni i heksadecimalni string: | ||
+ | |||
+ | rule JednostavnoPravilo { | ||
+ | meta: | ||
+ | author = " | ||
+ | description = " | ||
+ | date = " | ||
+ | strings: | ||
+ | $tekstualni = " | ||
+ | $heksadecimalni = {50 45 00 00} | ||
+ | condition: | ||
+ | any of them | ||
+ | } | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | |||
+ | * Pravilo za PE datoteke | ||
+ | |||
+ | Pravilo koje detektira uzorke česte u izvršnim datotekama: | ||
+ | |||
+ | rule MalwarePE { | ||
+ | meta: | ||
+ | author = " | ||
+ | description = " | ||
+ | date = " | ||
+ | strings: | ||
+ | $s1 = " | ||
+ | $s2 = {50 45 00 00 4C 01 02 00} // PE header | ||
+ | $s3 = / | ||
+ | condition: | ||
+ | $s1 or ($s2 and $s3) | ||
+ | } | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | * Pravilo s regularnim izrazima | ||
+ | |||
+ | Pravilo za prepoznavanje e-mail adresa i URL-ova: | ||
+ | |||
+ | rule RegexPravilo { | ||
+ | meta: | ||
+ | author = " | ||
+ | description = " | ||
+ | date = " | ||
+ | strings: | ||
+ | $regex1 = / | ||
+ | $regex2 = / | ||
+ | condition: | ||
+ | $regex1 or $regex2 | ||
+ | } | ||
+ | |||
+ | ===== Alati za rad s YARA pravilima ===== | ||
+ | |||
+ | |||
+ | ==== Osnovni alati ==== | ||
+ | |||
+ | Osnovni alati koji omogućuju rad s YARA pravilima su: | ||
+ | |||
+ | YARA: Glavni alat za definiciju i primjenu pravila. Primjer korištenja: | ||
+ | |||
+ | yara pravilo.yar datoteka.exe | ||
+ | |||
+ | Ova naredba omogućuje ručno testiranje pravila na pojedinačnim datotekama, što je korisno za analizu specifičnih uzoraka. | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | |||
+ | yarac: Alat za prevođenje pravila u binarni format. Prevođenje smanjuje vrijeme obrade i optimizira performanse: | ||
+ | |||
+ | yarac pravilo.yar compile_pravilo.yarc | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | |||
+ | VirusTotal: Platforma za testiranje YARA pravila na stvarnim prijetnjama u globalnoj bazi podataka. Omogućuje validaciju pravila u stvarnim scenarijima. | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | |||
+ | ClamAV: Open-source antivirusni alat koji podržava integraciju YARA pravila za lokalno skeniranje. | ||
+ | |||
+ | |||
+ | ==== Automatizacija uz Python ==== | ||
+ | |||
+ | Python modul yara-python omogućuje implementaciju YARA pravila u prilagođene alate i skripte. Na primjer, za automatizirano skeniranje datoteka možete koristiti sljedeći kod: | ||
+ | |||
+ | import yara | ||
+ | rules = yara.compile(filepath=' | ||
+ | matches = rules.match(filepath=' | ||
+ | print(" | ||
+ | |||
+ | Prednosti automatizacije: | ||
+ | |||
+ | * Redovito skeniranje: Smanjuje potrebu za ručnim analizama. | ||
+ | * Integracija u CI/CD procese: Osigurava da novi softver prolazi sigurnosne provjere. | ||
+ | * Prilagodljivost: | ||
+ | |||
+ | ==== Najbolje prakse ==== | ||
+ | |||
+ | Za učinkovitu primjenu YARA pravila preporučuje se: | ||
+ | |||
+ | * Specifičnost: | ||
+ | * Optimizacija: | ||
+ | * Testiranje: Redovito provjeravajte pravila na stvarnim uzorcima koristeći alate poput VirusTotal ili ClamAV. | ||
+ | * Ažuriranje pravila: Prilagođavajte ih novim prijetnjama kako bi ostala relevantna. | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===== Ograničenja YARA pravila ===== | ||
+ | Unatoč svojoj korisnosti, YARA pravila imaju ograničenja: | ||
+ | |||
+ | * Redovito ažuriranje: | ||
+ | * Performanse: | ||
+ | * Lažni pozitivni rezultati: Neadekvatno definirana pravila mogu povećati broj lažnih alarma. | ||
Redak 30: | Redak 214: | ||
===== Literatura ===== | ===== Literatura ===== | ||
- | [1] [[https://hr.wikipedia.org/wiki/]] | + | [1] Službena dokumentacija YARA alata: [[https:// |
+ | |||
+ | [2] VirusTotal i YARA pravila: | ||
+ | [3] Sikorski, M., Honig, A. Practical Malware Analysis: The Hands-On Guide to Dissecting Malicious Software. No Starch Press, 2012. | ||
+ | [4]GitHub YARA pravila: [[https:// |