News for hackers. Stuff that matters.
Re:Antikernel: A Decentralized Secure Operating System Archi... by mikewarot on Friday June 18, 2021 @11:51AM (#27551633)
It is an interesting idea, but I think it would be easy to simply spam/scan the handle space to elevate privilege. I couldn't find any mention of how handles/capabilities are protected from impersonation.

[Update] clearly it wasn't as simple as I thought, thanks!

Re:Antikernel: A Decentralized Secure Operating System Archi... by azonenberg on Friday June 18, 2021 @12:34PM (#27552125)
NoC addresses are implicitly part of the handle. So for example, a pointer isn't just physical address 0x41414141. The full capability is "physical address 0x41414141 being accessed by hardware thread 3 of CPU 0x8000" because when you dereference that pointer, it creates a DMA packet from the CPU's L1 cache with source address 0x8003 addressed to the NoC address of the RAM controller.

If malicious code running in thread context 4 tries to reach the same physical address, the packet will come from 0x8004. Since the RAM controller knows that the page starting at 0x41414000 is owned by thread 0x8003, the request is denied.

The source address is added by the CPU silicon and isn't under software control, so it can't be overwritten or spoofed. If the attacker were somehow able to change the "current thread ID" registers, all register file and cache accesses would be directed to that of the new thread, and all memory of their evil self would be gone. Thus, all they did was trigger a context switch.

Re:Antikernel: A Decentralized Secure Operating System Archi... by akkartik on Friday June 18, 2021 @04:00PM (#27554325)
This is awesome.
Re:Antikernel: A Decentralized Secure Operating System Archi... by gamacodre on Friday June 18, 2021 @12:16PM (#27551895)
In the doc, they claim:

> Antikernel is designed to ensure that following are not possible given that an attacker has gained unprivileged code execution within the context of a user-space application or service: ... or (iv) gain access to handles belonging to another process by any means.

Re:Antikernel: A Decentralized Secure Operating System Archi... by mikewarot on Friday June 18, 2021 @12:33PM (#27552112)
There are only 16 address bits, that's a very small space to search.
Re:Antikernel: A Decentralized Secure Operating System Archi... by azonenberg on Friday June 18, 2021 @12:35PM (#27552143)
Which is why the interconnect fabric adds the source address based on who made the request.

Even hardware IP blocks don't have the ability to send packets from arbitrary addresses. You can send to anywhere you want, but you can't lie about who made the request. Which allows access control to be enforced at the receiving end.

That "something you are" as well as "something you know" factor prevents any capability from being spoofed, since the identity of the device initiating the request is part of the capability.

Re:Antikernel: A Decentralized Secure Operating System Archi... by bruiseralmighty on Friday June 18, 2021 @01:58PM (#27553022)
I guess I am not understanding something still about this spoof protection.

What prevents me, an attacker, from making (or simulating) a bunch of hardware with different identities? Perhaps by setting up my hardware to run through multiple different 'self' identities and then trying to talk to other hardware with each disguise.

If the address space is small and cheap, it seems that I could quickly map any decentralized hardware at low cost.

Re:Antikernel: A Decentralized Secure Operating System Archi... by azonenberg on Friday June 18, 2021 @02:08PM (#27553139)
This is a SoC, addresses of on chip devices are fixed when the silicon is made.

The source address is added to a packet by the on-chip router as it's received. You can send anything you want into a port, but you can't make it seem like it came from a different port without modifying the router.

This model allows you to integrate IP cores from semi-untrusted third parties, or run untrusted code on a CPU, without allowing impersonation.

Let me put it another way: I ran a SAT solver on the compiled gate-level netlist of the router and proved that it can't ever emit a packet with a source address other than the hard-wired address of the source port. Any packet coming from a peripheral into port X will have port X's address on it when it leaves the router, end of story.