Some engineer's blog

а я Alwill AVAST капратифный сломал ;)

Перенос моей статьи, для истории, из ЖЖ (livejournal.com)

АВАСТовский ADNM север оказывается крайне легко можно положить на лопатки вместе с дистрибуцией сигнатурок и прочими вещами. Как так легко да еще и не привелегированным пользователем? А просто элементарно!
Все началось сегодня с того что обьем сикельной базы разросся буквально гигабайтами за пару суток. Наловить столько вирусни нереально, стали разбираться. Обнаружили смешной просчет архитектуры клиент-серверной у аваста:
клиентская часть антивируса (агент) высылает на сервер строковые (да, прямо огромные строки!) данные о каждом своем чихе. Например о том что у него ошибка доступа к файлу какому-либо ;))) Северная часть не задумываясь(!) мигом делает INSERT INTO в таблицу Events (без индексов кстати) и вставляет вот эту вот огромную текстовую строку от клиента ;)
Пример строки (не самой длиной):
AAVM - scanning error: x_AavmCheckFileDirectEx: avfilesScanReal of C:\WINDOWS\TEMP\shshost.dll failed, 00000005.

когда сделали запрос в сикельной базе аваста SELECT COUNT(generated), objectname from events where generated >='02-17-2009' group by objectname
....увидели что каждый клиент успевает "настрелять" таких строк сотнями тысяч ;)


Вывод: если создавать произвольные файлы локально на клиентской машине (не требует прав) с "правильными" расширениями но в таком режиме доступа когда DENY_READWRITE сторонним процессам. клиент AVAST от этого сходит с ума и начинает атаковать свой сервер (и локальный event log машины кстати!)... У сервера мало того что нет тротлинга сообщений, так еще и внутренняя форма хранения этой информации - крайне неоптимизированна с точки зрения дизайна базы данных :(

Prof of concept писать не буду - это уже незаконно.

 

Windows 2008 Fileserver cluster

Перенос моей статьи, для истории, из ЖЖ (livejournal.com)

Переезд с файлового сервера под 2003 на новую 2008 дает много интересного
но, к сожалению, есть и неприятности. Пока я столкнулся со следующим:

  1. Для отключения offline cache (net share ...=... /cache:none) потребовалось писать Win32 приложение, которое будет дергать напрямую API NetShareSetInfo() поскольку для кластерных шар 2008го команда net share /cache НЕ РАБОТАЕТ!
  2. В 2003м была полезная фича: авторасшаривание каталогов в определенной директории. Это сильно экономило время затрачиваемое на создание, например, хомешников юзерей. Теперь такого функционала нету, о чем официально заявляла команда разработчиков. Пришлось убить время и написать Win32 приложение, которое будет само следить за операциями с директориями в указанном пути и шарить или убирать соответствующий ресурс.

 

Для решения первой проблемы исходный код http://pastebin.com/f1dccba49
Для решения второй проблемы код тут http://pastebin.com/f635cac65

Оба проекта собираются в VS2008SP1 с поддержкой UNICODE и далее на используемые кластера
ставится Visual C Runtime Redistributable 2008 x32 SP1 комплект, а потом сами ЕХЕшники.

Если у кого-то вдруг возникнут эти проблемы и не будет под рукой VS - отпишитесь ниже, я выложу
ЕХЕшники готовые.

 

Hyper-V в заметки хозяйке.

Перенос моей статьи, для истории, из ЖЖ (livejournal.com)

Много раз проделывал "расширение" VHD дисков размера Y до размера X но именно сегодня удалось напороться в продакшене(!) на багу известную всем со времен Virtual PC 2007: после расширения Windows отказывается грузится ругаясь на невозможность чтения диска NTLDRом.

Я решал её нетривиально и как обычно своим дремучим способом:
сначала загрузился в WinPE и убедился что диск полностью читабелен и _без каких либо ошибок_ (chkdsk сказал никаких проблем).
Потом посмотрел diskpartом и заметил любопытный сдвиг начала партиции на 32килобайта... Дальше сразу возникла идея что раз NTLDR таки отказался удовлетворять мою машинку в нужде загрузки вкрячить туда новый вистовый BOOTMGR. Собсно так и получилось, только вот создать _с нуля_ чистый boot configuration storage у меня не вышло (bcdedit /createstore && bcdedit /create && bcdedit /set && bcdedit /displayorder).
Создаваемое "с нуля" мною хранилище не содержало базовых классов посему напрочь отказывалось корректно работать поэтому я скопировал начальный файл хранилища (bcd) прямо с WinPE и добавил туда секцию касательно ntldr и legacy Operating System.

В результате - продакшен сервер отлично загрузился в Windows Server 2003 :)

интеграция драйверов в образ windows 5.х версий

Перенос моей статьи, для истории, из ЖЖ (livejournal.com)

Покопался в нёдрах ОС и нашел для себя способ подсовывания драйверов новых в уже "установленную" копию операционки.
Жаль, без переподписывания "правильным" сертификатом layout.inf файлика совсем красиво это не удалось сделать (файл драйверов дублируется в двух местах). Если править layout.inf файл то все драйвера "встроенные" в windows из дистрибутива станут автоматически неподписанными из-за чего появится много "сексуальных" моментов при работе с устройствами...

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


список пользователей (users) и групп (groups) в домене Windows (Active Directory)

Перенос моей статьи, для истории, из ЖЖ (livejournal.com)

Никак не доходили руки опубликовать скриптов пару полезнейший (для меня). Судя по гуглингу - задачу "влоб" особо народ так и не решил (готовое решение ненайдено). Надеюсь что кому-то они позволят сэкономить пару дней рабочего времени.

Ограниченные учетные записи Windows

Перенос моей статьи, для истории, из ЖЖ (livejournal.com)

Столкнулся со старой как мир этот проблемой: есть Windows 2000/XP/2003, есть юзверь бесправный абсолютно и работающий на ней.
Есть нужда поставить кой-какие пакеты типа MSXML Parser/MDAC/etc...

Об онанизме, мазохизме, SATA контроллерах и AHCI режимах

Перенос моей статьи, для истории, из ЖЖ (livejournal.com)

Провел давеча бесчеловечные экскременты эксперименты по загрузке .WIM образа Windows XP на компьютере с Intel SATA AHCI Controller снятого в оригинале с НЖМД подключенного к Standart IDE. Эксперименты удались!


Windows Deployment Services FAQ

Перенос моей статьи, для истории, из ЖЖ (livejournal.com)

С момента написания заметок по Windows Deployment Сервисам прошел почти год. За это время в комментариях появилось множество вопросов которые я решился собрать в небольшой FAQ.

SMS2003&SCCM2007: списки локальных администраторов

Перенос моей статьи, для истории, из ЖЖ (livejournal.com)

Собсно мелкий скриптик, возможно кому-то тоже будет полезен, для получения списка локальных администраторов ввиде .MIF файла располагающегося сразу в нужном для System Management Server 2003 месте. Дабы они появились в инвентаризации.
Работает на windows 2000/2003/XP/Vista различных локализаций (локалонезависимая). Не тестировал на 2008м сервере.

Newer posts → Home ← Older posts