News for hackers. Stuff that matters.
Re:Journalist’s phone hacked: all he had to do was visit any... by roblabla on Tuesday June 23, 2020 @07:24PM (#23621707)
A code execution vulnerability isn't enough. To work on truly any website, they need:

- A remote code execution vulnerability. There are almost certainly multiple vulnerabilities at play here, since long gone are the days where a single vuln gave arbitrary code execution.

- a way to bypass the encryption/https, unless the remote code execution was on a layer before encryption (which seems unlikely). EDIT: Apparently the hack only works on non-encrypted websites.

- Once remote code is achieved, they most certainly need a way to elevate privileges in order to make the hack more persistent and tap into other apps.

There are most likely several CVEs at play here. The amount of effort that went into this hack is, frankly, terrifying.

Re:Journalist’s phone hacked: all he had to do was visit any... by afuchs on Tuesday June 23, 2020 @07:52PM (#23621981)
From my understanding, it is easy enough to bypass HTTPS encryption if you need to intercept traffic for an attack like this. You only need to intercept and modify the traffic for a website, not a specific website.

There are still websites that don't use HTTPS.

For websites that do use HTTPS, if they haven't configured something like HSTS, HPKP or Expect-CT, typing example.com into a web browser will make it will send an unencrypted HTTP request to http://example.com. If the website's content is served only HTTPS, the server will most likely respond with something that redirects the web browser to the HTTPS version of the website (most likely a HTTP 301 or 302 status code). The initial unencrypted HTTP request can be intercepted and modified.

Re:Journalist’s phone hacked: all he had to do was visit any... by c22 on Tuesday June 23, 2020 @09:21PM (#23622799)
Not to mention if DNS isn't encrypted and you control the network you can just redirect requests wherever you want.
Re:Journalist’s phone hacked: all he had to do was visit any... by ec109685 on Wednesday June 24, 2020 @12:02AM (#23623953)
Not to a non-https website if the user is visiting a secure site.

Apple should disable javascript for non https sites.

Re:Journalist’s phone hacked: all he had to do was visit any... by aeternum on Wednesday June 24, 2020 @12:51AM (#23624233)
Ability to disable javascript for non-https would be a great security setting. Aligns well with Apple's goal for privacy and security as many wireless hotspots and even ISPs abuse HTTP javascript injection.
Re:Journalist’s phone hacked: all he had to do was visit any... by tjoff on Wednesday June 24, 2020 @01:43AM (#23624488)
Ironically, in response when people realize how good the non-javascript web is they will demand all sites be http.
Re:Journalist’s phone hacked: all he had to do was visit any... by yonixw on Wednesday June 24, 2020 @04:52AM (#23625707)
Location header still can redirect you to well-crafted HTTPs site, so it won't really help
Re:Journalist’s phone hacked: all he had to do was visit any... by ec109685 on Sunday June 28, 2020 @05:35AM (#23667678)
Good point.
Re:Journalist’s phone hacked: all he had to do was visit any... by bawolff on Tuesday June 23, 2020 @09:48PM (#23623001)
Sorry to nitpick, but hpkp and expect-ct arent really relavent here (since browsers dropped support for hkpk, and expect-ct is now basically the default in chrome). HSTS is what is needed

However, you only need 1 http website to pull off the attack, so its not really a problem that hsts is great at addressing since its opt i per server. The easy way to do this attack is control the local wifi, and make the login landing page malicious.

Re:Journalist’s phone hacked: all he had to do was visit any... by tialaramex on Tuesday June 23, 2020 @10:19PM (#23623218)
Expect-CT does almost nothing. Safari and Chrome both have CT policies that are enforced anyway, Firefox doesn't implement CT yet (patches doubtless welcome). The remaining thing Expect-CT might do (I have not tested) is ensure that bad guys can't present a certificate with a date prior to Safari/ Chrome's enforcement deadline. That's a small and shrinking window.

If bad guys can make a certificate dated February 2018 and valid until May 2021 that certificate will be accepted in Chrome despite not having any SCTs. A real one from that date probably does have SCTs but Chrome only required them in April 2018. Setting Expect-CT now might make Chrome reject that certificate for lacking SCTs if it was shown on a subsequent visit.

A year from the now the window is closed, Chrome will reject a certificate that says it was issued more recently and lacks SCTs, and it will also reject a certificate that says it was issued longer ago, because that violates Baseline Requirements on validity periods. But for now a February 2018 certificate could be valid yet not require SCTs.

All Google-owned TLDs are HSTS-pre-loaded, so if you use a domain in a Google TLD (e.g. example.app) then browsers always use HTTPS anyway. Unfortunately it's unlikely that many older, popular TLDs will pre-load HSTS so most users will be unprotected for the foreseeable future.

Re:Journalist’s phone hacked: all he had to do was visit any... by titanomachy on Tuesday June 23, 2020 @07:43PM (#23621907)
A huge amount of effort went into developing this hack. Then the company NSO productized the hack and sold it to governments.
Re:Journalist’s phone hacked: all he had to do was visit any... by Biganon on Wednesday June 24, 2020 @01:55AM (#23624550)
And as soon as Apple fixes it, they're out of business? I really don't understand how any of that works.
Re:Journalist’s phone hacked: all he had to do was visit any... by ObsoleteNerd on Wednesday June 24, 2020 @02:03AM (#23624595)
They make enough money in between selling the tool and Apple patching the exploit to make it worthy, not to mention the amount of people who don’t do updates meaning the tool is still effective some of the time.

Then the find/buy a new exploit and do it again.

Re:Journalist’s phone hacked: all he had to do was visit any... by Closi on Wednesday June 24, 2020 @04:40AM (#23625632)
I think the assumption is that if they have the capability to create this exploit chain, they also likely have the capability to develop others (and possibly have others waiting to deploy if these are discovered and patched).

It's the same with any of these hacking technology companies, they have to keep moving at the very edge of what is possible.

Re:Journalist’s phone hacked: all he had to do was visit any... by ChuckNorris89 on Wednesday June 24, 2020 @02:06AM (#23624624)
Fixes it?

Apple could indeed fix some CVEs that they know about but every new OS/app/library release has the potential to introduce new CVEs that hackers can exploit.

It's a moving target indeed but due to the increased complexity and questionable quality of modern software there's no way they're going out of business, quite the contrary.

Re:Journalist’s phone hacked: all he had to do was visit any... by coronadisaster on Tuesday June 23, 2020 @08:09PM (#23622152)
> The amount of effort that went into this hack is, frankly, terrifying.

and if a government did it, it would not be much harder for them to do it to everyone in the world at the same time before any exploits get fixed...

Re:Journalist’s phone hacked: all he had to do was visit any... by hn_throwaway_99 on Tuesday June 23, 2020 @11:33PM (#23623731)
Glad you fixed your comment with your edit, but this really isn't that hard to imagine at all: a privilege escalation in Safari is exactly how one of the original jailbreaks worked: https://en.wikipedia.org/wiki/JailbreakMe.

All you then have to do is network-inject on a user who visits a non-HSTS site by entering it in their address bar.

Re:Journalist’s phone hacked: all he had to do was visit any... by StavrosK on Wednesday June 24, 2020 @01:50AM (#23624512)
Sure, but we've come a long way from the original jailbreak, and what this hack is is essentially another full jailbreak from another Safari vulnerability, which is pretty scary.
Re:Journalist’s phone hacked: all he had to do was visit any... by lazyjones on Tuesday June 23, 2020 @09:08PM (#23622702)
But "any website" here seems to be "any non-https website", so this is more likely: a) router or baseband-processor hack plus b) malicious JS injection into unencrypted HTML plus c) browser vulnerability via JS.

No need to bypass encryption.

Re:Journalist’s phone hacked: all he had to do was visit any... by ringshall on Tuesday June 23, 2020 @09:29PM (#23622859)
> "There are almost certainly multiple vulnerabilities at play here, since long gone are the days where a single vuln gave arbitrary code execution"

Could you go into this in a little more detail?

I'm inferring that chains of vulnerabilities are needed to go from some starting point to arbitrary code execution. Is that correct?

Have efforts to secure computer systems over the past ~2 decades succeeded, at least in that much more effort needs to be invested in order to get to the point of arbitrary code execution?

Re:Journalist’s phone hacked: all he had to do was visit any... by roblabla on Tuesday June 23, 2020 @10:04PM (#23623115)
For the most part, yes, it's much harder to get ACE today than it was 20 years ago, and even then ACE doesn't actually grant you any fancy capabilities on a modern phone.

To get ACE, you will generally need a couple of primitives, such as an ArbR/ArbW coupled with an infoleak to get ROP. This will allow you to execute arbitrary code, but you're still stuck within the confines of the current process' privileges. Phone apps are generally heavily sandboxed, and the web browsers tend to be sandboxed even harder. Having ACE in some arbitrary process won't give you the ability to do anything: filesystem will still be out of reach, most of the time you won't even be able to see other processes or even make network requests. So you'll need to break the sandbox.

Breaking the sandbox tend to involve looking for an RCE in a process outside the sandbox that you can communicating with over an IPC channel. And you'll likely need to do this twice: once to break free of the browser sandbox, and once to break the "App" sandbox. If we take a look at chrome for instance (which is very well documented[0][1]), they have sandboxing mechanisms built-in to disallow access to most resources (like the filesystem) to most of its processes, and to prevent access to most of the kernel API surface. And then Android further sandboxes all apps to disallow them from accessing each-other's data. So again you'd have to find another bug somewhere to bypass this.

There are tons of mitigations techniques being developed to make bugs harder to exploit, from Pointer Authentication (making it much harder to exploit ArbR/ArbW bugs) to Control Flow Integrity (making it much harder to create a ROP chain). Of course, not all apps actually have those mitigations in place, but the web browsers tend to enable most, for instance chrome has CFI enabled[2].

[0]: https://chromium.googlesource.com/chromium/src/+/master/docs...

[1]: https://chromium.googlesource.com/chromium/src.git/+/master/...

[2]: https://www.chromium.org/developers/testing/control-flow-int...

Re:Journalist’s phone hacked: all he had to do was visit any... by erikmolin on Wednesday June 24, 2020 @03:47AM (#23625243)
Would you mind expanding the acronyms? This is super interesting, but hard to follow (and also somewhat hard to google, apparently Arbr is a bike brand)
Re:Journalist’s phone hacked: all he had to do was visit any... by roblabla on Wednesday June 24, 2020 @05:54AM (#23626071)
Ah, can't edit the comment anymore but:

RCE: Remote Code Execution. It's fairly straightforward, but basically any vulnerability that allows you to run (native) code without physical access to the phone (e.g. when a user visits a website).

ACE: Arbitrary Code Execution. Basically any technique that allows taking control of the execution to execute your own arbitrary code.

ArbR/ArbW/ArbCall: Arbitrary Read, Arbitrary Write, Arbitrary Call primitives. They tend to be the "basic unit" which you can weave together to further poke at things once you've gained ROP.

ROP: Return Oriented Programming, a technique used to take control of execution when you have the ability to overwrite the Return Pointer of the current stack frame (for instance, from a stack buffer overflow). ROP is used because nowadays, most processes adhere to W^X (Write Xor Execute, basically a memory page is never both writable and executable at the same time), meaning we can't just inject shellcode and jump to it anymore. You can find a small tutorial on ROP at [1].

ROP This can then be used to generate various primitives (ArbW can be achieved by weaving together a "ROP Chain" that calls memcpy with the right registers, for instance).

IPC: Inter-Process Communication. Imagine a Unix Pipe, where two processes communicate with each-other over stdin/stdout. This is an example of an IPC. There are other IPC mechanisms (D-Bus, Unix Sockets, localhost...). When a process is sandboxed, it will sometimes need access to things beyond its sandbox (like accessing the filesystem to access a cached image or something). To do so, it will talk to another process over an IPC mechanism, with a well-defined protocol.

[1]: https://tc.gts3.org/cs6265/2019/tut/tut06-01-rop.html

Re:Journalist’s phone hacked: all he had to do was visit any... by iudqnolq on Wednesday June 24, 2020 @04:09AM (#23625419)
Guessing partly, but maybe ArbR = arbitrary read, ArbW = arbitrary write, RCE = remote code execution, IPC = inter process communication.
Re:Journalist’s phone hacked: all he had to do was visit any... by pbhjpbhj on Wednesday June 24, 2020 @06:18AM (#23626227)
ACE arbitrary code execution

RCE remote code execution

ROP return-oriented programming, which I understand to be using code already on the target and manipulating code flow in order to piece together the boots of programme to execute a routine of the attackers choosing (like cutting letters out of a newspaper to make a ransom note!), https://en.m.wikipedia.org/wiki/Return-oriented_programming

Re:Journalist’s phone hacked: all he had to do was visit any... by CGamesPlay on Tuesday June 23, 2020 @10:02PM (#23623100)
Yes. For example, webpages viewed in Safari are sandboxed. You can't run arbitrary code to affect parts other webpages. So they had to break out of that.

All apps, including Safari, are sandboxed. Apps can't run arbitrary code to affect other apps. So they had to break out of that.

The system itself is sandboxed. Restarting the phone resets it, in many ways, to a "known" state. So they had to install something that would persist across rebooting the phone.

Re:Journalist’s phone hacked: all he had to do was visit any... by stepstop on Tuesday June 23, 2020 @09:43PM (#23622968)
Yes you’re correct about the chains. For examples, look at Stuxnet or some of the more expensive Chrome bug bounties over the past few years.
Re:Journalist’s phone hacked: all he had to do was visit any... by metafunctor on Wednesday June 24, 2020 @04:21AM (#23625485)
”only works on non-encrypted websites”.

Hmm, might make me think twice now about going to http://neverssl.com/ in a dubious location.