26.12.2016
В последнее время участились атаки на информационные системы банков и их клиентов с целью хищения денежных средств клиентов. Один из способов хищения заключается в подмене данных в файлах, выгружаемых из учетных систем клиентов и передаваемых в системы для дистанционного обмена данными клиентов с банком (системы типа «клиент-банк»). Подмену осуществляют вредоносные программы, которыми заражается компьютер клиента банка.
Об этом сообщает Центр мониторинга и реагирования на компьютерные атаки в кредитно-финансовой сфере (FinCERT) Центрального банка России в письме FinCERT PC-V: BN-1C-FAKE -20161129-02.
По информации FinCERT, вредоносные программы отслеживают появление файла, обычно имеющего имя 1c_to_kl.txt, выгружаемого из учетных программ и предназначенного для загрузки в программы Клиент-Банк. Вредоносные программы подменяют в файле данные об исходящих платежах. Если пользователь загрузит этот файл с подмененными данными в систему Клиент-Банк и не проверит данные перед отправкой в банк, то платеж уйдет по подложным реквизитам, указанным злоумышенниками.
Чтобы защитить подготовленные в учетных программах системы "1С:Предприятие 8" файлы с данными для загрузки в программы Клиент-Банк специалистами фирмы 1С предлагаются дополнительные способы проверки файлов на модификацию. Проверка выполняется после загрузки данных в программу банка, но до их отправки на исполнение.
Способ реализации данной рекомендации приведен ниже.
Пример блокирующей формы:
Пример успешной проверки файла:
Пример обнаружения модификации файла:
&НаКлиенте Процедура ВыборФайлаДляВыгрузки(Элемент) Экспорт ДиалогВыбора = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение); ДиалогВыбора.Фильтр = НСтр("ru = 'Текстовый файл'") + " (*.txt)|*.txt"; ДиалогВыбора.Заголовок = НСтр("ru = 'Выберите папку для выгрузки данных из 1C'"); ДиалогВыбора.ПредварительныйПросмотр = Ложь; ДиалогВыбора.Расширение = "txt"; ДиалогВыбора.ИндексФильтра = 0; НазваниеФайла = СтрЗаменить(Строка(Новый УникальныйИдентификатор), "-", ""); ДиалогВыбора.ПолноеИмяФайла = ?(ПустаяСтрока(Элемент.ТекстРедактирования), НазваниеФайла + ".txt", Элемент.ТекстРедактирования); ДиалогВыбора.ПроверятьСуществованиеФайла = Ложь; ОписаниеОповещения = Новый ОписаниеОповещения("ВыборФайлаДляВыгрузкиЗавершение", ЭтотОбъект); ДиалогВыбора.Показать(ОписаниеОповещения); КонецПроцедуры
ПараметрыФормы = Новый Структура; ПараметрыФормы.Вставить("АдресИсходныхДанных", АдресФайлаВоВременномХранилище); ПараметрыФормы.Вставить("ПутьКФайлу", Объект.ФайлВыгрузки); ОткрытьФорму("Обработка.КлиентБанк.Форма.ПроверкаДанныхПриВыгрузке", ПараметрыФормы);
&НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) ДвоичныеДанныеИсходногоФайла = ПолучитьИзВременногоХранилища(Параметры.АдресИсходныхДанных); ВремФайл = ПолучитьИмяВременногоФайла(); ДвоичныеДанныеИсходногоФайла.Записать(ВремФайл); ТекстовыйДокумент = Новый ТекстовыйДокумент; ТекстовыйДокумент.Прочитать(ВремФайл); ТекстВыгрузкиСтрокой = ТекстовыйДокумент.ПолучитьТекст(); // Сохранение исходного текста в реквизите формы УдалитьФайлы(ВремФайл); КонецПроцедуры
&НаКлиенте Процедура Проверить(Команда) Файл = Новый Файл(Параметры.ПутьКФайлу); Если Файл.Существует() Тогда ТекстовыйДокумент = Новый ТекстовыйДокумент; ТекстовыйДокумент.Прочитать(Параметры.ПутьКФайлу); Если ТекстВыгрузкиСтрокой = ТекстовыйДокумент.ПолучитьТекст() Тогда Сообщить("Проверка выполнена успешно. Отправьте платежи на исполнение в программе банка."); Иначе Сообщить("Файл выгрузки изменен вредоносной программой. Удалите все загруженные платежи из программы банка."); КонецЕсли; Иначе Сообщить("Файл удален. Отключите удаление исходного файла в программе банка, удалите загруженные платежи и повторите операцию. |Файл также может быть удален вредоносной программой."); КонецЕсли; КонецПроцедуры
Обработка КлиентБанк.epf для конфигурации Бухгалтерия предприятия 3.0 на платформе 1С:Предприятии 8.3 находится в каталоге: 1CIts/EXE/EXAMPLES/
Вы можете скопировать обработку прямо сейчас.