From: "Taylor Beebe" <t@taylorbeebe.com>
To: "Yao, Jiewen" <jiewen.yao@intel.com>,
"Wang, Jian J" <jian.j.wang@intel.com>,
"devel@edk2.groups.io" <devel@edk2.groups.io>
Cc: "spbrogan@outlook.com" <spbrogan@outlook.com>,
"Dong, Eric" <eric.dong@intel.com>, "Ni, Ray" <ray.ni@intel.com>,
"Kumar, Rahul1" <rahul1.kumar@intel.com>,
"mikuback@linux.microsoft.com" <mikuback@linux.microsoft.com>,
"Wu, Hao A" <hao.a.wu@intel.com>,
"Bi, Dandan" <dandan.bi@intel.com>,
"gaoliming@byosoft.com.cn" <gaoliming@byosoft.com.cn>,
"Dong, Guo" <guo.dong@intel.com>,
"Ma, Maurice" <maurice.ma@intel.com>,
"You, Benjamin" <benjamin.you@intel.com>
Subject: Re: [RFC] MemoryProtectionLib for Dynamic Memory Guard Settings
Date: Thu, 29 Jul 2021 19:06:58 -0700 [thread overview]
Message-ID: <a76c4fd2-35f4-7a7a-6f1d-3f4ae37763c3@taylorbeebe.com> (raw)
In-Reply-To: <PH0PR11MB4885EB204D14C9544E80C37F8CEC9@PH0PR11MB4885.namprd11.prod.outlook.com>
Of course - here are a couple of rough drafts:
Option 1: https://github.com/TaylorBeebe/edk2/tree/memory_protection_lib_2
Option 2: https://github.com/TaylorBeebe/edk2/tree/memory_protection_lib
On 7/29/2021 6:57 PM, Yao, Jiewen wrote:
> Hi
> Sorry, I am not able to follow the discussion.
>
> Is there any sample or POC code to show the concept?
>
>> -----Original Message-----
>> From: Taylor Beebe <t@taylorbeebe.com>
>> Sent: Friday, July 30, 2021 9:55 AM
>> To: Wang, Jian J <jian.j.wang@intel.com>; devel@edk2.groups.io
>> Cc: spbrogan@outlook.com; Dong, Eric <eric.dong@intel.com>; Ni, Ray
>> <ray.ni@intel.com>; Kumar, Rahul1 <rahul1.kumar@intel.com>;
>> mikuback@linux.microsoft.com; Wu, Hao A <hao.a.wu@intel.com>; Bi, Dandan
>> <dandan.bi@intel.com>; gaoliming@byosoft.com.cn; Dong, Guo
>> <guo.dong@intel.com>; Ma, Maurice <maurice.ma@intel.com>; You, Benjamin
>> <benjamin.you@intel.com>; Yao, Jiewen <jiewen.yao@intel.com>
>> Subject: Re: [RFC] MemoryProtectionLib for Dynamic Memory Guard Settings
>>
>> Thanks for your feedback, Jian.
>>
>> In option 2, a most basic implementation would returning the current
>> FixedAtBuild PCDs assuming they are kept. If they aren't, the library
>> implementer could simply hard-code the return value for each memory
>> protection setting.
>>
>> In option 1, the HOB would be published in pre-mem and I'm not an expert
>> on exploiting the pre-mem environment. Jiewen may have more to say on this.
>>
>> -Taylor
>>
>> On 7/28/2021 7:18 PM, Wang, Jian J wrote:
>>> Thanks for the RFC. I'm not object to this idea. The only concern from me
>>> is the potential security holes introduced by the changes. According to your
>>> description, it allows 3rd party software to violate memory protection policy.
>>> I'd like to see more explanations on how to avoid it to be exploited.
>>>
>>> +Jiewen, what's current process to evaluate the security threat?
>>>
>>> Regards,
>>> Jian
>>>
>>>> -----Original Message-----
>>>> From: Taylor Beebe <t@taylorbeebe.com>
>>>> Sent: Friday, July 23, 2021 8:33 AM
>>>> To: devel@edk2.groups.io
>>>> Cc: spbrogan@outlook.com; Dong, Eric <eric.dong@intel.com>; Ni, Ray
>>>> <ray.ni@intel.com>; Kumar, Rahul1 <Rahul1.Kumar@intel.com>;
>>>> mikuback@linux.microsoft.com; Wang, Jian J <jian.j.wang@intel.com>; Wu,
>>>> Hao A <hao.a.wu@intel.com>; Bi, Dandan <dandan.bi@intel.com>;
>>>> gaoliming@byosoft.com.cn; Dong, Guo <guo.dong@intel.com>; Ma,
>> Maurice
>>>> <maurice.ma@intel.com>; You, Benjamin <benjamin.you@intel.com>
>>>> Subject: [RFC] MemoryProtectionLib for Dynamic Memory Guard Settings
>>>>
>>>> Current memory protection settings rely on FixedAtBuild PCD values
>>>> (minus PcdSetNxForStack). Because of this, the memory protection
>>>> configuration interface is fixed in nature. Cases arise in which memory
>>>> protections might need to be adjusted between boots (if platform design
>>>> allows) to avoid disabling a system. For example, platforms might choose
>>>> to allow the user to control their protection policies such as allow
>>>> execution of critical 3rd party software that might violate memory
>>>> protections.
>>>>
>>>> This RFC seeks your feedback regarding introducing an interface that
>>>> allows dynamic configuration of memory protection settings.
>>>>
>>>> I would like to propose two options:
>>>> 1. Describing the memory protection setting configuration in a HOB that
>>>> is produced by the platform.
>>>> 2. Introducing a library class (e.g. MemoryProtectionLib) that allows
>>>> abstraction of the memory protection setting configuration data source.
>>>>
>>>> In addition, I would like to know if the memory protection FixedAtBuild
>>>> PCDs currently in MdeModulePkg can be removed so we can move the
>>>> configuration interface entirely to an option above.
>>>>
>>>> In any case, I would like the settings to be visible to environments
>>>> such as Standalone MM where dynamic PCDs are not accessible.
>>>>
>>>> I am seeking your feedback on this proposal in preparation for sending
>>>> an edk2 patch series.
>>>>
>>>> --
>>>> Taylor Beebe
>>>> Software Engineer @ Microsoft
>>
>> --
>> Taylor Beebe
>> Software Engineer @ Microsoft
--
Taylor Beebe
Software Engineer @ Microsoft
next prev parent reply other threads:[~2021-07-30 2:07 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-07-23 0:32 [RFC] MemoryProtectionLib for Dynamic Memory Guard Settings t
2021-07-29 2:18 ` Wang, Jian J
2021-07-30 1:54 ` Taylor Beebe
2021-07-30 1:57 ` Yao, Jiewen
2021-07-30 2:06 ` Taylor Beebe [this message]
2021-07-30 2:34 ` Yao, Jiewen
2021-07-30 18:42 ` [edk2-devel] " Sean
2021-07-30 22:25 ` Taylor Beebe
2021-07-31 1:38 ` Yao, Jiewen
2021-08-02 2:35 ` Ni, Ray
2021-08-02 19:56 ` Andrew Fish
2021-08-06 22:11 ` Andrew Fish
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=a76c4fd2-35f4-7a7a-6f1d-3f4ae37763c3@taylorbeebe.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox