Announcing KataOS and Sparrow
opensource.googleblog.com
opensource.googleblog.com
>KataOS provides a verifiably-secure platform that protects the user's privacy because it is logically impossible for applications to breach the kernel's hardware security protections and the system components are verifiably secure.
The wording seems quite confident, maybe it could use some additional "at least according to its specification". This approach doesn't protect against hardware bugs and side-channel attacks.
Especially when one thinks of unexpected attacks like Rowhammer, there is probably no way to include them in a formal systems model beforehand.
> and the kernel modifications to seL4 that can reclaim the memory used by the rootserver.
MMMMMMMMMMMkkkkkk. So you then have to ask: were these changes also formally verified? There's a metric ton of kernel changes here: https://github.com/AmbiML/sparrow-kernel/commits/sparrow but I don't see a fork of https://github.com/seL4/l4v anywhere inside AmbiML.
I mean, it does also claim to be "almost entirely written in Rust", which is true if you ignore almost the entire OS part of the OS (the kernel and the minimal seL4 runtime).
I realize the blog post comes out pretty strongly on this topic, and that's my oversight -- I let my aspirations leak out instead of tempering them (this is not your typical PM-driven project) properly.
Please understand that this is an engineer-driven project in Research with a very small team where we're doing our hardest to do the right thing, so please bear with us.
Notice also that they're doing the traditional Google trick of pretending that it respects the user's privacy because it's secure, while ignoring the fact that most of the users privacy will be destroyed by things they designed the operating system to intentionally do in its security model.
To be fair, this is an entirely reasonable threat model for a lot of people. For instance, if you're a reporter in an authoritarian country, Google is almost certainly not colluding with the attackers who are literally trying to kill you, and using a Chromebook and Gmail is probably the best option out there. Your threat model is "Don't die," not "Don't be subject to surveillance capitalism."
But it's also something we should collectively be pushing back on. The motivating example for these products is "intelligent ambient systems," i.e., things like Nest hubs and doorbells that capture audio/video all the time. These products probably shouldn't exist at all, and to the extent they do, they should process data locally and discard it as soon as they can.
I really don't care how much data of mine they have while they limit their evil they use it for to deciding if they should show an ad for baseball or football shirts...
And I trust them not to accidentally leak it far more than I trust my government or any smaller/less techy company.
So now everyone is doing the same thing so called value the 'privacy' (aka only they could collect the data for themselves to do personalized ads). So in the end you pick the one who hoard ur data and show the ads. What's the difference again?
That said, if you live in China, you probably don't want to sync your stuff to iCloud. Not because Apple doesn't want to protect your data, but more because you can't trust anything in any data centers that are physically on Chinese soil.
But let's get real. If you're in mainland China and the authorities decide they need to confiscate your phone, you're already fscked.
That statement is kind of information-free. If China knows they have Apple completely over the barrel, why wouldn't they demand a lot?
But for how they cooperate, Apple's own transparency report shows they give information on Apple customers to Chinese authorities thousands of times per year, and accept the vast majority of requests: https://www.apple.com/legal/transparency/cn.html
Likewise in Russia: https://www.apple.com/legal/transparency/ru.html
Versus Google which has avoided giving information to or censoring search results in both countries and as a result is mostly banned.
https://www.reuters.com/technology/google-is-fined-390-mln-r...
Google's given up on business there but still puts their sites out there (as they should).
Funny how you specifically mention China, as if it worked differently in USA - the country where you can get four years of jail time for talking back to police.
Regardless, I care less about the US government having my info than, say, Russia (especially being part Ukrainian, having Ukrainian friends and family, etc...).
Do you self-host your services on some Linux distro? How many FAANG employees have upload access to that distro or maintain its infrastructure?
(Or maybe you audited everything yourself and you're 100% confident in your audit, somehow, and you've turned off automatic updates. How many FAANG employees are working on fuzzers to automatically find new exploitable security vulnerabilities and scale out those fuzzers on their employers' infrastructure?)
My country's agencies (Canada) have leaked more data than Google, and MS can claim they're secure all they want, I've had accounts on MS services hacked but never Gmail or Google services...
You can set up auto-deletion of data every 3 months.
Google and other US tech companies have no right to be trusted after PRISM. Not to mention the US government's complete abdication of public oversight under the guise of national security, with secret courts, secret rulings, and national security letters compelling silence from these same organizations while complying with whatever demands they make.
1) Tech companies increased their security, but it wasn't enough, and security services still have a feed of nearly all data, through a combination of software/hardware/algorithmic flaws.
2) Tech companies did manage to mostly stem the flow of information into security services. However, security services simply sent secret letters to all the big players demanding an API/backdoor and requiring them not to talk about it.
(or some mix of the two)
If you take security and specifically insider threats seriously, you can't privilege or hide any subsystem, or it becomes a threat of its own, so the same processes that prevent an attacker from creating a shadow-system in your infrastructure also prevent you from doing the same thing.
You've been lucky, then: https://www.gawker.com/5637234/gcreep-google-engineer-stalke...
"""It's unclear how widespread Barksdale's abuses were, but in at least four cases, Barksdale spied on minors' Google accounts without their consent, according to a source close to the incidents. In an incident this[2010] spring involving a 15-year-old boy who he'd befriended, Barksdale tapped into call logs from Google Voice, Google's Internet phone service, after the boy refused to tell him the name of his new girlfriend, according to our source. After accessing the kid's account to retrieve her name and phone number, Barksdale then taunted the boy and threatened to call her. [...]"""
Ie. I want them to commit to "No human who works at Google will ever see your email or photos without you knowing about it". And then splash that statement all over TV ads.
Set up some system so every time an engineer sees user data, the owner of that data is sent a notification (and there are legit reasons for that, like investigating a bug a user has reported). It doesn't need to be for every kind of user data, just the super sensitive ones like the text of emails.
Have we forgotten Google Buzz? Google changed GMail to publicly list the people you email most. In one case, this de-anonymized a woman's blog and enabled her abusive ex-husband to stalk her. https://fugitivus.wordpress.com/2010/02/11/fuck-you-google/
This is IMO the most likely way that "bad stuff" will happen: not maliciously, but through privacy-invading misfeatures connected to pushing people to share more.
Compare with facebook/instagram, where it seems every other week someone messes up the privacy settings and posts something to an audience they didn't intend because the product is deliberately designed to encourage accidental oversharing.
I know a lot of techies opt for prosumer, small business gear for their home networks, but most of those vendors have crap security trackrecords. Ubiquiti, seems to be the sole standout in this space, but I don't trust them any more than google to produce secure hardware.
Everybody has security breaches. I'm not out there counting CVEs, but anecdotally, it seems that Netgear, TP-Link, microtik have seem to have much worse reputations.
I don't pay attention to the market for high end networking (Cisco, Juniper).
So nobody is being tricked. It just too early to say what real products will do.
Of course that leaves the multitude of programmable peripheral devices. But starting with hardware and software that are implemented to be provably secure is a big change. It is table stakes for systems to be vastly harder to penetrate.
We do not have our changes formally verified yet, but that is definitely on our roadmap -- otherwise, what's the point of starting from this set of options? Likewise, this is why we chose Rust -- there are several projects already in progress to produce formal verification tools for Rust, so we can hopefully use those as additional proofs.
Side-channel attacks are out of scope for the security model of both seL4 and our KataOS project, so bear that in mind for sure.
Formally verified applications is such a foreign concept to people that when you say "verified correct" they get skeptical and mistrust the whole concept.
Saying something is "secure" when it has been formally verified will be received with a grain of salt, but it is much easier to say than:
"we wrote a detailed specification that define the whole system via algebra, and then we let a theorem prover run all possible permutations of the specification It has now tested a billion edge-cases and we have reached a state where it no longer finds any deviation from the specification."
At least it is provable better than someone saying "it is secure because we think it is".
@jtgans (or anybody else involved) if you feel comfortable saying, is that something that is being considered/discussed? Google in general (IMHO) has a good track record here with Anroid and Chromebooks (particularly compared to Apple, Amazon, etc). I love that Android phones can be user unlocked and chromebooks have dev mode, but I do worry whether that is just a leftover from an earlier age and whether those sorts of things will soon be a relic of the past.
https://antmicro.com/blog/2022/08/running-rust-programs-in-s...
More about Rust and the architecture. I know Renode of its RISC-V meetup presentations, can't say I was impressed favorably.
I’m only aware of one other attempt to secure the entire stack: Oxide Computing (focused more on data centers I think.)
How so? OBO is a logic error isn't it?
ex: Bounds::Excluded
and iterators like the other commenter mentioned.
As such, checks for operator[]() are usually only enabled in debug builds, although Android and Red-Hat ship with them enabled into production.
Additionally, before C++ got a standard library, the frameworks that were shipped alongside compilers always had those checks enabled by default.
C also doesn't have .at(). Considering C and C++ are the most obvious and direct competitors to Rust, bounds checking would be a significant upgrade if Rust paradigms cause it to be used more often.
C was already a bad option in the mid-90's compared with the alternatives, it is due to the unfortunate adoption of GNU manifesto and POSIX systems that we got where we are.
Hence why the ultimate solution is to have hardware memory tagging for bounds checking, Solaris has been doing it for a decade, ARM is following along, including a collaboration with CHERI, only Intel borked their MPX design, and it seems not to be on RISC-V's radar.
Note that while defaults matter, and given the option one should rather use a safe systems language, if there are ways to do unbound accesses, there will always be some folks going that route because reasons.
I was under the impression FORTIFY only checked bounds with specific functions (mostly those starting with "mem" or "str"), and not on general pointer arithmetic. Thus, an OOB array access would not be caught. Am I wrong on this? Online sources seem to agree with my understanding: https://zatoichi-engineer.github.io/2017/10/06/fortify-sourc...
Additionally, FORTIFY does not work on variable length arrays (like std::vector), only those which have a size known at compile time.
> Hence why the ultimate solution is to have hardware memory tagging for bounds checking, Solaris has been doing it for a decade, ARM is following along, including a collaboration with CHERI, only Intel borked their MPX design, and it seems not to be on RISC-V's radar.
Unfortunately, Intel and ARM are the only relevant vendors here (at least in 2022, but for the record I wish the others the best of luck), so Intel's implementation sucking is a huge blow.
You use it alongside other compiler flags to enable them like _GLIBCXX_DEBUG, and FORTIFY levels.
It is not perfect, but since there are domains that won't stop using C and C++ past our lifetimes, that is better than nothing.
If this is true, for new projects, such as the experimental OS we're all talking about, Rust (or any language with a similar feature) could be a better choice.
This is like a really dumb version of the 90s era MS competing teams nonsense. All I can see is it burning out a lot of really talented engineers.
> Our team in Google Research has set out to solve this problem by building a provably secure platform that's optimized for embedded devices that run ML applications.
Bummer! I recently purchased an STM32 development board specifically to try out Rust-based embedded projects like this.
That being said, seL4 has a hard requirement for an MMU, so I'm not sure an STM32 would work (based upon my admittedly very quick review of their product line for a side project of mine -- happy to be proven wrong!)
Naming convention could use a bit of work, but otherwise good news.
(CAmkES is a hot mess, and "unpleasantly too much C" if you ask me. https://docs.sel4.systems/projects/camkes/ & https://github.com/seL4/camkes-tool/blob/master/docs/index.m...)
It's to the point I just ignore any Google product launch, at least in terms of consideration for my own use. 5-10 years is an incredibly short lifespan, and there's usually no off-ramp. The product just dies off.
Similarly, many people avoid watching Netflix shows until they survive to season 3 at least because it's not worth investing your time in something that's likely to get cancelled after a season or two.
It's their own doing and mocking it is fully deserved
But what would be the point?
For one, as some people said, it's secure but whatever it does will certanily pass information through Google, and you can't trust them.
And two, as some other people said, Google projects don't survive if they get less than 100 million users.
The comments cannot be considered garbage, since they ask the most pertinent question: why is this announcement worth talking about?
And yes, Google created this situation itself. And now it has to justify each new product's life span. Because we don't trust that at all. Unlike startups, Google can easily afford to run a product at a loss for years. Yet we trust them less than startups with only a few months of runway.
This is not a product, it's a free and open source OS, a gift to the world. You cannot shut down open source--if it matters so much to you then maintain it yourself.
Philosophically speaking, do most people do something out of pure altruism? I personally don't believe so. Everyone has an agenda - be it to feel better, to score brownie points, to make people like them, etc. Why should we expect for-profit corps to be altruistic? We should remember their for-profit motives and also accept they can do good deed for non-altruistic reasons.
There you go, so you help others to feel happiness yourself. In which case, its not purely altruistic.
Why do people like you seem determined that nothing good can exist in other people. Your tribe turns everything to shit.
I disagree. Google's habit of killing projects off is interesting/annoying/frustrating but I don't think a trove of shallow "I wonder when google will kill this? lol" comments on every google product announcement add to the discussion.
So if you're betting on a product / service, then relying on Internet sentiment is generally a bad idea.
Analogy: the best time to buy a car from a specific manufacturer is when everyone knows that the manufacturer is only producing crappy cars. Because that's when they're likely doing everything they can to rectify their reputation. (And the other way around.) Examples: French cars manufactured around 2010 have really good quality (especially the PSA models), because they produced crap around 2000 so by 2008 everyone knew that they should not buy a Citroen. BMW's from 2008 have incredibly many quality issues as BMW's reputation peaked around that era, so they reaped the profits that they could (and this was all based on the all-around great cars from a decade earlier).
Maybe—or maybe they’re still in the stage when they’re producing crappy cars, and unwilling to commit to the serious changes that would ultimately lead to a better product and better reputation.
The (awful) analogy certainly doesn't even hold: my late-2009 BMW is still going strong without a hint of anything beyond routine maintenance, yet according to this screed it should be crap...
Has BMW ever been reliable? Yes in the 90s and before, since then? No. They just don't care, they're sold as lease vehicles to people who care about having the newest stuff for 3 years and then move on.
> So if you're betting on a product / service, then relying on Internet sentiment is generally a bad idea.
I don't disagree with this tho.
As an engineer, I don't get much say in what other parts of the company do, but unfortunately, I have to bear the brunt of the blowback every time it happens, in social forums like this one, and in B2B interactions. It's quite frustrating, actually.
Same for you. You either need to fix Google’s long term support issues from the inside, or expect more of the same.
> [...] You either need to fix Google’s long term support issues from the inside, or expect more of the same.
Some of us knowingly work for organizations that, in the aggregate, are crap.
We stay and do the best we can.
If somebody put that bullcrap of fixing our entire system on me, I'd laugh. Pretend you did that to me -- I would think that you have a poor understanding of the systemic issues causing the problems that bother you.
To me there isn't a clear line from "present" to "desirable future", and simplistic approaches ("antitrust disassemble google") to complex problems aren't actually going to work (all IMO).
Sometimes you do the best you can, help the people you can help, and feel sorry for the rest... but leaving isn't going to make it better, it's going to make it worse, because your work is above average.
Actually, I guess the parent knows this since the are still working in the automobile industry but for others - perhaps what's needed is just a thicker hide, and a willingness to say "yep, it's gonna get killed at some point, good thing we MADE IT OPEN SOURCE so others can carry it forward."
Talk to your management about it or switch company, don’t whine about it to the users. These comments are a symptom, not the disease.
Second, I feel for you. This can't be fun, and it's not your fault.
Third, although I think I'm pretty squarely in your "target audience", if you will (Rust & SEL4!? Yes please!), my first reaction was "Oh well, too bad it will be cancelled before it goes anywhere."
Google has done this to themselves. There is a massive undertow against adopting anything Google makes. (I still sting from Reader, still, years later.) Stadia? Etc. Why bother?
Which brings me to my fourth and final point: Y U Googler? What I mean is, on the one hand no one is forcing you to work at Google? On the other hand when (sorry) IF they cancel this project are you going to continue to support it yourself? What is your personal stake in this project?
I'm willing to give you jtgans a break, but not Google.
Overall I love the HN community and think it is the best one on the internet, but it still has a vocal shallow-minded pocket of people who:
1. Seem to forget that they're talking to a fellow human being rather than a username, and don't engage any of their manners that normally filter out unproductive rudeness
2. Feel strong emotions toward big companies and think life is just as simple as telling a single engineer to "fix the company" as though that is even remotely reasonable.
3. Don't seem to understand how big corporate systems work. Suggesting that a single engineer (even if they are a team lead) is to blame for business decisions that get made almost entirely against what the engineers want, is absurd.
Good for you for speaking up though. It won't make a difference to the people you were commenting to, but overall it provides the masses with a reminder that there's a human on the other side of this.
We're all better off when smart people can build something new, that advances the frontier of what's possible, and release it to the world for free, without committing to support it forever.
It's nauseating when lazy commenters parrot the same, worn-out arguments to tear down legitimate innovation.
This is a reason I’ll never use a new Google product ever again. I’m still stuck with Gmail and Android TV for now but that’s about it, and I’m working on that too. I slowly switch my accounts to a custom domain email, and plan on switching to Plex because they decided to start showing ads on the TV I paid $2000 for.
Google quite explicitly has a startup mentality in trying to launch lots of things and see what sticks, and shut down what doesn't stick. A "fail fast" mentality that is very hacker-y.
Apple is the polar opposite -- they do oodles of internal testing and iteration and feedback and don't launch something until they're super-super-sure they've got a hit on their hands. Microsoft is closer to Apple but more willing to experiment.
So people hate on Google when they cancel products, but nobody hates on all the startups that simply go out of business. To the contrary, they say congrats on trying, hope you try again!
It's a bizarre double standard that I'll never understand.
Yes, Reader was cancelled, but if Google didn't have this "launch and see what sticks" mentality Reader never would have been created in the first place. Products like Gmail and Google News supposedly started as similar 20% products.
Why is HN so supportive of startups that try and fail, but not when Google does it?
https://www.youtube.com/watch?v=Raej8C2yIEc
I think your new OS needs realistic elephants.