Kaj je CSRF ranljivost WordPressa?

CSRF (Cross-Site Request Forgery znan tudi kot Napad z enim klikom ) je napogostejša ranljivost na vtičnikih in temah.

Verzije starejše od 4.0. so ranljive za CSFR – posodobite svoj WP!

Kako lahko uporabimo NONCE?

NONCE (Number used ONCE) .NONCE se uporablja na zahtevo in prepreči nepooblaščen dostop tako, da uporabi skrivni “ključ” in to preveri vsakič, ko se uporabi koda.

Nonce lahko ustvarite in ga dodate v niz poizvedb v URLju, lahko ga dodate v skrito polje v formi ali ga uporabite kako drugače. Če ga boste uporabili v AJAX-u potem ga dodajte v skrito polje, iz kjer ga JavaScript lahko pridobi.

Upoštevati je potrebno, da so Nonce-nci edinstveni za trenutnega uporabnika seje, tako da, če se le ta logira ali odlogira asinhrono noben Nonce-ns na strani ne bo več veljaven.

Kako ga uporabite?
https://codex.wordpress.org/WordPress_Nonces

1. DODAJANJE

  • Dodajanje v URL

Kličite
wp_nonce_url()
navedite čisti URL in niz, ki predstavlja dejanje.

Primer: $complete_url = wp_nonce_url( $bare_url, ‘trash-post_’.$post->ID );

Poskrbite, da bo niz, ki predstavlja dejanje kar se da natančen.

wp_nonce_url() privzeto doda polje z imenom
 _wpnonce,
ime lahko spremenite pri klicu funkcije:
$complete_url = wp_nonce_url( $bare_url, ‘trash-post_’.$post->ID, ‘my_nonce’ );

  •  Dodajanje v formo

Kličite
wp_nonce_field()
natančno določite niz, ki predstavlja dejanje.
wp_nonce_field() privzeto generira dva skrita polja (eno katerega vrednost je Nonce in enega katerega vrednost je trenuten URL (the referrer), kar se odraža kot rezultat)).

Napr:
wp_nonce_field( ‘delete-comment_’.$comment_id );
Morda celo nekaj takega:
<input type=”hidden” id=”_wpnonce” name=”_wpnonce” value=”796c7766b1″ />
<input type=”hidden” name=”_wp_http_referer” value=”/wp-admin/edit-comments.php” />
Bolj podrobno: https://codex.wordpress.org/Function_Reference/wp_nonce_field

Poskrbite, da bo niz, ki predstavlja dejanje karseda natančen.

  • Ustvarjanje Nonce-nsa za uporabo na drug način

Kličite
wp_create_nonce()
natančno določite niz, ki predstavlja dejanje.

Napr:
$nonce = wp_create_nonce( ‘my-action_’.$post->ID );
Kar enostavno vrne nazaj Nonce:
Napr: 295a686963

2. PREVERJANJE

  •  Nonce, ki je bil poslan v URL iz admin zaslona

Kličite
check_admin_referer()
natančno določite niz, ki predstavlja dejanje.

Napr: check_admin_referer( ‘delete-comment_’.$comment_id );

Ta klic preverja Nonce in napotitelja (referrer), če pregled ni uspešen potem se izvede normalna akcija (zaključeno izvjanje skript s “403 Forbidden” odzivom in sporočilo o napaki).

Če niste uporabili privzetega imena polja  (_wpnonce), ko ste ustvarili Nonce, potem določite ime polja:
check_admin_referer( ‘delete-comment_’.$comment_id, ‘my_nonce’ );

  • Nonce, ki je bil poslan v AJAX zahtevo

Za preverjanje kličite
check_ajax_referer()
natančno določite niz, ki predstavlja dejanje.

Napr: check_ajax_referer( ‘process-comment’ );

Če niste uporabili privzetega imena polja (_wpnonce ali _ajax_nonce), ko ste ustvarili Nonce lahko določite dodatne parametre.
Za več glejte: https://codex.wordpress.org/Function_Reference/check_ajax_referer

  • Preverjanje nonce-nsa za uporabo na drug način

Kličite
wp_verify_nonce() določite nonce in niz, ki predstavlja dejanje.

Napr: wp_verify_nonce( $_REQUEST[‘my_nonce’], ‘process-comment’.$comment_id );

Če je rezultat napačen ne nadaljujete s procesom, raje kličite wp_nonce_ays(), kar bo naredilo “403 Forbidden” odziv v brskalniku z error sporočilom: “Are you sure you want to do this?”.

3. SPREMINJANJE NONCE SISTEMA

Nonce sistem lahko prilagodite tako, da dodate različna dejanja in filtre.

  • Spreminjanje Error sporočila

function my_nonce_message ($translation) {
 if ($translation == ‘Are you sure you want to do this?’)
    return ‘No! No! No!’;
  else
    return $translation;
  }

add_filter(‘gettext’, ‘my_nonce_message’);

  • Izvajanje dodatne verifikacije (preverjanja)

Dodajte
check_admin_referer dejanje.
Napr:
function my_additional_check ( $action, $result ) { … }
add_action( ‘check_admin_referrer’, ‘my_additional_check’, 10, 2 );

Za pregled check_ajax_referer() dodaj check_ajax_referer dejanje na isti način.

  • Spreminjanje Nonce Lifetime

Privzeto ima Nonce “življensko dobo” enega dneva, po tem času Nonce ni več veljaven četudi se ujema z nizom dejanj (akcije).

Če želite spremeniti lifetime dodajte
nonce_life
filter in določite lifetime v sekundah.

Napr:
add_filter( ‘nonce_life’, function () { return 4 * HOUR_IN_SECONDS; } );

4. VARNOST

Nonce je generiran tako, da uporablja KEY in SALT, ki sta edinstvena za vašo stran, če ste namestili WP pravilno.
Definirana sta v wp-config.php datoteki (datoteka vsebije komentarje, ki vam bodo dali več informacij).

Nonce se nikoli ne sme sklicevati na avtentikacijo ali avtorizacijo kontole dostopa.
Zaščitite funkcijo z uporabo current_user_can().

Vtičniki za zaščito:

Zadnje ranljivosti lahko spremljate na:

 

Viri:

Kdo, kaj sta ICANN in IANA? Kako sta povezana z internetom, domenami, ip naslovi….?


 

 

 

Internet Corporation for Assigned Names and Numbers ali krajše ICANN je mednarodno organizirana, neprofitna organizacija, ki je odgovorna za dodelitev prostora IP naslovov, dodelitev protokola identifikacijske oznake, gTLD in ccTLD domenskega sistema za upravljanje, funkcije root sistema za upravljanje.

Namen ICANNa je ohranjanje delovanja internetne stabilnosti.

ICANN toraj usklajuje funkcije IANA (Internet Assigned Numbers Authority), ki so tehnične funkcije pomembne/nujne za nadaljne delovanje DNS-ja (Domain Name System).

Naloge IANN-a vključujejo:

  • usklajevanje, dodelitev tehničnih parametrov protokola, vključno z upravljanjem naslov in usmerjanje parametrov (ARPA) vrhnje domene.
  • administracijo določenih obveznosti povezanih z internetnimi DNS root področji (root zone) > kot so gTLDji in ccTLDji.
  • dodeljevanje internetnih številčnih virov, ki vključuje tudi koordinacijo IP naslovov.

Poenostavimo vse zgoraj napisano;

Da bi dosegli željeno osebo preko interneta morate napisati njen nasov – ime ali številko. Ta naslov mora biti edinstven, da računalnik lahko ve, katero osebo iščete in kje jo najti. ICANN koordinira te posebne številke preko celega sveta. Brez teh številk ne bi imeli svetovnega interneta.

SLIKA;  https://whois.icann.org/en/dns-and-whois-how-it-works

  1. vpišemo željeni naslov spletne strani, ki jo želimo obiskati. Ta naslov (domensko ime) je edinstveno.
  2. Domensko ime je poslano na strežnik, ki prevede to ime v številko – IP naslov.
  3. Tem imenom in številkam pravimo tudi posebni identifikatorji in vsebujejo posebne protokole, ki omogočajo, da se računalniki lahko pogovarjajo med seboj ter se razumejo.
  4. Funkcija IANA (ki jo upravla ICANN) je zagotovitev, da pridete preko vseh teh številk in protokolov na pravo mesto, ki ste ga iskali.

Standardizacija internetnih protokolov je bistvena za zagotovitev, da bo internet še naprej deloval ter, da bodo komunikacijski sistem med vsemi, ki uporabljamo različne opreme, še vedno delovali.
Domenska imena ter interntne številke so posebne oblike parametrov protokola, seveda pa je še ogromno ostalih protokolov, ki zahtevajo koordinacijo in morajo biti globalno edinstveni.

Poglejmo si nekatere parametre protokola:

  • številke vrat (port), npr. 80
  • jezikovne značke, npr. fr, en…
  • HTTP statusi kode, napr. 404
  • medijski tipi, napr. formati – video, slike…

Internetne protokole ustvarja in določi IETF (The Internet Engineering Task Force), ti se odražajo v osnutkih dokumentov imenovanih RFC, RFCji opisujejo komunikacijski mehanizem, v uporabi, ali predlagani za uporabo, za internetne protokole, IANA jih pregleda, določi kje morajo biti protokoli nameščeni v registrih, ki jih ohranja/vzdržuje ICANN.

.ARPA (Address and Routing Parameter Area) domena se uporablja izključno za tehnično infrastrukturne namene – napr. protokole, ki zahtevajo neko obliko operativne infrastrukture v sistemu domenskih imen (pot za pretvorbo IP naslova v domensko ime).

Nekaj primerov .arpa domene:

  • arpa = za pretvorbo IPv6 naslovov v internetna domenska imena
  • arpa = za pretvorbo E.164 številk v internetne URLje

Več: https://www.iana.org/domains/arpa

Bližje si oglejmo funkcijo dodeljevanje internetnih številčnih virov, predvsem nalog iz zadev, ki se bolj tičejo naslovov ter domen:

IP naslovi: IPv4 in IPv6

Internet deluje tako, da za pretok podatkov med napravami le-te uporabljajo sistem enotnih identifikatorjev imenovanih IP naslovi.
Poznamo IPv4 in IPv6.

RIR (Regional Internet Registries)

Pet regionalnih internetnih registrov, ki temeljijo na članstvu in delujejo v različnih regijah:

  • ARIN (American Registry for Internet Numbers)
  • LACNIC (Latin America and Caribbean Network Information Centre)
  • AFRINIC (African Network Information Center)
  • RIPE NCC (Réseaux IP Européens Network Coordination Centre)
  • APNIC (Asia Pacific Network Information Centre)

SLIKA: https://www.ripe.net/participate/internet-governance/internet-technical-community/the-rir-system

  • Upravljajo in registrirajo IP številske prostore znotraj določenega območja.
  • Zagotavljajo globalne internetne vire in povezane storitve (IPv4, IPv6 in AS številčne vire) članom njihove storitve v regiji.
  • Vsaka RIR skupnost sodeluje v procesu razvoja pravil. Globalna pravila so toraj konsenz vseh petih regionalnih registrov preden se pravila ratificirajo, nato jih ICANN iplementira.

ICANN je odgovoren za vzdrževanje evidence o dodeljenih in nedodeljenih blokov IPv4, IPv6 naslovov in ASN; je odgovoren za dodeljevanje velikih blokov teh naslovov petim RIR glede na globalno politiko.

Več o domenah

GNSO (Generic Names Supporting Organization) in ccNSO (Country Code Names Supporting Organization) razvijata pravila povezana z večino vrhnjih domen.

DNS (Domain Name System) je hiearhičen. Vsaka “pika” predstavlja nov nivo v hiearhiji.

SLIKA: https://archive.icann.org/en/meetings/saopaulo/presentation-dns-conrad-07dec06.pdf

Na vrhu lestvice je root, ta vsebuje informacije o TLDjih (gTLDji in ccTLDji).

Za delovanje DNSja morajo obstajati (biti vpisani) strežniki, ki se odzivajo na poizvedbe ter sprožijo prevod med domenskim imenom in vrednostjo povezano s tem imenom.
Takšni strežniki se imenujejo root servers.

Glede na vzpostavljeno politiko in postopke se ICANN obnaša kot globalni koordinator DNS roota ter je odgovoren za:

  • Ocenjevanje in priporočanje za odobritev, ustvarjanje, ali spremembe TLDjev v rootu.
  • Preverjanje zahtevanih sprememb v območju root, ki se izvajajo in za izvajanje sporočil prosilcu.
  • Vrednotenje zahtev za spremembe v območju root, da se zagotovi, da so v skladu s sedanjimi politikami in postopki.
  • Posodabljanje podatkov v podatkovni bazi root območja (vključno s podatki, objavljeni v “WHOIS” storitvi), da odražajo spremembe v podatkih, povezanih s TLD.
  • Upravljanje Key Signing Key (KSK) za root območje, ki je osrednjega pomena za izvajanje varnosti DNS uporabljajoč izboljšave na DNSSEC protokolu.

IANA:

  • Poleg upravljanja z DNS root cono, IANA vodi tudi register .int, in .arpa območje;
  • IANA ima pravico usklajevati globalni IP oziroma AS številski prostor, dodeljevanje teh RIRom; IANA tako predstavlja glavno skladišče za številne registre in imenske protokole.

Viri:

http://www.iana.org/about
http://www.iana.org/domains/arpa
https://www.icann.org/resources/pages/welcome-2012-02-25-en

https://www.ripe.net/about-us/what-we-do
https://icannwiki.com/Internet_Assigned_Numbers_Authority#cite_note-2

ICANN logotip slika: https://www.icann.org
IANA logotip slika: https://www.iana.org

 

Kako preusmerim svojo WordPress spletno stran iz HTTP na HTTPS

Ko imate na strežniku nameščen SSL certifikat za varno povezavo preko HTTPS je potrebno vašo spletno stran preusmeriti iz HTTP na HTTPS.

Na primer, da imate domeno vasadomena.nekaj, ki se prikazuje takole; http://www.vasadomena.nekaj

Spletno stran ustvarjeno v WordPress lahko preusmerite na dva načina:

  • preko vtičnika (plug-in) ali
  • preko .htaccess datoteke, ki se nahaja na vašem strežniku.

Ko boste preusmerili vašo spletno stran na HTTPS se bo vaša povezava prikazovala takole; https://www.vasadomena.nekaj
 

POZOR, VAŠA DOMENA MORA IMETI SSL CERTIFIKAT!
SSL certifikati so vam na voljo na naši spletni strani > SSL certifikati
Pri izbiri pravega vam z veseljem pomagamo, pišite nam na info@zabec.net.

  • Preusmeritev spletne strani preko vtičnika (plug-in)

Če ste začeli z uporabo SSL od prvega dane objave vaše spletne strani, potem so že vse statične datoteke (npr. slike) že objavljene tako, da uporabljajo HTTPS.

Če ste si uredili SSL certifikat kasneje, pa imate spletno stran na kateri je veliko statičnih datotek, ki so objavljene na strani z »NON-HTTPS«, torej HTTP naslovi. V tem primeru jih boste morali spremeniti. Če tega ne uredite bo brskalnik prikazal opozorilo o varnostni težavi, tudi če imate na samem strežniku že nameščen SSL certifikat.

Vtičnik »Easy HTTPS Redirection Plugin« vam omogoči, da lahko »na silo« preusmerite statične datoteke na varno povezavo, HTTPS. Tako bo vaša spletna stran v celoti združljiva s SSL certifikatom.

Uporaba vtičnika omogoči samodejno preusmeritev na HTTPS (Enable automatic redirection to the HTTPS).

Ko omogočite to možnost se bo vaša spletna stran http://www.vasadomena.nekaj avtomatsko preusmerila na varno povezavo https://www.vasadomena.nekaj , tako vas bodo obiskovalci vaše spletne strani obiskali preko varne povezave.

Ko namestite vtičnik, ga poiščite v Nastavitvah (Settings) in izberite HTTPS Redirection.

Ko imate pred seboj nastavitve vtičnika pri prvi izbiri določite, da se vaša stran usmeri na HTTPS, pri drugi izbiri pa omogočite, da se vse statične datoteke (slike) prikazuje preko HTTPS povezave.

Vtičnik vas vpraša ali želite preusmeriti celotno stran na HTTPS ali samo določene strani – izberite preusmeritev celotne strani (Whole page) in kliknite Shrani (Save).

  • Preusmeritev vaše spletne strani preko .htaccess datoteke

Če želite vašo spletno stran preusmeriti »ročno« na varno povezavo HTTPS, to storite z urejanjem .htaccess datoteke na vašem gostovanju in pa z urejanjem povezave v administraciji WordPress-a vaše spletne strani.

V administraciji spletne strani poiščite Nastavitve (Settings) in Splošno (General) – Tukaj uredite Naslov za WordPress ((URL) (WordPress Address (URL)) in Naslov spletišča ((URL) (Site Address (URL))

Uredite jih tako, da pri http://www.vasadomena.nekaj spremenite http v https.

Ko ste naredili sledeče, morate v kontrolni plošči urediti še .htaccess datoteko – odprete .htaccess datoteko, ki se nahaja v public_html mapi in čisto na začetku dodate naslednje vrstice:

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteCond %{SERVER_PORT} 80

RewriteRule ^(.*)$ https://www.vasadomena.nekaj/$1 [R,L]

</IfModule>

Bodite pozorni, da »https://www.vasadomena.nekaj« spremenite v vašo kupljeno domeno.

V wp-config.php dodamo še zapis:

define(‘FORCE_SSL_ADMIN’, true);

Čisto na koncu pa ne pozabite dodati vašo https stran ponovno v Google Webmaster Tools, tako boste Googla obvestili o spremembi, ki ste jo naredili.

Kaj je IP in zakaj lahko pride do blokade?


Kaj je IP?

Je številka računalnika v omrežju interneta. Številke se med seboj ločujejo s pikami.
Primer: 91.185.203.178 je IP – naslov našega strežnika Gaja.

IP – naslov je lahko statičen ali dinamičen.

Statičen IP – naslov uporabljamo predvsem pri strežnikih, saj uporabljamo konstantno isti naslov, dinamičen IP – naslov pa je nov naslov vedno, ko vzpostavimo povezavo.

Zakaj lahko pride do blokade?

Požarni zid deluje kot filter med omrežjem strežnika in interneta. Določite pravila kdo oz. kaj se lahko poveže z internetom in kakšne povezave se lahko izvede. Obstaja več različnih pravil katere požarni zid uporablja za filtriranje informacij, nekatere se uporabljajo tudi v kombinacijah. Ta pravila delujejo na različnih plasteh omrežja, ki določa kako specifične so lahko možnosti filtriranja.
Naši požarni zidovi na strežnikih imajo t.i. lfd. To je proces, ki se nenehno izvaja in vsakih nekaj sekund pregleda dnevniške datoteke kjer se zapisujejo neuspeli poizkusi prijave, ki se zgodijo v zelo kratkem času. Lfd proces je namenjen obrambi pred napadom z metodo grobe sile (brute-force attack), kjer napadalec s programom poizkuša uganiti pravilno geslo in se prijavlja v strežnik. To se izvaja v časovnem obdobju sekund. Proces reagira na vzorec in tako blokira IP naslov iz katerega prihajajo neuspele prijave.

Da je vaš IP blokiran izveste tako, da se vam ob prijavi na strežnik izpiše napaka »Povezava je potekla« (connection timed out). Napaka se pojavi ob povezavi na strežnik preko poštnega odjemalca, FTP odjemalca, če želite dostopati do kontrolne plošče ali če obiščete svojo spletno stran medtem, ko vam druge storitve delujejo normalno.

Najbolj tipični razlogi za blokado uporabnika so naslednji:

  1. Uporabnikov poštni odjemalec ima zelo nizki interval preverjanja novih poštnih sporočil, ki povzroča številne poskuse povezave do poštnega strežnika še posebej, če veliko uporabnikov dostopa do pošte prek skupne povezave.
  2. Uporabnik uporablja stara ali napačna gesla za poštni odjemalec, FTP odjemalec ali kontrolno ploščo gostovanja, kar požarni zid zazna kot napad z metodo grobe sile (brute-force attack).
  3. Uporabnik FTP odjemalca ima nastavljene zelo veliko število hkratnih povezav na strežnik, zaradi česar požarni zid zazna kot napad z zavrnitvijo storitve (denial of service attack).
  4. Spletna stran ali aplikacija, ki se posodobi ali zahteva dostop do strani se interpretira kot poskus vdora v spletno mesto preko spletne aplikacije. Zaščita se imenuje mod_security.

Kaj lahko storijo naše stranke v primeru blokade IPja?

1. Svoj IP si lahko odblokirate v portalu moj.zabec.net na vstopni strani ali nam ga sporočite na info@zabec.net (z vsemi potrebnimi podatki)
2. Kako izvem svoj ip? odprite povezavo ip.zabec.net in pokazala se vam bo številka ločena s pikami.

Zgodba o Vidi in Staši

 

To je zgodba o Vidi in Staši. Vida in Staša sta računovodji in vsako leto pride mesec, ko sta zaradi oddaje letnih poročil in bilanc še posebej zasuti z delom, delata tako rekoč od jutra do večera, računalnik pa je pri njunem delu nepogrešljivo orodje. V petek pozno popoldne, sta od Nataše, dobre prijateljice, ki petkovo popoldne običajno popestri s kakšno dobro šalo, prejeli elektronsko sporočilo s povezavo na nadvse zabavno video vsebino, in to v slovenskem jeziku. Ker je to v Natašini navadi, sta Vida in Staša brez pomisleka povezavo obiskali.

A šlo je za prevaro….
Nepridiprav je spretno izkoristil njuno zaupanje in naivnost ter na takšen način v njune računalnike vsilil zlonamerno programsko kodo, izsiljevalski kripto virus. Takoj po obisku povezave, ki je sicer zvito postregla tudi s prikupno video vsebino, v ozadju osebnega računalnika pa je koda spletne strani izkoristila ranljivost in namestila kripto izsiljevalski virus, ki je nemudoma pričel s šifriranjem vseh vsebin v računalniku.

Po ogledu posnetka sta obe nadaljevali z delom. Obe sta sicer opazili, da računalnika delujeta nekoliko upočasnjeno, vendar temu nista posvečali posebne pozornosti, navsezadnje to niti ni nič nenavadnega. Čez nekaj ur je sledilo presenečenje. Oba računalnika sta zahtevala ponoven zagon, ki ga ni bilo mogoče preskočiti, po vnovičnem zagonu, pa je obe na zaslonu pričakalo sporočilo. Sporočilo, da so vsi podatki v njunih računalnikih šifrirani, spletni kriminalci, pa so od njiju za prevzem gesla za dešifriranje zahtevali, da preko plačilnega sistema Bitcoin opravita plačilo v vrednosti 1.000,00 EUR.

Staša čaka v skrbeh ali bo lahko nadaljevala z delom…
Podatki v obeh računalnikih so bili nedostopno šifrirani, tako rekoč edina možnost za povrnitev, vsaj v doglednem času, pa je plačilo izsiljevalske kupnine. Staša je nemudoma stopila v stik s podjetjem, ki vzdržuje programsko opremo za vodenje računovodstva. Obvestili so jo, da ji lahko vzpostavijo stanje na čas, ko je bilo opravljeno zadnje varnostno kopiranje, da zato potrebujejo sveže nameščen računalnik in da bo postopek trajal do dva dni.

Pa Vida? Vida lahko z delom nadaljujeje takoj! Kako je to mogoče…
Vida je, kljub temu, da se ji je pripetila popolnoma enaka situacija, svoje delo lahko nadaljevala že čez pol ure. Kako je to mogoče? Vida je potrebovala le nadomestni računalnik, vse svoje delo namreč opravlja znotraj namizja v oblaku. Tako kot Staši, je, tudi Vidi isti kripto izsiljevalski virus zaklenil vse datoteke v osebnem računalniku, vendar pa Vida v svojem osebnem računalniku ni hranila pomembnih datotek. Je že res, da je izgubila kakšno fotografijo, in morda še kakšno nepomembno reč, za poklicno delo pa je uporabljala izključno storitev namizja v oblaku, kamor je vestno odlagala tudi vse pomembne dokumente.

Staši zaradi časovne stiske žal ni preostalo drugega, kot da spletnim goljufom izplača visok želeni znesek. To je bila najhitrejša pot za povrnitev podatkov, saj bi alternativna možnost, ki bi verjetno bila nekoliko cenejša, prinesla preveliko  izgubo, trajala pa bi predolgo.

Zgodba je izmišljena, ampak to sploh ni važno. Za več informacij obiščite https://zabec.cloud/ .