Время прочтения: 2 мин.

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

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

При большом объёме информации ручной анализ потребует значительного количества времени и ресурсов, поэтому целесообразно применять автоматизированные методы для решения данной задачи. Одним из вариантов является получение полного листинга файлов на сетевом ресурсе на языке python. Далее представлен пример простого скрипта:

import os
import time
path = "\\PC-01\FIR_01"
file_result = open('result.csv','w')
file_result.write("PATH;SIZE;LAST MODIFY\n")	
for i,j,k in os.walk(path):
    for files in k:
        try:
            open(i+ "\\"+ files,"r")
            try:
                file_result.write(i+ "\\"+ files+";"+str(os.stat(i+'\\'+ files).st_size)+";"+ str(time.ctime((os.stat(i+'\\'+ files).st_mtime))) +"\n")
            except:
                print ('error write file')
        except:
            print ("error open file",i+ "\\"+ files)
file_result.close()

Код формирует полный листинг файлов ресурса с указанием их размера, а также даты/времени последнего изменения. Скрипт может быть запущен под учётной записью сотрудника организации, имеющего доступ на проверяемый сетевой ресурс. В коде выше используются методы walk и stat библиотеки os для получения листинга директории и получения свойств файла соответственно, а также метод ctime библиотеки time для преобразования времени последнего изменения файла в удобный вид. В первую очередь проверяется возможность открыть файл с правами на чтение. Если прав на чтение файла нет, то в результирующий перечень файл не попадает. В результате отработки скрипт выведет листинг в файл с расширением «csv», путь и имя которого заданы в переменной file_result.

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