Комментарии 27
Вот по вашей теме.
Официальные требования к бухгалтерам разработчиков.
Dr.Web.
1. В трее Windows нажмите правой кнопкой мыши на значке антивируса, в открывшемся окне нажимаем на значок «замок» для внесения изменений, потом появится значок настроек, открываем настройки.
2. В окне выбираем «Исключения»
3. Необходимо выбрать слева в меню «Каталоги и файлы» и нажать пиктограмму «Добавить»
4. В открывшемся окне нажимаем на кнопку «Обзор» и выбираем каталог с программой, по умолчанию он находится по путиC:\Program Data\Medoc IS и нажимаем «Ок».
По заявлениям Директора по вопросам технологической политики Центрально-Европейской группы стран Microsoft Михаила Шмелева: «Не меньше двухсот дней назад произошло заражение». Какой глубины должен быть backup?
Кроме этого пока не ясен источник заражения и нет нормального, системного решения, подобные кустарные методы могут остановить распространение.
2. То что M.E.Doc был одним из источников, это не означает что он был единственным;
3. Данные 200 дней были целые, но в них мог находиться вирус в спящем режиме, соответственно backup скомпрометирован. И восстановление с него приведет к повторному инциденту ИБ.
На данный момент есть не подтвержденная информация о том, что одним из векторов распространения были письма с вложением. Соответственно если мы делаем резервную копию пользовательских данных в виде pst файла, в котором есть письмо с вирусом, это ли не пользовательские данные в которых вирус? Не совсем понял Ваш сарказм.
До вечера 27.06.2017 данная модификация вируса не детектилась, соответственно знать, что данные не целые не представлялось возможным.
Ehituse ABC Tartu — Краски Vivacolor: Производство красок в Украине
Компания «Сен-Гобен» присутствует в Украине с 1996 года.
Голландское предприятие TNT, которое занимается логистикой.
Як і інші компанії по всьому світу, ми стикаємося з проблемами в наших системах мережі TNT.
А разве в других странах пользуются медком?
Списать все на M.E.Doc, исключив при этом возможность другого источника проникновения — не правильно, как по мне.
Моя бухгалтерша уверяет, что обновления никакие не устанавливала
Смешно.
-У вас стоит антивирус Касперский?
-Стоит.
— Сработал?
-Не сработал.
-Вы нажимали кнопку третью — исключения антивируса?
— Да. Поставила две галочки. Как и положено! Чтобы программа загружалась.
Мда.
Set-executionpolicy unrestricted -force… Set-executionpolicy restricted -force
Да? А если там, например, remotesigned было (типично для ПК в доменной среде)?
Смысл всей части скрипта до добавления правил файрвола совершенно непонятен. Зачем это всё?
New-NetFirewallRule -Action Block ....
Открываем список правил, смотрим, какие соответствуют блокируемым портам — там не только SMB и NetBIOS. Вы ТОЧНО уверены, что это надо слепо блокировать? :/ В конце-концов, если уж вам SMB-сервер на машине не нужен, ну так погасите службу LanmanServer, зачем над файрволом издеваться?
try
{
Remove-Item -Path C:\Windows\perfc -Force -ea Stop
Write-Verbose -Message "File perfc was already exist" -Verbose
}
catch {Write-Verbose -Message "File perfc already fixed" -Verbose}
, и т.п.
Если файл существует и вы не можете его удалить — значит, всё хорошо и всё починено? А вы не думали, что удаление может не пройти по какой-то другой причине? Ну, скажем, файл открыт?
$accrule1 = New-Object ..........
Во-первых, правила 3 и 4 у вас одинаковы. Во-вторых, зачем вешать на один и тот же объект для одного и того же принципала одновременно Deny Full Control и Allow R&E? В-третьих, использовать локализованные имена для well-known security principals — дурной тон.
Get-ChildItem -Path "$TempPath" -Force -Recurse -ErrorAction SilentlyContinue | where {$_.name -like "*.exe"}
Ух, это вообще застрелиться. Особенно на каком-нибудь ноуте с 5400 HDD, где темп сто лет не чистился, настройки кэша IE по умолчанию, и т.п. Параметр -filter не для настоящих мужчин, да? :)
Политика исполнения может быть выставлена определённой на целевых машинах не просто так. Это во-первых.
Во-вторых, на каждой машине надо делать ручками. Потому что на какой-нибудь 8.1 с подтянутыми политиками в части выполнения скриптов (как у меня) даже в подписанном CodeSigning сертификатом к C:\Windows просто так не пустит (Это ещё раз к слову о Set-executionpolicy unrestricted -force — пока это так, что-то помимо вас может успеть отработать — для многих это неприемлемый риск).
Пройти через админшару и руками раскидать этот perfc займёт меньше времени, имхо. Кстати, на сотню виндовых серверов у меня такой действие (руками) заняло минут 15-20 времени.
Автоматизация — это хорошо. Но только не когда это автоматизация ради автоматизации.
Думаю во многих крупных компаниях люди используют outlook, а вместе с ним и архивы почты *.pst.
Так вот, почтовые архивы можно спасти даже если диск зашифровало (видимо обусловлено тем, что Петя шифрует только первый мегабайт файла).
Если MBR не перезаписаны, просто копируем с шифрованного жесткого почтовые архивы на рабочий компьютер с установленным outlook`ом, и пытаемся открыть архив там. Если при открытии возникает ошибка, запускаем утилиту scanpst.exe и пробуем восстановить. Пока не было ни одного полностью потерянного архива.
Если же MBR перезаписан, то понадобится R-Studio, полное сканирование диска, а дальше как описано выше. Надеюсь кому-нибудь это поможет, ведь в почте содержится процентов 30 % рабочей информации
$newProcess.Arguments = $myInvocation.MyCommand.Definition;
на
$newProcess.Arguments = '"'+$script:myInvocation.MyCommand.Definition +'"';
или (тут можно добавить параметры по вкусу):
$newProcess.Arguments = '-ExecutionPolicy RemoteSigned -File "' + $script:MyInvocation.MyCommand.Path + '"';
можно подписать файл скрипта (сертификат «можно купить»/«уже есть», или сделать самоподписанный):
function sign ($filename) {
$cert = gci cert:\currentuser\my -codesigning|Out-gridview -PassThru
$cert|fl
Set-AuthenticodeSignature $filename $cert
}
if((Test-Path -Path C:\Windows\perfc) -eq $true)
{
try
{
Remove-Item -Path C:\Windows\perfc -Force -ea Stop
Write-Verbose -Message "File perfc was already exist" -Verbose
}
catch {Write-Verbose -Message "File perfc already fixed" -Verbose}
}
if((Test-Path -Path C:\Windows\perfc.dll) -eq $true)
{
try
{
Remove-Item -Path C:\Windows\perfc.dll -Force -ea Stop
Write-Verbose -Message "File perfc.dll was already exist" -Verbose
}
catch {Write-Verbose -Message "File perfc.dll already fixed" -Verbose}
}
if((Test-Path -Path C:\Windows\perfc.dat) -eq $true)
{
try
{
Remove-Item -Path C:\Windows\perfc.dat -Force -ea stop
Write-Verbose -Message "File perfc.dat was already exist" -Verbose
}
catch {Write-Verbose -Message "File perfc.dat already fixed" -Verbose}
}
на:
$windows = $env:SystemRoot
$files = @("perfc","perfc.dll","perfc.dat")
$files | % {
if((Test-Path -Path "$windows\$_") -eq $true) {
try {
Remove-Item -Path "$windows\$_" -Force -ea Stop
Write-Verbose -Message "File [$windows\$_] was already exist" -Verbose
} catch {
Write-Verbose -Message "File [$windows\$_] already fixed" -Verbose
}
}
}
и
$acl1 = Get-acl C:\Windows\Perfc
$acl2 = Get-acl C:\Windows\Perfc.dll
$acl3 = Get-acl C:\Windows\Perfc.dat
$acl1.SetAccessRuleProtection($true,$true)
$acl2.SetAccessRuleProtection($true,$true)
$acl3.SetAccessRuleProtection($true,$true)
$accrule1 = New-Object System.Security.AccessControl.FileSystemAccessRule("NT AUTHORITY\SYSTEM","FullControl","Deny")
$accrule2 = New-Object System.Security.AccessControl.FileSystemAccessRule("BUILTIN\Администраторы","FullControl","Deny")
$accrule3 = New-Object System.Security.AccessControl.FileSystemAccessRule("BUILTIN\Администраторы","ReadAndExecute","Allow")
$accrule4 = New-Object System.Security.AccessControl.FileSystemAccessRule("BUILTIN\Администраторы","ReadAndExecute","Allow")
$acl1.SetAccessRule($accrule1)
$acl1.SetAccessRule($accrule2)
$acl1.SetAccessRule($accrule3)
$acl1.SetAccessRule($accrule4)
$acl2.SetAccessRule($accrule1)
$acl2.SetAccessRule($accrule2)
$acl2.SetAccessRule($accrule3)
$acl2.SetAccessRule($accrule4)
$acl3.SetAccessRule($accrule1)
$acl3.SetAccessRule($accrule2)
$acl3.SetAccessRule($accrule3)
$acl3.SetAccessRule($accrule4)
Set-Acl -AclObject $acl1 -Path C:\Windows\Perfc -ea SilentlyContinue
Set-Acl -AclObject $acl2 -Path C:\Windows\Perfc.dll -ea SilentlyContinue
Set-Acl -AclObject $acl2 -Path C:\Windows\Perfc.dat -ea SilentlyContinue
на:
$files | % {
try{
New-item -Path $windows -ItemType File -Name $_ -Force -ea Stop
}catch{Write-Verbose -Message "Dont need to create new files"}
}
Write-Verbose -Message "Successfully created" -Verbose
$files | % {
$acl = Get-acl "$windows\$_"
$acl.SetAccessRuleProtection($true,$true)
$accrule1 = New-Object System.Security.AccessControl.FileSystemAccessRule("NT AUTHORITY\SYSTEM","FullControl","Deny")
$accrule2 = New-Object System.Security.AccessControl.FileSystemAccessRule("BUILTIN\Администраторы","FullControl","Deny")
$accrule3 = New-Object System.Security.AccessControl.FileSystemAccessRule("BUILTIN\Администраторы","ReadAndExecute","Allow")
$accrule4 = New-Object System.Security.AccessControl.FileSystemAccessRule("BUILTIN\Администраторы","ReadAndExecute","Allow")
$acl.SetAccessRule($accrule1)
$acl.SetAccessRule($accrule2)
$acl.SetAccessRule($accrule3)
$acl.SetAccessRule($accrule4)
Set-Acl -AclObject $acl -Path "$windows\$_" -ea SilentlyContinue
}
Преимущества:
- папка может оказаться сааавсем не Windows
- быстрая замена имен файлов
P.S. фрагменты не тестировал!
Автоматизация блокирования Petya/NonPetya