Tento článok zhŕňa, ako ABRA Flexi rieši najčastejšie bezpečnostné hrozby na strane servera a REST API, a čo si k tomu môžete nastaviť sami.
Man in the middle attack
Jedným z možných útokov na ABRA Flexi je Man in the middle — útočník sa vydáva za servery ABRA Flexi, používateľ mu poskytne autorizačné údaje a útočník sa nimi potom môže autorizovať proti skutočným serverom a analyzovať priebeh komunikácie.
Štandardne si ABRA Flexi vygeneruje takzvaný self-signed certifikát; SSL certifikát je možné vymeniť za vlastný. Proti tomuto typu útoku má ABRA Flexi dve opatrenia:
Pri spustení si ABRA Flexi stiahne certifikát a pri ďalšej práci so serverom ho overuje. Preto nie je možné vymeniť certifikát za behu.
DANE — uloženie odtlačku certifikátu do DNS.
Uloženie certifikátu do DNS (DANE)
Podklad pre DNS záznam je možné vygenerovať nástrojom SWEDE:
$ ./swede --insecure create --port 5434 --certificate certifikat.pem --selector 1 --output rfc demo.flexibee.eu
_5434._tcp.demo.flexibee.eu. IN TLSA 1 0 1 85b928d1cab396d8e632d15d57b3a97ebbc2769ab74a292040dc4fc340153973
Namiesto nástroja SWEDE je tiež možné získať konfiguráciu priamo z bežiaceho servera ABRA Flexi:
GET https://server:5434/certificate/tlsa
Endpoint vracia parametre TLSA záznamu a odtlačok certifikátu — teda hodnoty usage, selector, matching type a samotný odtlačok:
1 1 2 3419e6e0631325af64da1f064e7779f9…
Do DNS potom pridáte tento záznam:
_5434._tcp.demo.flexibee.eu. IN TXT TLSA 1 0 1 85b928d1cab396d8e632d15d57b3a97ebbc2769ab74a292040dc4fc340153973
Ako hodnota je teda uložené celé TLSA 1 0 1 85b928d1….
Hľadanie prebieha v tomto poradí:
_5434._tcp.demo.flexibee.eu.
_tcp.demo.flexibee.eu.
_5434._tcp.flexibee.eu.
_tcp.flexibee.eu.
🚨 Ak nepoužívate súčasne aj DNSSEC, nie je zaručená bezpečnosť odpovede DNS servera — a tým ani prínos DANE.
⚠️ Klient ABRA Flexi zatiaľ nepodporuje kompletné DANE, ale iba parametre --selector 1, --mtype 1 a --usage 0.
Ak vám klient hlási chybu pri vyhodnocovaní TLSA záznamu, pomôže článok Chyba TLSAException – Timeout while resolving TLSA.
CSRF
ABRA Flexi má integrovanú ochranu proti Cross Site Request Forgery a v tomto smere nie je nutné nič nastavovať.
SQL Injection a XSS
Pri návrhu sme venovali mnoho úsilia, aby sme zabránili SQL Injection a Cross Site Scriptingu (XSS). K týmto typom chýb preto nedochádza.
Ukladanie hesiel
Skôr ABRA Flexi používala na ukladanie hesiel funkciu MD5. Teraz sa používa SHA-256 so saltovaním. Staré heslá sa prekódujú až pri svojej zmene.
ℹ️ Odtlačok hesla sa počíta z reťazca salt + ":" + heslo. Podrobnosti a zoznam podporovaných funkcií nájdete v článkoch Batch API a Autentizácia kontaktu.
