They are concerned that they will be the target for war crimes, such as sinking fishing ships in the Caribbean and Pacific, targeting civilian infrastructure in Iran, and the like.
Corrupting program memory via malicious input data is known as a code-execution attack, not a data-only attack. The fuzzed program usually crashes because its executable code or the control flow got overwritten directly by the input, or indirectly by the program code itself when it tries to process bad data. An exploit involves injecting external code, or overwriting memory addresses (like a virtual table or a stack return address) to override the original logic flow to do something else.
A data-only attack would be an attack that reuses the original logic by only corrupting data inputs (such as a flag or a file path), without overwriting code or overriding the logic. W^X, stack canary, or CFI won't work in these cases since no code is tampered by the attacker. In almost ever talk about compiler mitigations, you always hear a passing-by mention of data-only attacks - before the speaker immediately dismisses them as an academic curiosity when the software industry is still facing a flood of stack smashing and ROP attacks.
> The fuzzed program usually crashes because its executable code or the control flow got overwritten directly by the input, or indirectly by the program code itself when it tries to process bad data.
Add assertions to your code. Voila, your run-of-the-mill fuzzer can now hunt for arbitrary problems with your program by turning them into crashes.
When fuzzing C programs, I usually also add undefined-behaviour sanitizers and friends, in the mode where they crash when you run into the kinds of UB they can detect.
Again, the point of a data-only attack is that you replace, say, a string with another valid string, and take control of program logic that way. For example, imagine a program that uses `system(LS_CMD_STR)`, where that LS_CMD_STR is some kind of constant holding the value "ls -lah". If an attacker can corrupt program memory in such a way that it overwrites that value with "rm / -f", no amount of assertions will trigger on this, but the program will do something much worse than expected.
In microcontroller programming, redundant data, checksumming and token-passing are sometimes used to mitigate CPU malfunctions due to electromagnetic interference (microcontrollers are often used as "programmable logic", so there's no hard layering between hardware and software, layering violation is made on purpose). If anything looks wrong, you trigger an assertion failure and reset the chip via the watchdog timer. For example, when you pass LS_CMD_STR, you would also pass the name of the caller and the CRC32 checksum of the string as arguments, and the function on the receiving side should validate them.
So I think adding assertion is definitely a way to discover data-only attacks in fuzzing, or even as a partial mitigation of these attacks. It's just stack canary for variables and strings (but as the paper authors said, complete mitigation can be impractical).
It depends on what you overwrite. If you overwrite a CPU instruction or a function pointer that followed the buffer, it's a code-execution attack. If you overwrite a data variable that followed the buffer, it's a data-only attack. I said nearly all conventional fuzzing found code-execution attacks, not data-only attacks. Isn't that clear? The former method is considered common, well-studied, with defenses, the latter method is considered rare, niche, and defenseless.
Conventional fuzzing tries to overwrite executable code? I thought crashes are usually due to dereference of a corrupted pointer leading to unmapped memory.
I have no faith in humanity, especially those involved in tech, to make this. If they did, they'd block real life marketing only so it could be used to replace with ads bought directly with the AR maker.
If we had good AR hardware, I bet this would eventually get made, just not by big tech. It would be a third-party, probably open source mod that uses the optics of a corporate device to run their own software. It would be unwieldy, expensive and janky, but so worth it. I wonder if the advertising industry would try to get it outlawed if this happens.
When I first saw Google Glass this was my exact idea for the perfect use case. It's a shame that the advertising-fueled, spyware creeper reality of the tech makes that dream seem ever distant.
This is why they are pushing into services. Now the devices are (profitable) channels for upselling. Cook was willing to do some of this, but the new guy seems more interested in this.
Unfortunately it degrades a major value prop of using Apple in the first place.
It’s because they’d prefer you interacted with CarPlay with voice rather than looking away from the road.
An admirable objective, but given how “well” siri has worked in the past, an unrealistic one. We’ll see if 27 is a significant improvement. If I had to bet, I’d bet no, at least for the next year.
> It’s because they’d prefer you interacted with CarPlay with voice rather than looking away from the road.
So given I don't want to look at the phone nor speak with Siri, can I turn off interacting with the phone at all while it's connected? No, somehow, they do it the opposite way, and oh no, accidentally I need to also agree that Siri can listen all the time and also agree to...
Come on, it's very transparent what they're doing. Siri on or off doesn't make me or others look more or less on the phone. Forcing Siri on, forces us who don't use Siri and don't want to use Siri, to accidentally trigger Siri while we fucking drive, which is absolutely horrible.
More short names fit in your fovea than long names so for the most common operations they are the easiest to read. It’s the same reason the most common words in human languages are the shortest (and programming languages are for humans to use so subject to the same pressure.
Also, Back In The Old Days memory was very expensive and precious so short identifiers were important. Often labels were tightly constrained, for example being limited to six upper-case characters so they would fit in a single word.
I submitted this because, despite the headline, the system basically worked: a decision review cancelled the mission despite the automation saying go ahead.
I'm not sure I would use "worked" because it seems like this should have been caught way before any plans were made and leadership even heard about it. They had planes in the air and were about to actually go
reply