Можете ли вы скопировать содержимое оперативной памяти как есть в файловую систему Windows

1278
Nicholas Summers

Мой вопрос: возможно ли скопировать содержимое оперативной памяти в файловую систему? (Windows)

Кроме того, возможно ли скопировать содержимое оперативной памяти для определенного процесса?

Причина:

Это в значительной степени связано с CryptoLocker (а также с аналогичными вредоносными программами) и позволяет быстро восстанавливать данные без необходимости платить за закрытый ключ, который он использует.

Хотя CryptoLocker не хранит закрытый ключ где-либо в файловой системе, ему необходимо хранить его в памяти для постоянного шифрования файлов. Таким образом, учитывая, что вы можете перехватить активный процесс CryptoLocker, узнать длину закрытого ключа и узнать, какое шифрование использовалось, вы теоретически могли бы перебирать каждый бит, пытаясь расшифровать определенный (маленький) файл.

-1
Действительно возможно сбросить все данные в памяти при установке Windows. Конечно, это будет не очень полезно, так как вам нужно будет знать точный начальный и конечный адрес, и вы не сможете это определить. Конечно, сам ключ может показаться случайным, поэтому вероятность того, что вы его действительно найдете, настолько мала, что даже не может быть выражена словами. Есть лучшие способы избежать CryptoLocker, способы, которые действительно имеют шанс, предотвратить инфекцию, вместо того, чтобы инфекция действительно произошла Ramhound 7 лет назад 1
Возможный дубликат [Как я могу сбросить память процесса в Windows 7?] (Http://superuser.com/questions/133938/how-can-i-dump-the-memory-of-a-process-in -windows-7), также см. [Как создать дамп памяти зависания или сбоя моего компьютера?] (http://superuser.com/questions/224496/how-do-i-create-a-memory-dump -of-мой компьютер заморозки или краш) Ƭᴇcʜιᴇ007 7 лет назад 4
Это возможно, так как именно это делает Hibernation. Keltari 7 лет назад 0
Почему эта идея нереальна. Все, что потребуется, - это операция сдвига в CryptoLocker, чтобы сделать дамп памяти бесполезным. Другими словами, было бы тривиально защитить личный ключ от такого базового действия. Там также весь факт, что в памяти будет открытый ключ, а не закрытый ключ ..... * Закрытый ключ надежно хранится на сервере преступника, загружается только при оплате. * Если вы забыли про асинхронное шифрование работает -> Private = Decrypt; Public = Encrypt. Ramhound 7 лет назад 4
@ Расскажите, что ваши предположения о том, как работают открытые и закрытые ключи, неверны. Открытые ключи - это идентификаторы, которые фактически не используются для шифрования. Для двустороннего шифрования требуется один ключ для шифрования и дешифрования информации. Публичные ключи только идентифицируют вас Nicholas Summers 7 лет назад 0
Извините, @NickJ, но только потому, что принято использовать открытый ключ для шифрования сеансового ключа для обмена ключами, а затем использовать * этот * сеансовый ключ для шифрования, не означает, что просто или даже нецелесообразно просто использовать открытый ключ в первую очередь для шифрования. Совершенно разумно выполнить одноразовую генерацию открытого / секретного ключа, отослать закрытый ключ (уничтожив все свидетельства этого), а затем зашифровать все файлы с использованием открытого ключа. Открытый / закрытый ключи полагаются на асимметричное шифрование, при котором только открытый ключ может расшифровать содержимое личного сообщения и наоборот. Mokubai 7 лет назад 0
По сути, открытый ключ * не может * расшифровать что-то, что было зашифровано с использованием открытого ключа, и закрытый ключ не может расшифровать что-то, зашифрованное с помощью закрытого ключа, для дешифрования необходимы обе части ключа, и криптолазер будет работать без ты платишь. http://searchsecurity.techtarget.com/definition/asymmetric-cryptography https://en.wikipedia.org/wiki/Public-key_cryptography Mokubai 7 лет назад 0
@Mokubai, это правда, однако, если разработчик хранит полученный ключ для шифрования в переменной, тогда эта переменная будет храниться в виде простого текста в памяти Nicholas Summers 7 лет назад 0
Но у вас есть только половина ключа, необходимая для * шифрования *. У вас нет той части ключа, которая требуется для расшифровки. Программное обеспечение не должно заботиться о сохранении секретного ключа, поэтому единственное место, где он будет храниться, будет находиться на удаленном сервере для использования после оплаты. Для процесса шифрования * не нужна * вторая половина * ключа вообще. Прочитайте ссылку, которую я дал на криптографию с открытым ключом. Mokubai 7 лет назад 0

1 ответ на вопрос

2
Mokubai

Dumping the contents of memory will not help you here if the software is even vaguely smart about the proper use of public key cryptography. If you need to forcibly dump your memory though, there's a handy answer on this question: How do I create a memory dump of my computer freeze or crash?

Public key cryptography makes use of asymmetric encryption, where one half of the key is used to encrypt a message and you must use the other half of the key to decrypt it. You cannot use the same half of the key to decrypt a message (or file) that was encrypted using that half of the key.

You can use a public key to decrypt a message made using the private key, or use the private key to decrypt a message created using the public key, but not private-private or public-public.

From the Cryptolocker Wikipedia page:

When first run, the payload installs itself in the user profile folder, and adds a key to the registry that causes it to run on startup. It then attempts to contact one of several designated command and control servers; once connected, the server generates a 2048-bit RSA key pair, and sends the public key back to the infected computer...

The payload then encrypts files across local hard drives and mapped network drives with the public key.

Because you only have one half of the key all that you can do is encrypt messages (files). You need the other part of the key to do the needful and recover your files.

In this case dumping the contents of memory will not be useful to you, because all it contains is the way to continue making things worse.

Your computer never holds both parts of the key, except after you have been given it.


To further elaborate...

One problem with public key cryptography is that due to the larger key sizes using it is computationally expensive compared to symmetric key (reversible) encryption. For this reason many systems use public key cryptography to securely exchange a symmetric key which is then used for further communication with lower overheads.

In this case though the use of the simpler symmetric key is unnecessary and would work against the malware author. If they used a symmetric key then you could, as you surmise, simply force all the memory to disk and start rubbing blocks of memory at your encrypted files until they open up. This is still going to take a long time though and I suspect would be infeasible given the amount of memory to check for keys. By eschewing a symmetric key stage they increase their impact at the cost of higher computational requirements.

Once the malware has started then you've already lost at least some files, and by being selective about the file types and file sizes they target they can do maximum damage with resources available. Even lower power modern CPUs could probably get a good amount encrypted before you'd notice, even with the more expensive asymmetric encryption.

By using public key cryptography they are ensuring that you need them to give you the unlocking key. Without them giving it to you there is nothing you can do.

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