www.samag.ru
Журнал «БИТ. Бизнес&Информационные технологии»      
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Подписка
Архив номеров
Где купить
Авторам
Рекламодателям
Контакты
   

  Опросы
  Статьи

Интеграция Open Source-решений  

Open Source в облачной среде

Облачные решения становятся всё более популярными в мире. Компании стремятся использовать их для

 Читать далее...

Автоматизация  

Нейросеть вам в руки! Как использовать ИИ для автоматизации задач

Использование ИИ для автоматизации задач помогает компании получить конкурентное преимущество, поскольку объединение

 Читать далее...

Рынок труда  

Специалист по этическому ИИ, инженер по квантовым вычислениям или аналитик по метавселенной?

Новые тенденции в развитии ИТ могут привести к возникновению новых специальностей в

 Читать далее...

Книжная полка  

Учитесь убеждать и побеждать

Издательство «БХВ», как всегда, порадовало своих читателей хорошими книжными новинками. Кроме популярных

 Читать далее...

Сетевая инфраструктура  

Как удаленная работа меняет подход к сетевой инфраструктуре?

С увеличением числа сотрудников, работающих из дома, организации сталкиваются с необходимостью создания

 Читать далее...

Мониторинг  

Какой мониторинг нужен сегодня?

По мнению экспертов ГК InfoWatch, действия сотрудников – самая распространенная причина инцидентов

 Читать далее...

Книжная полка  

Руководство для тех, кто увлечен ИИ, программированием. И дизайном

Накануне лета издательство «БХВ» выпустило книжные новинки, от которых любителям чтения будет

 Читать далее...

Мобильные приложения  

Искусственный интеллект в мобильных приложениях: возможности и перспективы

Обзор современных применений ИИ в мобильных приложениях, анализ перспектив развития этой технологии,

 Читать далее...

ИТ-образование  

Как сделать ИТ-образование эффективным?

Эксперты ИТ-отрасли отвечают на вопросы «СА». Обсуждаем ключевые аспекты для улучшения образовательных

 Читать далее...

Work-life balance  

Как айтишнику найти баланс между работой и личной жизнью?

Обсуждаем инструменты для эффективного управления временем, снижения уровня стресса и достижения гармонии. На

 Читать далее...

Книжная полка  

Всё самое нужное – под одной обложкой

Отличительная черта книжных новинок, выпущенных недавно издательством «БХВ» – это их универсальность. Не просто

 Читать далее...

ИТ-инфраструктура  

Системы мониторинга ИТ-инфраструктуры-2025

Без мониторинга ИТ-инфраструктуры не обходится ни одна компания, хотя бы потому, что

 Читать далее...

Открытое ПО  

Безопасность Open Source: рискуем или контролируем?

Компания «Кросс технолоджис» изучила, как используется ПО с открытым кодом в компаниях

 Читать далее...

Работа с нейросетью  

Скажи, есть ли у тебя AI, и я скажу, кто ты

Недавно сервис по поиску работы SuperJob выяснил, что каждый второй россиянин уже

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 9411
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 9646
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

12.03.2018г.
Просмотров: 7055
Комментарии: 0
Глубокое обучение с точки зрения практика

 Читать далее...

12.03.2018г.
Просмотров: 4406
Комментарии: 0
Изучаем pandas

 Читать далее...

12.03.2018г.
Просмотров: 5191
Комментарии: 0
Программирование на языке Rust (Цветное издание)

 Читать далее...

19.12.2017г.
Просмотров: 5191
Комментарии: 0
Глубокое обучение

 Читать далее...

19.12.2017г.
Просмотров: 7860
Комментарии: 0
Анализ социальных медиа на Python

 Читать далее...

19.12.2017г.
Просмотров: 4561
Комментарии: 0
Основы блокчейна

 Читать далее...

19.12.2017г.
Просмотров: 4821
Комментарии: 0
Java 9. Полный обзор нововведений

 Читать далее...

16.02.2017г.
Просмотров: 8809
Комментарии: 0
Опоздавших не бывает, или книга о стеке

 Читать далее...

17.05.2016г.
Просмотров: 12240
Комментарии: 0
Теория вычислений для программистов

 Читать далее...

30.03.2015г.
Просмотров: 13826
Комментарии: 0
От математики к обобщенному программированию

 Читать далее...

18.02.2014г.
Просмотров: 15591
Комментарии: 0
Рецензия на книгу «Читаем Тьюринга»

 Читать далее...

13.02.2014г.
Просмотров: 10459
Комментарии: 0
Читайте, размышляйте, действуйте

 Читать далее...

12.02.2014г.
Просмотров: 8488
Комментарии: 0
Рисуем наши мысли

 Читать далее...

10.02.2014г.
Просмотров: 6722
Комментарии: 4
Страна в цифрах

 Читать далее...

18.12.2013г.
Просмотров: 5867
Комментарии: 0
Большие данные меняют нашу жизнь

 Читать далее...

18.12.2013г.
Просмотров: 4712
Комментарии: 0
Компьютерные технологии – корень зла для точки роста

 Читать далее...

04.12.2013г.
Просмотров: 4437
Комментарии: 0
Паутина в облаках

 Читать далее...

03.12.2013г.
Просмотров: 4654
Комментарии: 1
Рецензия на книгу «MongoDB в действии»

 Читать далее...

Друзья сайта  

 Штопаем дыры в Ilohamail

Архив номеров / 2006 / Выпуск №1 (38) / Штопаем дыры в Ilohamail

Рубрика: Администрирование /  Продукты и решения

Сергей Супрунов

Штопаем дыры в Ilohamail

Доверяй, но проверяй

 

(народная мудрость)

Доступ к электронной почте через веб-интерфейс обеспечивает дополнительные удобства. Однако мы не всегда задумываемся о потенциальных проблемах безопасности, а ведь даже такой безобидный пакет, как Ilohamail имеет несколько неприятных дыр.

Знакомство с Ilohamail

Ilohamail – это разработанный на PHP4 пакет, обеспечивающий возможность работать с POP3- и IMAP-серверами непосредственно с интернет-страницы. Во FreeBSD вы найдете его в коллекции портов (mail/ilohamail), для Linux можете скачать исходные коды, rpm- или deb-пакет, со страницы проекта (http://ilohamail.org/main.php?page=Downloads, см. также http://sourceforge.net/projects/ilohamail).

Отличительной особенностью этой программы от многих других (наподобие OpenWebMail) является то, что она не использует для работы небезопасных методов, таких как suexec или suid-perl. В данном случае доступ к почтовому ящику осуществляется по протоколу POP3 или IMAP (в зависимости от выбора пользователя, сделанного во время аутентификации, или конфигурационных параметров), и все сценарии исполняются от имени пользователя, с чьими правами работает веб-сервер (для Apache это, как правило, пользователь www).

Установка по крайней мере на FreeBSD при использовании коллекции портов никаких сложностей не вызывает – в /usr/local/www будет создан каталог ilohamail со всеми необходимыми файлами. Скопируйте его в нужный каталог в иерархии вашего веб-сайта, и можно сразу вызывать стартовую страничку из вашего браузера.

Предельно аскетический дизайн (минимум графики и вообще немногословность) придется по вкусу пользователям, работающим по коммутируемым соединениям, да и «выделенщики» по достоинству оценят возможность немного сэкономить на трафике и не рыскать по страничке в поисках нужной кнопки среди множества подсказок. Единственное, что мне сразу же захотелось изменить, – это используемый по умолчанию цвет фона. Его (а также некоторые другие настройки) можно поменять в файле conf/defaults.generic.inc и в некоторых файлах в каталогах source/themes.

По умолчанию пользователь может при входе задать протокол (POP3 или IMAP), по которому будет производиться подключение к серверу, а также адрес сервера. Кроме того, можно выбрать из огромного количества языков интерфейса тот, с которым вам удобнее работать (в списке присутствует и русский). Если вы хотите обеспечить пользователям возможность работать только с вашим сервером по конкретному протоколу, в файле conf/login.inc задайте параметр $default_host, а также присвойте значение «1» переменным, отвечающим за отображение соответствующих подписей к полям ($hide_protocol, $hide_host и др.) Выбор протокола осуществляется указанием порта ($default_port), кроме того, протокол и номер порта можно указать и в переменной $default_host (см. комментарии в конфигурационном файле). Здесь же вы можете указать и используемый по умолчанию язык интерфейса ($default_lang).

Вы можете подстроить в других файлах в каталоге conf еще некоторые параметры. Однако если возникнет желание внести более серьезные изменения в интерфейс (например, добавить на стартовую страницу свой логотип), то придется заняться непосредственной правкой php-файлов. Впрочем, структура пакета не слишком сложна, и разобраться при необходимости в ней не составит особого труда.

Кажется, что проще и быть не может, но именно эта простота влечет за собой несколько не слишком опасных, но все же неприятных проблем безопасности, о решении которых мы и поговорим.

Для определенности будем считать, что базовый адрес для доступа к страницам ilohamail – http://www.myserver.ru/ilohamail, а веб-сервер работает от имени пользователя www.

Настраиваем доступ к пользовательским данным

Хотя работа с почтовым ящиком ведется непосредственно с помощью одного из протоколов, Ilohamail все же сохраняет несколько последних сообщений, считанных в предыдущем сеансе работы в каталоге data/cache/<адрес_пользователя>. Поскольку каталог data по умолчанию хранится в дереве каталогов веб-сервера, то простое обращение по адресу http://www.myserver.ru/ilohamail/data/cache/serg.myserver.ru выведет список файлов кэша, где хранятся сообщения пользователя serg@myserver.ru. Конечно, если настройки веб-сервера запрещают просмотр содержимого каталога при отсутствии в нем индексного файла, то задача для злоумышленника усложняется, т.к. имя кэш-файла представляет собой случайный идентификатор, угадать который не так уж и легко. Например, он может называться так: 007c01c60c52%24fed21430%2430003d0a%40RGSUFO.local.

Нужно заметить, что в Apache вывод содержимого каталога при отсутствии в нем индексного файла по умолчанию запрещен. При попытке доступа к нему будет выведена ошибка «403 Forbidden». Однако при подключенном модуле mod_autoindex возможно построение так называемого автоматического индекса, что достигается включением параметра Indexes в строку Options.

Например, чтобы разрешить автоиндекс для корневого каталога (и всех вложенных), можно использовать следующую запись:

<Directory />

       Options Indexes

</Directory>

При необходимости в этой же строке можно указать и другие опции. Таким образом, в большинстве случаев вам достаточно убедиться, что такая опция не распространяется на «проблемный» каталог. Не забывайте, что она может находиться и в файле .htaccess данного или одного из вышестоящих каталогов.

Кстати, еще один способ избежать указанной выше проблемы с выдачей содержимого каталога – создать в нем любой индексный файл, можно даже пустой.

Кроме того, точно так же можно просмотреть настройки пользователя в каталоге data/users/<адрес_пользователя>/. Действительно интересного здесь не так уж и много (разве что файл key.inc, содержащий переменную $passkey, которая содержит в зашифрованном виде имя пользователя и пароль для доступа к почтовому серверу). Тем не менее даже такая информация, как любимый цвет человека, может рассматриваться как конфиденциальная (особенно если он использует это в «секретном вопросе» в какой-нибудь системе напоминания паролей).

Однако чтобы не искушать судьбу, лучше вынести каталог data за пределы иерархии каталогов, доступных веб-серверу (например, /var/db/ilohamail выглядит подходящим местом). Обеспечьте пользователю www (и только ему) беспрепятственный доступ к этому каталогу и его внутренностям на чтение и запись, а в конфигурационном файле conf/conf.inc измените соответствующие пути к файлам (переменные $UPLOAD_DIR, $CACHE_DIR, $USER_DIR, $SESSION_DIR).

Вместо «плоских» файлов для хранения некоторых данных может использоваться и база данных MySQL (см. файл conf/db_conf.php).

Раскрытие конфигурации

По умолчанию конфигурационные и прочие настроечные файлы имеют расширение inc (исключение составляет лишь db_conf.php), однако Ilohamail в процессе инсталляции не предпринимает никаких действий, чтобы ограничить к ним доступ через веб-браузер. Учитывая, что файлы конфигурации могут хранить в открытом виде логин/пароль для авторизации на smtp-сервере, опасность этого достаточно высока. Да и вообще, не очень хорошая идея – предоставить всем возможность видеть настройки пакета, например, пути доступа к пользовательским файлам.

Поэтому нужно озаботиться ограничением доступа к inc-файлам силами веб-сервера. Для Apache соответствующий фрагмент файла httpd.conf может выглядеть таким образом:

<Files ~ "\.inc$">

    Order allow,deny

    Deny from all

</Files>

Аналогичное ограничение можно наложить и только на нужный каталог, например, используя .htaccess (хотя, если вы единственный, кому может понадобиться менять настройки сервера, то по соображениям быстродействия лучше от использования файлов .htaccess отказаться).

Возможность анонимного доступа к почтовому ящику

Если пользователю разрешено самостоятельно указывать POP3- или IMAP-сервер, то злоумышленник может воспользоваться вашим сайтом для взлома чужого ящика методом подбора пароля, причем с точки зрения пострадавшего сервера, источником атаки будет являться именно ваш IP-адрес.

Таким образом, если вы не строите сознательно сервис для анонимного доступа к любым почтовым ящикам, то имеет смысл принудительно указать в настройках пакета ваш сервер и исключить возможность указывать имя произвольного сервера. Для этого нужно указать разрешенный адрес (или список адресов, если серверов несколько) в переменной $default_host в файле conf/login.inc; также потребуется установка $hide_host = 1, чтобы скрыть ненужную подпись в форме.

К счастью, этого оказывается достаточно, поскольку Ilohamail проводит проверку введенного имени сервера, и если оно отличается от прописанного в $default_host, то значение хоста обнуляется, что приводит к ошибке «Could not connect to …». Благодаря этому злоумышленник не сможет выполнить авторизацию из внешней формы (сохранив файл source/index.php, точнее, тот html-код, который этим сценарием формируется, локально, и изменив/добавив дополнительные параметры). Точнее, внешние формы работают, но в рамках указанных в конфигурации ограничений.

Возможность анонимной рассылки сообщений от вашего имени

Если вы все же оставили пользователю возможность самостоятельно указывать сервер входящих сообщений, то он сможет войти в интерфейс управления, введя аутентификационные данные любого своего ящика, например, размещенного на одном из бесплатных серверов. Однако отправка сообщения будет осуществляться через smtp-сервер, указанный в переменной $SMTP_SERVER файла conf/conf.inc. Если к этому прибавить возможность указывать в настройках произвольный адрес отправителя, то получается, что любой пользователь, имеющий где-либо ящик электронной почты, сможет отправить сообщение от вашего имени (или от имени пользователя, у которого зарегистрирован почтовый ящик на вашем сервере). И при этом все параметры заголовка, такие как IP-адрес, будут однозначно указывать на ваш сервер, что усилит в глазах получателя достоверность сообщения, а, следовательно, сделает атаку более успешной, а вас – первым подозреваемым.

Для снижения этой опасности ограничьте возможность использования произвольных серверов для авторизации в Ilohamail так, как это описано в предыдущем подразделе.

Рисунок 1. Ilohamail с более приятным цветом фона

Рисунок 1. Ilohamail с более приятным цветом фона

Выводы

Как видите, даже такой простой пакет, как Ilohamail, который, казалось бы, не дает даже поводов усомниться в его безопасности, требует к себе пристального внимания и критического отношения. Естественно, я не ставил своей целью запугать вас и заставить отказаться от использования веб-интерфейсов или вообще Интернета. При учете всех описанных «мелочей» Ilohamail сможет послужить вам верой и правдой. Просто, когда вам доведется устанавливать что-то подобное, не забывайте, что на самом деле все не так уж и просто.

Приложение

«Бедная кошечка»

В этой же статье уместно несколько слов сказать об еще одном подобном проекте со странным названием UebiMiau (порт mail/uebimiau, сайт: http://www.uebimiau.org). Данный пакет работает по тому же принципу, разработан тоже на PHP, и ему присущи некоторые из описанных проблем.

Наиболее заметные отличия от Ilohamail в этом плане – для всех файлов, включая конфигурационные, используется расширение php, что при правильной настройке веб-сервера должно уберечь от чтения их содержимого через обычный http-запрос. К тому же здесь не предусмотрена возможность использовать произвольный POP3-сервер (протокол IMAP вообще не поддерживается) – его имя жестко прописывается в конфигурации (файл inc/config.php). Поэтому проблемы, связанные с анонимной отправкой сообщения или взломом почтового ящика, для UebiMiau не столь актуальны.

Однако пользовательские данные по-прежнему хранятся (по умолчанию) в дереве веб-сайта, так что перенос каталога database за его пределы также крайне желателен (новый путь прописывается в параметре $temporary_directory файла inc/config.php).

Ну и если вас беспокоит репутация вашей компании, то логотип на странице аутентификации тоже придется сменить…


Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-45
E-mail: sa@samag.ru