Безопасность 1С предприятие

Ограничения, которые накладываются на базовые версии 1С, перечислены в предоставляемой разработчиком документации и на упаковках программного обеспечения. Однако изложены факты весьма кратко – имеет смысл рассмотреть их подробнее.
Ограничение 1. В конкретный момент времени в одной информационной базе допускается работа лишь одного пользователя
Для базового режима платформы предусмотрено только монопольное открытие информационной базы. Для сравнения, версия ПРОФ переходит на монопольный режим исключительно ради обеспечения корректности работы в ряде случаев (например, при удалении выбранных объектов).
Конфигурация ограничений не имеет. Не предоставляя доступа к параллельной работе, одна база может иметь несколько пользователей. Поэтому формируется список лиц, допущенных к программе. При необходимости им присваиваются разные права (подобно версии ПРОФ). Работа пользователей может быть разнесена во времени. Допустим, с утра приложением пользуется продавец, а днем – бухгалтер, причем у каждого из них установлены свои права.
Ограничение 2. Одна информационная база подходит для ведения учета лишь в рамках одного предприятия
Если пользователь захочет добавить новый элемент в справочник «Организации», в базовой версии появится информация о невозможности осуществления операции. Этот порядок задан ограничением конфигурации, поэтому его невозможно обойти вне зависимости от режима действия платформы.
При использовании базовой версии для ведения учета по нескольким предприятиям придется приобретать для каждого свою информационную базу. Когда две компании пользуются общей номенклатурой (допустим, оптовик реализует продукцию как сторонним покупателям, так и своему розничному магазину), желательно обзавестись версией ПРОФ. Однако даже при использовании базовой версии дублировать работу не придется. Номенклатура, оформленная в первой базе, с легкостью загружается в файл и переносится в другую базу.
Кстати, версии ПРОФ не имеют «межфирменной» документации. Это означает, что в рамках группы компаний реализация продукции должна быть оформлена двумя документами: одним невозможно обойтись ни в базовой, ни в ПРОФ версии.

Ограничение 3. Изменение конфигурации неосуществимо, допустимо лишь установление обновлений типовой конфигурации
На первый взгляд кажется, что покупка базовой версии чревата отсутствием режима «конфигуратор», без которого 1С – уже и не 1С. Однако это не так. Конфигуратор, аналогичный имеющемуся в версии ПРОФ, наличествует.
Отсутствует только возможность изменения конфигурации: при запросе выдается информация о том, что она находится на поддержке, а объект поставщика не редактируется. Поэтому при использовании базового режима недопустимо ни снятие с поддержки, ни активизирование изменений.
Кроме прочего, базовый режим подразумевает отсутствие в меню конфигуратора возможностей работать с поставкой конфигурации и хранилищем. Впрочем, такие функции в малом бизнесе и не востребованы.
В остальном разницы с версией ПРОФ нет:
• возможно просматривание конфигурации, в том числе форм макетов, текстов модулей;

• возможно формирование и изменение внешних отчетов и обработок;
• возможно подключение внешних отчетов и обработок к конфигурации. Они могут выступать как печатные формы и обработки заполнения табличных элементов (для пользователя это идентично их вставке в конфигурацию);
• возможно применение отладчика для внешних отчетов, обработок, а также для анализа функционирования приложения. Подобно тому, как это реализуется в версии ПРОФ, при обнаружении сбоев в работе можно расставить точки прерывания, чтобы выявить причину неполадок (кроющуюся в неверных действиях пользователя или ошибках конфигурации).
Для базовой конфигурации допустимо снятие с поддержки при помощи платформы ПРОФ, однако в дальнейшем открыть ее базовой платформой не получится.
Ограничение 4. Работа в режиме «клиент-сервер» неосуществима
Применение режима «клиент-сервер» обосновано в компаниях, где трудятся 10−30 человек и более (с учетом конфигурации). Базовая же версия ограничивает количество пользователей до одного, поэтому особенность оказывается неактуальной.
Ограничение 5. Отсутствует поддержка COM-соединения и Automation-сервера
Под COM-соединением и Automation-сервером понимаются инструменты взаимодействия между приложениями, встроенные в Windows и обычно используемые для обмена данными. С ними, к примеру, можно из 1С брать перечень контактов программы Outlook, а также осуществлять многие другие операции.
Заметим, что ограничение означает невозможность такого запуска 1С. В рамках базовой версии COM-соединением обеспечивается обращение к разным объектам. Такое ограничение относится к базовой платформе. Открыв базовую конфигурацию платформой ПРОФ, можно обеспечить корректную работу. При этом базовые конфигурации снабжаются непустым модулем внешнего соединения.
Запускать 1С в режиме внешнего соединения необязательно, поскольку для штатных средств обмена данными предусмотрена работа через файлы (либо присутствуют два режима работы − посредством файлов или посредством OLE). Кроме того, при необходимости можно создать собственные обработки, поэтому проблем ограничение не доставит.
Ограничение 6. Не осуществляется поддержка работы распределенных информационных баз (РИБ)
Такое ограничение конфигурации затрагивает план обмена «Полный», в котором стоит запрет на введение новых узлов. Приложение «1С:Зарплата и управление персоналом» имеет ту же особенность в плане обмена «По Организации». Таким образом, встроенные в конфигурацию средства не позволяют сформировать РИБ.
Зато базовые версии подходят:
• для обмена информацией между различными конфигурациями (к примеру, в парах «1С:Зарплата и управление персоналом» − «1С:Бухгалтерия», «1С:Управление Торговлей» − «1С:Бухгалтерия»);
• для выгрузки-загрузки данных посредством встроенной обработки выгрузки информации в идентичную конфигурацию;
• для обмена информацией с внешними системами вида «банк-клиент» и другими;
• для обмена с программами сторонних разработчиков (например, размещенными на сайте infostart.ru);
• для применения самостоятельно созданных средств обмена (например, для выгрузки каталога продукции на сайт организации и загрузки заявок с него).

Часто наши клиенты задают вопросы по поводу стабильности работы сервера 1С:Предприятие и ошибки «Превышен максимальный расход памяти сервера за один вызов», которая появляется не периодически, а от случая к случаю, без явной закономерности. Что в этом случае делать и как эту проблему решить?
Первое, на что надо обратить внимание на объем общей оперативной памяти сервера, где установлен сервер 1С. Если ее и так мало, а нагрузка на этот сервер достаточно высокая (что бывает очень часто), то поздравляем, возможно вы нашли решение, которое описано в этой статье.
В 1С начиная с версии 8.3.10 (если не ошибаюсь) в настройках сервера 1С появилось несколько параметров, которые предназначены для повышение стабильности всей работы в целом. До этой версии 8.3.10 возможен был такой сценарий работы: все работают нормально, потом один из пользователей запускает «тяжелый» отчет или запрос и при этом нормально перестает работать как пользователь, который этот отчет запустил, так и все остальные. Ресурсы сервера используются по полной, а все остальные страдают. Разработчики платформы 1С в версии 8.3.10 пошли на закономерный шаг. Зачем терпеть одного пользователя, который вешает сервер? И это логично. Происходит завершение работы такого сеанса и пользователю показывается ошибка «Превышен максимальный расход памяти сервера за один вызов».
Но этот же механизм имеет и другую сторону, обратную, которая появляется во всей своей красе у сервера где не так много памяти, но высокая нагрузка.
Давайте подумаем, а как же сервер определяет, что виновника надо «завершить»? Правильно, появились настройки для этого дела.
Максимальный объем памяти рабочих процессов – это объем совокупной памяти, которую могут занимать рабочие процессы (rphost) на текущем кластере. Если параметр установлен в 0 (ноль), то занимает 80% оперативной памяти сервера. Если задано конкретное число, то столько, сколько будет указано в байтах, а -1 (минус один) — эта настройка применяться не будет, т.е. не ограничивать максимальный объем. Если будет превышение, то будет задействован своп ОС и т,д., работа будет замедлена, но не остановлена.
Безопасный расход памяти за один вызов. В общем случае, отдельные вызовы не должны занимать всю оперативную память, выделенную рабочему процессу, как в примере. Если параметр установлен в 0 (ноль), то объем безопасного расхода будет равен 5% от «Максимального объема памяти рабочих процессов». Если задано конкретное число, то столько, сколько будет указано в этом числе байтами, а -1 (минус один) — без ограничения, что в общем случае, не рекомендуется.
При установке по умолчанию эти настройки равны нулю. Там есть еще настройки, но именно эти настройки завершают проблемные сеансы.
Это была теория. Теперь практика. Пусть у нас как и в большинстве случаев эти настройки установлены в 0 (ноль).
Как мы выяснили из примера выше, наш сервер имеет мало оперативной памяти, на нем работает много пользователей в 1С, возможно в кучу установлен и MS SQL, и Apache и это все на одной машине. Эта ситуация из-за экономии средств встречается очень часто. Денег потратили на оборудование мало, а от сервера хотим много. Предположим на сервере 16 Гб ОЗУ и 3 рабочих базы, в которых в общем случае работает 30 пользователей.
Общая память нарезается «колбаской» на все программы работающие на сервере. Все выкладки ниже и это чистой воды приближенные цифры — не судите строго…
ОС вместе с Apache — пусть будет 1 Гб.
MS SQL — пусть будет выделено постоянно 5 Гб.
Итого остается 10 Гб на 1С.
Повторюсь порядок цифр оооочень приближенный. В реальности все может быть совершенно по другому, тут важен итог и выводы, которые мы сделаем на основании этих приближенных данных.
Продолжим, итого остается 10 Гб на 1С и процессы rphost.
10 Гб делим на 30 пользователей в онлайне и получаем ~300 Мб на каждый сеанс.
А как же фоновые задачи? А как же такая ситуация, когда пользователи могут запускать несколько сеансов? Потенциально это тоже «кушает» память и влияет на расчетную величину. Я к тому, что эта цифра может быть еще меньше в разное время и зависит от пиков работы и прочих факторов. Так же возникают вопросы, что будет если фоновое задание превысит эти 300 Мб?
Может ли по памяти сеанс одного из пользователей временами быть больше чем расчетные 300 Мб? Вообще легко! Память процессы rphost очень любят. Везде стоят по умолчанию в настройках «0» (ноль) и это означает, что сервер 1С будет завершать сеансы при нехватке памяти. Т.е., казалось бы, 1С сделала благое дело пытаясь помочь убрать из базы лишнюю нагрузку, которая блокирует работу остальных, но при таком раскладе как в примере, все это приводит к тому, что при слабых серверах страдают бессистемно вообще все. А самое забавное, что до версии 8.3.12 они ведь как-то работали?

Решение проблемы

Теперь далее, как эту ситуацию победить? Самое простое — это в настройках для этих опций установить -1 (минус один). Я осознаю, что это очень вредный совет. Во всех рекомендациях специалисты 1С крайне не советуют этого делать, но если все и так плохо, то почему бы не попробовать отключить эти настройки? Если поработав так пару дней, все будет более или менее, то почему нет?

Исторически сложилось так, что продукт 1С:Предприятие стал самым распространенным на территории стран бывшего СССР. Каждая вторая организация использует продукты 1С для ведения учета и управления предприятием. А как обстоят дела с безопасностью 1С? Откровенно говоря, в версии 7.7 внимание безопасности не уделялось вообще. С выходом 8.2 версии платформы отношение разработчиков к защите информации улучшилось незначительно. Существует две основных реализации работы программы: файловый вариант и клиент-серверный. Каждый из них имеет массу уязвимостей, как общих, так и особенных.

Файловая версия

Работа и хранение базы данных организованы на одном рабочем месте. При такой реализации говорить о безопасности 1С вообще не приходится. Конфигурация и база данных хранятся на локальном диске, который доступен для записи и чтения информации любому пользователю операционной системы. Это дает неограниченные возможности по обходу системы защиты самой 1С. База программы может находиться и на сетевом диске, что только усложняет вопрос обеспечения ее безопасности. При всем этом сохранность и целостность данных организации обеспечивается только средствами программы 1С.

Сетевая версия

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

  • простые пароли пользователей (хранение паролей на листочках, приклеенных на рабочем месте);
  • доступ пользователей к административным действиям конфигуратора;
  • уязвимости операционной системы и СУБД;
  • отсутствие разграничений прав доступа в 1С;
  • возможность доступа к данным сервера СУБД;
  • вирусы, шпионские программы;
  • перехват информации;
  • и многое другое.

Общие проблемы безопасности платформы

В платформе 1С:Предприятие есть встроенный язык программирования, посредством которого выполняется разработка конфигурации, ее доработка или модернизация под нужды предприятия. В этом языке есть готовые объекты и классы для работы с протоколами HTTP, FTP, SMTP и POP3, файловой системой, реестром Windows, медиафайлами и он-лайн медиапотоками, системными процессами, базами данных и XML, ресурсами локальной сети и другим.

Данный факт дает широкие возможности потенциальным злоумышленникам: от написания безобидных модулей для просмотра фильмов в самой 1С или интернет-серфинга, до отправки коммерческой информации через электронную почту или протокол FTP прямо из программы 1С. Также, платформа активно использует компоненты интернет-обозревателя Internet Explorer, о уязвимостях которого не говорил лишь ленивый.

Так, например, были случаи, когда «нечестный» рекламный баннер внедрял в Internet Explorer свой модуль. Все бы ничего, но при запуске 1С загружался этот модуль и передавал информацию своему владельцу.

Другой пример. Множество компаний сейчас предлагают удаленное использование 1С через интернет из любой точки мира. Подключение происходит в терминальном режиме, где запрещено все, кроме 1С. Защита, казалось бы, идеальная. Только достаточно воспользоваться типами встроенного языка 1С для работы с файлами и реестром — ограничения сняты. Мы получаем доступ к файловой системе, сетевому обмену, базам данных… Даже к чужим базам, которые через протокол SMTP можем отправить себе на почту.

Защищаем 1С

Все вышеописанное красноречиво свидетельствует о необходимости комплексного подхода к защите продуктов на базе «1С:Предприятие». Как определить конкретные угрозы и выработать меры защиты? Ответ прост: провести аудит информационной безопасности. Специалисты EFSOL, партнера фирмы «1С» со статусом «Центр компетенции по производству», имеют огромный опыт автоматизации, системной интеграции и защиты предприятий.

Зачастую на машине вместе с сервером 1С:Предприятие работают другие службы — терминальный сервер, SQL-сервер и т.д. И в какой-то момент сервер 1С:Предприятие, а точнее рабочий процесс rphost отъедает памяти больше чем планировалось или же всю память. Что приводит к замедлению работы других служб и зомбированию сервера. Для избежания таких ситуаций необходимо настроить автоматический перезапуск рабочих процессов сервера 1С:Предприятия

Решение

1. Откроем консоль администрирования серверов 1С Предприятия;
2. Развернем дерево центрального сервера до кластеров и выделим интересующий наc кластер. В примере кластер всего один;
3. Откроем свойства выделенного кластера и увидим следующую форму

Свойства кластера сервера 1С:Предприятие 8.3

Разберем пример указанный на изображении:

Интервал перезапуска — время через которое процесс rphost будет принудительно перезапущен. Перед завершением работы процесса запускается новый процесс rphost, на который передаются все соединения, и только тогда будет завершена работа старого процесса. На работе пользователя это никак не скажется. Интервал указывается в секундах, в примере указаны 24 часа.

Допустимый объем памяти — объем памяти, в пределах которого рабочий процесс может без проблемно работать. Объем указывается в килобайтах, в примере указана величина в 20 гигабайт(на самом деле цифра слишком большая и отталкиваться необходимо от конкретной системы, но средняя цифра 4 Гб ). Как только память занятая рабочим процессом превысит указанную величину, так начинается отсчет времени.

Интервал превышения допустимого объема памяти — после того как таймер запущенный после превышения допустимого объема памяти отсчитает указанное время, будет запущен новый рабочий процесс, на который передаются все соединения, старый процесс помечается как выключенный. Интервал указывается в секундах, в примере указаны 30 секунд.

Выключенные процессы останавливать через — время, через которое будет остановлен рабочий процесс, помеченный как выключенный, если указано значение 0, то процесс не будет завершен. Интервал указывается в секундах, в примере указаны 60 секунд.

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

Итого

Так мы настроили автоматический перезапуск рабочих процессов сервера 1С:Предприятия и получаем более стабильную систему, если происходит утечка памяти, то будет прекращена работа конкретного сеанса.

Так же в некоторых ситуациях можно играть настройками, и предотвратить возможное падение сервера при допущении ошибок.

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