CeníkAPI & SMTPŘešeníSrovnáníNástrojeBlogFAQKontakt
PřihlásitRegistrovat
Tmavý režim
← Zpět na blog
28. října 2026·6 min čtení·Tým TopEmail

Kompromitovaný web rozesílá spam: proč oddělit odesílání e-mailů do relay s limity a jak zneužití odhalit

Zranitelnost ve webové aplikaci nebo pluginu končí často tím, že z vašeho serveru odchází spam a doména skončí na blokovaných seznamech. Obranná opatření: odesílání jen přes relay s API klíčem s omezenými právy, denní a minutové limity, rychlá rotace klíčů a sledování míry bounce jako detektor zneužití.

Každých několik měsíců se objeví nová zranitelnost v populárním redakčním systému, e-shopovém pluginu nebo PHP knihovně a vzápětí vlna webů, ze kterých útočník rozesílá spam a phishing. Aktuálně diskutovaná zranitelnost označovaná jako „PHP2Shell" je jen poslední z řady; technické detaily tu nerozebíráme, na obraně nic nemění. Důsledek pro provozovatele webu je vždy stejný: vaše doména a IP adresa rozesílají spam, končí na blokovaných seznamech a přestanou chodit i potvrzení objednávek. Tenhle článek je o tom, jak odesílání e-mailů postavit tak, aby kompromitovaný web způsobil malou a rychle zastavitelnou škodu.

Proč je web, který sám posílá e-maily, problém

Typický e-shop nebo firemní web posílá e-maily jedním z těchto způsobů:

  1. Přímo z webového serveru funkcí mail() nebo lokálním poštovním serverem. Útočník, který na serveru spustí kód, má k dispozici neomezené odesílání z vaší IP a domény.
  2. Přes SMTP účet kancelářské pošty (Google Workspace, Microsoft 365) s heslem uloženým v konfiguraci. Útočník získá heslo ke skutečné schránce, čte poštu a posílá jejím jménem.
  3. Přes relay s API klíčem, který je uložený v konfiguraci. Útočník získá klíč. Jak velká škoda z toho vznikne, závisí na tom, co klíč smí.

Kód běžící na webu bude dřív nebo později kompromitovaný: web je veřejný, má desítky závislostí a aktualizuje se pozdě. Otázka tedy není jen, jak tomu zabránit, ale jak omezit, co se útočníkovi s odesíláním podaří. Varianty 1 a 2 omezit prakticky nejde. Varianta 3 jde, pokud ji nastavíte správně.

Zásada 1: web posílá jen přes relay, nic jiného

Na webovém serveru vypněte lokální odesílání pošty (žádný sendmail, žádný Postfix s povoleným odesíláním do světa, žádná funkce mail() bez nakonfigurovaného relay). Všechny e-maily jdou přes jednu cestu: SMTP relay nebo REST API služby s ověřenou doménou.

Výhody z pohledu bezpečnosti:

  • Odesílání má jedno hrdlo, které jde zastavit jediným kliknutím: zneplatněním klíče.
  • Všechny e-maily jsou vidět v doručenkách s odesílatelem, příjemcem, předmětem a výsledkem; útočník nemůže posílat potají.
  • Relay prosazuje ověřenou doménu ve From; útočník nemůže vaším serverem posílat jménem banky.
  • Reputaci IP adres hlídá poskytovatel, který zneužití pozná a odesílání pozastaví; v tomhle případě přesně to, co chcete.

Jak odesílání z e-shopu přesunout na relay, popisuje článek o e-mailech, které padají do spamu.

Zásada 2: klíč s nejmenšími nutnými právy

API klíč, který leží v konfiguraci webu, považujte za veřejný dřív nebo později. Podle toho ho nastavte:

  • Vlastní klíč pro každou aplikaci. E-shop má jiný klíč než fakturační program, helpdesk nebo testovací prostředí. Když jeden unikne, zneplatníte ho bez výpadku ostatních a z doručenek hned vidíte, odkud zneužití přišlo.
  • Jen oprávnění k odesílání. Web nepotřebuje číst historii doručenek ani měnit nastavení domény. U TopEmail má klíč rozsahy oprávnění (send, read); webu dejte jen send.
  • Omezení na IP adresy webového serveru, pokud jsou pevné. Uniklý klíč pak z útočníkova serveru nefunguje; musí posílat přímo z vašeho webu, kde ho rychleji odhalíte.
  • Rate limit na klíč. Kolik e-mailů za minutu web reálně potřebuje? E-shop s 500 objednávkami denně pošle ve špičce možná 30 e-mailů za minutu. Limit 60 za minutu ho neomezí, ale útočníka ano: místo milionu zpráv za noc jich pošle desítky tisíc, a to je rozdíl mezi „pár stížností" a „doména na blokovaném seznamu na týden". U TopEmail se limit nastavuje u každého klíče zvlášť; u SMTP relay navíc platí nejvýše 20 zpráv za minutu na připojení a 50 příjemců na zprávu.
  • Klíč mimo kód. V proměnných prostředí nebo v konfiguračním souboru mimo webový root, ne v repozitáři a ne v souboru, který web umí zobrazit. Při úniku repozitáře klíč stejně rotujte.

Zásada 3: rotaci klíčů musíte umět za pět minut

Rotaci klíče budete dělat ve stresu, v neděli večer, po telefonátu od hostingu. Připravte si ji dopředu:

  1. Vědět, kde klíč leží. Do interní dokumentace: aplikace, soubor nebo proměnná, kdo má přístup.
  2. Vytvořit nový klíč dřív, než zrušíte starý. Krátce běží oba, aplikace přepnete na nový, starý zrušíte. Bez výpadku.
  3. Zrušit, ne přejmenovat. Zneplatněný klíč musí přestat fungovat okamžitě, včetně otevřených SMTP spojení.
  4. Rotovat i webhook secret a hesla k databázi, pokud mohl útočník číst konfiguraci. Kdo měl klíč k odesílání, měl nejspíš všechno vedle něj.
  5. Rotovat pravidelně, třeba při každém větším nasazení nebo jednou za čtvrt roku, aby se postup nezapomněl a staré klíče v zapomenutých konfiguracích nezůstávaly platné.

U TopEmail klíč vytvoříte a zrušíte v dashboardu; secret se zobrazí jen jednou při vytvoření, takže ho nelze zpětně vyčíst ani z našeho rozhraní.

Zásada 4: limity denní, ne jen minutové

Minutový limit brání výbuchu, denní limit brání vytrvalému odkapávání. Útočník, který zjistí, že smí 60 e-mailů za minutu, pošle 60 za minutu celou noc: 36 000 zpráv. Proto:

  • Hlídejte denní objem vlastní logikou na straně aplikace nebo monitoringem doručenek: pokud web za den pošle víc než trojnásobek obvyklého maxima, pošlete si upozornění a odesílání zastavte.
  • Předplacený kredit je přirozený strop: spotřebuje se a odesílání se zastaví. Nenechávejte na účtu pro web nabitý roční objem; dobíjejte průběžně.
  • Oddělte web od ostatních odesílatelů alespoň na úrovni klíče a subdomény; škoda z kompromitovaného webu nemá zasáhnout faktury z účetního systému.

U TopEmail se odesílání při vysoké míře nedoručitelnosti nebo stížností automaticky pozastaví a prověří; nepříjemné při vlastní chybě, cenné při útoku.

Zásada 5: míra bounce a stížností jako alarm

Spam z kompromitovaného webu má spolehlivý příznak: jde na adresy, které neznáte, a velká část z nich neexistuje. U potvrzení objednávek je hard bounce kolem 1 % a stížnosti prakticky nula; u cizího seznamu adres jsou bounce v desítkách procent a stížnosti přijdou během minut. Tohle jde měřit automaticky:

  • Zpracovávejte webhook email.status a počítejte klouzavou míru bounced a complained za posledních 15 minut a 24 hodin. Překročí-li bounce 5 % nebo se objeví víc než jednotky stížností za hodinu, upozorněte správce a zastavte odesílání z webu.
  • Sledujte počet odeslaných e-mailů za hodinu proti obvyklému profilu; noční špička u e-shopu, který v noci nic neprodává, je zneužití.
  • Sledujte předměty a příjemce v doručenkách: e-maily s předmětem, který vaše šablony nepoužívají, nebo na domény, které u vašich zákazníků nebývají, jsou jasný signál. Značky (tags), které k e-mailům přidáváte, tu pomohou: e-mail bez značky z webu, který značky vždy nastavuje, nepochází z vaší aplikace.
  • Mějte u účtu u poskytovatele kontakt, který někdo čte i o víkendu.

Doručenky za 90 dní v přehledu API poslouží i zpětně: po incidentu z nich zjistíte, co, komu a kdy odešlo, což budete potřebovat i pro případné oznámení podle GDPR.

Co dělat, když už se to stalo

  1. Zrušte klíč webu (a všechny ostatní, které mohl útočník vidět). Odesílání se zastaví okamžitě.
  2. Vypněte web nebo ho přepněte do režimu údržby, dokud není vyčištěný; odstranění jednoho škodlivého souboru obvykle nestačí.
  3. Z doručenek si vyexportujte, co z klíče odešlo: časy, příjemce, předměty. Pošlete nám na abuse@topemail.cz informaci, že šlo o kompromitaci; pomůže to při prověřování pozastaveného účtu.
  4. Zkontrolujte blokované seznamy pro vaši doménu a požádejte o odstranění až po vyčištění.
  5. Opravte příčinu: aktualizace, odstranění zranitelného pluginu, změna všech hesel, kontrola dalších účtů, ke kterým vedly údaje z konfigurace.
  6. Teprve potom nový klíč s omezenými právy a limity podle zásad výše.

Shrnutí

  • Web bude někdy kompromitovaný; návrh odesílání s tím musí počítat.
  • Jedna cesta pro e-maily: relay s ověřenou doménou, lokální odesílání vypnuté.
  • Klíč na aplikaci, jen send, omezení na IP, rate limit podle reálné potřeby, uložený mimo kód.
  • Rotace klíče připravená dopředu: nový vytvořit, přepnout, starý zrušit, do pěti minut.
  • Denní limity a průběžné dobíjení kreditu místo ročního objemu na účtu.
  • Míra bounce, stížností a neznámé předměty v doručenkách jsou nejrychlejší detektor zneužití.

Jak klíče, oprávnění a limity u TopEmail nastavit, najdete v častých dotazech. Pokud řešíte podezření na zneužití teď, napište na abuse@topemail.cz; odpovídáme do jednoho pracovního dne, u běžícího incidentu dřív.

bezpečnostSMTPapireputace
Transakční e-maily z vaší domény

Transakční e-maily z vaší domény přes API nebo SMTP, od 0,025 do 0,06 Kč za e-mail podle objemu, prvních 1 000 e-mailů měsíčně zdarma. Registrace zdarma, bez platební karty.

Registrovat zdarma →