Перейти к содержанию
spw

Немного о восстановлении данных нестандартным способом...

Recommended Posts

spw

Доброй ночи.

Просили развивать портал - хорошо, развиваем. Вот перепост последнего сообщения из моего блога.

Стоит начать с того, что эти четыре месяца выдались "жаркими" на события:

  • в январе-феврале сдохли два винчестера у моего друга (с разницей в 1-2 дня),
  • в феврале "побился" мой RAID,
  • и chkdsk'ом был убит volume на 8 GB (кстати, практически полностью аналогично описываемым далее событиям),
  • после этого сдох винчестер у моей девушки (он помирал медленно, планомерно -- были признаки, поэтому к его смерти удалось более-менее приготовиться, хотя все равно "потрахаться" пришлось),
  • в прошлую субботу у меня "подгорела" очень некстати видеокарта...
Ну а в эту субботу... chkdsk убил мой крипто-контейнер на флэшке. Произошло это при достаточно простых обстоятельствах. Создавал каталоги на незашифрованной части флэшки, потом удалял. Заметил, что удаление не работает. Посмотрел security attributes - не помогло. Вспомнил, что такие проблемы с удалением часто возникают из-за проблем файловой системе (флэшка отформатирована, конечно, под NTFS).

Как раз в эту субботу собирался делать бэкап. Ну это как обычно, в лучших традициях. Если умирать - так в день бэкапа. Для запускания chkdsk пришлось контейнер размонтировать. Итог...

Забегая вперед - статистика.

Использованные приложения:

Disk Tools: WinHEX, R-Studio, Runtime DiskExplorer

Compilers: Microsoft Visual Studio v2003, Virtual Pascal (к сожалению, этот продукт уже "мертв")

Editors: HIEW, FAR

Написанные утилиты:

  • MD5-сравнивальщик образов (про него чуть позже отдельно)
  • $MFT-анализатор (входит в NTFS-парсер)
  • Генератор flat-отчетов по $MFT
  • Удалятель используемых блоков (Used Blocks Eraser)
Это было реально сложно. Затраченное время:
  • 3.5 часа вечера субботы,
  • 3 часа в ночь с субботы на воскресенье,
  • 9 часов воскресенья,
  • 5 часов в ночь с воскресенья на понедельник,
  • 2 часа в понедельник,
  • 6 часов в ночь с понедельника на вторник,
  • 10 часов во вторник,
  • 6 часов в ночь со вторника на среду.
Итого: 44.5 часов, или 1.85 суток, или 5.6 рабочих дней по 8 часов (реально в днях: вечер субботы - начало среды)

Возвращаясь к произошедшему.

Так отработал chkdsk:

The type of the file system is NTFS.Volume label is FLASH4GB.CHKDSK is verifying files (stage 1 of 3)...[...]CHKDSK is verifying indexes (stage 2 of 3)...Deleting index entry $ObjId in index $I30 of file 11.Deleting index entry $Quota in index $I30 of file 11.Deleting index entry $Reparse in index $I30 of file 11.10 percent complete. (514 of 150319 index entries processed)       [...]83 percent complete. (136542 of 150319 index entries processed)       Deleting index entry SomeDirectory in index $I30 of file 151.   << это бывший каталог контейнераDeleting index entry SOMEDIR~1 in index $I30 of file 151.83 percent complete. (137042 of 150319 index entries processed)       [...]Index verification completed.Cleaning up minor inconsistencies on the drive.CHKDSK is recovering lost files.90 percent complete. (1 of 6 unindexed files processed)     9077                                                        7 unindexed files processed.                               Creating object id file.Inserting an index entry into index $I30 of file 11.Creating index $O for file 19.Inserting an index entry into index $O of file 19.[...]Inserting an index entry into index $O of file 19.Creating reparse point file.Inserting an index entry into index $I30 of file 11.Creating index $R for file 20.Creating quota file.Inserting an index entry into index $I30 of file 11.Creating index $O for file 21.Creating index $Q for file 21.Inserting default quota record into index $Q in file 21.CHKDSK is verifying security descriptors (stage 3 of 3)...[...]Correcting errors in the master file table's (MFT) BITMAP attribute.CHKDSK discovered free space marked as allocated in the volume bitmap. << прощай мой контейнер!Windows has made corrections to the file system.

Все. Каталога с контейнером нет. Ну ладно, каталога нет, а файл-то на диске должен быть. Запускаю R-Studio, захожу в "предшествующий" каталог (родительский для каталога контейнера). Пусто. Делаю полный скан volume'а - пусто. Знаете что это означает? То, что никаких упоминаний о файле контейнера в $MFT больше нет. И по сути файла больше логически не существует (физически это не так).

Срочным образом запускаю WinHEX и делаю полный образ всей флэшки (как PhysicalDisk, не только Volume).

Все, на этом флэшку можно вытаскивать, в текущем виде она больше не понадобиться. Есть образ, с которым можно работать.

Первые же отзывы, которые я получил (крайне обнадеживающие): "Нет записей в $MFT? Ты потерял свои данные 100%. Забудь".

Предыдущий бэкап контейнера был, конечно же, достаточно давним. Месяц назад (вот сейчас ровно месяц). За это время было проделано достаточно много изменений данных, хранящихся в этом контейнере и нигде более. Терять эти данные не было возможности просто никакой. Многие вещи были бы безвозвратно утеряны, многие требовалось бы писать или делать с нуля, что с учетом затраченного времени, сильно откидывало "назад", и создавало нереальные проблемы.

Нужно было восстанавливать. Срочно. Время шло на часы.

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

Благо у контейнера есть специфический заголовок, который я знаю наизусть. Начало контейнера быстро было найдено. Скопировал данные в файл, подмонтировал. Файловая система обычным способом (через FAR) не прочиталась. Пришлось обратиться опять к R-Studio. Увидел все свои каталоги и проч. Однако, содержимое файлов, конечно же, оставляло желать лучшего. Практически все новые и измененные за последнее время файлы содержали мусор. Либо полностью состояли из мусора, либо были частично мусорными. Толку от этого для решения общей задачи было практически мало.

Решил попробовать Runtime DiskExplorer. Нашел файловую запись 151. Это был родительский каталог каталога с контейнером. В дампе этой файловой записи было упоминание название каталога с контейнером. Но не более. Имени (или частей имени) файла с контейнером в $MFT не было! Вообще.

Сдампил файл $MFT. Опять же, прошелся в поисках по нему (в различных комбинациях) в FAR и HIEW - искал хоть что-то напоминающее имя файла контейнера - ничего.

Следующая мысль была - может быть chkdsk затер имя, но файловая запись осталась (с пометкой какой-нибудь или пусть даже "удаленная"). Стал пытаться найти в $MFT ссылки на начало файла (заголовок) - тщетно. Ничего нет.

И вот тут-то и пришла в голову мне дельная мысль -- воспользоваться резервной копией контейнера! Нет-нет. Не так, как вы подумали. Не забить на все и не банально восстановить все, просто взяв забэкапленный файл контейнера. Речь о другом.

Идея заключается в следующем. Файл-контейнера именно как файл (целое) постоянен. Если не запускать дефрагментацию внутри самого контейнера, неизменяемые мною или самой файловой системой участки контейнера остаются постоянными. Соответственно, если диск 2gb, и там никто особенно не "шуровал", не перемещал файлы туда-сюда, а просто работал - то есть вносил изменения в существующие файлы, добавлял новые, что-то изредка удалял и т.п., файл контейнера сильно не изменялся! Понятие "сильно не изменился", конечно, условное. Чем меньше было изменений фактических (то, что делали вы), чем меньше срок между текущим состоянием и последней резервной копией - тем, очевидно, лучше.

Забегая вперед скажу, что в моем случае неизмененными осталось 78.5% секторов.

Операционная система при записи файлов старается их все же не фрагментировать (насколько это вообще возможно с учетом текущего состояния диска). Посмотрев свой $MFT, я был уверен, что фрагментов диска должно быть не больше 10, ну максимум - 20. А для большого файла-контейнера это означает то, что эти фрагменты будут по 100-200-300 мегабайт. То есть "огромными". И находя любой из фрагментов, сразу же находится ("восстанавливается") достаточно большой пласт информации. С этим, правда, тоже есть тонкость. Ведь внутри контейнера - такая же файловая система. И она так же фрагментирована еще самом по себе. Поэтому, восстановив 100 мегабайт контейнера, не значит, что вы восстановите 100 мегабайт файлов. Может оказаться вообще так, что у вас будет в наличии 100 мегабайт "мусора" -- различных кусков и обрезков от кучи файлов (где начало, где середина, где несколько кусков, где конец).

Проблема с фрагментами заключается не только в их поиске по всему физическому диску (а это огромный объем для анализа - 4gb; чтобы понять это - попробуйте вручную хотя бы 20mb пролистать клавишей PageDown), но и в том, что фрагменты могут быть записаны в любом порядке! То есть совершенно не обязательно, что файл выглядит на диске так: FRAGMENT1, FRAGMENT2, FRAGMENT3 и т.д. Он выглядит как угодно, легко порядок может оказаться таким - FRAGMENT8, FRAGMENT1, FRAGMENT6, FRAGMENT5, FRAGMENT2, FRAGMENT3 и т.д.

Моя идея позволяет сразу же "убить двух зайцев". Во-первых, мы сразу же находим все (или почти все) фрагменты на диске. Во-вторых, мы определяем корректный порядок их следования!

Теперь уже, наконец, сама суть идеи.

  1. Был взят файл контейнера месячной давности. И на каждые 512 байт (размер сектора) этого файла был насчитан MD5.
  2. Те же действия были произведены для текущего образа диска, на котором располагался контейнер (образ диска в 2 раза больше контейнера).
  3. Но сделано это было еще и по-хитрому. Так как я уже знал, что файла логически на этом диске не существует (нет никаких следов и упоминаний о нем), то весь файл находится сейчас в области "free space" (незанятое место, куда можно писать новые файлы). Соответственно, нет никакого смысла считать MD5 от всех секторов образа. Нужно построить маску занятых секторов, инвертировать ее (получить незанятые) и посчитать MD5 от всех незанятых секторов. Это и было проделано (для этого была написана утилита, которая анализировала $MFT и строила такой bitmap).
Теперь у нас имелось два множества с MD5 секторов. Одно - от старого бэкапа, другое - от "свободного места" на текущем диске, в котором содержался текущий контейнер. Нужно было найти пересечение этих множеств!

Следует дополнительно отметить, что ситуация с MD5 здесь является выигрышной по той причине, что файл - это крипто-контейнер, что дает невероятно малый риск "коллизий" (речь не о хэш-функции). Допустим, если бы это был обычный файл (даже огромный .exe'шник) - в нем была бы куча повторящихся частей. С крипто-контейнером это просто исключено (если используется правильная инициализация IV для шифрования или, например, XTS с подмешиванием логического номера сектора диска).

Результат пересечения множеств -- 78.5%. Остальные 21.5% - это измененные сектора диска.

Мое предположение заключалось в следующем (и полностью оправдало себя на практике) - изменения секторов более менее распределены по диску "локализованно". Соответственно, скорее всего, неизменные сектора окажутся в огромных количествах в каждом из имеющихся фрагментов диска. Что я имею в виду? То, что границы фрагментов будет определить легко. Либо граничные сектора не будут изменены, либо прилегающие к граничным секторам не будут изменены. Так и оказалось, у 5-и или 6-и из 10 (но можно считать, и 9-и) фрагментов, границы были определены очень четко, причем обе (как начало, так и конец).

У оставшей части границы пришлось поискать вручную. Но опять же, в виду того, что это шифро-данные, найти их границы не так сложно: эти данные выглядят как крайне случайный мусор. Как только этот мусор заканчивается - скорее всего, вы на границе.

Мешали этому только различные архивы (zip/rar), а так же инсталляторы (msi - считай, те же архивы). Если на стыке границы находился архив, было проблематично понять, имеют отношение эти сектора еще к фрагменту контейнера или это уже кусок архива.

Для решения этой проблемы была придумана еще одна идея: почистить сохраненный образ физического диска от... блоков, занятых файлами. То есть своеобразный жесткий wipe. Занулить все, что не относится к free space. (Это та самая утилита UsedBlocksEraser, которую пришлось написать для обработки bitmap).

Только благодаря этой утилите был найден один большой блок примерно на 50mb, в котором не было ни одного совпадения по MD5! (Вот вам и разрушение теории про "точно в каждлом блоке, найдется хотя бы несколько..."). Реально - ни одного. То есть все данные в этом фрагменте были либо изменены, либо были новыми.

Как выглядел лог пересечения множеств? (Это уже отсортированный лог с моими комментариями)

[bEGIN-4GB | BEGIN-2GB] - [ END-4GB  |  END-2GB ] Sectors countБлок контейнера с данными в промежутке: [00000000h - 2831A000h][начало файла контейнера][7D04FE00h | 00000000h] - [7E86FE00h | 01820000h] Sectors = 49408    / Size = 01820000 (25296896)[7E870000h | 01820200h] - [7E870200h | 01820400h] Sectors = 1        / Size = 00000200 (     512)[7E870400h | 01820600h] - [7E881800h | 01831A00h] Sectors = 138      / Size = 00011400 (   70656)[...][9ECFC600h | 21CAC800h] - [9ECFD600h | 21CAD800h] Sectors = 8        / Size = 00001000 (    4096)[9EECE600h | 21E7E800h] - [A5369E00h | 2831A000h] Sectors = 206044   / Size = 0649B800 (105494528)[реально конец данных] [за этим следует файловая запись из $MFT]Размер блока: 674340864 (2831A000h), Sectors = 1317072, ~674mb (если внутри нет промежутков)Блок контейнера с данными в промежутке: [2831A000h - 39D75000h][реально начало данных] [перед этим следует расшифрованный пустой сектор][5F489E00h | 2831A000h] - [63172400h | 2C002600h] Sectors = 124739   / Size = 03CE8600 (63866368)[63172600h | 2C002800h] - [65360E00h | 2E1F1000h] Sectors = 69492    / Size = 021EE800 (35579904)[...][6EEEA600h | 37D7A800h] - [70EE4E00h | 39D75000h] Sectors = 65492    / Size = 01FFA800 (33531904)[реально конец данных] [за этим следует расшифрованный неизвестный .exe]Размер блока: 296071168 (11A5B000h), Sectors = 578264, ~296mb (если внутри нет промежутков)Блок контейнера с данными в промежутке: [39D75000h - 469E6000h][реально начало данных] [перед этим следует расшифрованный пустой сектор][242AFE00h | 39D75000h] - [25144600h | 3AC09800h] Sectors = 29860    / Size = 00E94800 (15288320)[25145600h | 3AC0A800h] - [260DB600h | 3BBA0800h] Sectors = 31920    / Size = 00F96000 (16343040)[...]

Кстати, забыл рассказать о "втором зайце". Порядок следования. По вот этому логу он определяется элементарно. Лог имеет формат: смещение начала отрезка одинаковых секторов, смещение конца отрезка одинаковых секторов, их количество, размер в байтах. Смещения указаны в двух "системах счисления". Первая часть - это смещение внутри образа физического диска. Вторая часть - это смещение внутри резервной копии файла-контейнера. Теперь догадываетесь как "убить второго зайца"? Нужно просто отсортировать этот лог по вторым смещениям. Чтобы они следовали от нулевого (начала контейнера) до конца, по возрастанию.

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

Кстати, вспомнил момент. Был реальный epic fail на полпути (из-за которого, кстати, было потеряно определенное время, потому что из-за него не нашлось часть пересечения и пришлось блоки искать вручную). Я, зная о том, что это большие диски (больше 2GB), почему-то все равно использовал обычные функции seek. Как итог - неправильно построенное множество MD5 для диска с физическим образом. Более того, еще хуже ситуация была на Virtual Pascal (одна из утилит была написана на нем) с типом Longint (не DWORD), который, естественно, умеет быть отрицательным. В общем, не забывайте, что нужно использовать 64-битные смещения и 64-битный seek! Не тупите. Особенно, если знаете об этом изначально.

В общем, диск был подключен. Файловая система прекрасно читалась через FAR. Файлы были доступны и все было отлично. Стал крайне внимательно (имеют опыт) сравнивать диски/файлы: восстановленную копию, копию в своей голове и резервную копию. Не сразу же, но нашел, что часть файлов (очень малая, но они есть) - битые. В них содержалась информация от других секторов. То есть где-то произошло смещение границ блоков! Мне очень повезло, что на этом контейнере у меня было ~100 файлов, на которые было заранее рассчитано MD5. Я мог проверить их целостность и понять - битые они или нет. Так же, мне повезло, что это был не XTS-режим. В противном случае я не знал бы, что это смещены границы блоков. Точнее, я не смог бы понять: расшифрован полный мусор или это "правильные данные", но просто не на том месте. (В данном случае, мусорными были первые 16 байт сектора, остальное было нормально расшифрованным, но "не отсюда" -- это особенность реализации алгоритма; кстати, если не было бы такого подмешивания - была бы нереальная проблема с коллизиями при рассчете MD5 - см. выше).

Я составил список битых файлов (те, что смог найти вручную). После этого пришлось сделать утилиту, которая строит "flat-модель" (мое условное название) всего диска. Для этого уже использовался анализ $MFT из внутренностей контейнера. Лог выглядел вот так:

[...][5EA29000-5EA34800] Sectors = 92       / Size = 0000B800 (   47104) FO: [00018000-00023800] `.\SVN\C*\R*\include\buildconf\*.h'[5EA34800-5EA35000] Sectors = 4        / Size = 00000800 (    2048) FO: [0000F000-0000F800] `.\SVN\C*\R*\driver\Debug\*.obj'[5EA35000-5EA3D800] Sectors = 68       / Size = 00008800 (   34816) FO: [00018000-00020800] `.\SVN\C*\R*\n*\Debug\*.obj'[5EA3D800-5EA3E000] Sectors = 4        / Size = 00000800 (    2048) FO: [00008800-00009000] `.\SVNROOT\C*\db\revs\0\392'[5EA3E000-5EA3F000] Sectors = 8        / Size = 00001000 (    4096) FO: [00014800-00015800] `.\SVNROOT\C*\db\revs\0\398'[5EA3F000-5EA40800] Sectors = 12       / Size = 00001800 (    6144) FO: [00010800-00012000] `.\SVNROOT\C*\db\revs\0\389'[5EA40800-5EA41000] Sectors = 4        / Size = 00000800 (    2048) FO: [00009000-00009800] `.\SVNROOT\C*\db\revs\0\392'[5EA41000-5EA41800] Sectors = 4        / Size = 00000800 (    2048) FO: [00008000-00008800] `.\SVNROOT\C*\db\revs\0\390'[5EA41800-5EA42000] Sectors = 4        / Size = 00000800 (    2048) FO: [00002000-00002800] `.\WORK\INTERNET\DESIGN\sporaw\www\rus\.htaccess'[...]

Символ "*" тут - это просто пропущены ненужные всякие названия.

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

Такой лог позволил мне увидеть, что все битые файлы находятся в пределах одного найденного мною блока. Более того, я понял, что битых файлов значительно больше, чем я предполагал (я нашел 10, а их было 55). Причем большинство из них, к сожалению, выпадали на бинарные файлы (по ним сложно понять - битый он или нет), и более того -- на куски репозитория SVN!

Используя FO-смещения (информация о блоке внутри файла), я проанализировал несколько файлов. Тут как раз помогло то, что несколько файлов было текстовых, плюс файлы были разных форматов. По ним я понял, что произошло смещение на 32-сектора (4000h байт). То есть нужно восстанавливаемый блок просто сдвинуть "вниз" на 4000h байт. А как раз за этим "плохим" блоком шел ненайденный блок в 4000h-байт. Как оказалось, нужно было просто поменять местами эти два блока! Ненайденный блок шел до найденного.

Эти 4000h байт я не стал искать, посмотрев куда они попадают в контейнере: они попадают на область free space. То есть просто пустое место. Там может быть любой мусор и мне он неважен. Искать смысла нет никакого.

Результаты проделанной за 44.5 часов работы:

//                PhysOffset  BlockSize       PhysOffset   FileOffset   PhysOffset   FileOffsetCopyBlock(fI, fO, 0x7D04FE00, 0x2831A000); // [7D04FE00h | 00000000h] - [A5369E00h | 2831A000h]CopyBlock(fI, fO, 0x5F489E00, 0x11A5B000); // [5F489E00h | 2831A000h] - [70EE4E00h | 39D75000h]CopyBlock(fI, fO, 0x242AFE00, 0x0CC71000); // [242AFE00h | 39D75000h] - [30F20E00h | 469E6000h]CopyBlock(fI, fO, 0xDBBB7E00, 0x09E03000); // [DBBB7E00h | 469E6000h] - [E59BAE00h | 507E9000h]CopyBlock(fI, fO, 0x0A38FE00, 0x08871000); // [0A38FE00h | 507E9000h] - {12C00E00h | 5905A000h}UnknownBlock(fI, fO, 0x00004000);          // <????????h | 5905A000h> - <????????h | 5905E000h> // FreeSpace, нет смысла искать ихCopyBlock(fI, fO, 0x0000DE00, 0x03056000); // <0000DE00h | 5905E000h> - <03063E00h | 5C0B4000h>CopyBlock(fI, fO, 0xA75DFE00, 0x01F5B000); // {A75DFE00h | 5C0B4000h} - {A953AE00h | 5E00F000h}CopyBlock(fI, fO, 0x3CE74E00, 0x01878000); // {3CE74E00h | 5E00F000h} - {3E6ECE00h | 5F887000h}CopyBlock(fI, fO, 0x55FBFE00, 0x00779000); // {55FBFE00h | 5F887000h} - [56738E00h | 60000000h]// Total: 0x60000000 = 1'610'612'736

Все! Контейнер полностью восстановлен!

Надеюсь, эта статья и идеи кому-нибудь когда-нибудь помогут/пригодяться при восстановлении данных в схожей или иной ситуации.

P.S. После всей этой истории подумал, что факторизация RSA-512 (или сколько бит там было?) за минуту в Swordfish -- не такая уж и шутка. ;) Иногда бывает НАДО!

  • Upvote 5

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Umnik

Это действительно шикарно.

/me поставил себе на запястье крестик, чтобы вечером изменить расписание Акрониса с "каждый месяц" на "каждую неделю".

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Андрей-001

Umnik

Ещё поставь на коррекцию подзаголовка этой темы.

Полсуток уже висит как поххххаться почти 50 часов бесплатно. Обалдели что ли?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
SBond

Скорее всего мой ответ больше относится к разряду - ОффТоп.

Действительно, согласен с Umnik'om есть вещи которые стоит добавить себе в "базу данных".... Спасибо автору, честно говоря, даже не думал, что есть люди, которые могут для восстановления пользоваться дебагерами или подобными инструментами, в данном случае Winhex, очень удивлялся почему нет нормальных описаний подобных применений таких инструментов, мне кажется из-за того, что все подобное остается в узком кругу профессионалов, или я плохо искал ?

Еще на заре своего общения с компьютером понял, что для восстановления файлов нужны программы несколько лучшие чем DOS - Undelete.exe, и очень нравилась в свое время утилитка Norton DiskEdit, жалко, что подобную программу Symantec не смог развить, и она забылась. (хотя, наверное, уже многие утилиты не могут соперничать со старыми аналогами из DOS):) +1 автору.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Андрей-001
даже не думал, что есть люди, которые могут для восстановления пользоваться дебагерами или подобными инструментами, в данном случае Winhex

Так Winhex в судебной версии можно вернуть или просмотреть даже больше, чем в профессиональной. Это даже и не тайна, а давно известный факт.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Umnik
Полсуток уже висит как поххххаться почти 50 часов бесплатно. Обалдели что ли?

Ну как сказать: http://slovari.yandex.ru/dict/ushakov/arti...&stpar3=1.2

Я до сих пор вспоминаю, как Иван обалденно расписал значение слова "хер".

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Андрей-001

OFF

как Иван обалденно расписал значение слова "хер".

А что Иван писал про хер? ...Крест, перекреститься, ноги хером... Это всё также есть в словаре Даля.

Но ещё есть праславянское и праиндоевропейское значение. В Инете его не найдёте.

Живущие в Москве могут заглянуть в "Этимологический словарь славянских языков: Праславянский лексический фонд". 24 тома (не завершено). Или сходить в редакцию.

Найдёте мнооого интересного про все так называемые современные эвфемизмы и матерные слова, которые там даются с корневой основой. OFF

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

  • Сообщения

    • petrowpetrovp
      Вся актуальная информация про большой теннис, доступна на этом сайте. Ежедневные обновления, позволяет вам всегда быть вы курсе последних событий. Кроме новостей теннисе, вы сможете больше узнать про ставки на данный вид спорта, а также про букмекеров, которые предлагают выгодно заключать пари с высокими коэффициентами.
    • AM_Bot
      В киберпространстве Standoff 365 воссоздаются операционные и бизнес-процессы реальных промышленных, энергетических, транспортных, финансовых компаний и целых отраслей. Участие в Standoff 365 — быстрый и действенный способ оценить на практике уровень информационной защищённости компании, найти все слабые места в ИТ-инфраструктуре и подготовиться к отражению кибератак.     ВведениеВозможности платформы Standoff 365Платформа Bug Bounty3.1. Для кого предназначена платформа Bug Bounty3.2. Особенности платформы Bug Bounty3.3. Работа на платформе Bug BountyОнлайн-киберполигон4.1. Для кого предназначен онлайн-киберполигон4.2. Особенности онлайн-киберполигона4.3. Процесс работы на онлайн-киберполигонеОткрытые киберучения Standoff5.1. Для кого предназначены киберучения Standoff5.2. Варианты участия в киберучениях StandoffВыводыВведениеСогласно исследованию Positive Technologies, во II квартале 2022 года:Объём целенаправленных атак на российские компании составил 71 %.Количество атак APT-группировок обновило предыдущий рекордный показатель, зафиксированный в IV квартале 2021 года (91 против 86).Госучреждения вновь столкнулись с наибольшим количеством кибератак: в 46 % случаев они были атакованы с использованием вредоносных программ, среди которых 63 % составили шифровальщики, и некоторые жертвы были вынуждены заплатить выкуп.Значительно выросло число атак на промышленные учреждения — на 53 % по сравнению с предыдущим кварталом.Число атак на веб-ресурсы организаций продолжает расти: нынешний показатель составил 28 %, на п. п. выше, чем в предыдущем квартале.Подобная статистика объясняет, почему бизнес уделяет всё больше внимания кибербезопасности, причём это касается как отдельных предприятий, так и целых отраслей. В полной цифровых вызовов среде компаниям необходимо постоянно повышать свою киберустойчивость, и помочь в этом могут специалисты по исследованию информационных систем: белые хакеры, редтимеры, пентестеры.Идея онлайн-платформы Standoff 365 выросла из популярных в сфере информационной безопасности соревнований Standoff — зрелищной кибербитвы, где одни команды выступают в роли хакеров, а другие защищаются от их атак. Standoff появился в 2016 году и с тех пор непрерывно развивался, усложняя правила и инфраструктуру. Сначала это был виртуальный город, где для исследования на проникновение и защиту предлагались несвязанные между собой виртуальные объекты. Сегодня это — виртуальное государство с объектами и целыми отраслями, которые взаимодействуют друг с другом.Платформа Standoff 365 — закономерное продолжение развития принципов ИБ 2.0: компании, отрасль и государство нужно полностью защитить от недопустимых событий.Вот почему миссия платформы — объединить разнопрофильных экспертов в области кибербезопасности со всего мира, в том числе хакеров и багхантеров, чтобы помочь бизнесу и государству предотвратить недопустимое.Возможности платформы Standoff 365В состав Standoff 365 входят:Краудсорсинговая платформа для размещения программ по возмездному поиску уязвимостей (bug bounty). Она позволяет исследователям безопасности искать бреши и пути к недопустимым событиям в ИТ-инфраструктурах компаний-участников за вознаграждение. Компании, размещающие на платформе свои программы баг-баунти, регулярно получают актуальную информацию об уязвимостях инфраструктуры и возможности реализовать недопустимое для бизнеса событие.Киберполигон, который позволяет проводить киберучения и исследовать атаки на информационную инфраструктуру и приложения в онлайн- и офлайн-режимах. Противостояние специалистам по взлому (этичным хакерам) даёт возможность объективно оценить и развить навыки по кибербезопасности, в особенности по мониторингу и расследованию инцидентов.Ключевые особенности платформы Standoff 365:тысячи практикующих специалистов с различным опытом и экспертизой, исследователей безопасности, участников CTF-соревнований и пентестеров;возможность проведения киберучений на готовой или собственной ИТ-инфраструктуре;исследование безопасности ИТ-систем в состоянии «как есть» в режиме 24×7;непрогнозируемый вектор атак;комплексный подход к обеспечению киберустойчивости: от поиска и устранения существующих уязвимостей до навыков мониторинга кибератак и понимания того, как действуют злоумышленники.Платформа Bug BountyПлатформа Standoff 365 Bug Bounty аккумулирует программы поиска уязвимостей за вознаграждение от российских компаний. На ноябрь 2022 года там представлено 25 публичных программ.Для компаний это — быстрый и эффективный способ оценивать и развивать информационную безопасность собственных ИТ-систем при участии большого количества исследователей, профессионалов и энтузиастов, не ограниченных временем и географическим положением.Для кого предназначена платформа Bug BountyСвою программу на платформе Standoff 365 Bug Bounty может запустить любая компания, которой важно повышать информационную безопасность своих продуктов и сервисов.В результате она получает:интерес со стороны уже собранных на платформе профессионалов;продуманный интерфейс коммуникаций с исследователями, простой процесс выплат и дополнительные услуги, такие как проверка сданных отчётов;достоверный анализ слабых мест в защите своего продукта или ИТ-системы;подтверждение того, что компания надёжно защищена от недопустимых событий, даже при целевых атаках;репутацию компании, которая надёжно защищена от киберугроз, и соответствующий имидж продукта.Особенности платформы Bug BountyБелые хакеры могут искать как уязвимости в классическом формате, так и цепочки реализации недопустимых для компании событий.Компании указывают элементы инфраструктуры или область уязвимостей, которые предоставляются для исследования, а также определяют размер выплат в зависимости от степени критической значимости уязвимости.Платформа может осуществлять первичную обработку отчётов и взять на себя организацию выплат исследователям безопасности. Следует также отметить, что она имеет выстроенный процесс по привлечению багхантеров.Работа на платформе Bug BountyЗапуск собственной программыПосле заключения договора и пополнения счёта для выплат исследователям компания получает доступ к личному кабинету, где создаёт свою страницу с описанием и прямую ссылку на неё, а также назначает (указывает адреса электронной почты) дополнительных пользователей, которые получат права на платформе.Компания может выбирать для каждой программы свой формат (по уязвимостям, по недопустимым событиям, по тому и другому вместе). Правила программы должны описывать область исследования, ограничения, критерии оценки отчётов, суммы вознаграждений и другие условия.Также у компании есть возможность проверить, могут ли быть реализованы недопустимые для её бизнеса события. Эта возможность — уникальная особенность платформы Standoff 365 Bug Bounty. Недопустимые события необходимо сформулировать и описать в программе, а хакеры будут пытаться реализовать их применительно к исследуемым активам компании. Рисунок 1. Описание публичной программы баг-баунти на платформе Исследователи безопасности знакомятся с описанием, охватом работ, вознаграждениями и решают, интересно ли им поучаствовать. Рисунок 2. Отчёт исследователя в случае обнаружения уязвимости В случае обнаружения уязвимости исследователь безопасности пишет отчёт.Обработка отчётовВ этой части интерфейса компания может принимать и изучать присланные отчёты, а также добавлять ссылки на внутренние системы и референсы, которые будут видны только коллегам. Полям можно присваивать идентификатор CVE и уровень критической значимости, а также выбирать статус отчёта для удобства дальнейшей работы. Здесь же можно начать чат с исследователем безопасности (он получит уведомление о сообщении на электронную почту). Рисунок 3. Административная панель платформы Новый отчёт отражается в списке сданных. Рисунок 4. Административная панель платформы Здесь представители компании могут изучить подробности, присвоить CVE, уровень опасности и отметить статус работ по отчёту. Рисунок 5. Чат с исследователем в административной панели Также можно вступить в переписку с исследователем. Рисунок 6. История взаимодействия с исследователем История взаимодействия с исследователем сохраняется в кабинете компании. Рисунок 7. Письмо исследователю о принятии отчёта Исследователь получает письмо о том, что отчёт принят.Если найденная уязвимость не входит в описанный охват работ или отчёт признаётся дубликатом, он не оплачивается.Если же отчёт признан валидным и проверка подтверждает наличие уязвимости, он принимается. С этой же страницы можно запустить процесс назначения выплаты (через систему подтверждений от двух ответственных лиц со стороны компании). В этот момент статус отчёта меняется на «Уязвимость принята».Выплата вознаграждения Рисунок 8. Первый этап назначения вознаграждения за найденную уязвимость Рисунок 9. Окно подтверждения выплаты Процесс выплаты вознаграждения запустится после того, как его подтвердит второй представитель компании. Рисунок 10. Процесс выплаты вознаграждения в личном кабинете исследователя Так процесс выплаты вознаграждения отображается в личном кабинете исследователя. Рисунок 11. Письмо о подтверждении вознаграждения Исследователь безопасности узнаёт о награде из письма. Рисунок 12. Отображение переписки по вознаграждению Вся история взаимодействий отражена в кабинете вендора.Важно отметить, что платформа Standoff 365 Bug Bounty не берёт собственной комиссии с выплат и отправляет получателям полную сумму вознаграждений (за удержанием НДФЛ). Возможность получать более крупные выплаты по сравнению с другими агрегаторами привлекает на платформу больше исследователей безопасности.Онлайн-киберполигонКиберполигон Standoff 365 появился как онлайн-версия киберучений Standoff, которые проводятся с 2016 года в формате многодневных офлайн-мероприятий.Пока киберполигон открыт только для атакующих: он позволяет исследовать копии ИТ-систем реальных компаний из различных отраслей экономики, искать уязвимости и пути реализации критических событий безостановочно в режиме 24×7×365.В 2023 году доступ к киберполигону получат и специалисты защиты. Они смогут изучать и расследовать инциденты, отслеживать перемещения атакующих внутри инфраструктуры, изучать техники и тактики злоумышленников и нарабатывать практический опыт предотвращения недопустимых событий.Для кого предназначен онлайн-киберполигонНаибольшую пользу из присутствия на онлайн-киберполигоне извлекают компании, которые занимаются редтимингом и пентестами наряду с отдельными исследователями безопасности.Особенности онлайн-киберполигонаДоступ к онлайн-киберполигону открыт постоянно из любой точки мира.Полная свобода действий: нет сценариев и скриптованных атак.Можно изучить на практике технологические и бизнес-процессы копий реальных объектов и отраслей экономики.Полигон непрерывно расширяется и прирастает новыми объектами из различных сегментов экономики.Ради удобства исследователей функциональность киберполигона регулярно совершенствуется. Так, недавно появились автоматическое принятие отчётов, автоматизированный доступ к сегментам и системам, а также возможность вернуть системы к исходному состоянию после их взлома другими участниками. Рисунок 13. Страница с инструментами для работы на киберполигоне Исследователь безопасности получает полезные инструменты.Процесс работы на онлайн-киберполигонеСейчас на Standoff 365 исследователи могут тестировать защищённость трёх сегментов: корпоративного, энергетического и банковского. Корпоративный сегмент состоит из почтового сервера, веб-приложений, ERP- и CRM-систем; энергетический — из электросети и электроустановок. В банковском осуществляются финансовые операции между предприятиями и гражданами, межбанковские переводы, работает система ДБО.Атакующие должны находить уязвимости, реализовывать недопустимые события, выполняя задания, и получать за это баллы.За атаку на адреса, которые не входят в предоставленный список, организаторы могут отстранить участника от киберучений. Кроме того, участникам запрещается проводить DoS- и DDoS-атаки на службы, сервисы и приложения инфраструктуры полигона. Рисунок 14. Описание сегмента киберполигона Правила для атакующихИсследователи получают баллы следующими способами:За реализацию недопустимых событий. Задания могут быть связаны, например, с получением конфиденциальной информации, отключением одного или нескольких сервисов или несанкционированным изменением информации на тестовом сайте.За нахождение уязвимостей. Участник может представить отчёт об изъянах, найденных в информационной инфраструктуре.Рисунок 15. Страница с рейтингом участников Исследователь видит своё место в рейтинге. Рисунок 16. Общая статистика достижений исследователя безопасности на платформе Баллы за выполнение заданий начисляются автоматически. На основе полученных баллов формируется рейтинг участников; самые активные в дальнейшем будут получать приглашения в закрытые программы и на профильные мероприятия (например, на встречи Standoff Talks в качестве экспертов). Организаторы вправе дисквалифицировать участника, если он пытается выдать отчёт другого исследователя за свой.Недопустимые событияВ качестве заданий используются приближенные к реальности ситуации. Задание дано в карточке уязвимости или недопустимого события, там же указана стоимость задания в баллах. Рисунок 17. Описание недопустимых событий и хода действий Недопустимые события и ход действий уже описаны; осталось реализовать их.Чтобы заработать баллы за реализацию недопустимого события, нужно сдать отчёт с верным ответом на задание. Ответ должен содержать набор символов (флаг), который участнику необходимо найти в анализируемой информационной системе. Флаг — это подтверждение того, что задание выполнено. Рисунок 18. Отчёт о недопустимом событии Исследователь смог реализовать недопустимое событие и сдаёт флаг.Правильность флага проверяется автоматически при попытке сдать отчёт. Если в отчёте будет указан неверный флаг, то на экране появится соответствующее сообщение и сдать отчёт не получится. После нахождения другого флага участник может попробовать сдать отчёт повторно.Поиск уязвимостейЧтобы заработать баллы за найденную уязвимость, нужно сдать отчёт с указанием типа уязвимости, системы, в которой она была найдена, и верным ответом на задание. Здесь ответ участника также должен содержать флаг, без которого задание не будет считаться выполненным.Принимаются отчёты только об определённых типах уязвимостей: удалённом выполнении кода (RCE), внедрении SQL-кода (SQLi), обходе каталога (Path Traversal), подмене запросов на стороне сервера (SSRF).Открытые киберучения StandoffОткрытые киберучения Standoff проводятся дважды в год и могут быть приурочены к любой конференции, как это было на Positive Hack Days или HITB в Абу-Даби.Мероприятие Standoff — культовое в индустрии кибербезопасности. Благодаря охвату в федеральных, отраслевых и региональных СМИ и интернет-каналах (более 30 млн совокупно на ноябрь 2021 года, когда состоялись предыдущие самостоятельные открытые киберучения) о нём регулярно узнаёт широкий круг специалистов в сферах ИТ и ИБ.Для кого предназначены киберучения StandoffПомимо очевидных преимуществ киберучений участие в Standoff даёт компаниям возможность публично заявить о своём бизнесе как о современном, эффективном и безопасном.Варианты участия в киберучениях StandoffПринять участие в открытых киберучениях Standoff можно на стороне защитников или атакующих.Команды защитников тренируются своевременно выявлять инциденты и обеспечивать доступность сервисов собственной ИТ-инфраструктуры. Они в настоящем времени наблюдают атаки на свои системы и учатся понимать ход мысли атакующих, а также обучаются эффективному взаимодействию внутри команды: быстрому детектированию и расследованию инцидентов.Основная задача атакующих — реализация недопустимых событий, предусмотренных для каждой компании. В ходе мероприятия они практикуются в исследовании ИТ-систем и поиске уязвимостей, знакомятся с реальным оборудованием и ПО, которое используют специалисты SOC, а также учатся общаться на языке бизнеса — оформлять и сдавать отчёты.ВыводыКибератаки на компании, как правило, случаются неожиданно. Последствиями могут стать утечка персональных данных, сбой оборудования или другие события, влекущие за собой финансовый и репутационный ущерб. Гарантированно избежать подобных ситуаций могут только киберустойчивые компании.Киберустойчивость — это готовность столкнуться с компьютерными атаками, умение грамотно реагировать на такие атаки и восстанавливать ИТ-инфраструктуру компании. Эти навыки необходимы для стабильной работы и развития бизнеса. Чтобы построить киберустойчивую организацию, нужно хорошо понимать, как работают хакеры.Вот почему киберучения, проводимые с участием хакеров, а также программы баг-баунти — обязательные элементы для исследования информационной безопасности компаний. Платформа Standoff 365 объединила в себе различные инструменты, чтобы компании любого уровня могли плодотворно сотрудничать с исследователями безопасности и развивать киберустойчивый бизнес в полной цифровых вызовов среде.Читать далее
    • demkd
      проверил, работает, но стоит помнить что кэш используется только при массовой проверке и только для файлов не получивших статус проверенного ранее.
      для проверки отдельного файла кэш не используется по очевидным причинам.
    • PR55.RP55
      Определять время применения GPO Определять время применения GPO - с привязкой к событию. ( например запуск... скрипта ) Писать в Инфо.
    • PR55.RP55
      Настройка vtCacheDays= не работает. ( залез, а в папке сотни файлов  ) пробовал менять настройки\даты - не работает.  
×