Tuesday, December 1, 2009

Автозапуск

Все знают что автозапуск (автоматическое исполнение некоторой программы при подключении носителя информации, такого как CD-диск или USB-накопитель) это зло. Причем дошло до того, что Microsoft выпустила обновление, отключающее эту функцию для USB-накопителей и сетевых папок (http://support.microsoft.com/kb/971029). Одновременно с этим, некоторые известные производители USB-накопителей пытаются "облегчить" жизнь пользователям с помощью продукта под названием U3 (http://www.u3.com/). По сути это технология, позволяющая заставить операционную систему думать что вставленная флешка (точнее один из разделов на ней) является CD-диском, и таким образом использовать автозапуск в обход ограничений. Все счастливы, ура. Microsoft может спокойно утверждать что они сделали что могли, производители флешек могут продолжать пользоваться автозапуском, а писатели вредоносного ПО не расстраиваться по поводу патча.

Thursday, November 19, 2009

Liberty Shredder

Проблема противодействия работодателей и работников вечна. Первые хотят минимизируя затраты получить максимум отдачи, вторые ... в принципе то же самое, но находятся по другую сторону баррикад.
Учитывая то, что служба безопасности находится на стороне работодателя, посмотрим, как можно помочь начальникам.
Вводная: денег нет, людей нет, есть желание\требование руководства.

Организационные процедуры.
1. Руководитель сотрудника, мониторинг которого будет проводиться, либо специалист службы безопасности отдела\филиала\дочернего общества пишут служебную записку на руководителя службы безопасности с просьбой организовать мониторинг работы сотрудника с даты1 до даты2.
2. Запрос рассматривается, в случае утверждения...
3. В службу технической поддержки передается запрос на добавление в группу локальных администраторов компьютера сотрудника учетной записи для выполнения работ по мониторингу.
4. Запускается мониторинг.
5. Мониторинг приостанавливаем, результаты передаем креатору служебной записки для анализа.
Недостатком можно считать участие большого количества людей в процедуре организации мониторинга, но с другой стороны это позволяет минимизировать вероятность самоуправства со стороны сотрудников службы безопасности предприятия.

Но как быть с тем, что у нас нет денег на приобретение программного обеспечения?!
Решим это через использование свободного программного обеспечения. Устанавливаем любимый вариант свободной операционной системы на компьютер. Учитывая особенности задачи, это не обязательно должен быть сервер за несколько тысяч долларов. Хватит исправного компьютера, обреченного на списание.

Обязательным к установке программным обеспечением являются:
1. Пакет, содержащий утилиту smbclient (обычно это одноименный пакет, либо пакет samba);
2. Пакет, содержащий утилиту convert (обычно это пакет imagemagic);
3. Устанавливаем на сервер утилиту winexe. Самый простой вариант, установить статически-скомпилированный бинарный файл. Внимание! Утилита должна лежать в каталоге, входящем в переменную окружение PATH, либо лежать в каталоге, где будут лежать файлы конфигурации. Предпочтительным считаю второй вариант, дабы соблюсти чистоту дистрибутива.
4. Собственно утилиту для выполнения нужной нам работы boxcutter-fs. У нее есть старший брат, boxcutter, который отличается большей функциональностью и информативностью. Есть аналог screenshot-cmd, но он был вторым кандидатом, до которого очередь не дошла. Утилиту так же кладем в каталог с файлами конфигурации.

Сервер готов. Приступаем к настройке, предполагая, что рабочим каталогом является /usr/local/LS. LS расшифровываем как "liberty shredder", hol's der teufel!

1. В рабочем каталоге размещаем скрипт. Имя не важно. Мне нравится run (скрипты "готовящие" солянку из разных утилит).
---------------
#!/usr/bin/bash

BASE=/usr/local/LS
OUTPUT=$BASE/output
INPUT=$BASE/users.ip
PASS=$BASE/passwd
BIN_BASE="$BASE/bin"
BIN="boxcutter-fs.exe" #можно переименовать во что-нибудь вроде svchosts.exe

filename=`date +%d%m%y-%H%M.jpg`

if [ ! -d $OUTPUT ] ; then mkdir $OUTPUT; fi

for i in `cat $INPUT`; do
if [ ! -d $OUTPUT/$i ]; then mkdir $OUTPUT/$i; fi
smbclient -A $PASS //$i/admin$ -c "put $BIN_BASE/$BIN $BIN"
$BIN_BASE/winexe --system --interactive=1 -A $PASS //$i "$BIN c:\windows\temp\ASPNETSetup.log"
smbclient -A $PASS //$i/admin$ -c "get temp\ASPNETSetup.log $BASE/tmp.bmp; del $BIN; del temp\ASPNETSetup.log"
convert -quality 20 $BASE/tmp.bmp $OUTPUT/$i/$filename #-quality 20 помогает снизив качество уменьшить размер файла.
rm $BASE/tmp.bmp
done


2. В каталоге /usr/local/LS создаем подкаталог bin. Копируем в него утилиты boxcutter-fs.exe и winexe.

3. В каталоге /usr/local/LS создаем файлы:

  • passwd для аутентификации на наблюдаемом компьютере в формате
    username =
    password =
    domain =
  • users.ip, содержащий в строках ip-адреса компьютеров, на которых работают пользователи.
4. В /etc/crontab вносим запись вида:
*/5 * * * * /usr/local/LS/run, где */5 частота изготовления копий экрана, в данном случае каждые 5 минут. - имя локальной учетной записи, от которой запускается наш скрипт.

Все. Начиная с ближайшей круглой минуты, без остатка делящейся на 5,в каталоге /usr/local/LS/output/ мы можем найти файлы, содержащие копии экранов сотрудников.

PS. Не забывайте постоянно напоминать пользователям, что компания имеет право следить за тем, чем они занимаются в рабочее время. Постоянно и ненавязчиво.

PSS. Экран размером 1280х1024 порождает файлы размером от 28кб до 165 кб, средний размер 97кб

Итог: Задача выполнена. Финансирование не понадобилось, дополнительный сотрудник не понадобился, руководство удовлетворено.

Желаю Вам, чтобы Ваш файл users.ip всегда был пустым.

Tuesday, November 17, 2009

Зубная Щетка

Я всегда восхищался новыми, креативными методами в информационной безопасности. Всегда приятно видеть нестандартный подход, особенно если он работает там, где другие средства не помогают. Область, где это особенно важно, это обучение пользователей - security awareness. Простая долбежка "ваш пароль должен быть ... необходимо менять каждые ... не используйте ... запрещается ..." не всегда эффективна (есть также мнение что обучать пользователей вообще неэффективно, но эта отдельная тема - см. #5 в http://www.ranum.com/security/computer_security/editorials/dumb/), надо либо сильно заинтересовать пользователей, либо сделать информацию яркой и запоминающейся.

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

Tuesday, October 6, 2009

Infosecurity Moscow 2009: Безопасность ERP

1 октября побывал на конференции, был соведущим круглого стола "Основные проблемы безопасности бизнес-приложений и ЕRP-систем". Фактически я всего лишь сказал вступительную речь и пытался выкрикивать комментарии на возникающие у аудитории вопросы. Речь моя, конечно, не слово в слово, приводится в конце данного поста. В двух словах она о том, что в случае ERP совсем недостаточно защитить ОС и приложение, закрыть все порты и поставить патчи и антивирус, - сама логика работы бизнес-приложения может содержать уязвимости и никакие технические контроли эти уязвимости не закроют. Причем эффект от закрытия уязвимостей бизнес-процессов несравненно больше, чем от закрытия технических, тогда как и те и другие стоят денег... Я проверил это на собственном опыте разбора случаев мошенничества с использованием информационных систем и нисколько в этом не сомневаюсь.
У меня вызывает улыбку тот факт что и та, единственная публикация, которую я нашел в Сети и общий ход круглого стола в итоге имели приоритет именно в сторону технических контролей, анализа технических уязвимостей, тогда как уязвимостям бизнес процессов был посвящен только один доклад по SOD-конфликтам. Вероятно, связано это с тем, что у нас есть хорошие технические специалисты и хорошие бизнес-менеджеры, а вот на белых шляп с пограничными знаниями - не хватает :-(. Надо работать над собой.

Мое вступительное слово.
Мы много говорим о безопасности системного ПО, сетевого оборудования и прочих инфраструктурных вещах. Согласен, что ИТ-инфрастуктура представляет собой фундамент построения любого, используемого в Компании, бизнес-приложения, а в случае низкого качества фундамента не стоит питать надежды на высокую надежность всего строения. Но, ситуация такова, что непосредственно бизнес-данные, защиту которых необходимо обеспечить, хранятся и обрабатываются именно в приложении, что, на мой взгляд, предъявляет к нему определенного рода требования по безопасности. О чем сегодня и пойдет речь.
Ни в коем случае не желаю унизить необходимость высокого уровня безопасности инфраструктурных систем (системного уровня), поскольку они выступают гарантом эффективной работы механизмов обеспечения безопасности бизнес-приложений (прикладного уровня).
Почему мы должны говорить о ERP?
1. Википедия: "В основе ERP-систем лежит принцип создания единого хранилища данных, содержащего всю корпоративную бизнес-информацию и обеспечивающего одновременный доступ к ней любого необходимого количества сотрудников предприятия, наделённых соответствующими полномочиями". Помимо того, что там ВСЕ данные, там работают ВСЕ сотрудники! Очевидно, что при таком положении вещей проблемы конфиденциальности, целостности и доступности стоят особенно остро.
2. ИТ - сервис бизнеса. Само по себе ИТ (в непрофильной компании) не нужно, так как не приносит дохода. Не нужны сети и корпоративные каталоги (MS Active Directory) сами по себе, они - лишь вспомогательные средства, необходимые для работы бизнес-приложений/ERP-систем. А именно они [бизнес-приложения] необходимы для эффективной работы бизнеса.
3. Исторически сложилось, что инфраструктурные системы защищены лучше, чем бизнес-приложения. Попробую подумать вслух почему:
- Инфр. системы используются практически всеми, тогда как бизнес-приложения - нет.
- Инфраструктурные системы могут использоваться в агрессивных средах (интернет), как следствие их безопасность - конкурентное преимущество; у бизнес-приложений основное - функциональность, и безопасность не является конкурентным преимуществом.
С т.з. ИТ-безопасности, факт, но бизнес-приложения защищены значительно хуже.
4. ERP-системы, будучи используемые бизнесом имеют еще одну немаловажную особенность, - уязвимости бизнес-процессов. Причем такие уязвимости не закрываются никакими техническими контролями. Аналогия здесь может быть такова: представьте, что у нас есть ограждение, которым мы гарантируем, что из-за заграждения невозможно проникновение. Техконтроли гарантируют, что забор достаточно прочен, чтобы его сломать, и высок, чтобы его перелезть, тогда как контроли бизнес-процессов должны гарантировать, что в заборе нет "легитимных" калиток/лазеек, чтобы он конструкционно был совершенен. Для обеспечения эффективной работы бизнес-процессов, исключая факты мошенничества, техконтроли не помогут, - и в этом, на мой взгляд, основная специфика бизнес-приложений в целом, и ERP в частности. Т.е., помимо того, что Система должна быть технически совершенной (чтобы хакеры не проникли в обход имеющихся механизмов ИБ), имеющиеся механизмы должны предоставлять возможность и быть настроены так, чтобы максимально снизить возможность мошенничества со стороны легитимных пользователей.

По современным статистическим данным, более 85% последних компрометаций были выполнены инсайдерами, т.е. легитимными пользователями бизнес-приложений с соответствующими правами, ситуация ухудшилась в связи с кризисом, поскольку сотрудники ИТ первыми попали под сокращение. Повлиять на эти риски могут только бизнес-контроли, как например, контроль SOD-конфликтов, управление персоналом и т.п., а не тот или иной патч на ОС. Вероятность того, что легитимный пользователь (очень вероятен сговор с ИТ) бизнес-системы выполнит вредоносное действие в рамках своих прав много выше, чем того внешний хакер, эксплуатируя техническую уязвимость сделает то же самое.

Thursday, August 20, 2009

NIST SP 800-53 Updated (Recommended Security Controls for Federal Information Systems and Organizations)

На днях вышел обновленный NIST SP 800-53 (третья редакция), Recommended Security Controls for Federal Information Systems and Organizations. Восьмисотая серия "специальных публикаций" (SP = Special Publications) это набор стандартов, выпущенных лабораторией информационных систем (ITL) Американского национального института стандартов и технологий (NIST) для примемения в правительственных информационных системах. NIST SP 800-53 описывает стандартную библиотеку мер безопасности (контролей) с привязкой к критичности системы. Из нового:
  • Полностью переработанные приложения G и H с описанием требований к "программе обеспечения информатионной безопасности" и привязкой контролей SP 800-53 к ISO 27001.
  • Для каждого контроля теперь определен приоритет.
  • Текст/содержание контролей сильно пререработан.
  • Много новых дополнений (enhancements) - опциональных компонентов контролей, которые могут применяться в зависимости от классификации системы.
  • Целый ряд новых контролей. Некоторые старые контроли убраны или объединены с существующими, при этом нумерация была сохранена.
Я всегда относился к этому стандарту как к хорошему каталогу мер безопасности, на основе которого можно строить свои базовые требования (baselines), рекомендации при оценке рисков, технические политики и стандарты а также проводить некоторые виды аудитов. В таком варианте применения документ очень полезен, всем рекомендую ознакомиться.

NIST SP 800-53 rev.3:
http://csrc.nist.gov/publications/nistpubs/800-53-Rev3/sp800-53-rev3-final-errata.pdf

Список всех NIST SP:
http://csrc.nist.gov/publications/PubsSPs.html

Thursday, August 6, 2009

Transparent NTLM in Firefox

Недавно выяснил, что оказывается еще с незапамятных времен Firefox на Windows поддерживает прозрачную NTLM аутентификацию с использованием нативных библиотек. Единственное что надо сделать чтобы все это заработало - указать в настройках для каких доменов или серверов такая аутентификация разрешена. Обычным способом (about:config) надо поправить следующие параметры:
network.automatic-ntlm-auth.trusted-uris
network.negotiate-auth.trusted-uris
И в обоих указать имя внутреннего домена, используемое в корпоративной сети - например "some-company.com" (без кавычек!). Для всех серверов в этом домене Firefox будет пытаться использовать прозрачный NTLM.

Thursday, July 2, 2009

Криптография в жизни

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

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

Немногим более интересна моя ситуация. Мне, как многодетному отцу положен льготный проезд и этот проездной надо получать в соцзащите. В целом неплохая схема, если бы я не жил в пригороде и не работал в городе, причем от места жительства до места работы я добираюсь 2 часа. Соцзащита работает только по будням и не с 6 утра. Технически это означает, что для получения этот проездного, а он может быть получен только мной, так как я за него расписываюсь, я раз в месяц должен приходить на работу на 3 часа позже. В целом не проблема отпрашиваться, но все же неудобно. Почему бы эту карточку не давать в кассах метрополитена, или по месту работы, или сделать, чтобы соцзащита работала в субботу? Еще интересный момент: я езжу на электричке и не метро, причем, электричка в два раза дороже метро, на метро у меня есть льгота, а не электричку нет (интересно, да?). В данной схеме, мне проще не мотаться за этим проездным ежемесячно, чем отпрашиваться с работы и сидеть в этих очередях в соцзащите.

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

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.

Monday, February 2, 2009

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

Системы обнаружения зафиксировали странные попытки подключения на 69.46.18.49 по порту 14001/TCP. Google привел вот на эту статью. "Дело в шляпе", - подумал я. Поскольку с нашим антивирусом достаточно часты случаи ложного несрабатывания, у меня уже есть алгоритм, заключающийся в том, что надо "заловить" образец и послать его моему антивирусу вместе с отчетом от virustotal.com. Образец легко нашел (он называется services), получил отчет от Virustotal.com, кстати, вот он:

Видно, что подавляющее большинство антивирусов (в том числе те, кому я традиционно доверяю, отечественного производства) считают моего "подопечного" трояном, и действительно из описания следует именно это. Но McAfee считет это "потенциально нежелательным ПО", а Microsoft вообще считает это утилитой для аудита!
Не буду скрывать, что я - пользователь McAfee, и моему негодованию нет предела, поскольку перед вот этим монстром McAfee осавил меня беззащитным, и бедные ребята из службы поддержки пользователей (helpdesk) вынуждены удалять его вручную из всех мест, где он себя создает.
Поддержка McAfee, кстати, предложила мне прикупить дополнительный модуль, "Anti-Spyware Enterprise", который сможет удалить эту нечисть, ну и подобную. Таков печальный итог.

Вообще, конечно, - это идея для нечестных производителей антивирусов, не успевающих во время выпускать сигнатуры, придумывать загадочные классификации вредоносного программного обеспечения и под каждый из придуманных классов выпускать модуль, за который требовать с покупателя отдельную плату. Действительно, купив банку кетчупа ее можно значительно более выгодно продать порциями по чайной ложке, автомашину, которая уже давно сама не перемещается, все еще можно разобрать на запчати и продать с ненулевой прибылью и т.п. Но давайте не будем давать себя обманывать: вредоносное ПО - это то, что имеет некую составляющую, способную навредить вашим данным, даже потенциально (понятно, что надо взвешивать пользу и вред и отъявленные философы (типа меня самого) могут заявить, что любое ПО всегда имеет опасную и полезную составляющие и вопрос лишь в том, что для вас важнее, но сейчас не о том речь), а все остальное не имеет значения. И не стоит вредоносное ПО пытаться на практике классифицировать: virus, trojan, backdoor, spy, *wire, пр - оставим эту тематику для научных трудов студентов специализированных вузов в качестве возможности написать что-то новое на уже сто раз перепаханном поле борьбы с вирусами. Соответственно, производителям Антивирусного ПО тоже не следует заниматься этой ерундой, особенно, если это влияет на безопасность, цель, ради достижения которой мы покупаем их продукты, как в случае, что я здесь описал.

Tuesday, January 27, 2009

There's no antivirus against stupidity

There is no antivirus against stupidity, this is all I can say after reading news about a trojan horse being distributed in illegal copies of the new Apple iWork 09. It is better to think about trustworthiness of the source of software before running it, than to worry about removing some nasty trojan after having run it. Also, it is apparent that OS X platform no longer sneaks under a radar of attackers.