Thursday, November 19, 2009

Liberty Shredder

Проблема противодействия работодателей и работников вечна. Первые хотят минимизируя затраты получить максимум отдачи, вторые ... в принципе то же самое, но находятся по другую сторону баррикад.
Учитывая то, что служба безопасности находится на стороне работодателя, посмотрим, как можно помочь начальникам.
Вводная: денег нет, людей нет, есть желание\требование руководства.

Организационные процедуры.
1. Руководитель сотрудника, мониторинг которого будет проводиться, либо специалист службы безопасности отдела\филиала\дочернего общества пишут служебную записку на руководителя службы безопасности с просьбой организовать мониторинг работы сотрудника с даты1 до даты2.
2. Запрос рассматривается, в случае утверждения...
3. В службу технической поддержки передается запрос на добавление в группу локальных администраторов компьютера сотрудника учетной записи для выполнения работ по мониторингу.
4. Запускается мониторинг.
5. Мониторинг приостанавливаем, результаты передаем креатору служебной записки для анализа.
Недостатком можно считать участие большого количества людей в процедуре организации мониторинга, но с другой стороны это позволяет минимизировать вероятность самоуправства со стороны сотрудников службы безопасности предприятия.

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

Обязательным к установке программным обеспечением являются:
1. Пакет, содержащий утилиту smbclient (обычно это одноименный пакет, либо пакет samba);
2. Пакет, содержащий утилиту convert (обычно это пакет imagemagic);
3. Устанавливаем на сервер утилиту winexe. Самый простой вариант, установить статически-скомпилированный бинарный файл. Внимание! Утилита должна лежать в каталоге, входящем в переменную окружение PATH, либо лежать в каталоге, где будут лежать файлы конфигурации. Предпочтительным считаю второй вариант, дабы соблюсти чистоту дистрибутива.
4. Собственно утилиту для выполнения нужной нам работы boxcutter-fs. У нее есть старший брат, boxcutter, который отличается большей функциональностью и информативностью. Есть аналог screenshot-cmd, но он был вторым кандидатом, до которого очередь не дошла. Утилиту так же кладем в каталог с файлами конфигурации.

Сервер готов. Приступаем к настройке, предполагая, что рабочим каталогом является /usr/local/LS. LS расшифровываем как "liberty shredder", hol's der teufel!

1. В рабочем каталоге размещаем скрипт. Имя не важно. Мне нравится run (скрипты "готовящие" солянку из разных утилит).
---------------
#!/usr/bin/bash

BASE=/usr/local/LS
OUTPUT=$BASE/output
INPUT=$BASE/users.ip
PASS=$BASE/passwd
BIN_BASE="$BASE/bin"
BIN="boxcutter-fs.exe" #можно переименовать во что-нибудь вроде svchosts.exe

filename=`date +%d%m%y-%H%M.jpg`

if [ ! -d $OUTPUT ] ; then mkdir $OUTPUT; fi

for i in `cat $INPUT`; do
if [ ! -d $OUTPUT/$i ]; then mkdir $OUTPUT/$i; fi
smbclient -A $PASS //$i/admin$ -c "put $BIN_BASE/$BIN $BIN"
$BIN_BASE/winexe --system --interactive=1 -A $PASS //$i "$BIN c:\windows\temp\ASPNETSetup.log"
smbclient -A $PASS //$i/admin$ -c "get temp\ASPNETSetup.log $BASE/tmp.bmp; del $BIN; del temp\ASPNETSetup.log"
convert -quality 20 $BASE/tmp.bmp $OUTPUT/$i/$filename #-quality 20 помогает снизив качество уменьшить размер файла.
rm $BASE/tmp.bmp
done


2. В каталоге /usr/local/LS создаем подкаталог bin. Копируем в него утилиты boxcutter-fs.exe и winexe.

3. В каталоге /usr/local/LS создаем файлы:

  • passwd для аутентификации на наблюдаемом компьютере в формате
    username =
    password =
    domain =
  • users.ip, содержащий в строках ip-адреса компьютеров, на которых работают пользователи.
4. В /etc/crontab вносим запись вида:
*/5 * * * * /usr/local/LS/run, где */5 частота изготовления копий экрана, в данном случае каждые 5 минут. - имя локальной учетной записи, от которой запускается наш скрипт.

Все. Начиная с ближайшей круглой минуты, без остатка делящейся на 5,в каталоге /usr/local/LS/output/ мы можем найти файлы, содержащие копии экранов сотрудников.

PS. Не забывайте постоянно напоминать пользователям, что компания имеет право следить за тем, чем они занимаются в рабочее время. Постоянно и ненавязчиво.

PSS. Экран размером 1280х1024 порождает файлы размером от 28кб до 165 кб, средний размер 97кб

Итог: Задача выполнена. Финансирование не понадобилось, дополнительный сотрудник не понадобился, руководство удовлетворено.

Желаю Вам, чтобы Ваш файл users.ip всегда был пустым.

No comments: