spw

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

В этой теме 7 сообщений

Доброй ночи.

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

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

  • в январе-феврале сдохли два винчестера у моего друга (с разницей в 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

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


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

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

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

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


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

Umnik

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

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

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


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

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

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

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

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


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

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

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


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

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

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

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


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

OFF

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

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

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

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

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

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


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

Создайте учетную запись или войдите, чтобы комментировать

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!


Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.


Войти с помощью Facebook Войти Войти с помощью Twitter
Anti-Malware.ru Вконтакте   Anti-Malware.ru в Facebook   Anti-Malware.ru в Twitter   Anti-Malware.ru в LinkedIn   RSS
  • Сообщения

    • sharyga777
    • AM_Bot
      Генеральный директор компании «Аванпост» Андрей Конусов поделился с Anti-Malware.ru своим видением ситуации на российском рынке систем IDM. О том, что нужно российским заказчикам IDM , по каким критериям сегодня они выбирают такие системы, каковы сроки окупаемости внедрения — об этом и многом другом читайте в интервью. Читать далее
    • AM_Bot
      Тематика платформ реагирования на инциденты (Incident Response Platforms, или IRP) набрала популярность в последние несколько лет — что подтверждает экспертная оценка. В этой статье мы определим, что такое IRP, и посмотрим, какое предложение IRP существует на рынке на начале 2018 года.     ВведениеОпределение предметной области и рынка платформ реагирования на инцидентыРоссийские поставщики платформ реагирования на инциденты3.1. Jet Signal3.2. R-Vision Incident Response Platform3.3. Security Vision Incident Response PlatformЗарубежные поставщики платформ реагирования на инциденты4.1. CyberBit4.2. IBMOpen-Source-платформы реагирования на инциденты5.1. Fast Incident Response (FIR)5.2. The HiveВыводы ВведениеРост популярности IRP вызван как видимыми бизнесу атаками (WannaCry, Petya, большие DDoS-атаки на российские банковские и государственные структуры), так и постепенным уменьшением объема доступной на рынке труда экспертизе по ИБ. Демографический кризис в сочетании с «клиповым» мышлением приводят к обмелению ранее обманчиво кажущегося безбрежным кадрового моря ИБ-талантов, и заставляет организации искать пути повышения КПД имеющегося персонала, а именно через разработку, внедрение и автоматизацию процессов ИБ, управления инцидентами и реагирования на инциденты, в частности.Особую актуальность тематика автоматизации реагирования приобрела из-за точности и скорости процедур и процессов реагирования. Ведь именно в этот момент счет идет на секунды — организации стремятся снизить время реагирования (а значит, понесенный ущерб) до минимального значения. Определение предметной области и рынка платформ реагирования на инцидентыОпределения IRP в зависимости от источника существенно различаются, но в целом IRP — это класс технологий, направленных на автоматизацию и повышение эффективности процессов управления, реагирования и расследования инцидентов ИБ. Иногда поставщики называют IRP технологической основой для SOC — и с точки зрения рыночных практик с ними трудно спорить, ведь историческая основа для SOC SIEM потихоньку сходит с рынка, а понимание центральной роли log management (и концепции data lake в целом) на рынок еще не проникло в полной мере.Определяющими характеристиками IRP являются наличие функций по автоматизации жизненного цикла управления инцидентами (Incidents management & investigations) и определенная база знаний (Security Knowledge Base), ценятся также функции проведения киберучений (Wargames), автоматического реагирования на инциденты определенного типа (Active Response) и интеграции с различными источниками данных об угрозах (например, платформами управления информацией об угрозах — Threat Intelligence Management Platforms),  что позволяет определить IRP как пересечение четырех множеств на рисунке 2. Рисунок 1. Модель IRP аналитического центра Anti-Malware.ru версии 1.0  Каждое из направлений  IRP имеет свою специфику, например, автоматизация процессов ИБ (incident workflow management & orchestration) предназначена и имеет функции для поддержки достижения трех целей:Контроль качества работы аналитиков в части классификации инцидентов и определениях их статуса (false positive) — архив инцидентов и кастомизируемые карточки инцидентов.Контроль оперативности работы аналитиков — контроль выполнения SLA.Повышение полезной нагрузки на аналитика — автоматическое распределение и назначение инцидентов.На рисунке 2 приведен пример функциональности IRP, что поддерживает процессы реагирования на инциденты ИБ: Рисунок 2. Пример функциональности IRP, поддерживающей процессы реагирования на инциденты ИБ  Рынок IRP включает в себя российских и зарубежных поставщиков решений, а также возможно использовать различные Open-Source-решения. Российские поставщики платформ реагирования на инцидентыРынок IRP в России представлен в первую очередь российскими поставщиками. Особой специфики в российском рынке IRP автору не удалось найти, но локальные игроки традиционно ведут более гибкие продуктовые и ценовые политики.Jet SignalОдним из наиболее молодых игроков на рынке IRP стала компания «Инфосистемы Джет». Компания давно известна своей способностью создавать продукты ИБ — на ее счету Dozor Jet, Jet InView, «Тропа» и много других, и несмотря на выделение вендорского ИБ-бизнеса в компанию Solar Security в 2015, «Джет» продолжает создавать новые продукты ИБ.Вендор позиционирует Jet Signal как систему класса IRP — технологическую платформу для создания SOC, основные задачи которой — управление инцидентами ИБ на всех этапах жизненного цикла: сбор событий ИБ от подсистем ИБ, SIEM, неавтоматизированных источников, управление планами реагирования, автоматизация расследования, организация работы дежурных смен, ведение базы знаний, систематизация данных Threat Intelligence и т. д.Достоинства:Архитектура — как новое на рынке решение, система не имеет legacy-кода.Киберучения — система позволяет проводить киберучения для подразделения мониторинга ИБ (нет отдельного модуля но можно создать синтетический инцидент).Сертификация — система имеет сертификат соответствия требованиям безопасности информации по уровню контроля 2 НДВ и РДВ системы сертификации Министерства обороны и поддерживает комплекс средств защиты Astra Linux. Рисунки 3, 4, 5. Возможности модулей Jet Signal и интерфейс Jet Signal  R-Vision Incident Response PlatformR-Vision IRP стал результатом развития R-Vision GRC в сторону автоматизации процессов мониторинга и реагирования на инциденты ИБ, поэтому в решении традиционно сильны компоненты работы с активами, а за счет длинного присутствия на рынке R-Vision GRC многие функции решения достигли промышленной зрелости и решение разворачивается из коробки — вендор готов проводить пилотные проекты для многих клиентов.Однако стоит отметить, что любая кастомизация предполагает затраты с каждой из сторон, поэтому запросы на добавление функциональности решения определенно будут учтены, но могут быть не приняты вендором без дополнительной оплаты.Достоинства:Опыт проектов в России — источники в индустрии и публичные выступления (например, кейс МТС-банка на Сколково CyberDay 2017) свидетельствуют о значительном опыте вендора по автоматизации процессов реагирования на инциденты ИБ в России в организациях разного масштаба — например, банки топ-50, банки топ-10, государственные структуры.Интеграция — R-Vision инвестировал миллионы в интеграцию с самыми разными средствами защиты информации, некоторые консоли управления от вендоров интегрируемых систем отображают меньше информации, чем R-Vision.Наличие готовых скриптов реагирования (cmd, sh script, Power Shell) и возможность добавления собственных (cmd, sh script, Power Shell , а также в средах python, java и perl).Динамические playbooks. Возможность включения в цепочку действия, результат которого будет зависеть от результата предыдущего.Наличие функциональности по управлению активами и уязвимостями — редкий функциональный блок для классических, прежде всего, западных IRP-решений. Благодаря взаимосвязи указанных блоков с блоком управления реагированием на инциденты значительно повышается эффективность работы аналитиков SOC при расследовании инцидентов, устранении их последствий, установлении причин или оценке ущерба. Рисунки 6, 7, 8, 9. Архитектура и интерфейс R-Vision IRP    Security Vision Incident Response PlatformКомпания Security Vision работала над базовыми функциями IRP, когда аббревиатуры IRP не существовало на российском рынке, одни из первых автоматизировали жизненный цикл управления инцидентами на примере Сбербанка России, где решение находится в промышленной эксплуатации более 3 лет.Для реагирования на инциденты (Active Response) решение использует автоматические планы реагирования и отдельное приложение «Агент реагирования», который является логическим продолжением и развитием собственной системы управления инцидентами ИБ (системы SGRC).  База знаний накапливает знания и позволяет проводить автоматический анализ ранее случившихся инцидентов безопасности и помогает в принятии решений. Функции проведения киберучений (Security Awareness), используется для повышения осведомленности сотрудников компании об информационной безопасности. Агентная и безагентная интеграция с различными источниками данных с поддержкой более 2000 источников (форматы CSV, email, STIX, XML, JSON, и др.) Интеграция для получения фидов на примере IBM X-Force и GIB, GovCERT.Достоинства:Реализация практически любого сценария реагирования на инцидент безопасности, проведение расследования за счет возможности определения цепочки последовательных действий.Развитые средства визуализации и карта инцидентов ИБ (геоинформационная подсистема с проекцией 3D).Полноценный Ticketing workflow (впервые реализован в Сбербанке в 2016 году) с редактором процессов, обеспечивающий работу с любой сущностью «заявки». Имеется автоматическое реагирование в соответствии с runbook/playbook/use case.Высокая надежность, подтвержденная проектами федерального значения (крупнейший SOC в Восточной Европе, SOC госорганов). Наличие агентов для инвентаризации, контроля целостности, доступности и реагирования, что позволяет дополнять функции классической IRP.SIEM-система Security Vision имеет конструктор простых правил корреляции.Наличие функций управления активами, в том числе ИТ-активами.Специализация на кибербезопасности — позволяет предположить более быстрое развитие продвинутой функциональности решений.Ожидается получение сертификата ФСТЭК России. Рисунки 10, 11, 12, 13. Интерфейс Security Vision    Зарубежные поставщики платформ реагирования на инцидентыНесколько лет назад приобрести IRP от зарубежного игрока в России было непросто. Продвигая IRP, еще в 2014 году автор сталкивался как с малым интересом вендоров к России, так и с отсутствием у нас представительств и дистрибуторов. Приходилось выкручиваться с помощью ITSM\BPM-игроков, но с той поры стало легче — на рынок вышло 2 полноценных игрока.При этом до конца неясно, появился ли у зарубежных игроков реальный интерес к рынку — их в стране всего два, в том числе ни одного представительства специализированной (pure play) IRP-компании. Сегмент представлен эксклюзивным дистрибутором CyberBit (IITD Group) и IBM, что ранее приобрела Resilient Systems.CyberBitИзраильская компания CyberBit была основана в 2015 году для защиты корпоративных и критичных (АСУ ТП) инфраструктур от наиболее продвинутых угроз, возможно, ранее являясь внутренним подразделением израильского оборонного концерна Elbit (сейчас его дочерняя компания). Кроме IRP (CyberBit SOC3D) в портфеле решений компании возможно найти EDR, SCADA Security и даже решение класса Cyber Range, что предназначено для имитации корпоративной инфраструктуры при проведении упражнений RedTeam — BlueTeam.Вендор декларирует наличие ключевых для IRP-решения функций автоматического реагирования на инциденты ИБ и управления и контроля обработки инцидентов и тикетов ИБ (подозрений на инциденты), но вынес функциональность киберучений в отдельное решение Cyber Range.Вендор не разглашает своих клиентов, несколько неожиданно комбинируя на своем сайте клиентов с партнерами, поэтому при оценке решения желательно запросить истории успеха.Достоинства:Специализированный портфель решений — вероятна синергия при условии приобретения пакетом.Глобальный опыт — офисы в Израиле, США, Великобритании, Германии и Сингапуре позволяют надеяться, что компания получит доступ к разным проблемам разных клиентов и сможет автоматизировать их решение для будущих клиентов.Новый на российском рынке бренд и молодая компания — позволяет надеяться на ценовую лояльность производителя.Специализация на кибербезопасности — позволяет предположить более быстрое развитие продвинутой функциональности решений. Рисунки 14, 15, 16. Интерфейс IRP-решения компании CyberBit   IBMВ 2016 году известная своим широким портфелем ИБ-решений компания IBM приобрела самого известного IRP-вендора — Resilient Systems. Компания реализует, возможно, наиболее функционально полное на рынке решение, однако рыночные и открытие источники (например, нашумевший тендер в Пенсионном фонде России) свидетельствуют о соответствии цены функциональным возможностям. Видимо, цена не смущает действительно крупные организации — вендор заявляет о присутствии решения в 100 организациях из списка Fortune 500.      Достоинства:Широкий портфель решений — вероятна синергия при условии приобретения пакетом или наличия ранее приобретенных решений IBM.Глобальный опыт — многочисленные офисы IBM по миру позволяют надеяться, что компания получит доступ к разным проблемам разных клиентов и сможет автоматизировать их решение для будущих клиентов.Сильный бренд — «еще никого не уволили за то, что он купил IBM».Функциональное лидерство на российском рынке. Рисунки 17, 18. Схемы работы Resilient Systems компании IBM   Open-Source-платформы реагирования на инцидентыБесплатные решения с открытым исходным кодом (Free Open Source Solutions, FOSS^ или открытые решения) набирают популярность в разных категориях — от операционных систем и виртуализации до прикладных задач безопасности. Ввиду разработки небольшими коллективами энтузиастов FOSS могут развиваться и решать определенные задачи ИБ даже более полно, чем традиционные коммерческие решения от забюрократизированных гигантов — например, тесно интегрируются с TIMP, нативно поддерживают .Fast Incident Response (FIR)В 2014 году CERT Societe Generale (команда быстрого реагирования на инциденты ИБ глобальной банковской группы французского происхождения) выложила в открытый доступ платформу Fast Incident Response для учета и управления инцидентами ИБ.FIR является наиболее функционально простым решением из решений обзора и даже может быть исключен из класса IRP по формальным основаниям. Фактически в решении реализованы лишь процессы управления инцидентами. Однако такой набор функциональности востребован многими организациями среднего размера, которые еще не осознали пользу от развитых процессов и технологий для оптимизации реагирования на инциденты. Вместе с этим в наличии и продвинутая функция — интеграция с TIMP YETI.Открытые IRP-решения несколько концептуально противоречивы — IRP предназначены для повышения эффективности работы аналитиков, однако перед выбором открытого решения стоит определиться, кто из аналитиков (инженеров) будет поддерживать такое решение, неизбежно отвлекаясь тем самым от мониторинга угроз ИБ.Достоинства:Простота — решение быстро разворачивается и обучать его использованию просто.Финансовая гибкость — нет необходимости оплаты лицензий, а также ежегодной поддержки.Технологическая гибкость — открытый код, распространенный язык программирования (Python) и небольшой размер кодовой базы позволяют подправить код самостоятельно при наличии соответствующих компетенций. Рисунки 19, 20, 21. Интерфейс платформы Fast Incident Response     The HiveВ 2016 году CERT Banque de France (команда быстрого реагирования на инциденты ИБ Центрального банка Франции) выложила в открытый доступ платформу The Hive для поддержки расследований инцидентов ИБ.The Hive плотно интегрирована с целым рядом смежных решений для поддержки расследования инцидентов ИБ — платформой по управлению информацией об угрозах MISP, специализированным поисковиком Cortex и агрегатором информации об угрозах Hippocampe.Достоинства:Развитие — решение быстро развивается и обрастает новыми сервисами в рамках единой экосистемы.Расследования — за счет плотной интеграции с техническими средствами расследования The Hive оптимален для Threat Hunting (поиска и расследования сложных угроз).Финансовая гибкость — нет необходимости оплаты лицензий, а также ежегодной поддержки.Интеграция с любым внешним источником (SIEM, IPS, DLP и т. д.) через TheHive4py. Рисунки 22, 23, 24. Платформа The Hive      ВыводыСегодняшний рынок IRP находится еще в своем младенчестве — в России пока лишь десятки клиентов, кому тема интересна и кто готов за нее платить. Однако спрос в основном еще не квалифицирован, а решений мало, поэтому поставщики решений получают премиальную маржу, а развитие функциональности за счет такой маржи идет впечатляющими темпами.Несмотря на молодость рынка на нем уже есть 7 решений с достаточной для выполнения базовых задач функциональностью. Российские поставщики решений обладают уникальными функциями (управление активами и сканирование сети, собственные агенты) либо лучшими функциями на уровне мировых конкурентов (киберучения), зарубежные пока только присматриваются к рынку, а открытые решения угрожают забрать рынок среднего бизнеса у коммерческих — они проще в использовании, разворачиваются быстрее, чем некоторые коммерческие, и не требуют закупки программного обеспечения или обоснования приобретения ПО не из реестра Минкомсвязи.Отдельная тема — контентные базы и референсные библиотеки процессов из коробки. Архитектура и функциональные возможности решений во многом формируются стихийно, и даже мировые лидеры не в состоянии принести клиентам детальный стек проработанных процессов управления инцидентами — процессы «допиливаются» прямо на клиенте. Качественные процессные модели неминуемо станут конкурентным преимуществом для тех игроков, что будут в состоянии их разработать. Коллектив Anti-Malware.ru выражает особую благодарность за помощь в подготовке данного материала коллегам:   Jet SignalАндрей Янкин, заместитель директора Центра ИБ ЗАО «Инфосистемы Джет»R-VisionИгорь Сметанев, коммерческий директор ООО «Р-Вижн»Security VisionРуслан Рахметов, генеральный директор ООО «Интеллектуальная безопасность»Роман Овчинников, инженер ООО «Интеллектуальная безопасность» Читать далее
    • Openair
    • IgorIgorev
      На ставках не пробовал поднимать денег, как то не сильно интересует. Вот игровые автоматы более интересны, сейчас и в онлайн режиме можно поиграть не выходить из дома. Моей маленькой дочурке тоже нравиться нажимать на клавиши, хотя ничего не понимает главное, что сказочные картинки скачут в экране. Играю в основном на автомате Fairy Gate, все что одобрил мой ребенок. Почитать обзор этой игры  можно тут http://casinofreebonuses3.info/slots/fairy-gate .