Even with multiple lines of defense in place, someone in your network is inevitably going to click on that attachment or link prompting them to open that scan or document they requested (if they would briefly stop and think about it, they actually did not scan or request any document) and the next thing you know every document on the shared drive is encrypted. Welcome to the wonderful world of ransomware!
The only real solution to this problem up until now once the damage has been done is to have a good backup (and/or Volume Shadow Copy). Although I have heard stories that you can actually pay the ransom fee and you will get your files back that may work for home users, but I doubt very much that an organization with hundreds of thousands of files infected is going to get off the hook for $500.
So for now restoring from the latest backup seems to be the best line of defense against ransomware, I do however anticipate a future where things will become much harder to protect against. For example, what if a crafty hacker was able to detect documents that are important, but are only opened once a year for review?
What can you do?
- For Windows workstations turn on System Protection and also make sure users either do not store documents locally (that is what I recommend) or have a backup in place.
- From servers: As I mentioned above, make sure you have backups and/or Volume Shadow Copy turned on.
- Read this
- This Scan Tool should be useful to identify encrypted files (I have never used it, though).
- Use Powershell to test files for Crypto. Typically it is easy to find out who is infected by checking the owner of an encrypted file and also recording the time when the file was last modified. The script below can be modified accordingly to scan through your shared folders and find what has been encrypted. Edit the file, then Dot-Source the file to your Powershell session (http://mikepfeiffer.net/2010/06/how-to-add-functions-to-your-powershell-session/) then run it by using:
Example Get-Postcrypto “E:\shared\Company”
# Script to test for Crypto
# Client: ALL
# Author: Peter Schwarz, Syndeo Technologies
# Version History:
# PS041514 Initial version
function Get-PostCrypto ($path)
$filesToCheck= Get-Childitem $path -Recurse
$tstamp=get-date -format yyyyMMdd_HHmmss
Foreach ($file in $filesToCheck)
$TestP = Test-Path $file.FullName -pathtype leaf
if ($dateMod -gt "03/27/2015 12:00:00" -and $dateMod -lt "03/27/2015 13:00:00" -and $fileOwner.Owner -eq $attackedUser -and $TestP -eq $true)
Write-Host $outfile $dateMod
$outfile|Out-File $logfile -Append