首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何保护我的C#应用程序免受内存转储攻击?

如何保护我的C#应用程序免受内存转储攻击?
EN

Stack Overflow用户
提问于 2020-08-14 17:05:46
回答 1查看 952关注 0票数 0

释放内存允许攻击者读取整个操作系统的RAM,或者更具体地说,读取单个进程的RAM。攻击者可以保存转储并“脱机”分析它,以便搜索敏感数据。

我正在努力了解这到底是如何工作的,以及是否有办法防止它。

现在,让我们假设我们有一个应用程序,它使用AES保护敏感数据。这是通过在变量中设置键来实现的。

代码语言:javascript
复制
public static AesCryptoServiceProvider AESFunction()
    {
        AesCryptoServiceProvider aes = new AesCryptoServiceProvider();
        try
        {
            aes.GenerateIV;
            aes.GenerateKey; //key is stored in aes.Key variable in the AesCryptoServiceProvider class
            aes.Mode = CipherMode.CBC;
            aes.Padding = PaddingMode.PKCS7;
            return aes;
        }
        catch (Exception e)
        {
            throw;
        }
    }

如果我们在Visual中调试aes对象数据结构,我们可以看到表示键的字节数组。如果我们在使用它之后处理掉它,就不再是这样了。

问题是:内存转储攻击是否能够读取此值,尽管在使用后将其处理掉?如果是,是否有办法防止这种情况发生?

EN

回答 1

Stack Overflow用户

发布于 2020-08-14 18:01:16

在主流设备上,简单的回答是“不”。如果有人有管理或物理访问的方块,他们可以抓取整个机器的内存-作为一个进程转储,或操作系统转储,并分析它在他们的空闲时间。除了阻止访问发生之外,没有什么可以阻止这种情况发生。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63417143

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档