Як довести час останньої зміни файлу
- Залізо
Привіт Хабр! Періодично звертаються до мене різноманітні люди, причому, іноді з такими речами, що навіть якось не по собі. Ось, наприклад, вчора звернувся товариш з проханням надати експертний висновок про останню дату зміни файлу.
Я, звичайно, експертний висновок зробив :) прошиті - пронумеровано, все в печатках - в судах такий підхід люблять. Але поки готував цей висновок став у тупик - а як дійсно довести?
У будь-якого файлу є як мінімум 3 дати - час створення фйла, час останньої зміни і час останнього доступу. Ці дати ніякої критики не виносять - використовуючи звичайний touch можна миттєво змінити дату файлу хоч на з далекого майбутнього.
Є ще, звичайно, логи, але логи ті ж файли, маючи доступ до системи, можна робити все що завгодно.
Загалом зараз думаю, що по ідеї ніяк не доведена час редагування файлу, якщо це не спеціальний кріптоформат або ще щось в цьому дусі. Сьогодні навіть по ходу придумав ідею - додавати в файл мітку, у якій були б такі ж функції, як приблизно у напіврозпаду вуглецю. Тобто при створенні створюється мітка з значенням 100, яка зменшується або збільшується, загалом, не важливо.
Загалом, суть питання - як довести час останньої зміни файлу, причому щоб докази прийняв розумний It-шник? Дякуємо!
Атрибути фала - вотчина файлової системи. Це раз.
Друге - Майже всі DLP системи вміють моніторити об'єкти ФС і ведуть історію станів цих об'єктів. Якщо DLP сертифікована - доказ у вас є на підставі журналу змін об'єкта. Те ж саме стосується і питання про копії файлу. Перша копія = оригінал. З нього почався відлік версій - інші = копії.
Але хочу зауважити, що все це відбувається без відриву від ФС. Без фалового системи, сам файл - інформація, яка, чисто логічно, не має ніяких атрибутів (віку, кольору, теми, призначення, власника і т.д.), ці атрибути з'являються тольок в рамках чогось. Тому «прив'язка на місцевості» обов'язкове.
За великим рахунком це залежить від типу файлу і оточення, в якому він був знайдений. Десь можна знайти додаткові метадані, десь - посилання, приблизно підтверджують, що файл був створений в певній програмі протягом якогось проміжку часу. Не варто також забувати про тимчасові і видалені файли (особливо це стосується різних документальних форматів).
У файлової системи NTFS тимчасові атрибути файлів містяться в файлового запису для кожного файлу в головній файловій таблиці (MFT). І як не дивно у файлу їх рівно 8. а не 3 як ми звикли. За тимчасові атрибути відповідає дві структури $ STANDARD_INFORMATION і $ FILE_NAME, кожна з яких містить: дату і час створення файлу, внесення останніх змін, останнього доступу до файлу, а також дату і час останньої зміни відомостей в файлового запису. Правильна оцінка тимчасових атрибутів зі структур $ STANDARD_INFORMATION і $ FILE_NAME дає можливість правильно відновити хронологію подій і зрозуміти коли і як змінювалися параметри