Заметка о том, как мы обнаружили, что почтовый сервер одного из side-проектов рассылает спам.
Исходные условия
- Wordpress-сайт на shared хостинге и почтовая инфраструктура, предоставленная хостером
- В среднем 300-500 уникальных посетителей в день с пиками до 1 тысячи
- Отсутствие опыта системного администрования у всех участников проекта :)
Проблема
В один прекрасный момент по адресу сайта открывается заглушка, как на скрине выше, с информацией, что сайт заблокирован хостером, а после общения с технической поддержкой хостера на почту приходит следующее письмо:
Dear …,
Thank you for contacting our technical support team. I would like to let you know that you have a significant number of plugins which are out of date and your WordPress core version is old. You need to upgrade it and upgrade or disabled following plugins of your WordPress:
… [тут был длинный список плагинов]
Currently, the access is blocked to your directory. In order to unblock it we need an IP address of a person who is going to update your site and enable security measures according to the email you have got previously.
Thank you in advance
После переписки сайт нам все же разблокировали. После небольшого негодования на тему, с какой это стати нам запрещают использовать дырявые плагины, начали разбираться, действительно ли у нас проблемы.
Расследование
Первая гипотеза заключалась в том, что те письма, которые мы рассылаем пользователям, почему-то, определяются как спам и поэтому нам заблокировали.
Попробовали разные сканеры уязвимостей из документации Wordpress. Кроме уже ожидаемого предупреждения о том, что надо обновить ядро Wordpress и плагины, никаких бэкдоров или вирусов на сайте найдено не было.
Пошли смотреть дефолтную админскую почту “[email protected]”. Обычно мы этой почтой просто не пользовались и поэтому проверяли не чаще чем раз в месяц. Оказалось, что на почте было порядка 10-20 входящих писем примерно следующего содержания, в которых нас уведомляли, что какое-то наше письмо не было доставлено:
Delivered-To: [email protected] Received: from […]
This is the mail system at host relay.mailchannels.net.
I’m sorry to have to inform you that your message could not be delivered to one or more recipients. It’s attached below.
For further assistance, please send mail to postmaster.
If you do so, please include this problem report. You can delete your own text from the attached returned message.
В отправленных никаких писем нет. Уже подозрительно. Хорошо, что к уведомлениям прилагались сами исходящие письма, а также служебные заголовки с описанием причин невозможности доставки.
Оказалось, что письма были двух типов:
- Первый тип писем, которых было больше всего, уведомляли получателя, “настройки почтового сервера на отправку были успешно проверены”:
Hello customer , This is a test message from SMTP #0 If you have received this message, it means that SMTP(0) is good In order to find it , Please lookup for SMTP with id 0 (You can use the filter in SMTP section..!)
=================================
SMTP Checker
В причинах отказа доставки указывалось, что почты адресата просто не существовало. Вот примеры адресов, на которую направлялись такие письма:
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
В целом это похоже на результат работы сканера уязвимости почтового сервера. Т.е. спама как такого нет, но кто-то успешно отсылает письма с нашего сервера.
- Второй тип писем был уже явно про спам. Причем этих писем было меньше, чем первого типа и датированы они уже были после того момента, как наш сайт был отключен.
Dearest one,
It is my pleasure to write to you after considering your profile My name is MRS. PAULINA THOMAS a nationality of Kuwait. I am married to MR.THOMAS WALTERS who worked with Malaysian oil company for nine years before he died in the year 2006. We were married for eleven years without a child, he died after a brief illness that lasted for only four days. Before his death we were both born again Christians. When my late husband was alive we deposited the sum of $8.3 Million (Eight Million three hundred thousand U.S. Dollars) with a FINANCIAL SECURITY FIRM, Presently,this money is still with the Company. Recently,my Doctor told me that I would not last for the next three months due to cancer problem. Though what disturbs me most is my stroke. Having known my condition I decided to donate this fund to church or better still a Christian individual that will utilize this money the way I am going to instruct herein.I want a church that will use this fund to;churches,orphanages,Research centers and widows propagating to the word of god and to ensure that the house of god is maintained.
Whoever that wants to serve the lord must serve him in spirit and truth. Please always be prayerful all through your life. Any delay in your reply will give me room in sourcing for a church or Christian individual for this same purpose. Please assure me that you will act accordingly as I stated herein.
Hoping to hearing from you soon.Remain blessed in the name of the lord.
Yours-in-Christ, MRS. PAULINA THOMA
В общем, выше приведена христианская версия нигерийского спама.
Также выяснили, что наша почта проходит через инфраструктурные сервера mailchannels.net, у которых доступна возможность статистику по прохождению писем с нашего домена. Проверили и убедились, что да, часть писем фильтруется как спам.
Однозначный вывод, что нас взломали и с почты администратора рассылают спам.
Решение
- Меняем пароль администратора
- Обновляем ядро сайта и все плагины
- Постоянно мониторим почту на наличие признаков взлома или спама
Уроки на будущее
- Надо регулярно обновлять CMS и плагины. Фактически сайт был взломан в первые полгода своего существования без обновлений.
- Надо проверять все доступные почтовые ящики. Если кто-то будет рассылать спам с вашего домена, то его могут внести в черный список или заблокируют весь домен.
- Даже если в отправленных нет признаков спама, это не значит, что никто ничего не отправлял
- Для проверки подозрительной активности можно использовать внешние инфраструктурные сервисы, которые могут показывать статистику по проходящим через них письмам