Přeskočit na hlavní obsah

Bezpečnost

Ochrana před možnými útoky

Autor: Petr Pech

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.


Související

Dostali jste odpověď na svou otázku?