• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Как Можно Запретить Репликацию Но Оставить Печать И Клиборд Для Бд

  • Автор темы mmm
  • Дата начала
M

mmm

Доброе время суток

Поставлена задача для решения:
Имеется БД с 100.000 иерархическими документами (15Гб), которые содержат кучу вложений, и пользователи которые работают с данными. Хочется "примитивно" защитить данные от глобального копирования всех документов, убрав возможность копирования и репликации всей БД у пользователей, что бы не было возможности унести весь архив за 1 час используя репликацию БД. Забрать всю БД руками понадобится не один месяц рутиной работы и еще хранения этого богатства или газель распечатанной макулатуры. Поэтому если кто-то захочет выносить данные руками, то флаг им вруки: работа с аттачами, копирования текста в буфер и печать должна остаться. Ценность информации представляет полное иерархическое дерево документов (связи между ними), десятки заполненных полей документа и весь объем информации в целом, отдельно документы не несут конфиденциальности.
Поэтому нужно убрать у пользователей только возможности:
1. Копирование БД
2. Копирование документов Лотуса в буфер обмена, что бы не перенести их в другую БД.
3. Репликацию БД.
При этом обязательно должны остаться опции работы с данными:
1. Репликация БД для серверов и администратора
2. Работа пользователей с аттачами файлов
3. Копирования текста в буфер обмена и печать документов.

Средства ACL запрещают все функциональности сразу, что блокирует нормальную работу с данными.
 
M

morpheus

3. Копирования текста в буфер обмена и печать документов.
Эту часть сделать программно - например, для копирования в буфер обмена зделать кнопку "копировать поле в буфер обмена".
Тоже самое для печати - кнопка "печать".

Всё остальное через отключения галки "репликации" для пользователей
 

rinsk

Lotus Team
12.11.2009
1 151
125
BIT
3
Терминальный доступ к клиенту и БД в KIOSK режиме?

Добавлено:
Всё остальное через отключения галки "репликации" для пользователей

ИМХО если есть доступ на чтение к документам - агент в локальной базе сольет всю иерархию...
 
T

turumbay

тырим раз:
Код:
	Set collection = megaDb.AllDocuments
Dim doc As NotesDocument
Set doc = collection.GetFirstDocument
While Not doc Is Nothing
Call doc.CopyToDatabase( stolenDb )
Set doc = collection.GetNextDocument(doc)
Wend

тырим два:
Код:
	Set stream = session.CreateStream
Call stream.Open("stolen.xml")
Dim exporter As NotesDXLExporter
Set exporter = session.CreateDXLExporter( megadb , stream )
Call exporter.Process

И не надо недооценивать пользователей :) Все зависит от мотивированности сотрудника стырить БД.
 
T

turumbay

а разве это сработает при снятой галке "Репликейт ор копи документс" ?
надо будет проверить
да не суть. не сработает это - сработает
Код:
forall item in doc.items
call item.copyToDocument( ... _
end forall
суть в том, что указанную задачу нужно решать другими способами.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 940
609
BIT
210
можно задуматься над схемой:
-у юзеров нет доступа на БД (только у "специальных")
-кодом вытаскивается нужная инфа (по запросу и т.п.)
-вытащить "всё" - запросов нет :)
т.е. должна быть некая "интерфейсная" БД
 
M

mmm

да не суть. не сработает это - сработает
Код:
forall item in doc.items
call item.copyToDocument( ... _
end forall
суть в том, что указанную задачу нужно решать другими способами.
Действительно, я проверил, написав локального агента за 5 минут (с 10 строками) с использованием call item.copyToDocument() я скопировал всю базу с помощью него, к которой у меня не было доступа копирования в ACL. База конечно получилась без дизайна, но сделать основных несколько форм с полями это еще + 30 минут работы. И пользуйся кто хочет. Таким образом можно даже получать каждый день ее обновления.
Получается как-то грустно, неужели если БД лежит на сервере то никак нельзя защитить ее от полномасштабного копирования пользователям с ограниченными провами к ней???
 

savl

Lotus Team
28.10.2011
2 597
310
BIT
177
$keepPrivate не даст копировать документы в буфер обмена...

А чтобы человек не слил агентом есть идея не устанавливать ему дизайнера, запретить создать файлик designer.exe в директории лотуса и директории ID'шника. Правда от разраба это не спасет, у них доступ все же должен быть.

Шифрование отдельных полей еще можно, тогда круг людей сужается...

не совсем в тему:
Утечка информации в более половине случаев это человеческий фактор. Людей надо проверять лучше и "кормить")
И вообще это задача для сотрудника ИБ. Пусть найдет уязвимости и дальше скажет что закрыть, вот тогда и будете думать как лучше закрывать возможности.
 
M

morpheus

lmike
да, тогда наиболее правильный вариант

+ ограничение на кол-во запросов от одного полльзователя
 
M

mmm

Смирился, от программиста возможность копирования всех доступных ему документов не удержать, можно только немного затруднить. Одна надежда что таких заинтересованных пользователей не появится ;)
$keepPrivate не даст копировать документы в буфер обмена...
отличное поле, Спасибо
А чтобы человек не слил агентом есть идея не устанавливать ему дизайнера, запретить создать файлик designer.exe в директории лотуса и директории ID'шника. Правда от разраба это не спасет, у них доступ все же должен быть.
заготовленную БД можно и принести извне
Шифрование отдельных полей еще можно, тогда круг людей сужается...
При больших объемах есть большое подозрение что шифрованная БД может слишком долго обрабатывать запросы и виды
lmike
+ ограничение на кол-во запросов от одного полльзователя
Подскажите плз что это за ограничение и как его можно сделать?
 
O

Omh

mmm
Учти, что $keepPrivate так же убирает возможность послать документ на распечатку, а так же возможность копирования данных из полей.
 

savl

Lotus Team
28.10.2011
2 597
310
BIT
177
можно дать возможность копировать только определенным пользователям через роль или группу, что на мой взгляд более правильно.
для этого $KeepPrivate можно сделать вычисляемым.

Есть роль $KP =0. нет роли $KP=1, либо прописывать на PostOpen.

заготовленную БД можно и принести извне
Отключаем возможность использования носителей информации.
Я говорил уже, что тут надо уязвимость по ИБ в целом проверить и исключать одно за другим.

Про шифрование, к сожалению, знаю мало.
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
можно дать возможность копировать только определенным пользователям через роль или группу, что на мой взгляд более правильно.
для этого $KeepPrivate можно сделать вычисляемым.

Есть роль $KP =0. нет роли $KP=1, либо прописывать на PostOpen.
Разве работает?


Добавлено: Проверил, не работает. Ни QO, ни PO, ни вычисляемое поле.
 

savl

Lotus Team
28.10.2011
2 597
310
BIT
177
Сделал на PO:
Call source.Document.ReplaceItemValue("$KeepPrivate","1")

Поле прописалось.

можно сделать так:

macro = Evaluate({@IsMember("[CanCopy]";@UserRoles)})

Call source.Document.ReplaceItemValue("$KeepPrivate",cstr(macro(0)))

будет работать, значение текстовое должно быть
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!