Wednesday, June 10, 2009

О "неправильном" вредоносном ПО, продолжение.

Я искренне верю, что это - последняя статья в этой печальной серии, поскольку мне действительно не хочется писать про одно и то же. Но здесь, при всей своей печальности ситуация более чем смешная.

Корпоративная служба безопасности, анализируя статистику вирусных заражений обнаружила, что существует ряд компьютеров, которые постоянно заражаются вирусами, несмотря на то, что на них стоит и исправно работает антивирусное ПО. Корреляция с журналами системы контроля доступа к периферийным устройствам показала, что заражающийся компьютер на съемные носители постоянно записывает autorun.exe
размером 37376 байт. При этом, наше антивирусное ПО никак не реагирует на этот autorun.exe. Согласитесь, подозрительно. Проверка альтенативным антивирусом обнаружила:

Еще более интересно, что оба файла имели одинаковый размер (те самые 37376) и одинковую сумму MD5 (ca82b32253f1cb11cf9e5ff83d87e01a):

Все банально и просто: вот оно, Virustotal подтвердил:

Антивирус

Версия

Обновление



Результат


a-squared

4.5.0.18

2009.06.09



P2P-Worm.Win32.Socks!IK


AhnLab-V3

5.0.0.2

2009.06.08



Win32/Socks.worm.37376


AntiVir

7.9.0.180

2009.06.08



Worm/Socks.FO


Antiy-AVL

2.0.3.1

2009.06.08



Worm/Win32.Socks


Authentium

5.1.2.4

2009.06.08



W32/Backdoor2.DJBR


Avast

4.8.1335.0

2009.06.08



Win32:Trojan-gen {Other}


AVG

8.5.0.339

2009.06.08



Win32/Heur


BitDefender

7.2

2009.06.09



Worm.Generic.28689


CAT-QuickHeal

10.00

2009.06.09



I-Worm.Socks.fo


ClamAV

0.94.1

2009.06.08



-


Comodo

1289

2009.06.09



Worm.Win32.Socks.~C


DrWeb

5.0.0.12182

2009.06.09



Win32.HLLW.Alupco.2


eSafe

7.0.17.0

2009.06.07



Suspicious File


eTrust-Vet

31.6.6548

2009.06.08



Win32/Ruternam.CZ


F-Prot

4.4.4.56

2009.06.08



W32/Backdoor2.DJBR


F-Secure

8.0.14470.0

2009.06.08



P2P-Worm.Win32.Socks.fo


Fortinet

3.117.0.0

2009.06.08



W32/Socks.FO!worm.p2p


GData

19

2009.06.09



Worm.Generic.28689


Ikarus

T3.1.1.59.0

2009.06.09



-


K7AntiVirus

7.10.757

2009.06.08



P2P-Worm.Win32.Socks


Kaspersky

7.0.0.125

2009.06.09



P2P-Worm.Win32.Socks.fo


McAfee

5640

2009.06.08



potentially unwanted program Generic PUP


McAfee+Artemis

5640

2009.06.08



potentially unwanted program Generic PUP


McAfee-GW-Edition

6.7.6

2009.06.09



Worm.Socks.FO


Microsoft

1.4701

2009.06.08



VirTool:Win32/Obfuscator.BO


NOD32

4139

2009.06.08



Win32/Zalup


Norman

6.01.09

2009.06.08



W32/Socks.BT


nProtect

2009.1.8.0

2009.06.09



Worm/W32.Socks.37376


Panda

10.0.0.14

2009.06.08



W32/Socks.E.worm


PCTools

4.4.2.0

2009.06.06



-


Prevx

3.0

2009.06.09



High Risk Cloaked Malware


Rising

21.33.10.00

2009.06.09



-


Sophos

4.42.0

2009.06.09



Troj/Agent-HMB


Sunbelt

3.2.1858.2

2009.06.09



P2P-Worm.Win32.Socks.fo


Symantec

1.4.4.12

2009.06.09



W32.Mandaph


TheHacker

6.3.4.3.342

2009.06.08



W32/Socks.fo


TrendMicro

8.950.0.1092

2009.06.08



WORM_SOCKS.CN


VBA32

3.12.10.6

2009.06.08



P2P-Worm.Win32.Socks.fo


ViRobot

2009.6.8.1773

2009.06.08



-


VirusBuster

4.6.5.0

2009.06.08



Worm.P2P.Socks.EY


Дополнительная информация

File size: 37376 bytes

MD5...: ca82b32253f1cb11cf9e5ff83d87e01a

SHA1..: ab73e86f1bbc3c27cfc1bf59424b8c6c682138ef

SHA256: b7a70b27c031e909ce6b83424f9689820b8a9eae588ae13d2161f38d2f79d57a

ssdeep: -

PEiD..: -

TrID..: File type identification
Win16/32 Executable Delphi generic (34.0%)
Generic Win/DOS Executable (32.9%)
DOS Executable Generic (32.8%)
Autodesk FLIC Image File (extensions: flc, fli, cel) (0.1%)

PEInfo: PE Structure information

( base data )
entrypointaddress.: 0x2008b
timedatestamp.....: 0x48668f41 (Sat Jun 28 19:21:37 2008)
machinetype.......: 0x14c (I386)

( 5 sections )
name viradd virsiz rawdsiz ntrpy md5
.fasm 0x1000 0xef59 0x0 0.00 d41d8cd98f00b204e9800998ecf8427e
.rsrc 0x10000 0xead4 0x7400 7.99 6716f029b8658f46046b914de9e7053d
.masm 0x1f000 0x1000 0xe00 7.95 3e3c58b59c610e620960c39e3eeba9ab
. 0x20000 0x4c6 0x600 6.51 ce8903a56868195191ecedaa1bbbe0f1
.share 0x21000 0x282 0x400 3.36 210c71be3c729397ad819d970ba45184

( 1 imports )
> gdi32.dll: GetTextExtentPointA, CreateDCA, CreateDCA

( 0 exports )

PDFiD.: -

RDS...: NSRL Reference Data Set
-

Prevx info: http://info.prevx.com/aboutprogramtext.asp?PX5=D23C58B2006B8FC292B400BD8F4B1A00FBB8E8A8>


Видим, что написано у McAfee? Потенциально нежелательное ПО! Т.е. "потенциально нежелательное ПО" превращает мою машину в рассадник вирусов и прочего фактические нежелательного ПО.

Почитаем на Symantec: "W32.Mandaph is a worm that spreads through mapped and fixed drives and may download additional malware on to the compromised computer".
От себя хочу уточнить, что это этот червяк не просто "может" загружать вредоносный код, а фактически это делает, что мы и наблюдаем. И при всем при этом (самостоятельное распространение, загрузка из Интернет прочего вредоносного ПО) McAfee не удаляет это из принципиальных соображений - ответ от поддержки в данном случае был ровно как и в этом: докупите модуль "Anti-Spyware Enterprise" и все будет хорошо. Бред. Мне, как конечному пользователю, все равно, как классифицировал вендор эту нечисть, поставив антивирус, я хочу, чтобы он делал свою работу!

Вообще, в моей практике я видел массу случаев, когда антивирус не спасал. У коллеги начали уже появляться мысли о смене антивирусного вендора, но лично я не поддерживаю эту идею. Мое мнение таково, что какой бы не был антивирусный вендор, все равно будут находиться "экземпляры", которые он не определяет. Проблема здесь в концепции "Enumerated Badness", которая уже давно устарела. Наступит время, когда размер сигнатурных баз привысит порог, позволяющий антивирусу работать "в реальном времени" (да и вообще работать), и это время не за горами. Мой небольшой опыт использования CureIT показал, что за последние 2 года его размер увеличился почти в 3 раза! В общем, прогноз таков, что сигнатурные антивирусы доживают последние времена, поэтому, менять вендора не имеет смысла.
Что делать? Скажу банальные слова: используйте эшелонированную оборону: несколько систем безопасности и коррелируйте их журналы. Каждая система имеет свои приемущества, они дополнять друг друга.

Tuesday, June 2, 2009

Гибкость и сложность

Где начало того конца, которым оканчивается начало?
Козьма Прутков. Мысли и афоризмы.


Нам часто приходится выбирать то или иное техническое решение на основании сравнения с аналогами. Как правило, при этом в приоритете оказываются решения, предоставляющие наибольшую гибкость: больше возможностей по настройке, больше функциональная область покрытия. При этом на этапе выбора никто не задумывается, что оборотная сторона гибкости - сложность настройки и, как следствие, последующей поддержки и обслуживания.

Не буду много вещать в защиту вышеупомяноутого тезиса, думаю, это очевидно: взяв самое гибкое из возможных решений, позволяющее удовлетворить любые требования к системе, - IDE , мы сталкиваемся с высокой сложностью настройки нашего решения (в данном примере - с необходимостью программирования). Пример представляет собой некую крайность, но позволяет понять суть. Как же выбрать эту "золотую середину", это тонкое лезвие бритвы, эту красоту баланса гибкости и сложности?

Прежде всего давайте поймем, почему же мы вожделеем гибкость.
1. На момент выбора решения не известно что конкретно хочется. Действительно, аппетит появляется во время еды. Да, я знаю, что во всех книжках написано, что подход такой неправильный и что надо на момент выбора решения знать все, что хочется, но на практике, к сожалению, это так.
2. В России очень трудно прогнозировать. На практике все меняется самым непредполагаемым образом: вчера мы поклонялись коммунистам и были пионерами, сейчас узнали, что коммунисты были нехорошие люди, так как уничтожили духовность.... Как следствие, приходится закладываться на все "случаи жизни" - вместо восседания на одной бочке с порохом, сидеть на двух, а может, и больше, чтобы, в случае взрыва одной, успеть перескочить на следующую.

Что можно с этим поделать?
Мне кажется, что лучший вариант здесь либо первоначальное пилотное внедрение (чтобы понять аппетит), либо стого ограничить внедряемый функционал и согласовать его на максимально высоком уровне. Последнее - очевидное требование, которое по-хорошему надо выполнять всегда, но хочется же все и сразу...

Всегда помние, что увеличивая гибкость, вы увеличиваете сложность, с которой затем на протяжении всего жизненного цикла надо будет что-то делать. Оценивайте потребность в той или иной "штуке" и затраты на нее и ее поддержку в будущем.

Friday, May 29, 2009

Quick check of lan subnet

Simple script (linux, bash, samba3) for quick checking of lan subnet for:
1. SMS-agent properly work at all objects of subnet (query for sms report look at the end of post);
2. List of local administrators group;
3. List of shares.

NET="192.168.1.0/24"
NET_SMS=`echo $NET | sed s/\.0\\\/.*//g`
DIR=/tmp/`echo $NET_SMS | sed s/192.168.//`
RES="$DIR/RESULT"

PASS='P@ssword'
export LANG=en_US.CP1251

rm -Rf $DIR
mkdir $DIR

wget --no-proxy --http-user="/" --http-password=$PASS "http:///SMS/Report.asp?ReportID=&variable=$NET_SMS.%25" -O - | \
lynx -stdin -dump -width=380 | grep Microsoft | sed s/Microsoft.*192.168./192.168./g | sed 's/\(192.168.[0-9\.]*\).*/\1/g' | sort | uniq >> $DIR/sms;

nmap -sP --max-retries 10 $NET -oG $DIR/nmap_ping.grep | tee -a $DIR/nmap_ping

cat $DIR/nmap_ping.grep | grep Host | awk '{print $2}' | nmap -sV -PN -p 23,22,21,445,139,80,8081,3389,53,389,3268,9100 -iL - -oG $DIR/nmap.grep | tee -a $DIR/nmap

echo "############################################################" > $RES
echo "# Computers not connectet to SMS #" >> $RES
echo "############################################################" >> $RES
echo >> $RES
cat $DIR/sms | awk -F "192" '{print "192"$2" ("}' | grep -v $DIR/nmap.grep -f - | grep Host >> $RES
echo >> $RES


echo "#############################################################" >> $RES
echo "# Local admins #" >> $RES
echo "#############################################################" >> $RES
echo >> $RES

for i in `cat $DIR/nmap.grep | grep 445/open | grep Host | awk '{print $2}'`; do
net rpc group MEMBERS Administrators -U %$PASS -W -S $i
EXITSTATUS="$?"
if [ "$EXITSTATUS" -eq "255" ]; then
echo "== $i ==" >> $RES;
echo "Can't logon to host">> $RES
echo >> $RES;
else
ADMINS=""
ADMINS=`net rpc group MEMBERS Администраторы -U %$PASS -W -S $i | egrep -v "Domain Admins|Adm"`
if [ -n "$ADMINS" ]; then
echo "== $i ==" >> $RES;
echo "$ADMINS" >> $RES;
echo >> $RES;
fi
ADMINS=""
ADMINS=`net rpc group MEMBERS Administrators -U %$PASS -W -S $i | egrep -v "Domain Admins|Adm"`
if [ -n "$ADMINS" ]; then
echo "== $i ==" >> $RES;
echo "$ADMINS" >> $RES;
echo >> $RES;
fi
fi
done

echo "#############################################################" >> $RES
echo "# Network shares #" >> $RES
echo "#############################################################" >> $RES
echo >> $RES

for i in `cat $DIR/nmap.grep | grep 445/open | grep Host | awk '{print $2}'`; do
net rpc share -U %$PASS -W -S $i
EXITSTATUS="$?"
if [ "$EXITSTATUS" -eq "255" ]; then
echo "== $i ==" >> $RES;
echo "Can't logon to host">> $RES
else
SHARES=""
SHARES=`net rpc share -U %$PASS -W -S $i | egrep -v "C\\\\$|D\\\\$|E\\\\$|ADMIN\\\\$|print\\\\$|NETLOGON|SYSVOL"`
if [ -n "$SHARES" ] ; then
echo "== $i ==" >> $RES;
echo "$SHARES" >> $RES;
echo >> $RES;
fi
fi
done

Query for sms report:
SELECT distinct SYS.Netbios_Name0, SYS.User_Name0, SYS.User_Domain0, SYS.Resource_Domain_OR_Workgr0, OPSYS.Caption0 as C054, OPSYS.Version0, MEM.TotalPhysicalMemory0,  IPAddr.IP_Addresses0, WS.LastHWScan
FROM v_R_System SYS
LEFT JOIN v_RA_System_MACAddresses MAC on SYS.ResourceID = MAC.ResourceID
LEFT JOIN v_RA_System_IPAddresses IPAddr on SYS.ResourceID = IPAddr.ResourceID
LEFT JOIN v_GS_X86_PC_MEMORY MEM on SYS.ResourceID = MEM.ResourceID
LEFT JOIN v_GS_COMPUTER_SYSTEM CSYS on SYS.ResourceID = CSYS.ResourceID
LEFT JOIN v_GS_PROCESSOR Processor on Processor.ResourceID = SYS.ResourceID
LEFT JOIN v_GS_OPERATING_SYSTEM OPSYS on SYS.ResourceID=OPSYS.ResourceID
left JOIN v_GS_DISK Pdisk ON SYS.ResourceID = Pdisk.ResourceID
LEFT JOIN PC_BIOS_DATA Bios on SYS.ResourceID = Bios.MachineID
LEFT JOIN v_GS_WORKSTATION_STATUS WS on SYS.ResourceID = WS.ResourceID
WHERE IPAddr.IP_Addresses0 like @variable and WS.LastHWScan > DATEADD(week,-4,GETDATE())
ORDER BY SYS.Netbios_Name0, SYS.Resource_Domain_OR_Workgr0

Tuesday, May 19, 2009

On CCTV Cameras

Actually, I'm a fan of Schneier and I'm agree almost with every his idea. He mastered the art of speaking simply about difficult things in Applied Cryptography (Russian translation to my mind is very good) and The Psychology of Security is one of the most interesting security publication I've ever seen. But I let myself to disagree with this. Before explaining my thoughts I'd like to confess that I work in field of information security and physical security is not where I'm professional, but I think that Shon Harris' physical security domain is enough to have an opinion on this topic, also CCTV is not difficult to understand - that's why I'm writing this post.

To my mind saying that CCTV cameras are ineffective is the same as saying that IDS is dead. Well, I was disagree with this declaration in 2003 and haven't changed my mind now. Every technology in amateur's hands is ineffective and it's not the matter of goodness or badness of technology. But let's go further and look on some quotations.

"Most CCTV footage is never looked at until well after a crime is committed". Yes, that's right, but why in this case nobody challenge the idea of collecting systems logs? Of course it's better when every camera picture is analyzed by operator in real time and in most cases known to me when one wants to use cameras more effectively it's done in that way: operator can remotely operate camera to clarify image of interesting object or subject. I predict your objections about bad comparison camera footage with system logs because by system logs in most cases you can exactly say what had happened and video is not able to provide you with the same rate of assurance because "
Lighting is bad and images are grainy, and criminals tend not to stare helpfully at the lens". But this is still better than nothing because: this deter huge per cent of "kids", this still can help in postmortem analysis in case of the same "kids". Stored somewhere CCTV recordings is not a weapon against "professional criminals". It's all about the same costs of threats and costs of countermeasures: professionals can be caught only by professions with comprehensive tools and methods. The same idea with IDS - for example, you can simply evade scanning detection by increasing timeouts.

"
The solution isn't for police to watch the cameras". Again this is the matter of costs. Let's assume one policeman can watch 5 cameras operating in 5 different places. It's obvious that one man and 5 cameras cost less than 5 men communicating with each other. If policeman can operate cameras: turn it around, change look-up angle, change focal distance, etc. and perform this professionally, to my mind, the effect will be the same as five different policemen walking around.

"
Criminals know this, and can easily adapt by moving their crimes to someplace not watched by a camera" . Let's cameras change their look-up angle randomly or use fish-eye, or both, use remotely operated cameras.

"The funds spent on CCTV cameras would be far better spent on hiring experienced police officers" Nobody says that if we use CCTV we can allow ourselves to hire unexperienced officers. Moreover, the more complicated systems we use, the more professional staff we need. Amateur will not see crime and it doesn't matter whether he or she looks "by eyes" or through camera. We should always educate security personnel because attacking techniques, tools, aims, etc. are changing.

"
But the question really isn't whether cameras reduce crime; the question is whether they're worth it." Completely agree! As I said earlier it depends on threat and possible impact. Before choosing countermeasure/control it's always good idea to perform Risk Assessment and be sure that cost of countermeasure is less then possible damage. In one situation just dumb cameras will be enough, in others - advanced remotely controlled cameras is OK, and in case of high probability of professional criminals attack you need to use professionals to withstand i.e. only highly educated police officers can help you.

Thursday, May 14, 2009

Бизнес для Бизнеса

Мы часто слышим упоминания о том, что большинство проблем в безопасности тех или иных программных продуктов так или иначе связаны с недочетами, допущенными при разработке. Действительно, многочисленные уязвимости, закрываемые бесконечными заплатками, по сути своей являются в большинстве случаев попросту ошибками программистов. Не стоит забывать и об архитектурных просчетах, которые уже простым патчем не поправить и, как следствие, такого рода ошибки исправляются новыми релизами ПО.

Вроде как всем понятна проблема и, если верить словам, все хотят поправить ситуацию: лучше продумывать архитектуру, более тщательно подходить к разработке, лучше тестироваться и т.п. НО, не является секретом тот факт, что для того, чтобы какое-либо изменение произошло, как минимум важна заинтересованность кого-либо в этом изменении. Так кто же заинтересован в разработке качественного ПО?

Разработчик? - Нет. Предположим гипотетически, что кто-то разработал ПО, которое не нуждается в постоянных обновлениях (исправлении ошибок), выпуске новых релизов (добавление новых возможностей и исправление архитектурных просчетов). Такой разработчик сможет заработать только однажды, продав право пользования своим ПО. Целый пласт доходов, связанных необходимостью поддержки, будет недоступен.
Еще один момент, который стоит учесть - это то, что есть некая зависимость количества программых ошибок от объема кода. В двух словах: чем больше кода, тем больше в нем ошибок. Как мне кажется, без ущерба для смысла, можно сказать и так: чем меньше ошибок, тем меньше кода. Наш разрабочик написал код с примерно нулевым количеством ошибок, значит его код невелик, а, следовательно, не велика и функциональность его кода. Поскольку, как правило, потребитель хочет "таблетку от всех болезней", не функциональный продукт будет плохо продаваться, дешево стоить, - в общем, доход от его продаж будет невелик, что не выгодно разработчику. Итого, как это не прискорбно, разработчик будет писать большой многофункциональный код, с большим количеством багов, которые потом будет исправлять во время всего жизненного цикла своего детища. При этом, безусловно, зарабатывая на этом.

Отрасль информационной безопасности? - Нет. Целый ряд уязвимостей будет искоренен как класс. Не будут нужны куча административных и технических контрмер, предпринимаемых в настоящее время для снижения ущерба от использования уязвимого ПО. Будут не нужны люди, задействованные в реализации этих контрмер: не нужны исследовательские институты, занимающиеся поиском уязвимостей, не будут нужны различные сканеры безопасности и те, кто ими пользуются, не будут нужны сложные процессы по управлению обновлениями ПО, их тестированию, пр.

В общем, к сожалению, только потребитель в проигрыше. Что, как это не цинично звучит, в общем-то нормально. Ведь кто-то должен оплачивать всех перечисленных выше....

Я писал применительно к программногому обеспечению, но, в целом, как это не прискорбно, принцип работает практически везде: АвтоВАЗ делает плохие машины и при этом еще зарабатывает на сервисе и запчастях, ресурс которых значительно ниже чем у кого бы то ни было, как, собственно, и самого автомобиля; средняя выслуга современной стиральной машины
, из собственного опыта, не более 5 лет, тогда как у меня есть знакомые, которые покупали стиральную машину 15 лет назад (!) и она до сих пор исправно работет - действительно, производителю выгодно, чтобы я покупал его продукт каждые 5 лет, а не раз на всю жизнь.

Можно подумать о каких-либо мероприятиях по противодействию. Наверно, здесь поможет сертификация, но опять же сложность современных продуктов не позволяет обеспечить должную глубину проверки, а грубая поверхностная проверка не гарантирует желаемого качества.

Thursday, March 19, 2009

Контроль сменных носителей

Контроль сменных носителей - тема нынче весьма популярная и обсуждаемая.
Но бесплатных средств, работающих под ОС Windows и более менее управляемых в небольшой сети, найти не удалось.
Платные средства дешевле 500 рублей за рабочее место не существуют, что в нынешних условиях непосильные деньги для многих компаний. Посему на коленке был сделан небольшой скрипт, который каждый час запускается на АРМ пользователей. Запуск и его контроль осуществляется средствами Microsoft SMS (который уже есть в наличии).
Данный скрипт позволяет довольно успешно контролировать работу сменных носителей в небольшом домене, содержащем чуть более 150 рабочих станций и серверов.

Скрипт может запускаться так же средствами групповой политики Active Directory, но механизм этот не столь гибок, сколь хотелось бы.

Небольшие комментарии по коду:

  • первый цикл определяет имя пользователя вошедшего в систему
  • второй цикл определяет входит ли пользователь в доменную группу "UsbFullControl", назначение группы понятно из её названия
  • третий цикл делает то же для группы "UsbReadOnly"
  • если пользователь не входит ни в одну из групп, значит ему не повезло - выключается возможность работы со всеми сменными устройствами
  • иначе делаются настройки облегчающие работу с флешками и разрешающие работу с дискетами и оптическими дисками
  • Для работы скрипта нужны административные права, либо права SYSTEM, то есть он не эффективен в сети, где большое число пользователей имеет права локальных администраторов.
Безусловно, групп может быть больше, привязку можно делать к имени компьютера и все списки спрятать внутри скрипта. Тут уж все зависит от фантазии внедренца.

Источники идеи уже не найду. Среди них результаты поиска по словам "usb control security", а так же материалы с сайта Microsoft.

---------------

@ECHO OFF

:: delims is a TAB followed by a space
FOR /F "tokens=2* delims= " %%A IN ('REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultUserName') DO SET LastLogon=%%B

For /F "tokens=1" %%A in ('net user %LastLogon% /domain ^| find /i "UsbFullControl"') Do Set Group=%%A
IF NOT "%Group%"=="" GOTO UsbFullControl

For /F "tokens=1" %%A in ('net user %LastLogon% /domain ^| find /i "UsbReadOnly"') Do Set Group=%%A
IF NOT "%Group%"=="" GOTO UsbReadOnly

:UsbDenyAll
move %SystemRoot%\Inf\Usbstor.pnf %SystemRoot%\Inf\Usbstor.pnf.old
move %SystemRoot%\Inf\Usbstor.inf %SystemRoot%\Inf\Usbstor.inf.old

> "%Temp%.\usb.reg" echo REGEDIT4
>>"%Temp%.\usb.reg" echo.
>>"%Temp%.\usb.reg" echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Flpydisk]
>>"%Temp%.\usb.reg" echo "Start"=dword:00000004

>>"%Temp%.\usb.reg" echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Sfloppy]
>>"%Temp%.\usb.reg" echo "Start"=dword:00000004

>>"%Temp%.\usb.reg" echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Cdrom]
>>"%Temp%.\usb.reg" echo "Start"=dword:00000004

>>"%Temp%.\usb.reg" echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\UsbStor]
>>"%Temp%.\usb.reg" echo "Start"=dword:00000004
>>"%Temp%.\usb.reg" echo [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\StorageDevicePolicies]
>>"%Temp%.\usb.reg" echo "WriteProtect"=dword:00000001
>>"%Temp%.\usb.reg" echo.

start /wait regedit /s "%Temp%.\usb.reg"

del "%Temp%.\usb.reg"

GOTO End

:UsbFullControl
move %SystemRoot%\Inf\Usbstor.pnf.old %SystemRoot%\Inf\Usbstor.pnf
move %SystemRoot%\Inf\Usbstor.inf.old %SystemRoot%\Inf\Usbstor.inf

> "%Temp%.\usb.reg" echo REGEDIT4
>>"%Temp%.\usb.reg" echo.
>>"%Temp%.\usb.reg" echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Flpydisk]
>>"%Temp%.\usb.reg" echo "Start"=dword:00000003

>>"%Temp%.\usb.reg" echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Sfloppy]
>>"%Temp%.\usb.reg" echo "Start"=dword:00000003

>>"%Temp%.\usb.reg" echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Cdrom]
>>"%Temp%.\usb.reg" echo "Start"=dword:00000003

>>"%Temp%.\usb.reg" echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\UsbStor]
>>"%Temp%.\usb.reg" echo "Start"=dword:00000003
>>"%Temp%.\usb.reg" echo [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\StorageDevicePolicies]
>>"%Temp%.\usb.reg" echo "WriteProtect"=dword:00000000
>>"%Temp%.\usb.reg" echo.

start /wait regedit /s "%Temp%.\usb.reg"

del "%Temp%.\usb.reg"
GOTO End

:UsbReadOnly
move %SystemRoot%\Inf\Usbstor.pnf.old %SystemRoot%\Inf\Usbstor.pnf
move %SystemRoot%\Inf\Usbstor.inf.old %SystemRoot%\Inf\Usbstor.inf

> "%Temp%.\usb.reg" echo REGEDIT4
>>"%Temp%.\usb.reg" echo.
>>"%Temp%.\usb.reg" echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Flpydisk]
>>"%Temp%.\usb.reg" echo "Start"=dword:00000003

>>"%Temp%.\usb.reg" echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Sfloppy]
>>"%Temp%.\usb.reg" echo "Start"=dword:00000003

>>"%Temp%.\usb.reg" echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Cdrom]
>>"%Temp%.\usb.reg" echo "Start"=dword:00000003

>>"%Temp%.\usb.reg" echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\UsbStor]
>>"%Temp%.\usb.reg" echo "Start"=dword:00000003
>>"%Temp%.\usb.reg" echo [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\StorageDevicePolicies]
>>"%Temp%.\usb.reg" echo "WriteProtect"=dword:00000001
>>"%Temp%.\usb.reg" echo.

start /wait regedit /s "%Temp%.\usb.reg"

del "%Temp%.\usb.reg"

GOTO End


:End

Wednesday, February 18, 2009

Нас снова обманывают?

Хотел сделать подборочку ссылочек, но потом подумал, что это очевидно, - стандартный аргумент в пользу перехода на более новые версии ПО: они более безопасны. Про Windows Vista даже писали, что код ее написан заново и по этой причине все старые проблемы к ней не относятся. А что мы имеем по факту? Практически все обнаруживаемые новые уязвимости относятся ко всем версиям того или иного продукта Microsoft, т.е:

  • не стоит верить, что код нового продукта написан с нуля, даже в случае, когда об этом явно указывается;
  • если даже это так, то это только ухудшает ситуацию, поскольку сложный код, который, как мы видим на практике, достигал зрелости годами, нельзя написать сразу без ошибок;
  • не стоит верить в то, что новая версия безопаснее, поскольку практически все новые уязвимости характерны для всех версий ПО и не важно что у вас Windows 2000, XP, Vista или 7.