Безопасность данных в программах 1С. Легасофт.
Поговорим о безопасности данных в программах 1С. Сегодня ни для кого не секрет, что безопасность информации является одним из ключевых аспектов стабильной и непрерывной работы бизнеса, особенно, кода эта информация является критичной для осуществления деятельности. А поскольку программы 1С зачастую используются для автоматизации как раз производственных процессов, то актуальность вопроса безопасности данных неоспорима.
Написать данную заметку побудил недавний случай у одного из клиентов. Небольшой магазин, торгующий бижутерией, парфюмерией и т.п. товарами. Учет ведется в программе 1С, установленной в магазине на компьютере, который гордо именовался сервером. Сотрудники подключались к ней через сетевую папку, в народе более известную, как «шара». И вот, в один «прекрасный» день магазин лишился возможности вести автоматизированную деятельность. Как выяснилось в процессе «разбора полетов» случилось следующее: на ноутбук одного из продавцов попал вирус-шифровальщик, который зашифровал не только данные на самом ноутбуке, но и данные в сетевых папках, доступных в пределах локальной сети. А поскольку база данных программы 1С была «расшарена», то её также постигла печальная участь. Резервное копирование, настроенное кем-то и когда-то оказалось бесполезным в виду того, что последняя копия была сделана более года назад и содержала мизерный объём данных. Ситуация была катастрофической – мало того, что темп работы магазина уменьшился в разы, были утрачены данные учета поступлений и продаж более чем за год.
Подобные происшествия на сегодняшний день не редкость ввиду огромного количества зловредных программ, которые воруют, портят или просто уничтожают данные.
Чтобы с Вашими данными не случилось подобной беды попробуем коротко и в доступной форме рассказать о необходимых мерах безопасности.
Определимся с ключевыми этапами защиты информации, хранимой в базах 1С, это:
- Физическое расположение и сохранность данных.
- Логическое представление данных.
- Какой метод доступа к данным выбрать.
- Резервное копирование и восстановление, типичные ошибки и проблемы.
- Роли и права доступа.
- Внешние отчеты и обработки.
Физическое расположение и сохранность данных
Расскажем в двух словах об аппаратной части, т.е. о железе и правильности его использования.
В описанном выше случае база данных располагалась на обычном жестком диске персонального компьютера. Такой подход допустим только при индивидуальном пользовании базой, наличии адекватной защиты от вредоносных программ и работающем резервном копировании, причем хранение копий должно осуществляться не на том же носителе, где располагается рабочая база.
Если к базе требуется подключать пользователей с других компьютеров, использовать один единственный диск – не лучшая идея. Вероятность выхода из строя одного диска достаточно велика, а восстановление из резервной копии, как правило, суточной, приведет к тому, что наработанный объем за текущий день придется повторить, что не всегда возможно.
Оптимальным решением в многопользовательской среде, будет использование RAID-массивов, конфигураций использования двух и более жестких дисков, которые обеспечивают повышенную надежность за счет избыточного количества хранения информации. Самый распространенный пример - RAID 1:0, в котором второй диск является зеркальной копией первого и в случае его (первого) отказа позволяет продолжить работу с данными до восстановления первого.
Использовать в такой конфигурации жесткие диски или SSD-накопители личное дело каждого, всё зависит от того, сколько Вы готовы на это потратить.
Также часто встречаются решения, когда база программы 1С располагается на SSD-носителе, а жесткий диск используется для резервных копий. Такое решение вполне приемлемо для индивидуального пользования базой или для небольшого (3-5) количества пользователей.
Однако, каким бы надежным и производительным не был бы компьютер, есть ряд факторов, способных вывести его из строя:
- Физический доступ к компьютеру. Даже если Вы безоговорочно доверяете Вашим сотрудникам, а Ваш офис оборудован по последнему слову техники, следует понимать, что бывают случайности, причем иногда там, где их совсем не ждут. Если нет отдельного помещения, можно использовать шкаф для сетевого оборудования, доступ к которому будет ограничен. Кроме того, определить круг лиц, имеющих доступ к серверу в момент Вашего отсутствия. Доверие – хорошо, ответственность – лучше. Когда за одним или несколькими Вашими сотрудниками будет закреплена ответственность, не только вы будете беспокоиться о сохранности сервера. Так же помните, что оптимальные условия для работы компьютера – это температура +15 - +35, влажность 10 - 80% без конденсации.
- Сбои электропитания. Многие из Вас не понаслышке знают, что после аварийного выключения питания или перепадов напряжения компьютер может пострадать. Поломки в таких случаях бывают разные, самая катастрофическая – это выход из строя жесткого диска или массива дисков. Чтобы предотвратить такую ситуацию, необходимо использовать источник бесперебойного питания (ИБП), прибор, обеспечивающий возможность выключения компьютера в штатном режиме. Здесь отмечу следующие особенности, ИБП должен иметь функцию стабилизации напряжения, интерактивную связь с компьютером, т.е. возможность отправить компьютеру сигнал о завершении работы и запас мощности хотя бы на 10-15% превышающий номинальную мощность блока питания компьютера. Периодически, не реже одного раза в год проверяйте, способен ли ИБП удержать компьютер включенным при отключении электропитания на время, нужное для выключения компьютера в штатном режиме.
Логическое представление данных
База данных программы 1С может существовать в виде файла или в виде базы СУБД SQL. О преимуществах и недостатках обоих вариантов и поговорим.
Пользователю, особенно новичку, зачастую представляется наиболее простым и легким использовать файловый вариант базы данных. И действительно, что может быть проще, установил программу 1С, создал из шаблона базу и работай. В случае, если работает с базой 1-2 пользователя так оно и есть, т.к. более сложный вариант использования СУБД для непосвященных кажется чем-то страшным, иногда весьма дорогим, если СУБД платная и, как некоторые считают, весьма громоздким. Да, конечно, если база используется индивидуально и расположена на личном устройстве, например, ноутбуке, то работающий «движок» СУБД производительности не прибавит. С точки зрения пользователя получается, что СУБД - «черный ящик» от которого лучше держаться подальше.
Так ли это разберем на простых примерах эксплуатации базы данных.
При работе с 1С данные в ней, как правило, постоянно накапливаются, что неизбежно ведет к росту объёма базы, а соответственно и файла, в котором она хранится. Размер файла больше 3 Гб зачастую приводит к потере производительности системы, особенно когда происходит перерасчет каких-то показателей за длительный период. Даже использование накопителей SSD спасает не на долго. Ещё большие объёмы файла БД ведут к более серьезным последствиям, например, разрушение БД из-за повреждения файла или катастрофической потере производительности. Восстанавливать такие базы весьма длительный и трудоемкий процесс, что подразумевает немалые расходы. Более того, процесс не всегда успешный, заканчивающийся переносом ещё «живых» данных в новую базу. Добавьте сюда время простоя отдельных сотрудников или предприятия в целом и картина становится совсем мрачной. Следующим «подводным камнем» в использовании файлового варианта БД является резервное копирование. О нём более подробно в п.4, сейчас же отметим только то, что встроенный функционал для создания резервных копий обладает недостатками, которые могут привести к тому, что копии могут быть не созданы, или придется постоянно следить за их созданием.
Ну, и напоследок, такая простая на первый взгляд и необходимая функция, как сброс пароля, в файловом варианте БД не реализована. Понятно, что безопасность должна быть превыше всего, однако, отсутствие штатного средства сброса пароля вызывает необходимость прибегать к «костыльным» методам вроде редактирования файла БД HEX-редактором, использовать сторонние разработки и т.д., что на сохранность данных влияет не лучшим образом.
Учитывая всё, изложенное выше, имеем не менее «черный ящик», повреждение которого может вылиться в серьезные расходы по восстановлению, немалые потери времени, а иногда и данных.
Из положительных сторон можно отметить быстроту развертывания, низкие затраты на владение, отсутствие необходимости в привлечении квалифицированного специалиста по СУБД.
Рассмотрим теперь вариант использования СУБД для хранения и обработки данных 1С.
На сегодняшний день для программ 1С наибольшей популярностью пользуются СУБД MS SQL и СУБД Postgres SQL. Первая – платная, однако если база небольшая (до 4 Гб), то можно попытаться воспользоваться бесплатной версией Express. Вторая – бесплатна. На плюсах и минусах этих СУБД останавливаться не будем, т.к. информации о них полно в Интернет, укажем лишь на два ключевых различия между ними:
- Стоимость.
- Готовность к работе. СУБД MS SQL оптимизирована разработчиком и готова к работе, что называется, «из коробки». Это значит, что её достаточно установить, подключить базы и вперед. Postgres SQL в этом плане представляет собой конструктор, который надо, во-первых собрать, во-вторых, правильно «обработать напильником», чтобы получить оптимальную производительность.
Плюсы использования СУБД:
- Прозрачный доступ к данным через консоль запросов SQL. В файловом варианте добраться до данных можно только через запросы из конфигуратора, т.е. структуры БД просто так не увидеть. Это значит, что, например, при утрате пароля, восстановить его можно используя средства СУБД.
- Резервное копирование средствами СУБД. Делается автоматически по расписанию, нет необходимости в монопольном доступе. Существенно повышается надежность.
- Возможность отключать неактивных пользователей. Здесь нужно сделать оговорку на то, что делается это не средствами самой СУБД, а средствами сервера 1С, тем не менее, такой функционал есть и в многопользовательской среде очень удобен для администрирования, особенно при ограниченном количестве лицензий на рабочие места.
- Высокая производительность в многопользовательских и высоконагруженных системах. СУБД оптимально распределяет нагрузку, кроме того имеет высокопроизводительные алгоритмы для работы с данными в БД. Таким образом, даже большие БД работают достаточно быстро, не вызывая нареканий у пользователей и не тормозят работу предприятия в целом.
- Безопасность. С безопасностью хранения уже разобрались, о безопасности доступа подробнее в п.3.
- СУБД позволяют строить отказоустойчивые кластеры. При выходе из строя одного из серверов, резервный может включаться в работу моментально, обеспечивая непрерывную работу предприятия.
Из минусов следует отметить:
- Высокая стоимость владения. Стоимость 1С сервера для небольших предприятий бывает слишком высока, но т.к. этот компонент необходим, то потратиться на него придется. Если у Вас не более 5 пользователей, можно приобрести 1С сервер мини, он существенно дешевле.
- Необходимость в квалифицированном специалисте. Развертывание и обслуживание СУБД, особенно Postgres, для пользователя – задача очень сложная.
Подводя итог по данному вопросу, думаю, что теперь каждый из Вас знает какой из «черных ящиков» выбрать. ))
Какой метод доступа к данным выбрать?
О методах доступа к данным 1С будем говорить с точки зрения пользователя, точнее клиентского приложения. В начале статьи был приведен пример доступа к базе 1С через сетевую папку. Результат оказался плачевным, хотя сам по себе такой метод доступа использовать можно. Но для его безопасного использования компьютеры должны состоять в домене, в котором правильно настроены политики доступа и безопасности и функционирует антивирусная защита. Небольшие предприятия, как правило, не используют такую сложную инфраструктуру, а чтоб побыстрее настроить доступ к базе «расшаривается» папка и даже если установлен пароль доступа по сети, то на клиентских местах он просто сохраняется чтобы не озадачивать пользователей его вводом при каждой загрузке компьютера. Возникает закономерный вопрос, стоит ли так рисковать своими данными просто потому, что хочется сэкономить час-другой или небольшую сумму денег на настройку?
Доступ к файлу БД должен быть ограничен, особенно по сети.
Более защищенные методы доступа предполагают использование протоколов обмена данными, которые, во-первых, имеют внутренние механизмы защиты, которые пользователь отключить или обойти не может, а во-вторых, доступ к данным осуществляется через промежуточное приложение, что дает дополнительную защиту, как минимум в контексте хранения данных.
Защита доступа к базе данных может быть реализована разными способами, приведем примеры отдельно для файлового варианта базы и для СУБД.
В случае использования файлового варианта БД существует два способа предоставить безопасный доступ для работы с базой:
- По протоколу HTTP/HTTPS. В этом случае посредником между клиентом и БД выступает веб-сервер. Использовать протокол HTTP в чистом виде не рекомендуется даже в локальной сети ввиду того, что программы-перехватчики трафика скорее могут располагаться на зараженных соседних компьютерах, чем где-то на пути между удаленными узлами через Интернет. Протокол HTTPS передает данные через шифрованный канал, который формируется при подключении клиента к веб-серверу. Такой вариант гораздо надежнее.
- По протоколу RDP в режиме RemoteApp. Протокол RDP это не что иное, как удаленный рабочий стол в системах Windows. Применение режима RemoteApp является обязательным, кроме того, должен быть полностью отключен проводник Windows и конфигуратор 1С, иначе пользователь легко получит доступ к файлу БД. В таком режиме работы пользователь, открывая якобы удаленный рабочий стол, получает только открытое окно приложения 1С:Предприятие и ничего более. Поэтому такой вариант требует тонкой и внимательной настройки, однако, приемлем в случае если веб-сервер использовать невозможно.
Если Вы используете СУБД, то подключение к базам по умолчанию будет осуществляться по протоколу 1С сервера. Если работа происходит в локальной сети, то этого будет вполне достаточно для обеспечения сохранности данных. Если же требуется подключение удаленных рабочих мест, то можно использовать или веб-сервер с протоколом HTTPS или любую из технологий VPN для инкапсуляции трафика 1С с применением шифрования.
Как видите, способов подключения клиентов к базе без применения сетевых папок Windows достаточное количество. Более того, описанные выше протоколы потребляют меньше трафика, чем протокол SMB (с его помощью осуществляется доступ к сетевым папкам), поэтому их использование не только делает доступ безопасным, но ещё и ускоряет его.
При настройке любой конфигурации доступа клиентов следует учесть одну важную деталь. Доступа к конфигуратору 1С у пользователей быть НЕ должно, поэтому пользователям нужно предоставлять доступ только к тонкому или веб-клиенту.
Резервное копирование
Ни для кого не секрет, что использование базы данных без резервного копирования сравнимо с использованием автомобиля без запасного колеса. Резервное копирование – ОБЯЗАТЕЛЬНО и должно выполняться регулярно, независимо от варианта хранения данных и доступа к ним.
В п.1 упоминалось о недостатках встроенного функционала резервного копирования в случае файлового варианта БД. Рассмотрим их подробнее:
- резервное копирование выполняется средствами MS Windows, если более точно, то утилитой mshta.exe. Уже неоднократно приходилось наблюдать сбои и в результате не созданные резервные копии, что делает метод недостаточно надежным;
- резервное копирование корректно можно выполнить только при монопольном доступе к БД, отключить пользователей штатными средствами в файловом варианте БД нельзя, что приводит или к несделанным копиям или к необходимости прибегать к «костыльной» автоматизации этого процесса сторонними средствами (скрипты, утилиты и т.п.), что опять же негативно влияет на надежность;
- резервное копирование, выполняемое по завершению работы, в новых версиях имеет непрозрачный механизм выполнения. Раньше пользователь видел checkbox «Резервное копирование» на окне вопроса о завершении работы программы. Сейчас требуется отказаться от завершения работы и выполнить дополнительное действие, чтобы резервное копирование запустилось. Кроме того, нужно обладать достаточным уровнем прав для его выполнения, что не всегда возможно.
Все эти недостатки приходится исправлять сторонними средствами. Приведем наиболее эффективный и наименее проблемный/затратный набор средств.
- Утилита Effector saver. Позволяет делать резервные копии под указанным пользователем и сохранять копии в указанную папку или на сетевой ресурс (SMB, FTP). С функционалом можно ознакомиться здесь http://efsaver.ru/edition.html Если Вы используете файловый вариант БД, то Вам лучше использовать платную версию, т.к. в ней есть возможность принудительного отключения пользователей и шифрования файла резервной копии. Последнее актуально если Вы собираетесь хранить копии на сетевом ресурсе или в облачном хранилище.
- Внешнее хранилище данных. Можно использовать, как съемные хранилища – флешки, диски, так и сетевые SMB, FTP папки или облачные, например, DropBox. При использовании сетевых папок SMB не забываем про риски, связанные с их использованием, ни в коем случае не «запоминаем» пароли к ним в проводнике Windows. В случае использования облачных хранилищ следует следить за предоставляемыми объемами, тарифами и сроками, иначе может получиться так, что резервная копия сделана, а записать её некуда.
В СУБД функционал резервирования данных более развит. В MS SQL резервные копии создаются с помощью встроенного планировщика, при чем, если у Вас не одна база, то можно настроить резервирование для каждой БД отдельно с заданной периодичностью и местами хранения копий.
Если Вы используете Postgres SQL, то следует обратить внимание на следующие моменты:
- В данной СУБД используется кластерный подход. Это значит, что все базы представлены в ней в виде наборов таблиц с общим файлом трансакций. Это накладывает ограничения на копирование и, особенно, на восстановление отдельно взятой БД. Если вы будете пользоваться утилитой PG_Dump для резервирования всего кластера, восстановить отдельно взятую базу будет весьма проблематично, т.к. придется заменить файл трансакций в работающем кластере, что затронет все базы. Поэтому, для резервного копирования и восстановления отдельно взятых БД лучше всего использовать утилиты PG_Basebackup и PG_Restore соответственно.
- Использовать утилиту Effector saver для автоматизации процесса резервного копирования и для восстановления БД.
- Привлекать квалифицированного специалиста для настройки и обслуживания СУБД. Это существенно снизит риски и повысит эффективность её использования.
Для всех абсолютно способов резервного копирования рекомендуется:
- Настроить отчеты о выполнении резервного копирования. Это позволит Вам оперативно отреагировать, если резервная копия по каким-то причинам не создана или не записана на внешнее хранилище.
- Настроить ротацию копий во внешнем хранилище. Неважно, какой объем Вашего хранилища, копии баз не маленькие и будут увеличиваться в размерах и, если хранилище заполнится, писать новые копии будет некуда.
- Делать резервные копии от пользователя с обязательно установленным паролем и по возможности шифровать их при записи. Если резервная копия в открытом виде окажется в посторонних руках, восстановить из нее базу и получить доступ к Вашим данным не составит большого труда.
- Периодически, например, 1 раз в месяц или квартал проверять возможность восстановления из резервных копий. Восстановление делать в подготовленную заранее пустую базу.
Роли и права доступа
О правах доступа и необходимости их разграничения написано так много, что останавливаться на этом вопросе подробно не будем. Напомним лишь о некоторых важных моментах при определении и назначении прав доступа:
- Права доступа являются производным роли пользователя в системе или сотрудника в иерархии компании
- Никогда не предоставляйте пользователю больше прав, чем необходимо для его работы. Весьма порочной практикой является назначение прав пользователю по принципу «Все права, кроме администратора». Предоставление лишних прав может привести к тому, что пользователь даже не по собственной воле может стать причиной искажения, утечки или потери данных.
- Не допускайте ситуации, когда пользователи работают под чужими учетными записями даже если эти записи имеют равные права. Идентификация – один из ключевых аспектов безопасности.
- В программах 1С есть функция «Версионирование объектов». Эта функция позволяет вести более подробный учет действий пользователей. По умолчанию в журнале регистрации программы 1С не отображается информация касаемо того, какие именно изменения вносились пользователем. Помните, что данная функция влияет на производительность и потребляет дополнительные ресурсы памяти.
- Следите за сохранностью паролей. Не пересылайте пароли доступа по почте, СМС, через мессенджеры в открытом виде. Не разрешайте использовать слишком простые пароли и тем более держать их на виду, записанные на бумажки, стикеры или на корпусе монитора. Компрометация пароля – верный путь к потере данных.
- Реагируйте на инциденты незамедлительно. Если только появились подозрения на возможность повреждения или утечки данных немедленно меняйте пароли, ограничивайте доступ к базе, делайте резервную копию. Любой инцидент информационной безопасности лучше предотвратить, чем ликвидировать его последствия.
- Используйте политику «чистого экрана». При отсутствии пользователя на рабочем месте, компьютер должен блокировать экран в течение короткого времени с последующим требованием ввода пароля или смарт-карты.
Внешние обработки и расширения
Обработки, запускаемые из внешних файлов – это программы, работающие с данными в базе программы 1С. Не так давно появились расширения конфигурации – возможность модификации конфигурации без снятия конфигурации поставщика с поддержки.
Все эти программы используются для решения огромного множества задач в системах 1С. А поскольку они запускаются или устанавливаются под привилегированным пользователем, то и доступ к данным у них соответствующий.
Если Вы планируете использовать или используете такие решения, обязательно проверяйте подлинность и надежность источника, из которого Вы их получаете.
Заключение
Описанные выше меры позволяют предотвратить львиную долю инцидентов, связанных с безопасностью данных. Для лучшего понимания важности этих мер посчитайте, сколько стоит время простоя Вашего предприятия или к каким издержкам приведет утечка данных, и Вы сразу поймете насколько невелики затраты на обеспечение сохранности и безопасности данных по сравнению с возможными затратами в случае их утраты или утечки. Ещё раз хочется акцентировать внимание на том, что только комплексное применение описанных выше мер позволит Вам надежно защитить данные в целом и базы данных 1С в частности. Эффективность любой защиты определяется ее самым слабым местом.
Андрей Максимов 12 апреля 2017г.
- Комментарии
- Вконтакте
- Разное257
- 1С-Просто5
- 1С: Бухгалтерия (1С:БП)8
- 1С: Комплексная автоматизация (1С:КА)7
- 1С: Управление нашей фирмой (1С:УНФ)18
- 1С: Управление торговлей (1С:УТ)12
- Зарплата (1С:ЗУП, Камин)24
- Маркетплейсы105
- Маркировка28
- Мероприятия8
- Новости111
- Обзоры26
- Отчеты в 1С8
- Переносы3
- Розница и онлайн-кассы58
- Российский софт7
- Удаленная работа7
- Экспресс-аудит 1С2