Model hrozieb
Frontmail vám umožňuje posielať e-maily priamo z prehliadača. Je to pohodlné, ale znamená to, že časť vašej integrácie je v kóde, ktorý si ktokoľvek môže prečítať a skopírovať. Na tejto stránke nájdete všetky útoky na tento model, o ktorých vieme, ako sa im Frontmail bráni, čo by ste si mali nastaviť sami – a otvorene aj riziko, ktoré zostáva. Ak vám tu niečo chýba, napíšte na security@frontmail.dev.
Základný model
Section titled “Základný model”- Verejný kľúč je verejný. Je v zdrojovom kóde vašej stránky. Berte ho ako používateľské meno, nie ako heslo. Ktokoľvek si ho môže skopírovať a volať API zo skriptu.
- Hlavička
Originnie je overenie. Prehliadače ju vypĺňajú poctivo, ale skript pošle akúkoľvek hodnotu. Povolené domény zabránia iným webom, aby váš kľúč používali v prehliadačoch svojich návštevníkov – odhodlaného útočníka však nezastavia. - Skutočne vás chráni to, čo útočník zmeniť nemôže:
- šablóna – útočník smie poslať len vaše šablóny a vyplniť len ich parametre,
- CAPTCHA (Turnstile) – každé odoslanie ho stojí jedno vyriešenie,
- limity – na IP adresu, kľúč, organizáciu, príjemcu a vaše kredity.
- Súkromný kľúč je tajomstvo. Patrí len na váš server. Obchádza povolené domény aj CAPTCHA a dokáže čítať históriu správ.
Zvyšok stránky z týchto štyroch bodov vychádza.
Útoky a obrana
Section titled “Útoky a obrana”1. Phishing z vašej domény (najdôležitejší)
Section titled “1. Phishing z vašej domény (najdôležitejší)”Útok. Šablóna berie príjemcu z parametrov – obnovenie hesla, notifikácia, potvrdenie odberu.
Útočník si skopíruje váš verejný kľúč, pošle šablónu obeti a do reset_url vyplní svoj web.
E-mail príde z vašej domény, prejde kontrolou SPF aj DKIM, vyzerá presne ako váš a vedie
k útočníkovi.
Čo robí Frontmail. Požiadavka s verejným kľúčom na šablónu s dynamickým príjemcom dostane uzamknutý obsah:
- CAPTCHA je povinná (
dynamic_recipient_requires_captcha), - každý odkaz musí viesť na vaše povolené domény – kontrolujú sa odkazy v atribútoch, CSS,
obyčajnom texte (aj holé
evil.com/login, z ktorého e-mailový klient urobí odkaz) a predmete, vrátane trikov akohttps://vy.sk@evil.com, spätné lomky, podobne vyzerajúce domény v Unicode alebo zakódované znaky (link_not_allowed), - adresa odosielateľa, meno odosielateľa a Reply-To nesmú pochádzať z parametrov
(
dynamic_field_not_allowed), - žiadne HTML parametre, textové parametre najviac 500 znakov,
- každý príjemca dostane od vašej organizácie najviac 5 takých e-mailov denne (nastaviteľné).
Všetko sa kontroluje skôr, ako sa spotrebuje kredit. Automatické odpovede sú uzamknuté rovnako.
Čo by ste mali urobiť vy. Ak vaše odkazy vedú aj inam než na doménu vášho webu, vyplňte Zabezpečenie → Povolené domény odkazov. Nastavte si vlastné kľúče Turnstile. Šablóny, ktoré posiela len váš server (potvrdenie objednávky, obnovenie hesla vygenerované na backende), posielajte súkromným kľúčom.
Zostávajúce riziko. Útočník môže cudziemu človeku stále poslať váš legitímny e-mail – napríklad „Potvrďte odber newslettera“ s odkazom na váš web. Nie je v ňom nič, čo by útočník ovládal, takže nejde o phishing, ale môže obťažovať. Limit na príjemcu a CAPTCHA to udržia v malom. Obyčajný text bez odkazu (napríklad „zavolajte na toto číslo“) sa do textového parametra stále dá vložiť do 500 znakov – dynamické textové parametre preto obmedzte na to, čo e-mail naozaj potrebuje.
2. Spam do vašej vlastnej schránky
Section titled “2. Spam do vašej vlastnej schránky”Útok. Skript zaplaví šablónu kontaktného formulára nezmyslami.
Čo robí Frontmail. Limit na IP adresu (predvolene 10 požiadaviek / 60 s, IPv6 sa počíta po sieťach /64), limity na kľúč a organizáciu, detekcia anomálií, kontrola headless prehliadačov a blokovaných hodnôt na serveri, voliteľná CAPTCHA pre každú šablónu.
Čo by ste mali urobiť vy. Pri verejných formulároch zapnite Vyžadovať CAPTCHA. Známe spamové hodnoty pridajte do zoznamu blokovaných hodnôt.
Zostávajúce riziko. Bez CAPTCHA prejde trpezlivý útočník, ktorý strieda IP adresy. S CAPTCHA musí za každý e-mail zaplatiť službe, ktorá ju rieši.
3. Volanie API zo skriptu alebo z falošnej „aplikácie“
Section titled “3. Volanie API zo skriptu alebo z falošnej „aplikácie“”Útok. Útočník posiela požiadavky mimo prehliadača, s podvrhnutým Origin alebo úplne bez neho.
Čo robí Frontmail. Požiadavky bez Origin a Referer (typické pre skripty) sa odmietnu,
ak nemáte zapnuté Povoliť mobilné aplikácie – aj keď je zoznam povolených domén prázdny.
Zdieľanú mobilnú CAPTCHA Frontmailu používajú len organizácie s touto voľbou; všetky ostatné musia
prejsť vaším vlastným widgetom Turnstile a jeho token musí pochádzať z domény, z ktorej požiadavka
prišla.
Čo by ste mali urobiť vy. Povoliť mobilné aplikácie nechajte vypnuté, ak nemáte natívnu aplikáciu. Kód na serveri má používať súkromný kľúč.
Zostávajúce riziko. Podvrhnutý Origin zoznamom povolených domén stále prejde; zastaví ho
CAPTCHA a limity (pozrite bod 2).
4. Vyčerpanie vašich kreditov alebo karty
Section titled “4. Vyčerpanie vašich kreditov alebo karty”Útok. Útočník s vaším verejným kľúčom posiela toľko e-mailov, koľko limity dovolia, aby spálil vašu mesačnú kvótu – a keby mohol, aj prečerpanie a automatické dobíjanie.
Čo robí Frontmail.
- Prevádzka s verejným kľúčom nečerpá prečerpanie a nespúšťa automatické dobíjanie, pokiaľ to výslovne nepovolíte (Fakturácia → Výdavky z prevádzky s verejným kľúčom).
- Fronta pozdržaných e-mailov má strop; nad ním sa požiadavky odmietajú namiesto zaradenia do fronty, takže smeti nespotrebujú kredity, ktoré si kúpite neskôr.
- Automatické dobíjanie má mesačný limit počtu aj výdavkov.
Čo by ste mali urobiť vy. Nechajte predvolené nastavenia, používajte CAPTCHA, sledujte e-maily o anomáliách.
Zostávajúce riziko. Vašu bežnú kvótu a kreditové balíky môžu stále spotrebovať smeti, ktoré prejdú cez CAPTCHA a limity. Stojí vás to kredity, nie peniaze navyše.
5. Zablokovanie formulára skutočným návštevníkom
Section titled “5. Zablokovanie formulára skutočným návštevníkom”Útok. Lacná záplava neplatných požiadaviek vyčerpá limity vašej organizácie a skutoční
návštevníci dostanú 429.
Čo robí Frontmail. Limity organizácie a detekcia anomálií počítajú len požiadavky, ktoré prešli kontrolou šablóny a CAPTCHA; dovtedy platí len limit na IP adresu a veľkorysá ochrana proti záplave.
Zostávajúce riziko. Veľký distribuovaný útok môže prevádzku spomaliť; väčšinu z neho zachytí firewall na okraji siete (WAF).
6. Obídenie firewallu
Section titled “6. Obídenie firewallu”Útok. Volať servery Frontmailu priamo namiesto cez CDN, obísť webový aplikačný firewall a podvrhnúť IP adresu klienta.
Čo robí Frontmail. Servery prijímajú len požiadavky, ktoré prešli naším CDN, a veria len IP adrese klienta, ktorú CDN odovzdá. Nemusíte nič nastavovať.
7. Uniknutý súkromný kľúč
Section titled “7. Uniknutý súkromný kľúč”Útok. Súkromný kľúč skončí v kóde pre prehliadač (často po prechode z EmailJS, kde je
accessToken súkromný kľúč) a niekto si ho skopíruje.
Čo robí Frontmail. SDK pre prehliadač so súkromným kľúčom odmietnu fungovať
(private_key_in_browser) a API odmietne požiadavky so súkromným kľúčom z webovej stránky, ak
nemáte zapnuté Povoliť súkromné kľúče v prehliadačoch. Súkromné kľúče ukladáme len ako hash.
Čo by ste mali urobiť vy. Nikdy nedávajte sk_… do frontendového kódu ani do premenných
VITE_ / NEXT_PUBLIC_. Ak unikol, okamžite ho vymeňte.
Zostávajúce riziko. Kto má váš súkromný kľúč, môže posielať bez CAPTCHA a čítať históriu správ (vrátane odoslaných formulárov). Chráňte ho ako heslo.
8. Nebezpečné prílohy
Section titled “8. Nebezpečné prílohy”Útok. Poslať vám alebo dynamickému príjemcovi malvér v prílohe.
Čo robí Frontmail. Prílohy z prehliadača sú vypnuté, kým ich šablóna nepovolí. Spustiteľné
súbory, skripty, HTML/SVG, obrazy diskov, dokumenty Office s makrami a podobné typy sú blokované,
aj keď sa skrývajú za trikmi ako faktura.pdf.exe., znaky obracajúce smer textu alebo neviditeľné
znaky. Nahrávanie s verejným kľúčom má denný limit objemu.
Zostávajúce riziko. Aj bežné dokumenty (PDF, DOCX) môžu obsahovať škodlivý obsah; poslednou obranou je antivírus vášho e-mailového klienta.
9. Vloženie HTML alebo skriptu do e-mailu
Section titled “9. Vloženie HTML alebo skriptu do e-mailu”Útok. Vložiť do parametra <script>, sledovací pixel alebo falošný formulár.
Čo robí Frontmail. Parametre sa vždy escapujú (aj v {{{ }}}), html parametre prechádzajú
sanitizáciou podľa zoznamu povolených prvkov a nemôžu uniknúť z atribútov, nebezpečné URL sa
zneškodnia, z hlavičiek sa odstraňujú konce riadkov (žiadne vkladanie hlavičiek) a kľúče
znečisťujúce prototyp sa zahadzujú.
10. Obťažovanie jedného človeka (mail bombing)
Section titled “10. Obťažovanie jedného človeka (mail bombing)”Útok. Šablónou s dynamickým príjemcom poslať na jednu adresu množstvo e-mailov.
Čo robí Frontmail. Denný limit na príjemcu (predvolene 5), spoločný s automatickými odpoveďami; zoznam blokovaných adries pre adresy, z ktorých sa e-mail vrátil alebo ktorých majitelia sa sťažovali.
11. Prevzatie vášho účtu v dashboarde
Section titled “11. Prevzatie vášho účtu v dashboarde”Útok. Hádanie hesla, ukradnutá relácia, ukradnutá schránka.
Čo robí Frontmail. Limity prihlasovania, dvojstupňové overenie vynútené pri každom spôsobe prihlásenia, odkazy na obnovenie hesla platné len raz a odhlasujúce všetky zariadenia, zmena e-mailu potvrdzovaná zo starej adresy, upozornenia na prihlásenie z nového zariadenia, roly s najmenšími potrebnými právami a auditný záznam.
Čo by ste mali urobiť vy. Zapnite si 2FA a kolegom dávajte najmenšiu rolu, ktorá stačí.
12. Krádež odoslaných formulárov
Section titled “12. Krádež odoslaných formulárov”Útok. Čítať históriu správ alebo súbory niekoho iného.
Čo robí Frontmail. Históriu prečíta len súkromný kľúč alebo členovia vašej organizácie; každé vyhľadávanie je obmedzené na vašu organizáciu, vrátane súborov priložených k šablónam.
13. Podvrhnuté udalosti o doručení
Section titled “13. Podvrhnuté udalosti o doručení”Útok. Poslať falošné udalosti „nedoručené“ alebo „sťažnosť“ a dostať vašich zákazníkov na zoznam blokovaných adries.
Čo robí Frontmail. Webhooky poskytovateľov sa overujú podpisom, ak ho poskytovateľ podporuje, a vždy tajným tokenom v URL; udalosť ovplyvní len skutočného príjemcu danej správy.
Čo by ste mali urobiť vy. Kde to poskytovateľ ponúka, nastavte podpisový kľúč.
14. Napadnuté SDK
Section titled “14. Napadnuté SDK”Útok. Škodlivý kód v skripte, ktorý načítava váš web.
Čo robí Frontmail. Vydania sa zostavujú bez tajných kľúčov, publikujú sa s overiteľným pôvodom (provenance) a akcie v CI sú pripnuté na presné verzie.
Čo by ste mali urobiť vy. Načítavajte SDK z URL s pevnou verziou a atribútom integrity
(pozrite SDK pre prehliadač) alebo použite balík z npm.
15. Frontmail v rukách zločincov
Section titled “15. Frontmail v rukách zločincov”Útok. Phishingový web používa vlastný účet vo Frontmaile, aby si posielal ukradnuté heslá – to sa stáva každej službe tohto typu.
Čo robí Frontmail. Overený e-mail vlastníka, sledovanie nezvyčajnej prevádzky, rýchle pozastavenie nahlásených účtov. Zneužitie hláste na abuse@frontmail.dev.
Čo zostáva na vás – kontrolný zoznam
Section titled “Čo zostáva na vás – kontrolný zoznam”- Vyplňte Povolené weby svojimi doménami.
- Pridajte vlastné kľúče Turnstile a pri verejných formulároch vyžadujte CAPTCHA.
- Dynamického príjemcu používajte len tam, kde ho potrebujete; vyplňte Povolené domény odkazov.
- Povoliť mobilné aplikácie a Povoliť súkromné kľúče v prehliadačoch nechajte vypnuté, ak ich nepotrebujete.
- Súkromný kľúč len na serveri; pri pochybnostiach ho vymeňte.
- Prečerpanie a automatické dobíjanie pre prevádzku s verejným kľúčom nechajte vypnuté (predvolený stav).
- Zapnite 2FA všetkým v tíme.
- Načítavajte SDK z pevnej verzie s atribútom
integrity.