Защита данных в .Net - PullRequest
       22

Защита данных в .Net

0 голосов
/ 31 августа 2018

Я получаю этот вопрос от наших клиентов, где они говорят, что если мы сделаем Копирование-Вставить или сохраним данные в переменной, то есть вероятность, что данные могут быть взломаны, когда хакер сможет получить данные из ОЗУ и использовать их раньше. GC располагает этим.

Как правило, мы не располагаем строковые объекты там, где они хранятся в памяти кучи и будут собираться GC при очистке памяти.

Это то, что я получаю о GC

Объем памяти, используемой выделенными объектами в управляемой куче, превышает допустимый порог. Этот порог постоянно корректируется по мере выполнения процесса. Метод GC.Collect вызывается. В почти во всех случаях вам не нужно вызывать этот метод, потому что сборщик мусора работает непрерывно

Возможно ли, чтобы любой хакер мог войти в ОЗУ и прочитать данные из нее до того, как GC ее сбросит? Если да, то как мы можем преодолеть это?

Ответы [ 2 ]

0 голосов
/ 31 августа 2018

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

При этом многие злоумышленники будут атаковать с помощью эксплойтов, которые обеспечивают несовершенный доступ к подразделам системной памяти, а это означает, что использование SecureString все еще имеет практическую ценность.

Я рекомендую прочитать эту ветку для обсуждения приложений и ограничений: Когда мне понадобится SecureString в .NET?

0 голосов
/ 31 августа 2018

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

Существуют технологии (например, Intel SGX ), которые пытаются решить эту проблему, но в ней также есть свои эксплойты. По сути, ни одно программное решение не может остановить плохих людей, когда они смогут прочитать вашу память.

...