Transmission BitTorrent app contained malware
forum.transmissionbt.com
forum.transmissionbt.com
Questions like
- how did the compromised binary get there? Was the source code hijacked or was the binary altered after it had been built?
- Were the SHA256 hashes on the site also compromised (btw: Having hashes on the site is good enough for making sure you're not installing a corrupted binary. It doesn't do anything against intentional alterations of the binary though. These hashes need to be stored on an external site)?
- How did the compromise happen?
- what steps were taken to ensure that the same compromise doesn't happen to new binaries posted?
- Did the attacker leave any foothold on the compromised system(s)?
- How were such footholds removed?
All questions that need to be answered before it's safe to upgrade transmission either from the website or with the AutoUpdate feature. A red warning telling me that one binary was infected and that I have to download another binary isn't good enough.
I know the transmission people are volunteer developers and no PR people and I can totally accept that, but there's some things that just need to be made clear before we can safely update to later versions (and thankfully, 2.8 keeps running just fine)
Although I'm not a Transmission developer, I develop software that uses the same automatic update mechanism. It appears that the hacker did not update the MD5 present in the automatic update mechanism. (Sparkle) Thus, when the automatic update mechanism downloaded the hacked version of Transmission, it reported it as a corrupted download.
You can see the comment here: https://forum.transmissionbt.com/viewtopic.php?f=4&t=17834#p...
yeah. But not knowing how the attacker got access, we have no idea whether they have changed the current 2.92 binary again, this time remembering to update the hash in the appcast or whether this time around the binary is actually pristine.
The fact that the site was never down between this happening and the red warning text appearing makes me suspect that only a hasty cleanup was performed and that the actual security flaw might still exist.
Although that doesn't discount the recent MITM vulnerability Sparkle had and if transmission is still using an old version of the framework.
https://www.virustotal.com/en/file/d1ac55a4e610380f0ab239fcc...
(Look under the "Behavioural information" tab)
Written Files and Created Processes are interesting:
[Transmission] /Users/user1/Library/kernel_service (successful)
[unknown] /Users/user1/Library/.kernel_pid (successful)
[unknown] /Users/user1/Library/Saved Application State/org.m0k.transmission.savedState/window_1.data (successful)
[Transmission] /Users/user1/Library/Saved Application State/org.m0k.transmission.savedState/data.data (successful)
[Transmission] /Users/user1/Library/Saved Application State/org.m0k.transmission.savedState/windows.plist (successful)
[kernel_service] /Users/user1/Library/.kernel_time (successful)
Created processes
/Volumes/Transmission/Transmission.app/Contents/MacOS/Transmission (successful)
/Users/user1/Library/kernel_service (successful)
kernel_service (successful)
Edited to add: If anyone has a copy of the DMG, sha1 5f8ae46ae82e346000f366c3eabdafbec76e99e9, please link me a copy via email (brendandg@nyu.edu) or twitter DM (@moyix).
Why should it? For open-source software build-server can even be ran by a third party.
As far as I know, only the binary was updated.
I'd be interested to hear, though, how it got compromised after all.
https://reproducible-builds.org
And even if you sign updates, the key management for doing that is usually centralized, which can be bad:
http://arstechnica.com/security/2016/02/most-software-alread...
[1]: http://researchcenter.paloaltonetworks.com/2016/03/new-os-x-...
Jenkins (and CI in general) can be a very weak point. This was posted on Hacker News a while back https://github.com/samratashok/ContinuousIntrusion
How to Protect Yourself
Users who have directly downloaded Transmission installer from official website after 11:00am PST, March 4, 2016 and before 7:00pm PST, March 5, 2016, may be been infected by KeRanger. If the Transmission installer was downloaded earlier or downloaded from any third party websites, we also suggest users perform the following security checks. Users of older versions of Transmission do not appear to be affected as of now.
We suggest users take the following steps to identify and remove KeRanger holds their files for ransom:
1. Using either Terminal or Finder, check whether /Applications/Transmission.app/Contents/Resources/ General.rtf or /Volumes/Transmission/Transmission.app/Contents/Resources/ General.rtf exist. If any of these exist, the Transmission application is infected and we suggest deleting this version of Transmission.
2. Using “Activity Monitor” preinstalled in OS X, check whether any process named “kernel_service” is running. If so, double check the process, choose the “Open Files and Ports” and check whether there is a file name like “/Users/<username>/Library/kernel_service” (Figure 12). If so, the process is KeRanger’s main process. We suggest terminating it with “Quit -> Force Quit”.
3. After these steps, we also recommend users check whether the files “.kernel_pid”, “.kernel_time”, “.kernel_complete” or “kernel_service” existing in ~/Library directory. If so, you should delete them.
It's fascinating!
https://en.wikipedia.org/wiki/Command_and_control_%28malware...
I just learned that too. For me, C&C reminds me "Command and Conqueer" (the game).
Analysis: http://researchcenter.paloaltonetworks.com/2016/03/new-os-x-...
They ask (only) 1 BtC as a ransom.
Screenshots of the web UI:
[1]: https://twitter.com/claud_xiao/status/706563279355645953
Same, and I also don't see any `kernel_service` process running.
Fingers crossed for the in-app update not being affected by the hack.
EDIT: welp, BitDefender found nothing, all clear.
――――――
¹ — https://en.wikipedia.org/wiki/Clam_AntiVirus#Mac_OS_X
Have a trusted machine kept in a secure location to sign it for you if that's practical.
I bet someone's key leaked out here.
When you can't (be bothered to) vet the source code, stick it in a vm. On a sensible machine with an ssd it's only 10 seconds away. Why risk it. Especially if the software you want/need to run only works under windows.
The way I see it, they're more secure that running the same apps on bare metal. Ubuntu host running a Fedora VM; the latter (with Transmission etc) only running when I need the apps running - seems an almost entirely painless way of providing a lot of security.
* http://arstechnica.com/security/2015/05/extremely-serious-vi...
* http://www.securityfocus.com/archive/1/495095
* https://www.cert.be/advisories/oracle-vm-virtualbox-two-priv...
* http://www.coresecurity.com/content/virtualbox-privilege-esc...
Lets try to avoid treating security as something binary.
VMs have tons of well documented issues. If you want a smaller attack surface, try OS virtualization technologies (zones/jails)
It should be able to sandbox Windows Apps, except for Metro/Modern UI Apps and Microsoft Edge.
Too many programs are having a backdoor or Trojan in them now. It is a good idea to run any app that accesses the Internet in a sandbox first to see what it does.
And they have prepackaged sandboxed apps:
It isolates the process, all writes (filesystem, registry) go to the sandbox instead of the host filesystem, so a malicious software can't easily install itself. But reading data is mostly unprotected by default, so a malware ran in a sandbox may steal some sensitive data. To protect such data you have to pre-configure sandbox manually.
Note that I've only used it to run Linux so far.
Neat. Never heard of this one before - what makes it special?
But still, this is about malware in Transmission itself, not anything downloaded using it. So the fact that it's a BitTorrent client is rather beside the point, I think.
http://www.cnbc.com/2016/03/06/reuters-america-apple-users-t...
- It's Ransomware.
- Seems to be a 3 day grace-period (chance to remove it, possibly).
- The Transmission developer certificate [Gatekeeper] has been revoked.
On the other hand, the Windows and OS X App Stores are awful. Linux package managers are looking like one of the only straightforward ways to distribute applications securely.
A checksum is NOT a substitute for a digital signature.
https://paragonie.com/blog/2015/08/you-wouldnt-base64-a-pass...
In the case where the attacked has direct control over the website then you're right, it doesn't help at all.
I was pretty sure that's the threat model we were discussing: Software authenticity.
The only way to automatically know if a piece of software is legitimate is to have a trusted public key that can verify a signature.
Also, HTTPS is implied these days. If you're not using HTTPS, you are either malicious, negligent, incompetent, or working for someone who is some or all of the above.
Or poor. Hosting large amounts of binaries over https isn't cheap. I just priced Amazon S3 and cloudfront and for the amount of data that I serve it would cost $300 per month. That's a lot to commit for a GPL-ed binary that brings in practically zero revenue. Maybe there's a cut rate VPS out there that can handle 150GB of data and 3TB of bandwidth per month on the cheap, but I haven't found it yet.
Maybe like pointed out in another reply, not for checksums but for signatures. So you just copy/paste the signature after selecting a file, and then it can verify it's validity.
Is there no such extension yet? it seems like there should be one already.
You could pay for it with some sort of sponsorship from apps themselves, who have an interest in not getting compromised like this (it's terrible publicity).
With digital signatures the problem is that I don't often know who is the official author of the app.
Linux distributions package what is released upstream. If upstream is compromised, so is the Linux package.
Barring a situation where a CDN hosting the download is compromised but the main site is not hosted on the CDN, it's extremely unlikely that someone would have the ability to inject malware into the download and not have the ability to make the checksum match. Posting checksums is actually pretty useless, and was something that used to be used to deal with the possibility of malicious mirrors, but doesn't provide any security against mitm attacks (unless the main site is secure but the downloads aren't which is idiotic by 2016 standards anyway), the site getting hacked, etc.
Digital signatures are a little bit better if the key is kept safe, since hacking the site and replacing the binary won't allow a random person to produce a valid signature, although ability to modify the source code would still allow someone to introduce backdoors into the next version, but there's still a huge problem where you need some way to determine what key was supposed to be used to sign the binary in the first place, so just posting a signature on a website is also basically useless.
Digital signatures can work if there's some sort of centralized distribution method, or for safely updating software that's already installed.
https adds a performance hit. The security of "checksum over https and actual file over http", if the checksum is checked, is the same as "actual file over https", barring preimage attacks.
https://www.whonix.org/wiki/Download_Security
>Practically it is difficult to provide SSL protected downloads at all. Many important software projects can only be downloaded in the clear, such as Ubuntu, Debian, Tails, Qubes OS, etc. This is because someone has to pay the bill and SSL (encryption) makes it more expensive. At the moment we don't have any mirror supporting SSL. We're looking for SSL supported mirrors to share the load.
Is it not true that mirrors supporting SSL are more expensive?
"On our production frontend machines, SSL/TLS accounts for less than 1% of the CPU load, less than 10 KB of memory per connection and less than 2% of network overhead. Many people believe that SSL/TLS takes a lot of CPU time and we hope the preceding numbers will help to dispel that." - Adam Langley, Google
Getting an SSL certificate used to be a cost, but that's taken care of now by https://letsencrypt.org/.
There are multiple named projects there that aren't using SSL, and I don't think it's just laziness. If you know of a way for them to use SSL mirrors for no additional cost, I'll work on getting them to switch over.
I suspect that wiki page you linked might be out of date. It seems like all of the Whonix download links on their website are over https, like the VirtualBox images https://www.whonix.org/download/12.0.0.3.2/Whonix-Workstatio....
Whonix also runs a tor mirror, which has significantly more overhead than TLS.
I seem to remember downloading whonix from their site over HTTP around a year ago.
Do you see a tails HTTPS mirror?
For tails: https://tails.thecthulhu.com/. It appears to be the same server behind http://dl.amnesia.boum.org/ based on the TLS cert.
The situation is messy to actually use https for all of these projects, but I think the issue now is organization rather than overhead.
HTTPS will ensure integrity of your download automatically with no action required from the user.
Checksums require the user to perform the integrity check manually, and 99.9% of users wont bother.
Please don't put your users at risk just to save a negligibly small number of CPU cycles.
> just to save a negligibly small number of CPU cycles
The link above says they can't afford the additional cost. If it's so negligible, would you sponder the cost of those extra cycles? I'm sure they would host on SSL if someone covered the cost.
> On our production frontend machines, SSL/TLS accounts for less than 1% of the CPU load, less than 10KB of memory per connection and less than 2% of network overhead. Many people believe that SSL takes a lot of CPU time and we hope the above numbers (public for the first time) will help to dispel that. [0]
[0]: https://www.imperialviolet.org/2010/06/25/overclocking-ssl.h...
"By default". Most developers don't bother to register, and lots of people change the default (and after that, they can right click to open the app and bypass the warning).
I have to admit that Windows' UAC is better in that regard, as it shows the signees name. But of course this is only useful if you know the "right" name.
[0] http://researchcenter.paloaltonetworks.com/2016/03/new-os-x-...
(There is third party tool named RB App Checker which does make these tasks a bit easier, though)
――――――
¹ — https://en.wikipedia.org/wiki/Installer_(OS_X)
² — http://f.cl.ly/items/1s1E3n19273M1l3i3S2X/developer_id_insta...
“The two KeRanger infected Transmission installers were signed with a legitimate certificate issued by Apple. The developer ID in this certificate is “POLISAN BOYA SANAYI VE TICARET ANONIM SIRKETI (Z7276PX673)”, which was different from the developer ID used to sign previous versions of the Transmission installer. In the code signing information, we found that these installers were generated and signed on the morning of March 4.”
From: http://researchcenter.paloaltonetworks.com/2016/03/new-os-x-...
and that didn't ring any alarm bells?
“And according to the analysis, this is exactly what they did. They used a different cert to sign their malware. I have to admit that Windows' UAC is better in that regard, as it shows the signees name. But of course this is only useful if you know the "right" name.”
“Yeah, I think this is a major issue on OS X. For the average user it is impossible to tell who signed an app, if it is sandboxed, and what permissions it has. Hell, using the codesign command to extract entitlements from all binaries in a package is hard even for advanced users... (There is third party tool named RB App Checker which does make these tasks a bit easier, though)”
…in this comment thread: https://news.ycombinator.com/item?id=11234966
[0]: https://forum.transmissionbt.com/viewtopic.php?f=4&t=17835
Many people would uninstall and download it over again when running into that kind of error message.
Given trust in the protection of the private key used to sign the hash list file the integrity of the executable content can be proved (assuming useful SHA1 collision creation is prohibitively expensive).
Coincidentally I was writing a Bash script this weekend to auto-install (Ubuntu) releases into LVM volumes and it includes the following code to verify the download:
set -e
# ...
ISO="${NEW_DIST}-desktop-${ARCH}.iso"
for F in SHA1SUMS SHA1SUMS.gpg ${ISO}; do
if [ ! -r $F ]; then
wget http://cdimage.ubuntu.com/${FLAVOUR}/daily-live/current/$F
fi
done
if ! gpg --verify --keyring /etc/apt/trusted.gpg SHA1SUMS.gpg SHA1SUMS; then
echo "Error: failed to verify the hash file list signature; files may have been tampered with"
exit 2
fi
if ! grep ${ISO} SHA1SUMS | sha1sum -c; then
echo "${ISO} is corrupted; please try again"
exit 1
fiIt's not idiotic at all. You let anyone who wants to spread the load by providing downloads, but you use checksums - behind https - to ensure they can be trusted.
Doesn't seem like a horrible idea to me: you could just add the developer's key to your client, have your client broadcast interest, receive a _signed_ list of available software with appropriate magnet info... Download servers could serve as initial trackers until enough information has propagated through the network for downloads to be trackerless. Checksums? Guaranteed. Signatures? Acquired. Checking? Performed automagically.
Granted, this just moves the point of failure to the developer's key. (Key acquisition needn't necessarily take place on the developer's site, a friend in the network could pass you a link containing the dev's key and the application's magnet info.)
Debian: have to also fool several people involved in the packaging of said package upstream and everyone using it and building from source
This wouldn't help anyway. If the malicious party had access to alter the downloads (as they did here) they could just as well change the checksum shown on the page to.
>On the other hand, the Windows and OS X App Stores are awful.
Haven't used the Windows one, but what's "awful" about the OS X one? Quick, one click, installations, isolated, signed, easy updates.
Might be bad for the application developers somehow, but I don't see anything much bad about it from a user perspective -- except maybe the lack of trials. Then again I've been able to get a refund any time I bought an app that was subpar and written to Apple (that was 2 times).
Unless you are a small independent app developer. Virtually no distribution wants to take proprietary software. And you have to package for a wide variety of different distributions.
On the other hand, the Windows and OS X App Stores are awful.
The Mac App store works pretty much effortless for me. It's sometimes a bit slow, but other than that it's pretty trivial to use.
I'm game, but I need a little help. What are your favorite techniques for verifying downloaded programs?
But there are a number of things that can be done:
- always verify the checksum (if available), in case the download mirror (but not the web site itself) got compromised.
- check for strange strings in the binary (use "strings" and "grep"). E.g. URLs
- scan the downloaded file on Jotti or VirusTotal.
- unpack the binary manually with 7-zip or similar if it's a self-extracting file.
- check installation scripts, build files, etc. (if applicable).
- if downloading source code, check a couple of files at random. Will most likely not protect you, but if everyone does it, it helps detecting embedded malware (or bugs) early.
- run "strace" (Linux/Unix) or "FileMon" (Windows) or similar software and log what the software does when you install and run it for the first time.
- and check Hacker New regularly ;)
As such, checking the source is still very much relevant here since this wasn't a compromised app in the Mac App Store, it's an app distributed outside it.
- There's no means of providing paid upgrades. E.g. for a major version bump, which a lot of developers rely on to keep their business afloat.
- The store interface and navigation are also much slower than the iOS counterpart.
- Recently some certificate issues rendered users unable to open their apps.
- Not 100% sure on this one: You can't download older app versions if your OS is no longer supported.
Apple and other do this by simply numbering the names of apps. They don't allow you to specify special "upgrade" pricing, but the effect of this was that developers no longer really have full retail pricing and everything is just set to the upgrade price.
Logic Pro 8 for instance used to retail at $499. The upgrade price was $199. Now Logic Pro X on the Mac App Store is just $199 regardless of whether you are first time user or someone who had the previous version.
- The store interface and navigation are also much slower than the iOS counterpart.
I haven't really found that the Mac Store is any slower. I've found that they are both slow.
- Not 100% sure on this one: You can't download older app versions if your OS is no longer supported.
I don't believe it will even show you newer versions of the apps as long as the developer properly specifies the minimum OS version.
Alas, nobody wants to invest the day or so in actually writing the methods to do it.
It's good that the Transmission developer reacted quickly and made waves so that people can at least be aware that they might have been exposed..
But I wonder how many more applications from the hundreds that I have installed on my machines contain weird stuff - either intentional (for money) or unintentionally (result of a hack).
Open source software is especially vulnerable to this kind of stuff.
If a hacker gets access to a server holding the binaries for an open source app (which most people download), the hacker can just compile the program from sources and add his own code in there and place the installer online.
Given that many big governments are now involved in the information wars, this scenario is quite likely.
I am sorry, what? Why would open source contain more bugs/hacks than closed source specifically? It is more often in the news for few reasons, including that many projects are widely used. However it's against any PR from companies to have their security issues disclosed like they are in open source so they try to minimize the exposure. See [1]
[1] http://www.techrepublic.com/article/open-source-vs-proprieta...
SourceForge has been linked to bundled malware and hijacked projects like GIMP and FileZilla.
Code signing is used to prevent this. So, either the attacker has an Apple developer account (and is hopefully traceable through their credit card information), the Transmission project was sloppy with their signing key, or the machine of the developer with the signing key was compromised.
People have been ranting negatively about the Mac App store. But this is exactly why we need sandboxed applications by default (which is what the Mac App Store enforces). A sandboxed application cannot take your data hostage.
(Yes, I understand that App Store distribution is probably not possible for a Bittorrent Client.)
Sorry, I forgot another possibility: some other developer's key was compromised.
“The two KeRanger infected Transmission installers were signed with a legitimate certificate issued by Apple. The developer ID in this certificate is “POLISAN BOYA SANAYI VE TICARET ANONIM SIRKETI (Z7276PX673)”, which was different from the developer ID used to sign previous versions of the Transmission installer. In the code signing information, we found that these installers were generated and signed on the morning of March 4.”
From: http://researchcenter.paloaltonetworks.com/2016/03/new-os-x-...
http://www.bloomberg.com/research/stocks/private/snapshot.as...
So, it could be that the malicious part was not issued a key, but stole the key from this company.
So I think sandboxing is basically useless against these kinds of attacks. Either they allow apps to elevate their entitlements in an update, or they don't and developers will always out-out from the start (or pick the widest set of entitlements available).
If sandboxing is forced with no opt-out, then users will have to jailbreak their computers so they can install Parallels...
There is no such entitlement:
https://developer.apple.com/library/mac/documentation/Miscel...
If you are talking about the 'open directory' dialog. Well, if a user is careless enough to just give a sandboxed app access to their complete home directory - tough luck.
So I think sandboxing is basically useless against these kinds of attacks.
No, it's not, because no entitlement allows blanket access to the user's home directory. Hence, an application cannot just encrypt all of the user's data.
I'm not sure I follow on this front. Proprietary software could be compromised (whether intentionally by the vendor or unintentionally by some outsider working on the software) effectively forever with no one noticing. At least with OSS, the number of eyes on the source makes it less likely that an exploit will exist for long (though the definition of "long" could vary wildly dependent on popularity and the skill level of the software's normal users).
"Given that many big governments are now involved in the information wars, this scenario is quite likely."
Again, this one seems to point more to proprietary software then OSS. A government only needs to compromise a single company to make an exploit happen in commercial software. OSS exploits can be caught by the Linux distribution vendors that package the software, the users, the developers themselves (who are often working at different companies and in different nations), etc.
So, it may seem easier to compromise an OSS project, by attacking the distribution server and uploading a compromised binary built from source with patches...but, there are many good ways to guard against that (though any single mitigation, like signing with developer keys, can be compromised, the more eyes the less likely it is to succeed for long). But, if a government compromises a company, or someone within that company, all bets are off, and the problem literally may never be found.
The risk is not in the sources, but in the server which hosts the installers. A hacker could just build the software from sources (adding his backdoor) and replace the original installers with his own.
You must be too young to remember how computer viruses originally spread by way of modified executable files: http://computervirus.uw.hu/ch04lev1sec2.html
Patching is possible, but why bother when you can compile the app from sources?
Nice book btw.
Well, imagine that you are the attacker here. Would you rather keep your malware source in sync with the upstream code and build every target every update, or just use an off the shelf binary wrapper. Would you answer the same if you were targeting more than one app (in the case of a CDN attack)?
The only scenario in which source level malware makes sense to me is this: you are targeting a specific application and you are able to get your code into the project's SCM. In this scenario OSS is no more vulnerable than closed source.
Give it 2 or 3 years and stories will come trickling out about how most OS apps have had commits from hackers, governments etc. So far most source checking - to the extent that it happens at all - is all about buffer overruns and the like; micro stuff that's easily catchable. Well, you say that, but, you know, heartbleed etc. But what about whole modules designed with two purposes in mind?
All software is vulnerable to bad actors writing malicious code. What makes it any safer if its proprietary software? In any case, in a pessimistic scenario you'd have to change your sentence to "give it 2 or 3 years and stories will come trickling about how ALL apps, open or closed source, were tampered with by hackers, the government, etc".
> Give it 2 or 3 years and stories will come trickling out about how most OS apps have had commits from hackers, governments etc. So far most source checking - to the extent that it happens at all - is all about buffer overruns and the like; micro stuff that's easily catchable. Well, you say that, but, you know, heartbleed etc. But what about whole modules designed with two purposes in mind?
Free Software has existed for over 20 years. Not to mention the fact that the same problem you describe is far more trivial for proprietary software. There's no straightforward way to find out if it's backdoored (although, luckily quite a few backdoors are done badly so we can find out). The point is that if you assume that all free software is compromised, you have to assume all proprietary software is compromised. I'd prefer to have some free software be compromised because then I'm not at the mercy of the vendor to fix it.
>Allow downloading files from http servers (not https) on OS X 10.11+
Mac version affected in OP was 10.10, though.
Maybe it had something to do with
>Change Sparkle Update URL to use HTTPS instead of HTTP (addresses Sparkle vulnerability) ?
Edit: it appears the infection was downloaded from a website, in which case this doesn't help. But one did say the in-app update failed on incorrect signature first.
This reads like they disabled Apple's "App Transport Security", which only allows HTTPS connections unless a program explicitly makes an exception. Introduced in iOS 9 and OS 10.11 (El Capitan). I bet the failing HTTP connections caused a bug in Transmission, and it was an easier fix to disable ATS than to transition whatever connection to HTTPS.
https://developer.apple.com/library/prerelease/ios/documenta...
Pretty sure this is for arbitrary downloads. Unless you want to prevent transmission to download from http based sources out of principle it makes no sense to do anything other than opting out of this behavior.
On the other hand, El Capitan came out last September. If this just changed in 2.9.0, the restricted HTTP connections can't have been that big of a problem.
<dict>
<key>Description</key>
<string>OSX.KeRanger.A</string>
<key>LaunchServices</key>
<dict>
<key>LSItemContentType</key>
<string>com.apple.application-bundle</string>
</dict>
<key>Matches</key>
<array>
<dict>
<key>MatchFile</key>
<dict>
<key>NSURLTypeIdentifierKey</key>
<string>public.unix-executable</string>
</dict>
<key>MatchType</key>
<string>Match</string>
<key>Pattern</key>
<string>488DBDD0EFFFFFBE00000000BA0004000031C04989D8*31F64C89E7*83F8FF7457C785C4EBFFFF00000000</string>
</dict>
</array>
</dict>
Does that mean I am infected?Perhaps a defense against this kind of attack would be an altered version of HSTS - one that protected the content of download links, and not just of sub-resources included on the page.
[1]: https://en.wikipedia.org/wiki/Transmission_%28BitTorrent_cli...
EDIT: I downloaded the Transmission 0.90 and 0.91 source code and took a look. The diff between them is quite small, with nothing suspicious being removed, and the 0.90 .tar.xz MD5 matches what Fedora used (according to http://pkgs.fedoraproject.org/cgit/rpms/transmission.git/com...). So, unless there was also a malicious source code change the developer didn't catch, Fedora's package should be clean.
Personally, pending further information, I've removed Transmission from my machine.
[1]: https://launchpad.net/~transmissionbt/+archive/ubuntu/ppa
So clone the last release version you trusted, build that from source and be happy?
The current version could be being compromised this minute for all we know.
Transmission was and remains my favorite torrent client on OS X, although I still like the torrent information presentation uTorrent had, and I still will run my old pre-adware 1.6.4 if I want more detail on a swarm.
Given that older versions still work, it seems exceptionally silly to delete an old version because of a site compromise.
Same is true for Windows and Linux.
There are privilege escalation bugs in any OS, but it is usually not a given. Throw the application into ~/Applications as a Mac bundle, worst that will happen is your account will be compromised. Much easier to detect and clean. Most trojans won't even succeed.
We are going to have these problems until the developer community realizes that executing a randomly downloaded package installer as a privileged user is giving away the keys to the kingdom.
Application stores is one solution, but really is not an open one. I'd rather see the apps distributed in a form similar to Apple app bundles, where a non-privileged user can just install the app into their home.
2. Most packages can be extracted with pkgutil and then just copied into ~/Applications.
It is infrequent that somebody needs to modify your OS and if they do, then they better explain why.
On a typical single-user setup, there's not much difference between an account compromise and a machine compromise anyway.
You seem to think that is unlikely. Why? New privesc bugs are found on a monthly basis in Linux and Windows. Does Grandma stay on top of kernel patches?
Nobody who does sandbox security (hint: I do sandbox security) thinks UID separation is sufficient to cordon malware anymore.
Because of the single user pc context. I've never seen a dropper that didn't have ring 0 later pull down a payload that escalated privilege. I'm not saying that it isn't possible, but at best it is very uncommon. I understand the better safe than sorry position, but with the context in mind, what safety are you getting by just assuming UID separation failed and going through the rigmarole of reinstallation? The user data has already been exposed.
I just don't agree with the simplified decision tree of "Infected --> reinstall", which disregards your work in sandboxing. Why should I even bother with the additional complexity of capability mode in my software, if we're all just assuming our defense has no depth.
Probably because it isn't very useful to the attacker. Pwning the single user's account is sufficient. But I wouldn't bet on that being the case if it happened to me.
> what safety are you getting by just assuming UID separation failed and going through the rigmarole of reinstallation? The user data has already been exposed.
Most user data is not executable, so can probably safely be copied over. But if you don't wipe all executable software on the system it's hard to tell if some of it is still infected.
> Why should I even bother with the additional complexity of capability mode in my software, if we're all just assuming our defense has no depth.
Well, I'm talking about today's legacy desktop (and, to some extent, server) OSs, which have not prioritized user isolation because it hasn't really mattered ever since people stopped using timeshare systems.
Modern OSs that sandbox applications (e.g. ChromeOS, Android, iOS) are another story. I would expect that one Android app being malicious does not mean you have to wipe your phone, just uninstall the app. I would expect that ChromeOS can even recover from a full sandbox breakout, given secure boot.
But I don't trust Linux, Windows, or Mac OS desktops to be suitably hardened nor able to recover. And as wiping the whole system does not add very much cost over the cost of wiping the user account, it seems to me worth it to go all the way.
Ring 0 is really important for building a botnet, which provides a very real incentive for the folks that actually write the droppers. Ideally (for the botnet owner) they establish persistence, then sell access by directing the bots to download additional malware under the control of botnet customers. Long story short: you don't get paid as much if you don't have ring 0.
> Most user data is not executable...
I was speaking from the perspective of the real purpose behind all this, protecting user data - and that the horse is already out of the barn. As far as cleanup, you are presupposing a loss of ring 0. If ring 0 is secure then killing all the user processes and performing a snapshot rollback of user space will definitely clear the malware.
> Well, I'm talking about today's legacy...
Ah, well then I agree. If your platform does not have user isolation, then you shouldn't rely on user isolation for security.
> And as wiping the whole system does not add very much cost...
Well we've got a catch-22. Because implementing security practices that do harden the system add a lot more cost to a hamfisted wipe. For example: On my laptop I've got five jails, a maze of netgraph nodes that result in a complex ruleset, host IPS, kerberos authentication and authorization, encrypted filesytems, close integration with TPM and various certificate based credentials. Just assuming that none of that works and doing a system wipe is a lot more work than simply popping in the latest Ubuntu dvd iso... consider the labor of rekeying alone.
So the advice to do a system wipe isn't bad, but it should be prefixed with: "If you've made no effort to secure your system and are completely relying upon the distro provider for security".
Don't forget the grandson part of the metaphor, he is the one who will be making that judgement call. Do you remember how everybody would blow into the Nintendo cartridges, even after Nintendo explained why it was a bad idea? I have a feeling that helpdesk folks will continue to advise a system wipe, even if your running the latest Windows 25 with its formally proven microkernel... just to be safe.
It's the stuff inside $HOME (and $HOME/Documents) that's valuable. Not system binaries in {/bin,/sbin,/Applications} that can be re-downloaded in a second.
The problem is that any non-sandboxed app runs with the same uid and full read/write permissions to all of $HOME as well as all the other running processes, even if it only needs read/write access to $HOME/Documents/Appname/ and none of the other pids.
Second, most malware requires and counts on having admin privileges on target machine. The task of auditing, cleaning and finding out that malware is present is significantly easier if malware is limited to a non-privileged account. With malware running as a non-privileged user you still have to clean up and recover, but you can easily switch an account, compare, audit and trace. The anti-malware tools also still have a chance when OS is not compromised, otherwise it's all lost the moment you ran a malicious post-install script.
The more common problem, however, is a regular app install. The goal of the application packager is to make their application work first, and preserve your environment second. So, in many cases even not malware does bad things to your OS. The scripts are usually written by devs that are fairly clueless, which leads to some pretty awful stuff in them. Almost 100% of the time the install/uninstall action is not idempotent, although it should be.
What really needs to happen is a shift in a mentality that accepts the idea that apps need to be installed as an administrator (unless the apps are a part of the main OS distro).
The only solution is sandboxing everything.
In practice, however, it is much easier to deal with malware if there's no admin rights. It matters even for a clueless user, since the OS mechanisms of detection can't be altered and more much so for a power user.
This specific malware installs a kernel module, as far I can tell. I am guessing it would be harder to encrypt data and not be noticed and removed quickly.
Of course, there are even more obvious reasons, like sharing a computer with... kids that tend to bring malware at every turn.
We really need to educate the devs and change the culture. There's no reason for something like a word processor and file sharing app to require full access to the system. That's why we have access controls in the first place.
If you really believe this, run rm -rf ~ on your computer right now. Also rm -rf /Volumes/* (on OS X) or wherever your network/external drives are mounted on your OS. Since you don't have admin privileges, nothing bad happened right? Because that is the primary goal of ransomware.
Anyway, this specific malware doesn't even attempt to acquire root; it operates entirely as your local user. And there's no installer package, so why are you complaining about them?
I've just been looking at BitDefender, which looks promising, but would rather get this right than faff around with potentially crappy AV tools.
Common Sense 2016, see https://github.com/drduh/OS-X-Security-and-Privacy-Guide
Nevertheless, I still believe Common Sense to be a better alternative to bloated, vulnerable anti-virus programs.
When it comes to checksums with have the chicken egg problem plus the collision attack of md5.
MD5 has been the standard for too long (and is deprecated since 10 years for crypto checksum). And for next generation of softwares to install that don't do modern checksum how can they trust the download of the package required to check for whatever the new format? Plus the new format is less likely to be checked without errors. A off by one character could easily be discarded in checking given the number of packages that are now required to be installed and the human limitation in focus.
Human are the limiting factors, and security is modeling the user in a kind of grotesque caricature of a robot that can check thousands of informations perfectly and remember 20 characters passwords for tens of appliances.
There is a tyranny of computer engineers regarding what is safe for people having a life not concerned about geeky technology that is a tad annoying.
People have the right to be human and to fail is human. The burden put on human to make the system safe in order to avoid costly for the bosses human interactions is way to high.
And since computer security always blame failure on human behaviour I begin to positively dislike it.
You know you can make that complaint about any tool or technology, right?
"Gosh why do I have to follow all these rules and observe traffic lights to drive a car?" (something that actually intimidates me, in fact, because I've never driven a car.)
"Why do I have to worry about cutting or burning myself or someone else while trying to cook a meal?"
"Why are all these procedures and protocols, like schools and banks and taxes, required to function at all in contemporary society?"
Until computers advance to the point of being artificially intelligent familiars that can figure out exactly what we want from a simple vocal command and do something even better, we're gonna have to put in a little effort from our end to make them work the way we want them to.
There are fields of engineering where an accident even due to human causes is systematically seen as an engineering problem.
And that may be the reason why traveling by plane and train are safer than by car.
But US engineers made a great job at convincing legal department that poorly engineered goods where not the causes of accidents.
In those other fields, such as automobiles, an accident by a person may cause death of another.
On a computers your careless may not cause someone else to outright die (which tends to cause a lax attitude on the part of users) but they can still cause someone else harm, like inadvertently leaking someone's financial information or causing malware on your device to participate in a DDOS attack on someone. Time and again it's been proven that users are often the weakest link in this field no matter how tight the security is. It's only understandable for the engineers to be annoyed.
I'm curious what sort of malware we're looking at. Botnet? General remote access/control? Harvesting keychains?
http://www.cnbc.com/2016/03/06/reuters-america-apple-users-t...
> The malware is programmed to encrypt files on an infected personal computer three days after the original infection, according to Olson.
Anyone who may have been hit, update your backups NOW so you can restore the files.
Safer option would be to create a write-only network share on another computer and copy files to that.
It is updated and at 2.92 now, also [3].
(I'm one of the maintainers of Homebrew Cask)
[1] https://github.com/caskroom/homebrew-cask
[2] https://github.com/caskroom/homebrew-cask/issues/19504#issue...
You may be interested in https://www.macports.org for a build-from-source solution for OSS projects.
I saw some post on forum where dude said how his Xprotect now contains at the top OSX.KeRanger.A entry, and said how it means he got infected. It didn't made much sense to me, but I checked mine this morning and found the same entry? Does it mean I am infected too?
But I didn't download anything from their website like 3 months back, I just did the update to 2.90 in Thursday or Friday can't remember, and yesterday as soon as I saw the news I update everything and checked for malicious files and processes which weren't present on my machine.
The entry doesn't exactly mean you're infected, but just that your copy of the file was updated.
I have the entry for instance, but I was never infected. You can check your copy of XProtect with this command (I have 2076):
defaults read /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/XProtect.meta Version
Edit: Looks like you do get a message before launching an app, if it's identified by XProtect/File Quarantine.
Checked on IRC, it seems that sparkles prevented infection for those who updated their app, like I did. Screw all this, as I read in one of the comments here, I will run transmission through Docker container on RPi running FreeBSD.
"Everyone running 2.90 on OS X should immediately upgrade to and run 2.92, as they may have downloaded a malware-infected file. This new version will make sure that the “OSX.KeRanger.A” ransomware (more information available here) is correctly removed from you're computer.
Users of 2.91 should also immediately upgrade to and run 2.92. Even though 2.91 was never infected, it did not automatically remove the malware-infected file. "
https://trac.transmissionbt.com/changeset?old_path=%2F&old=1...
Ironically I decided to use the good, ol', trusted open source alternative transmission because I just read on HN that Transmission gets updated again...
1: https://github.com/caskroom/homebrew-cask/issues/19504#issue...
I've unplugged and archived the TimeMachine backup disk and done the prescribed cleanup actions to remove he malware. I guess time will tell if it had any other tricks up its sleeve.
The good of this mess is that I realized I only had one Time Machine backup going on that machine. I had turned off the remote backup a month ago while shoving backups around on the remote server to make more room and hadn't restored it. One backup is too few.
The weakness exposed is that if the remote were mounted, this malware would have nailed it too. I'll have to look at having the remote make filesystem snapshots on its end so malware can't corrupt my older backups.
1. Apple revoked the certificate already. Thus people that have gatekeeper on are safer.
2. Sparkle (for auto updater) denied the malware infected update. Thus downloading from the main website is not necessarily safer, even with the recent mitm sparkle vulnerability.
Somehow I found it out of place, especially as they have never posted about TransmissionBT before. They sure did get lots of people to update after putting in on front page.
[1] = https://sparkle-project.org/documentation/security/
[2] = https://trac.transmissionbt.com/log/tags/2.92/macosx/Sparkle...
I'm also running the usual litany of tools to check for activity (Wireshark on my WAN Tap, Anti-virus, etc)
My Synology NAS uses transmissiond for its BT Client, so I will be contacting them to see if they are affected by this issue.
"#Transmission just pushed 2.92 update that includes code to > detect and to remove the #KeRanger ransomware. Update it before Monday 11:00am."
https://www.virustotal.com/en/url/73d82ff580cd445b907c6334c7...
F* GUI /s
GPG verification where available and refusing to install Casks without a checksum is also in the pipeline.
(I'm one of the maintainers of Homebrew Cask)
[1] - http://www.reuters.com/article/us-apple-ransomware-idUSKCN0W...
Just because attackers can break out of VMs, doesn't mean that they always do. I wager most malware out there isn't set up to do that.
Locking your car door won't keep a dedicated attacker out of your car. Simple ceramic shards from a sparkplug will get them through the window with barely any effort at all. Nevertheless, locking your car doors is an effective way to reduce your risk, as it dissuades more opportunistic attackers.
> from Greek analogia "proportion," from ana- "upon, according to" (see ana-) + logos "ratio," also "word, speech, reckoning" (see logos). A mathematical term used in a wider sense by Plato.
http://www.etymonline.com/index.php?allowed_in_frame=0&searc...
> [...] from properly feminine of λογικός (logikós, “of or pertaining to speech or reason or reasoning, rational, reasonable”), from λόγος (lógos, “speech, reason”).
https://en.wiktionary.org/wiki/logic
There is no analogy without logic. I even fail to recognize a difference between speech and logic, speech without logic, by analogy, would be just noise.
The facts that the english word analogy descends in a complicated manner from a greek word referring to mathematical proprotions, and the english word logic descends in a somewhat less complicated manner from a greek word referring to speech, and that those greek words shared their pronunciation, tell us nothing about the relationship between analogies and logic.
A standard chinese term for "analogy" (also, "metaphor") is 比喻 biyu. The term for "logic" is 逻辑 luoji (it is a loan word from english). Are you prepared to grant that, while analogies and logic are necessarily intertwined for people who speak english or greek, they are unrelated for people who speak modern mandarin chinese?
No linguistic reasoning is needed however, to see that an analogy essentially needs logic to work in any language. It helps however. EG in English tongue still language in an idiomatic metaphorical sense, analog to the original meaning of logos, tongue, metaphorically referring to speech.
My argument is not ignorant, anyway, it's arrogant.
Αναλογία means the comparative association of two (antithetical) objects in quantity, size, etc.
Λογική means to reason with a basis in reality.
I stand by "extremely ignorant".
Someone who doesn't even understand that and that the linguistic argument is of the table, and still keeps going, shouldn't try to talk about logic, as right as some of the individual arguments might be. Ana-logically, I shouldn't be writing any more about this.
Sure. That's why sometimes we see such bad analogies, the logic doesn't match so well the actual idea. When the idea you are trying to convey isn't that complicated at all you're probably better off using just pure logic and not complicated constructs such as analogies.
As for speech, indeed, there's a deep logic bounding the language structures we use. The problem with language (logic and meaning wise) is that language is relative to the environment and to the speakers of the conversation. You have to figure out the "language game" where the conversation is being held. As for logic, we expect no subjectivity (if there is subjectivity it's bad logic).