In 2000, I wrote a Linux device driver that “decrypted” the output of a certain device, and my company, which hosted open-source projects, agreed to host it.
The “encryption” was only a XOR, but that was enough for the maker of said device to sue my company under 17 U.S.C. § 1201 for hundreds of millions in damages.
The story got a lot of press back then because it highlighted how stupid the then-new DMCA was, and also because there was a David open-source enthusiasts vs. Goliath heartless corporation flavor to it.
Our lawyer decided to pick up the fight to generate free publicity for our fledgling company. For discovery, the maker of the device requested “a copy of any and all potentially infringing source code”. They weren’t specific and they didn’t specify the medium.
So we printed the entire Linux kernel source code including my driver in 5-pt font and sent them the boxes of printouts. Legally they had been served, so there was nothing they could do about it.
I stare at Linux source code very often looking for vulnerabilities.
I unironically have printed pages out to sit down with.
The idea of having the whole kernel printed… is… fun. Lol. How would your organize it for reading? Different chapters that are the directories of the kernel code ?
I’d love to hear more about this - do you do it professionally (for preventative reasons), as a side hobby, or as an attacker for malicious/selfish reasons? No judgement, genuinely curious as it takes a certain personality type to do this kind of work and I find it really interesting.
I think they just stare at it, hoping the vulnerabilities come to them in a moment of revelation. A Linux Joseph Smith, the kernel playing the part of the Golden Plates.
The small overlap of my two largest hobbies, programming and making fun of Mormons. Perfect.
Professionally
My title is senior vulnerability researcher. Focus on mobile devices. That’s all I can really say without doxing too much
But the Linux kernel is always a juicy target because of the coverage and exploit there gets you.
Neat. Why is Linux kernel relevant for many mobile users? Is iPhone built off of it the same way Mac OS is?
What do you mean by coverage and exploit?
MacOS and iOS have Darwin as their base, which is really a mutt. Apple started with the NeXTSTEP kernel, which was a mix of 4.3BSD and Mach, then folded in some FreeBSD, other open source components, and some in-house code.
It’s Android that uses the Linux kernel as its base, and the millions of phones makes it a juicy target.
Not too surprising that iOS has linux in its DNA, but never realized Android does too. Always assumed it was more windows-based. Good to know.
iOS doesn’t have any Linux.
FreeBSD is not Linux. Linux is a kernel and Apple uses Mach, a different kernel. They do both share that they’re POSIX, but OS X is actual, factual, UNIX, and Linux has never paid the money to qualify.
My bad I’m conflating bash and Unix. From my end both apple and Linux use bash so they have the same underlying base…but I realize that’s not accurate, and even unix and bash are not synonomous.
How different is the FreeBSD kernel from the Linux kernel?
Like in terms of interfaces, if I were to port a device driver, am I just changing some header files and some constants/enums/ifdefs?
Or there’s like entirely different function signatures / APIs?
MacOS is based of a BSD distrobution of Unix. iOS is a fork of MacOS
Why would they organize it in any way? It was not one of the requirements… so, alphabetically.
Obviously and we are talking per line and not per file are we?
Per byte
Alphabetically, per bite. It is beautiful.
The first 40000 characters are “a”
OP said it happened around the year 2000. Linux was at maybe 2.4.something back then. The kernel was much smaller then than it is today.