телефоны для справок
(495) 980-25-86
(8442) 67-87-23

Рейтинг@Mail.ru
Яндекс цитирования
Яндекс.Метрика
 
 
 
 

Повышение безопасности при обмене с банком через текстовый файл

26.01.2018

В последнее время участились атаки на информационные системы банков и их клиентов с целью хищения денежных средств клиентов. Один из способов хищения заключается в подмене данных в файлах, выгружаемых из учетных систем клиентов и передаваемых в системы для дистанционного обмена данными клиентов с банком (системы типа «клиент-банк»). Подмену осуществляют вредоносные программы, которыми заражается компьютер клиента банка.
Об этом сообщает Центр мониторинга и реагирования на компьютерные атаки в кредитно-финансовой сфере (FinCERT) Центрального банка России в письме FinCERT PC-V: BN-1C-FAKE -20161129-02. 
По информации FinCERT,  вредоносные программы отслеживают появление файла, обычно имеющего имя 1c_to_kl.txt, выгружаемого из учетных программ и предназначенного для загрузки в программы Клиент-Банк. Вредоносные программы подменяют в файле данные об исходящих платежах. Если пользователь загрузит этот файл с подмененными данными в систему Клиент-Банк и не проверит данные перед отправкой в банк, то платеж уйдет по подложным реквизитам, указанным злоумышенниками.
Чтобы защитить подготовленные в учетных программах системы "1С:Предприятие 8" файлы с данными для загрузки в программы Клиент-Банк специалистами фирмы 1С предлагаются дополнительные способы проверки файлов на модификацию. Проверка выполняется после загрузки данных в программу банка, но до их отправки на исполнение.
Способ реализации данной рекомендации приведен ниже. 

Сценарий использования:

  1. Пользователь выгружает подготовленные платежи в текстовый файл из программы "1С:Предприятие". При этом появляется блокирующее окно

    Пример блокирующей формы:

  2. Пользователь выполняет действия в соответствии с указаниями, написанными на форме.
  3. Если проверка пройдена успешно, то загруженные платежи в программе банка пользователь отправляет на исполнение. Если проверка не пройдена и обнаружена модификация файла, то  необходимо удалить загруженные платежи в программе банка и выполнить проверку компьютера антивирусным программным обеспечением.

 

Пример успешной проверки файла:

Пример обнаружения модификации файла:

Исходные условия:

  1. Файл выгрузки формируется из серверного общего модуля и двоичные данные помещаются во временное хранилище.
  2. На клиент возвращается ссылка на временное хранилище, содержащее двоичные данные файла.

Реализация:

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

    Пример генерации уникального названия файла:

    Копировать в буфер обмена
    &НаКлиенте
    Процедура ВыборФайлаДляВыгрузки(Элемент) Экспорт	
    
    ДиалогВыбора = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
    ДиалогВыбора.Фильтр = НСтр("ru = "Текстовый файл"") + " (*.txt)|*.txt";
    ДиалогВыбора.Заголовок = НСтр("ru = "Выберите папку для выгрузки данных из 1C"");
    ДиалогВыбора.ПредварительныйПросмотр = Ложь;
    ДиалогВыбора.Расширение = "txt";
    ДиалогВыбора.ИндексФильтра = 0;
    НазваниеФайла = СтрЗаменить(Строка(Новый УникальныйИдентификатор), "-", "");

    ДиалогВыбора.ПолноеИмяФайла = ?(ПустаяСтрока(Элемент.ТекстРедактирования),
    НазваниеФайла + ".txt", Элемент.ТекстРедактирования);
    ДиалогВыбора.ПроверятьСуществованиеФайла = Ложь;

    ОписаниеОповещения = Новый ОписаниеОповещения("ВыборФайлаДляВыгрузкиЗавершение", ЭтотОбъект);
    ДиалогВыбора.Показать(ОписаниеОповещения);
    КонецПроцедуры
  2. После выгрузки файла данных на клиенте открыть блокирующую форму и передать ссылку на временное хранилище двоичных данных файла и путь к файлу на клиенте.

    Пример открытия формы:

    Копировать в буфер обмена
    ПараметрыФормы = Новый Структура;
    
    ПараметрыФормы.Вставить("АдресИсходныхДанных", АдресФайлаВоВременномХранилище);
    ПараметрыФормы.Вставить("ПутьКФайлу", Объект.ФайлВыгрузки);
    ОткрытьФорму("Обработка.КлиентБанк.Форма.ПроверкаДанныхПриВыгрузке", ПараметрыФормы);
  3. При создании формы на сервере необходимо получить исходный текст выгруженных данных и сохранить в реквизите формы.

    Пример создания формы на сервере:

    Копировать в буфер обмена
    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    

    ДвоичныеДанныеИсходногоФайла = ПолучитьИзВременногоХранилища(Параметры.АдресИсходныхДанных);
    ВремФайл = ПолучитьИмяВременногоФайла();
    ДвоичныеДанныеИсходногоФайла.Записать(ВремФайл);
    ТекстовыйДокумент = Новый ТекстовыйДокумент;
    ТекстовыйДокумент.Прочитать(ВремФайл);
    ТекстВыгрузкиСтрокой = ТекстовыйДокумент.ПолучитьТекст(); // Сохранение исходного текста в реквизите формы
    УдалитьФайлы(ВремФайл);
    КонецПроцедуры
  4. На форме разместить кнопку Проверить и реализовать код для контрольной проверки выгруженных данных.

    Пример контрольной проверки файла:

    Копировать в буфер обмена
    &НаКлиенте
    Процедура Проверить(Команда)
    
    Файл = Новый Файл(Параметры.ПутьКФайлу);
    Если Файл.Существует() Тогда
    ТекстовыйДокумент = Новый ТекстовыйДокумент;
    ТекстовыйДокумент.Прочитать(Параметры.ПутьКФайлу);
    Если ТекстВыгрузкиСтрокой = ТекстовыйДокумент.ПолучитьТекст() Тогда
    Сообщить("Проверка выполнена успешно. Отправьте платежи на исполнение в программе банка.");
    Иначе
    Сообщить("Файл выгрузки изменен вредоносной программой. Удалите все загруженные платежи из программы банка.");
    КонецЕсли;
    Иначе
    Сообщить("Файл удален. Отключите удаление исходного файла в программе банка, удалите загруженные платежи и повторите операцию. |Файл также может быть удален вредоносной программой.");
    КонецЕсли; КонецПроцедуры

 

Пример обработки клиент-банк с безопасной выгрузкой данных в программу банка

Обработка КлиентБанк.epf для конфигурации Бухгалтерия предприятия 3.0 на платформе 1С:Предприятии 8.3 находится в каталоге: 1CIts/EXE/EXAMPLES/

Вы можете скопировать обработку прямо сейчас.

Копировать


Источник: 1С:ИТС

Архив