Здравствуйте, обычно при создании проектов в Интернете, когда речь идет о безопасности, больше внимания уделяется веб-приложению, а о защите самого сервера, а именно межсетевого экрана, забывают. Я понимаю, что настройкой сервера, включая фаервол, должен заниматься специальный человек - системный администратор, но во многих ситуациях оказывается, что программист сам себе администратор.
Даже программисту на настройку межсетевого экрана понадобится всего около 1 дня – это исключит возможные проблемы.
Из каких? Теперь я расскажу вам небольшую историю о «взломе».
В моем городе у провайдера, занимающего лидирующие позиции, есть локальный трекер, довольно крупный (не будем говорить о нелегальности, нас интересует только вопрос безопасности проекта).
Так как я разрабатываю очередной трекер, меня интересуют разные новые возможности, и я периодически посещаю разные трекеры, в том числе и этот. Однажды я увидел ошибку 502 Bad Gateway от nginx, а позже решил перейти сразу к apache. Обычно Apache назначен порту 8080. Если я захожу, значит фаервол не настроен, смотрю заголовки ответов — это FreeBSD. Я думаю, что те, кто устанавливает бесплатное ПО, должны быть достаточно опытными в настройке и просто забыли закрыть порт при установке nginx в качестве фронтенда и apache в качестве бэкенда.
И я решил проверить :) Nmap проверил, что все порты, которые используют приложения, открыты: 21, 22, 25, 80, 3306, 8080 и еще несколько портов.
Поскольку я тоже разработчик, я знал, что этот движок трекера (torrentpier) имеет возможность использовать кеширование через memcached. Проверил стандартный порт memcached — порт открыт. Я написал простой скрипт для подключения к memcached. Изучив исходники торрентпиера, я узнал названия ключей, на которые записан кеш.
Из них интересными оказались 2 значения: массив настроек трекера и полный html-код главной страницы для не залогиненного пользователя.
Из настроек трекера я узнал логин, пароль и адрес smtp-сервера, т.е.
потенциальный хакер уже может рассылать спам (smtp тоже не закрыт).
Попробовал пароль smtp в качестве пароля администратора трекера - сработало, я получил административный доступ к трекеру.
Я понимаю, что это было «счастливое» совпадение, но помогло бы простое закрытие портов.
Заключение
Помимо безопасности самого веб-приложения (php, python, Ruby и т. д.), но также и безопасности самого сервера (в частности, межсетевого экрана) и всех инструментов, используемых параллельно.Так же нужно делать разные пароли ко всему (почта, база данных, фтп) даже на 1 уровне проекта.
P.S.: Я сделал это не для того, чтобы что-то сломать, а просто из «спортивного» интереса.
Администратор трекера практически сразу был уведомлен о возможности «взлома» на каждом шагу.
%Username%, у вас настроен брандмауэр? Теги: #брандмауэр #безопасность #торренты #memcached #информационная безопасность
-
Акцент 1
19 Oct, 24 -
Как Выжить Инди-Разработчику. Часть 2
19 Oct, 24 -
Дерьмовые Офисы. Ооо «Рогниние»
19 Oct, 24 -
Выпущена Codeigniter 2.0.0
19 Oct, 24 -
Мой Первый Опыт Работы С Hololens
19 Oct, 24