Someone contacted me about the license of this script. The code itself is
doubtfully enforcable with US copyright anyway, so let's just put this into
the public domain.
It does have comments, but they're minor.
The election is over, so there's no point in keeping the "Election." post.
I...am at a loss for words. I'll surely be posting about this in some
regard at some point, so I'm not going to bother here.
This image displays the date I joined: exactly nine years ago to the
day. That's just a coincidence, tbh; I happened upon it.
Oh how time flies...
Happy Halloween.
[Citizen Lab released a report][cl] describing the attempted use of iOS
0-days on human rights activist [Ahmed Mansoor][] by the United Arab
Emirates.
They named this chain of exploits _Trident_,
and with the help of [Lookout Security][paper],
were able to analyze them.
It begins with [arbitrary code execution (CVE-2016-4655)][4655] by
exploiting a memory corruption vulnerability in WebKit,
which downloads a payload unknown to the user.
That payload is able to bypass KASLR and [determine the kernel memory
location (CVE-2016-4656)][4656],
then allowing it to exploit a [memory corruption vulnerability in the
kernel itself (CVE-2016-4657)][4657];
this "jailbreaks" the device and is a complete compromise of the system.
This payload is [Pegasus][paper],
a complex surveillance tool sold to governments,
often used for espionage.
In this case,
Monsoor received a suspicious text message and wisely [tipped off Citizen
Lab][cl] rather than opening the presented link.
Had he done so,
he would have unknowingly downloaded this spyware that could very well
have put his life in extreme danger:
it has the capability to track his location;
record his calls and texts;
record communications through software like WhatsApp and Skype;
download his contact information;
grab passwords and encryption keys from his keyring;
and much more.
This malware was written by [NSO Group][],
which is so poorly known that their [Wikipedia page didn't even exist
until today][nso-wikipedia].
The software company is based in Israel,
founded in 2010 by Niv Carmi, Omri Lavie, and Shalev Hulio.
They were purchased in 2014 by [Francisco Partners][],
a private equity firm in the United States,
for $110 million.
They exist to sell exploits to governments.
Anyone familiar with security research is aware of [responsible
disclosure][]:
it is a model whereby researchers who discover a vulnerability
release their research publicly only _after_ they notify the authors
of the software,
and a patch mitigating the vulnerability has been released.
This is what Citizen Lab did---Apple [fixed the vulnerability][apple] in
iOS 9.3.5.[^rms-apple]
This is not what NSO Group does:
Instead, they horde their exploits[^0day] and sell them to governments as
weapons for surveillance or espionage.
In this case,
the United Arab Emirates (or so it seems).
This is not only unethical,
but to sell to a government that is known for this type of abuse is
inexcusable and negligent---the people behind NSO Group are absolute
scum.[^scum]
They are empowering a foreign government known for their civil and human
rights abuses.
I have trouble finding words.
There is much more that can be said on this topic with respect to security,
civil and human rights,
and various other topics.
But I don't want to distract from the topic at hand.
Let this sink in.
Read the [Citizen Lab][cl] report and the [paper by Lookout Security][paper].
Today I leave my soapbox be.
[cl]: https://citizenlab.org/2016/08/million-dollar-dissident-iphone-zero-day-nso-group-uae/
[Ahmed Mansoor]: https://en.wikipedia.org/wiki/Ahmed_Mansoor
[paper]: https://info.lookout.com/rs/051-ESQ-475/images/lookout-pegasus-technical-analysis.pdf
[4655]: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2016-4655
[4656]: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2016-4656
[4657]: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2016-4657
[NSO Group]: https://en.wikipedia.org/wiki/NSO_Group
[nso-wikipedia]: https://en.wikipedia.org/w/index.php?title=NSO_Group&action=history
[Francisco Partners]: https://en.wikipedia.org/wiki/Francisco_Partners
[responsible disclosure]: https://en.wikipedia.org/wiki/Responsible_disclosure
[apple]: https://support.apple.com/en-us/HT207107
[^rms-apple]: I [can't recommend that you use Apple
devices](https://stallman.org/apple.html), but if you do, you
should upgrade immediately;
you are vulnerable to exploitation by simply visiting a
malicious webpage.
[^0day]: Called 0-days,
because they haven't been disclosed and there has been no time to
prepare or release a fix.
[^scum]: For other scum, see the organization behind [FinFisher][]; and the
group [Hacking Team][].
[FinFisher]: https://en.wikipedia.org/wiki/FinFisher
[Hacking Team]: https://en.wikipedia.org/wiki/Hacking_Team
The past few days of the DNC have demanded pause. I am an Independent. I
do not like Hillary Clinton. I am a Bernie supporter, and I was upset by his
endorsement of Hillary. I had vowed not to vote for Hillary; I would
instead vote for Jill Stein. The DNC, while very well done with a deeply
compelling facade, has not changed my perspective on Clinton.
It is perhaps said best by Bernie himself: "It's easy to boo, but it's
harder to look your kids in the face who would be living under a Donald
Trump presidency". The conflict here is between my deep ideologies and
reality. It's often said that a vote for Hillary is a vote against Trump;
such a perspective would shallow and purposeless. But this isn't an
election for president---this is the most threatening assault on everything
I stand for that I hope I will ever witness in my lifetime. To stand for
ideological purity would be to stand atop a mountain while the world around
me burns. This is why Bernie chose to unite.
Should Trump win, my ideals that seem within reach could be blown back
decades. As a matter of strategy, I cannot justify _not_ swallowing every
ounce of my pride. Hillary's presidency is an unfortunate but necessary
consequence of the only permissible outcome. I am not electing a president
of the United States. I am electing _a United States_.
So I am doing what I never thought I would do: proposing that others too
factor this obscene equation and recognize how the very few remaining
variables affect the result. My ideals continue to exist in part and in
spirit with Hillary as president. With Trump, they are all but
vanquished. Donald Trump must not be elected president of the United
States. When (and if) you vote, think of it as a shot fired, not as a vote
cast.
"Election".
More information about my opinions on this topic can be found
[here][social-1] and [here][social-2].
[social-1]: https://social.mikegerwitz.com/conversation/21864
[social-2]: https://social.mikegerwitz.com/conversation/22026
There is little common sense to be had with the [Computer Fraud and Abuse
Act][cfaa] (CFAA) to begin with.
To add to the confusion,
the Ninth Circuit Court of Appeals last week held 2-1 in [United States
v. Nosal][uvn] that accessing a service using someone else's
password---even if that person gave you permission to do so---[violates
the CFAA][cfaa-passwd],
stating that only the _owner_ of a computer can give such authorization.
This is absurd even with complete lack of understanding of what the law is:
should your spouse be held criminally liable for paying your bills online
using your account?
Common sense says no.
In another case this week---[Facebook v. Power Ventures][fvp]---the same
court (though a different panel of judges) stepped back from the original
decision and stated that computer _users_ can indeed provide
authorization.
This authorization holds even if the service's Terms of Service say
otherwise.
Yet: the computer owner (in this case, Facebook) can revoke authorization,
which takes precedence over any authorization provided by a user of that
system.
So with a seemingly magical incantation,
a benign situation can be made into a federal crime,
just like that.
These situations highlight dangerous confusion over the interpretation of an
already dangerously vague law.
The CFAA is the law that was used to prosecute Aaron Swartz for federal
"crimes"---with a punishment of up to thirty-five years in prison---for
liberating documents hosted on JSTOR.
Because of this [draconian threat][eff-punish],
[Aaron committed suicide][aaron] on January 11th, 2013.
The CFAA already has blood on its hands;
it needs to be reined _in_,
not be given further broad powers.
So don't take news of the decisions in US v. Nosal and Facebook v. Power
Ventures as canceling one-another out;
things may appear the same for now,
but serious problems still need to be resolved.
[cfaa]: https://www.eff.org/issues/cfaa
[cfaa-passwd]: https://www.eff.org/deeplinks/2016/07/ever-use-someone-elses-password-go-jail-says-ninth-circuit
[cfaa-back]: https://www.eff.org/deeplinks/2016/07/ninth-circuit-panel-backs-away-dangerous-password-sharing-decision-creates-even
[uvn]: https://www.eff.org/cases/u-s-v-nosal
[fvp]: https://www.eff.org/cases/facebook-v-power-ventures
[eff-punish]: https://www.eff.org/deeplinks/2013/02/rebooting-computer-crime-part-3-punishment-should-fit-crime
[aaron]: https://www.eff.org/deeplinks/2013/01/farewell-aaron-swartz
Today is the [10th annual International Day Against DRM][day-drm]---a day
where activists from around the world organize events in protest against
[Digital Restrictions Management][drm].
DRM is a scheme by which tyrants use [antifeatures][] to lock down what
users are able to do with their systems, often cryptographically.
For example,
your media player might tell you how many times you can listen to a song,
or watch a video, or read a book;
it might [delete books][1984] that you thought you owned;
it might require that you are [always online][always-on] when playing a
game, and then stop working when you disconnect, or when they decide to
stop supporting the game.
If you try to circumvent these locks,
then you might be [called a pirate][pirate] and be thrown in prision under
the ["anti-circumvention" privisons of the Digital Millenium Copyright Act
(DMCA)][dmca].
These are all things [that have been long predicated][right-to-read], and
are only expected to get worse with time.
That is, unless we take a stand and fight back.
I had the pleasure of participating in
the [largest ever protest against the W3C][w3c-protest] and their attempts
to introduce DRM as a _web standard_ via the [Encrypted Media Extensions
(EME)][eme] proposal.[^photos]
This event was organized beautifully by Zak Rogoff of the [Free Software
Foundation][fsf] and began just outside the Strata Center doors where the
W3C was _actively meeting_,
and then continued to stop outside the Google and Microsoft offices,
both just blocks away.
We were [joined outside Microsoft][eff-protest] by Danny O'Brien,
the EFF's International Director,
who stepped out of the W3C meeting to address the protesters.
Afterward, most of us [traveled to the MIT Media Lab][media-lab] where
Richard Stallman---who joined us in the protest---sat on a panel along
with Danny O'Brien, Joi Ito of the MIT Media Lab, and Harry Halpin of the
W3C.
The W3C was invited to participate in a discussion on EME, but they never
showed.
As a demonstration of the severity of these issues,
[Harry Halpin vowed to resign from the W3C][hh-resign] if the EME proposal
ever became a W3C Recommendation.
I can say without hesitation that the protest and following discussion were
some of the most powerful and memorable events of my life---there is no
feeling like being a part of a group that shares such a fundamental
passion (and distaste!) for something important.
And it _is_ very important.
[DRM is pervasive][dbd]---the Web is just one corner where it rears its ugly
head.
The [International Day Against DRM][day-drm] gives you and others an
excellent opportunity to hold your own protests, demonstrations, and events
to raise these issues to others---and to do so as part of an
_international group_;
to send a strong, world-wide message:
a message that it is _not_ acceptable to act as tyrants and treat users as
slaves and puppets through use of digital handcuffs and [draconian
punishments for circumventing them][dmca].
[^photos]: The EFF has some [great photots][eff-protest]; I'm the one in the
hoodie between the giant GNU head and Zak Rogoff.
[day-drm]: https://www.defectivebydesign.org/dayagainstdrm
[drm]: https://www.defectivebydesign.org/what_is_drm_digital_restrictions_management
[antifeatures]: https://www.fsf.org/bulletin/2007/fall/antifeatures/
[lp2016]: https://libreplanet.org/2016/
[w3c-protest]: https://www.defectivebydesign.org/from-the-web-to-the-streets-protesting-drm
[eme]: https://w3c.github.io/encrypted-media/
[eff-protest]: https://w3c.github.io/encrypted-media/
[w3c]: https://www.w3.org/
[fsf]: https://fsf.org/
[media-lab]: https://motherboard.vice.com/read/we-marched-with-richard-stallman-at-a-drm-protest-last-night-w3-consortium-MIT-joi-ito
[hh-resign]: https://www.defectivebydesign.org/blog/w3c_staff_member_pledges_resignation_if_drm_added_web_standards
[dmca]: https://www.eff.org/issues/dmca
[dbd]: https://www.defectivebydesign.org/
[1984]: https://www.defectivebydesign.org/amazon-kindle-swindle
[always-on]: https://en.wikipedia.org/wiki/Always-on_DRM
[right-to-read]: https://www.gnu.org/philosophy/right-to-read.en.html
[pirate]: https://www.eff.org/deeplinks/2015/02/go-prison-sharing-files-thats-what-hollywood-wants-secret-tpp-deal
There has been a lot of talk lately about a most unique combination:
[GNU][gnu]---the [fully free/libre][free-sw] operating system---and
Microsoft Windows---the [freedom-denying, user-controlling,
surveillance system][woe].
There has also been a great deal of misinformation.
I'd like to share my thoughts.
Before we can discuss this subject,
we need to clarify some terminology:
We have a [free/libre][free-sw] operating system called [GNU][gnu].
Usually, it's used with the kernel Linux, and is together called the
[GNU/Linux (or GNU+Linux) operating system][gnulinux].
But that's not always the case.
For example, GNU can be run with its own kernel, [The GNU Hurd][hurd]
(GNU/Hurd).
It might be run on a system with a BSD kernel (e.g. GNU/kFreeBSD).
But now, we have a situation where we're taking GNU/Linux, removing Linux,
and adding in its place a Windows kernel.
This combination is referred to as GNU/kWindows (GNU with the Windows kernel
added).[^kwindows]
GNU values users' freedoms.
Windows [does exactly the opposite][woe].
When users talk about the operating system "Linux", what they are referring
to is the [GNU operating system][gnu] with the kernel Linux added.
If you are using the GNU operating system in some form, then many of the
programs you are familiar with on the command line are GNU programs:
`bash`, `(g)awk`, `grep`, `ls`, `cat`, `bc`, `tr`, `gcc`, `emacs`, and
so on.
But GNU is a fully free/libre Unix replacement, [not just a collection of GNU
programs][gnu].
Linux is the kernel that supports what the operating system is trying to do;
it provides what are called system calls to direct the kernel to perform
certain actions, like fork new processes or allocate memory.
This is an important distinction---not only is calling all of this software
"Linux" incorrect, but it discredits the project that created a fully
free/libre Unix replacement---[GNU][gnu].
This naming issue is so widespread that
[most users would not recognize what GNU is][gnu-noheard], even if they
are _using_ a [GNU/Linux][gnulinux] operating system.
I recently read an article that referred to GNU Bash as "Linux's Bash";
this is simply a slap in the face to all the hackers that have for the
past 26 years been writing what is one of today's most widely used
shells on Unix-like systems (including on [Apple's][apple] proprietary
Mac OSX), and all the other GNU hackers.
Microsoft and Canonical have apparently been working together to write a
subsystem that translates Linux system calls into something Windows will
understand---a compatibility layer.
So, software compiled to run on a system with the kernel Linux will work on
Windows through system call translation.
Many articles are calling this "Linux on Windows".
This is a fallacy: the kernel Linux is not at all involved!
What we are witnessing is the [_GNU_ operating system][gnu] running with
a Windows kernel _instead_ of Linux.
This is undoubtedly a technical advantage for Microsoft---Windows users want
to do their computing in a superior environment that they might be
familiar with on [GNU/Linux][gnulinux] or other Unix-like operating
systems, like [Apple's][apple] freedom-denying Mac OSX.
But thinking about it like this is missing an essential concept:
When users talk about "Linux" as the name of the operating system, they
avoid talking about [GNU][gnu].
And by avoiding mention of GNU,
they are also avoiding discussion of the core principles upon which GNU is
founded---the belief that all users deserve
[software granting _four essential freedoms_][free-sw]:
the freedom to use the program for any purpose;
the freedom to study the program and modify it to suit your needs (or
have someone do it on your behalf);
the freedom to share the program with others;
and the freedom to share your changes with others.
We call software that respects these four freedoms
[_free/libre software_][free-sw].
Free software is absolutely essential:
it ensures that _users_,
who are the most vulnerable,
are in control of their computing---not software developers or
corporations.
Any program that denies users any one of their [four freedoms][free-sw] is
_non-free_ (or _proprietary_)---that is, freedom-denying software.
This means that any non-free software, no matter its features or
performance, will [_always_ be inferior to free software][oss] that
performs a similar task.
Not everyone likes talking about freedom or the
[free software philosophy][free-sw].
This disagreement resulted in the
["open source" development methodology][oss],
which exists to sell the benefits of free software to businesses *without*
discussing the essential ideological considerations.
Under the "open source" philosophy,
if a non-free program provides better features or performance,
then surely it must be "better",
because they have outperformed the "open source" development methodology;
non-free software isn't always considered to be a bad thing.
So why would users want to use GNU/kWindows?
Well, probably for the same reason that they want GNU tools on Mac OSX:
they want to use software they want to use, but they also want the
technical benefits of GNU that they like.
What we have here is the ["open source" philosophy][oss]---because if the
user truly valued her freedom, she would use a
[fully free operating system like GNU/Linux][gnulinux-distros].
If a user is _already_ using Windows (that is, before considering
GNU/kWindows), then she does gain some freedom by installing GNU:
she has more software on her system that respects her freedoms,
and she is better off because of that.
But what if you're using GNU/Linux today?
In that case,
it is a major downgrade to switch to a GNU/kWindows system;
by doing so, you are [surrendering your freedom to Microsoft][woe].
It does not matter how many shiny features Microsoft might introduce into
its [freedom-denying surveillance system][woe];
an [operating system that respects your freedoms][gnulinux-distros] will
_always_ be a superior choice.
We would do our best to dissuade users from switching to a GNU/kWindows
system for the technical benefits that GNU provides.
So we have a couple different issues---some factual, some philosophical:
Firstly,
please don't refer to GNU/kWindows as "Linux on Windows", or any variant
thereof;
doing so simply propagates misinformation that not only confounds the
situation, but discredits the thousands of hackers working on the
[GNU operating system][gnu].
It would also be best if you avoid calling it "Ubuntu on Windows";
it isn't a factually incorrect statement---you are running Ubuntu's
distribution of GNU---but it still avoids mentioning the
[GNU Project][gnu]. If you want to give Ubuntu credit for working with
Microsoft, please call it "Ubuntu GNU/kWindows" instead of "Ubuntu".
By mentioning GNU,
users will ask questions about the project,
and might look it up on their own.
They will read about [the free software philosophy][free-sw],
and will hopefully begin to understand these issues---issues that they
might not have even been aware of to begin with.
Secondly,
when you see someone using a GNU/kWindows system,
politely ask them why.
Tell them that there is a _better_ operating system out there---the
[GNU/Linux operating system][gnu]---that not only provides those technical
features,
but also provides the feature of _freedom_!
Tell them what [free software][free-sw] is,
and try to relate it to them so that they understand why it is important,
and even practical.
It's good to see more people benefiting from GNU;
but we can't be happy when it is being sold as a means to draw users into
an otherwise [proprietary surveillance system][woe],
without so much as a mention of our name,
or [what it is that we stand for][gnu].
[^kwindows]: This name comes from [Richard Stallman][rms], founder of the
[GNU Project][gnu].
[gnu]: https://gnu.org/gnu/gnu.html
[free-sw]: https://gnu.org/philosophy/free-sw.html
[woe]: https://www.gnu.org/proprietary/malware-microsoft.en.html
[hurd]: https://gnu.org/software/hurd/
[oss]: http://www.gnu.org/philosophy/open-source-misses-the-point.html
[gnulinux]: https://www.gnu.org/gnu/linux-and-gnu.html
[gnulinux-distros]: https://www.gnu.org/distros/free-distros.html
[apple]: https://stallman.org/apple.html
[rms]: https://www.fsf.org/about/staff-and-board
[gnu-noheard]: https://gnu.org/gnu/gnu-users-never-heard-of-gnu.html
Anything coming out of Facebook should be [cause for concern][rms-fb]. So,
naturally, one might be concerned when they decide to get into the virtual
reality (VR) scene by [purchasing the startup Occulus VR][fb-vr], makers of
the Occulus Rift VR headset. One can only imagine all the fun ways Facebook
will be able to track, manipulate, spy on, and otherwise screw over users
while they are immersed in a virtual reality.
Sure enough, we have our first peak: [the software that Facebook has you
install for the Occulus Rift is spyware][fb-spy], reporting on what
*unrelated* software you use on your system, your location (including GPS
data and nearby Wifi networks), the type of device you're using, unique
device identifiers, your movements while using the VR headset, and more.
This is absurd. Do not play into Facebook's games through temptation of
cool new technology; reject their terms and see if there's other ways you
can use the headset without their proprietary spyware. If not, perhaps you
should ask for a refund, and tell them why.
[rms-fb]: https://stallman.org/facebook.html#privacy
[fb-vr]: http://www.theguardian.com/technology/2014/jul/22/facebook-oculus-rift-acquisition-virtual-reality
[fb-spy]: http://uploadvr.com/facebook-oculus-privacy/