Tento článek shrnuje, jak ABRA Flexi řeší nejčastější bezpečnostní hrozby na straně serveru a REST API, a co si k tomu můžete nastavit sami.
Man in the middle attack
Jedním z možných útoků na ABRA Flexi je Man in the middle — útočník se vydává za servery ABRA Flexi, uživatel mu poskytne autorizační údaje a útočník se jimi pak může autorizovat proti skutečným serverům a analyzovat průběh komunikace.
Standardně si ABRA Flexi vygeneruje takzvaný self-signed certifikát; SSL certifikát lze vyměnit za vlastní. Proti tomuto typu útoku má ABRA Flexi dvě opatření:
Při spuštění si ABRA Flexi stáhne certifikát a při další práci se serverem jej ověřuje. Proto není možné vyměnit certifikát za běhu.
DANE — uložení otisku certifikátu do DNS.
Uložení certifikátu do DNS (DANE)
Podklad pro DNS záznam lze vygenerovat nástrojem 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
Místo nástroje SWEDE je také možné získat konfiguraci přímo z běžícího serveru ABRA Flexi:
GET https://server:5434/certificate/tlsa
Endpoint vrací parametry TLSA záznamu a otisk certifikátu — tedy hodnoty usage, selector, matching type a samotný otisk:
1 1 2 3419e6e0631325af64da1f064e7779f9…
Do DNS pak přidáte tento záznam:
_5434._tcp.demo.flexibee.eu. IN TXT TLSA 1 0 1 85b928d1cab396d8e632d15d57b3a97ebbc2769ab74a292040dc4fc340153973
Jako hodnota je tedy uloženo celé TLSA 1 0 1 85b928d1….
Hledání probíhá v tomto pořadí:
_5434._tcp.demo.flexibee.eu.
_tcp.demo.flexibee.eu.
_5434._tcp.flexibee.eu.
_tcp.flexibee.eu.
🚨 Nepoužíváte-li současně i DNSSEC, není zaručena bezpečnost odpovědi DNS serveru — a tím ani přínos DANE.
⚠️ Klient ABRA Flexi zatím nepodporuje kompletní DANE, ale pouze parametry --selector 1, --mtype 1 a --usage 0.
Pokud vám klient hlásí chybu při vyhodnocování TLSA záznamu, pomůže článek Chyba TLSAException – Timeout while resolving TLSA.
CSRF
ABRA Flexi má integrovanou ochranu proti Cross Site Request Forgery a v tomto směru není nutné nic nastavovat.
SQL Injection a XSS
Při návrhu jsme věnovali mnoho úsilí, abychom zabránili SQL Injection a Cross Site Scriptingu (XSS). K těmto typům chyb proto nedochází.
Ukládání hesel
Dříve ABRA Flexi používala pro ukládání hesel funkci MD5. Nyní se používá SHA-256 se saltováním. Stará hesla se překódují až při své změně.
ℹ️ Otisk hesla se počítá z řetězce salt + ":" + heslo. Podrobnosti a seznam podporovaných funkcí najdete v článcích Batch API a Autentizace kontaktu.
