Может размер файла, возвращенный статистикой быть поставленным под угрозу?

Вы не должны использовать сценарий пакетной обработки.

См. мой ответ здесь для некоторой информации о NTP в Windows.

0
задан 13 April 2010 в 09:27
3 ответа

Вы спрашиваете, может ли кто-то поставить под угрозу размер файла, возвращенного статистикой путем взламывания файла каталога. Нет, это не возможно. Каталог, просто список имен файлов и inode чисел. Вся другая информация о файле (владелец, группа, режим, размер, и т.д.) содержится в inode (по крайней мере, в POSIX совместимые файловые системы), и это от того, где статистика собирает эту информацию.

1
ответ дан 4 December 2019 в 11:22

Вот демонстрация редких файлов, которая является одним способом, которым может вводить в заблуждение размер:

$ dd if=/dev/zero of=sparse.out bs=512 seek=100000 count=0
0+0 records in
0+0 records out
0 bytes (0 B) copied, 7.5053e-05 s, 0.0 kB/s
$ echo hi>>sparse.out
$ ls -l sparse.out
-rw-r--r-- 1 user group 51200003 2010-04-13 02:09 sparse.out
$ stat sparse.out
  File: `sparse.out'
  Size: 51200003        Blocks: 24         IO Block: 4096   regular file
Device: 802h/2050d      Inode: 1111111     Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1111/  user)    Gid: ( 1111/  group)
Access: 2010-04-13 02:09:11.000000000 -0500
Modify: 2010-04-13 02:09:09.000000000 -0500
Change: 2010-04-13 02:09:09.000000000 -0500
$ hexdump -C sparse.out
00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
030d4000  68 69 0a                                          |hi.|
030d4003
$ du sparse.out
12       sparse.out

Как Вы видите, байт включают ls и stat покажите выделенное место, но только количество блока stat и вывод du даже близко к фактическому содержанию файла.

5
ответ дан 4 December 2019 в 11:22
  • 1
    +1 для интересного факта, но it' s не точно, что я искал. Файл, кажется, 51 200 003 байта длиной, читаете ли Вы его или проверяете его размер с stat, таким образом, он doesn' t имеют значение, как это физически хранится в файловой системе. Таким образом, насколько я вижу, это doesn' t ставят под угрозу размер файла всегда. –  codeholic 13 April 2010 в 11:32
  • 2
    Ну, ' ls-l' делает lstat () syscall, как делает ' du' и ' stat' инструмент командной строки. Различие, какое поле (поля) они читают из структуры статистики возвраты syscall. –  janneb 13 April 2010 в 15:51

Почему Вы заботитесь о размере файла? Сравнение сумм MD5 скажет Вам с абсолютной уверенностью, если файл изменился или нет. Зеркальное отражение битов в файле сохранит размер файла, но могло быть совершенно другим файлом.

0
ответ дан 4 December 2019 в 11:22
  • 1
    Сравнение сумм MD5 скажет Вам с абсолютной уверенностью, если файл изменился или нет. - Нет. См. en.wikipedia.org/wiki/Pigeonhole_principle –  codeholic 13 April 2010 в 10:30
  • 2
    Да, MD5 повреждается, но я don' t думают it' s поврежденный достаточно, чтобы бояться нападения Ваших пользователей (!) и все еще исключить заражение руткита (который мог изменить и вывод статистики и md5). Кроме того, просто используйте лучший хеш, как SHA-2 или somehing. –  Sven♦ 13 April 2010 в 10:39
  • 3
    @SvenW Любая хеш-функция может возвратить конечное число различных значений. Таким образом, всегда существуют различные аргументы в пользу хеш-функции, которые возвращают то же значение, так как количество различных аргументов бесконечно. Однако it' s намного больше тяжелее для нахождения различных аргументов той же длины (для не высказывания impoxible), который имел то же значение хеш-функции. –  codeholic 13 April 2010 в 11:43
  • 4
    Ну, в теории Вы правы. Но практически, создавая документы с тем же хешем и размером или даже просто тот же хеш невозможен, по крайней мере для хеш-функций, которые намного лучше, чем MD5, т.е. SHA-2. Снова, интересно, каков Ваш сценарий нападения мог бы быть? –  Sven♦ 13 April 2010 в 13:42
  • 5
    Вы могли всегда хранить больше чем один хеш для Вас файлы, почему бы не сохранить и sha и хеши md5, взламывая обоих, возможно, очень трудных! –  The Unix Janitor 13 April 2010 в 15:49

Теги

Похожие вопросы