|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] x86/altp2m: Add a subop for obtaining the mem access of a page
>>> On 04.07.18 at 18:44, <George.Dunlap@xxxxxxxxxx> wrote:
>
>> On Jul 4, 2018, at 4:38 PM, Jan Beulich <JBeulich@xxxxxxxx> wrote:
>>
>>>>> On 04.07.18 at 16:05, <George.Dunlap@xxxxxxxxxx> wrote:
>>>> On Jul 2, 2018, at 7:34 AM, Jan Beulich <JBeulich@xxxxxxxx> wrote:
>>>>>>> On 29.06.18 at 18:39, <rcojocaru@xxxxxxxxxxxxxxx> wrote:
>>>>> On 06/29/2018 06:38 PM, Jan Beulich wrote:
>>>>>>>>> On 28.06.18 at 15:00, <apop@xxxxxxxxxxxxxxx> wrote:
>>>>>>> @@ -4666,6 +4667,23 @@ static int do_altp2m_op(
>>>>>>> }
>>>>>>> break;
>>>>>>>
>>>>>>> + case HVMOP_altp2m_get_mem_access:
>>>>>>> + if ( a.u.mem_access.pad )
>>>>>>> + rc = -EINVAL;
>>>>>>> + else
>>>>>>> + {
>>>>>>> + xenmem_access_t access;
>>>>>>> +
>>>>>>> + rc = p2m_get_mem_access(d, _gfn(a.u.mem_access.gfn),
>>>>>>> &access,
>>>>>>> + a.u.mem_access.view);
>>>>>>> + if ( !rc )
>>>>>>> + {
>>>>>>> + a.u.mem_access.hvmmem_access = access;
>>>>>>> + rc = __copy_to_guest(arg, &a, 1) ? -EFAULT : 0;
>>>>>>
>>>>>> __copy_field_to_guest()? Or wait, no, the function argument is still a
>>>>>> handle of void.
>>>>>>
>>>>>> And then - here we are again: Is it reasonable to permit a domain
>>>>>> inquiring
>>>>>> for itself?
>>>>>
>>>>> A good question. Perhaps the following are decision factors:
>>>>>
>>>>> 1. It is already possible for a domain to set mem_access restrictions
>>>>> (via HVMOP_altp2m_set_mem_access) on itself.
>>>>
>>>> Which, as before, I consider a flaw.
>>>
>>> How many times do we have to go over this? Here is my recollection from
>>> the
>
>>> last time we had a discussion on this topic:
>>>
>>> * The original authors of this code probably thought having guests set
>>> their
>
>>> own memaccess would be a potential use case
>>> * The maintainers and main users of the code (Tamas and Razvan) think it’s
>>> a
>
>>> useful use case
>>> * The MM maintainer (me) and one of the x86 maintainers (Andy) think it’s a
>>> useful use case.
>>>
>>> (Correct me if I’ve misremembered anywhere.)
>>>
>>> Do we need to have a formal vote by the committers for you to accept that
>>> this should be a supported use case, and stop making objections any time
>>> someone wants to improve it?
>>
>> There's no need for a vote, since - as before - I won't object to the
>> addition, but I consider it to widen the badness (once again).
>
> But you did object. This whole thread is you re-objecting to the original
> decision that we’ve discussed twice before. Either the altp2m functionality
> should be exposed to the guest, or it shouldn’t. If we do expose
> functionality to the guest, then the interface exposed should be useful; and
> being able to read what you wrote, rather than keeping a separate copy of it,
> is part of a useful interface.
No, that's not the right way to put it. If this was an addition to the
interface not having the potential to weaken security, I wouldn't have
re-raised the point of there being an original (apparent, i.e. at least to
me) weakness.
> I mean, I understand objecting to the idea of building an extension to your
> house. But what doesn’t make sense to me is, once the extension is built,
> then objecting to the idea of painting it; and then objecting to the idea of
> adding electrical sockets; and then objecting to the idea of adding heat.
> Why not just accept that you have an extra room and make the best of it? I
> understand that you’d prefer extra garden space to the utility room that’s
> there now, but given that you can’t have the garden, why is a utility room
> with no paint and no electricity and no heat better than a utility room with
> all those things?
And this is not a proper analogy either: I'm questioning whether adding
something that increases the risk of the house to crash or burn is a good
idea.
>> In all
>> the "think it's a valid use case" it was never really made clear to me
>> how this "valid" implies "still secure”.
>
> That was never the argument. The argument is that the behavior is off by
> default, and that host administrators should be treated as adults and allowed
> to judge for themselves whether it’s safe to turn it on or not — just like
> nested virt, PCI pass-through, COLO, or the host of other features that
> aren’t security supported.
Even for other security unsupported pieces of code I would always at
least raise concerns if security was further weakened by a change.
> I mean, I’d understand if supporting that use case this meant add tons of
> extra functionality that was likely to be fragile and introduce new bugs; but
> it’s not — all the complexity of memaccess would be there even if we only
> allowed dom0 access to this functionality.
>
> Would you feel better if we had a line covering memaccess in SUPPORT.md?
That would imo make a difference only if altp2m itself was already
security supported. And anyway - why memaccess? The issue is with the
too broad exposure of altp2m ops in general, irrespective of this not
being the default mode.
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |