Критика святого Криса - 2 by DrMAD Лизавета Ивановна прочла еще две страницы. Графиня зевнула. - Брось эту книгу, - сказала она, - Что за вздор! Отошли это князю Павлу и вели благодарить... А.С. Пушкин. Пиковая дама. Введение В прошлом выпуске "Земского Фершала" была опубликована статья, посвященная рассмотрению работы Криса Касперски "Вирусы - кибернетический минотавр или мания". Там были следующие слова: : Вроде бы, после "Техники и философии хакерских атак" : собирается он пройти бульдозером своего интеллекта и по теме : вирусологии, написав что - то вроде "Техники и философии : вирусных атак". Не сомневаюсь, что с "техникой" все будет в : порядке, но вот с "философией"... Вот почему я с нетерпением : жду и боюсь этой, еще ненаписанной, книжки. И вот появились "Записки исследователя компьютерных вирусов", издательство "Питер", 315 с, тиражом 4000 экз. Сам Бог велел пройтись паровозом своей критики по этой книжке. J 1. Конкретные глюки, глюконаты, глюкозы и глюкозоиды Каюсь, я внимательно прочитал с карандашиком не всю книжку. В некоторых вопросах я не настолько хорошо разбираюсь, чтобы осмеливаться иметь по ним свое мнение. Но, тем не менее, кой-чего нарыть удалось. > Стр.. 16. ...Вероятность успешного обнаружения вирусной заразы > относительно невелика, а о гарантиях ее корректного лечения говорить и > вовсе не приходится. "Невелика" относительно чего? Относительно вероятности НЕобнаружения? Это что же, полный шиндец? Выкидывайте свои антивирусы, заворачивайтесь в простыню и ползите на кладбище? J > Стр.. 18. Одна древняя легенда, датируемая первой половиной > восьмидесятых, гласит, что... к активизации специального модуля, > который вводит головки винчестера в резонанс... и т.д. Массовые компьютеры первой половины 80-х не имели винчестеров. Да и вирусов (в современном понимании этого термина) тогда не было. > Стр.. 20. Во времена тех же восьмидесятых... существовали мониторы > типа Hercules, которые легко выводились из строя... Hercules - это не монитор, а видеоадаптер. Кстати, "легко выводились из строя" мониторы, работающие не под управлением Hercules, а под управлением адаптера MDA. По крайней мере, именно он упоминался в литературе 80-х годов, посвященной этой теме. > Стр. 22. Если бы LoveSan... хотя бы частично выводил компьютеры из > строя, мы бы с вами сейчас грелись у костра, сидя на медвежьих > шкурах... Лет 60 назад компьютеров вообще не было, тем не менее, у костра в медвежьих шкурах никто не сидел. Уже существовали телеграф, радио, ТВ, автомобильный транспорт, авиация... J > Стр. 23. Программы, способные к самостоятельному размножению, > протекающему без участия пользователя, принято называть червями. Кем "принято"? Нигде, кроме как у К. Касперски подобная классификация не встречается (насколько я знаю). Лет 10 назад существовала разновидность вирусов - "файловые черви", которые запускались ИСКЛЮЧИТЕЛЬНО в результате участия пользователя. Почтовые черви (особенно зараза класса Мелиссы или Анны Курниковой, да и МайДума тоже, но не Клез-а или Ализ-а) запускаются тоже ИСКЛЮЧИТЕЛЬНО пользователем. Скорей уж "червь" отличается от "вируса" тем, что не прикрепляется ни к какому программному объекту, существует сам по себе, непосредственно (а не опосредованно) использует системные ресурсы. А пользователь тут вообще лишний фигурант. > Стр. 27. ...Всякий язык познается лишь при обращении "в живую". "Вживую" - наречие, и пишется вместе. Это же вам не Штирлиц, который стреляет "вслепую", а попадает "в слепую". J > Cтр 27. Русские переводы технической документации... для реальной же > работы они непригодны. Интересно, что же такого теряет техническая документация в результате _перевода_, что становится непригодной для реальной работы? Имхо, абсолютно ничего. Другое дело, что книжные полки магазинов заполнены _пересказами_ технической документации, которые хуже оригинала. Вот это верно. Многие книжки К. Касперски именно такими пересказами и являются. J > Стр. 30. Откомпилированная программа просто шифруется статическими > упаковщиками, которые легко поддаются автоматической/полуавтоматической > распаковке. Забавно, но спустя несколько страниц автор высказывает и обосновывает тезис с ПРЯМО ПРОТИВОПОЛОЖНЫМ смыслом. J > Стр. 31. С переходом на Windows многое изменилось. Количество > упаковщиков резко возросло... Автор просто не в курсе. Этих упаковщиков тоже было до фигища, просто наиболее популярными были всего 4: PkLite, diet, LZCOM/LZEXE, AinExe. А про TSCrunch автор что-нибудь слышал? А про EXEPack? А про PPACK? А про... > Стр. 33. Ну, скоро мы знаем имя упаковщика, найти готовый > распаковщик не составит больших проблем... Нехай автор возьмет любого червяка, созданного в последние пару лет и упакованного UPX, и попытается его _автоматически_ раз-UPX-ить. Имхо, вероятность успеха процентов 10 - не больше. > Стр. 35. В девяностых годах двадцатого века, когда вирусы > создавались преимущественно на ассемблере и писались преимущественно > профессионалами... В точности наоборот. 90% вирусов создавались именно "непрофессионалами", знающими десяток ассемблерных команд. Году этак в 1993 вирусологи всерьез говорили о скорой гибели компьютерного мира под натиском десятков тысяч абсолютно примитивных и однотипных "хижняков". Но обошлось. J > Стр. 35. ...Любая нормально откомпилированная программа начинается с > так называемого стартового кода... А что такое "нормально откомпилированная"? А что тогда значит "ненормально откомпилированная"? Вообще-то, речь идет о программах, написанных на ЯВУ, так и и надо было говорить. > Стр. 35. Сегодня, когда ассемблерные вирусы становятся музейной > редкостью... Чушь. J > Стр. 37 и везде дальше. ...код червя I-Worm.Kilez.h Блин, еще "I-Worm" добавил, и "h". Это че, попытка замаскировать свою выдумку под нотацию КаЛаб? Ну нет такого вируса, и никогда не было. Вот, смотрим: I-Worm.Klez.h - Лаборатория Касперского, W32/Klez.gen@MM - McAfee, W32.Klez.A@mm - Symantec, Win32.HLLM.Klez.57344 - Doctor Web, W32/Klez-H - Sophos, Win32/Klez.H@mm - RAV, WORM_KLEZ.H - Trend Micro, W32/Klez.H - H+BEDV, W32/Klez.H@mm - FRISK, Win32:Klez - ALWIL, I-Worm/Klez.H - Grisoft, Win32.Klez.H@mm - SOFTWIN, Worm.Klez.H - ClamAV, W32/Klez - Panda, Win32/Klez.H - Eset. > Стр. 38. При внедрении вируса в файл точка входа в него неизбежно > меняется... Буквально на следующей странице автор показывает, что можно не менять ссылку на точку входа, а можно и не менять команды в самой точке входа. Что бы автор не имел в виду под термином "точка входа", слово "неизбежно" тут в любом случае лишнее. > Стр. 39. ...Всякая секция, независимо от ее физического смещения в > файле, может быть спроецирована по произвольному виртуальному адресу... Гм... Не совсем понятно, что имеется в виду. Загрузка (проецирование) секций в память производится по жесткому и однозначно интерпретируемому алгоритму. RVA секции просто не может быть "произвольным". > Стр. 40. ...Ильфака Гуильфанова. Насколько я в курсе, его зовут Ильфак Гильфанов. Странно, что Крис, накропавший про ИДу целую книжку, упорно не желает правильно писать фамилию автора этой самой ИДы. Тоже самое касается и MZ - Марка ЗбыКовски, а не ЗбыНовски. Вот, пожалуйста: Mark J. Zbikowski, Senior Software Designer, Microsoft Corp. Redmond, WA. Это же вещи, легко проверяемые несколькими кликами мыша, зачем же в _печатных_ книжках в течение многих лет распространять заведомо некорректную информацию? > Стр. 43. ...Поиском опокода... Очепятка. Должно быть "опкода". > Стр. 46. По факту загрузки файла операционной системой вирус > проделывает обратную операцию, перетягивая таблицу импорта "назад". > Необходимость последней операции объясняется тем, что система находит > таблицу импорта по содержимому поля Import Table, а непосредственно сам > исполняемый файл работает с ней по фиксированным адресам. Гм? Вообще-то, я доверяю автору в этом вопросе, но обязательно проверю все это на практике. Читая эти строки, я ни бельмеса не понял. Нафига козе баян и зачем системе таблица импорта после того, как загрузка состоялась, все адреса настроены и код получил управление? > Стр. 55. Достаточно, чтобы ключевая метка отсутствовала более чем в > половине неинфицированных файлов. Почему в половине, а не в одной десятой или в двух третях? Вообще, каким боком тут конкретные цифры? > Стр. 56. Более совершенные вирусы используют те или иные > разновидности UUE-кодирования... вроде "UsKL[aS4ijk". Это не UUE, а Mime (точнее, Base-64). > Стр. 67. ...Jmp'ы будут блохой скакать по всему файлу Эх, блин, все-таки одна "блоха" встретилась. JJJ > Стр. 88. ...Червями принято называть... См. примечание к стр. 23. > Стр. 88. От них не защищают никакие превентивные меры, антивирусные > сканеры и вакцирны до сих пор остаются крайне неэффективными средствами > борьбы. См. примечание к стр. 16. > Стр. 91. Многие из дыр, обнаруженных еще до червя Морриса, остаются не > заткнутыми до сих пор... Хотелось бы конкретный примерчик хотя бы одной такой "дыры". > Стр. 92. По некоторым данным, червю удалось поразить до нескольких > тысяч машин (на две тысячи больше, чем червю Морриса). Интересно, если от "нескольких тысяч" отнять "две тысячи" - сколько получится? J > Стр. 99. Незашифрованный вирус легко убивается любым сетевым > фильтром, как-то брандмаузером или маршрутизатором. Совсем не любым. Более того, такого брандмаузера искать надо, причем долго. > Стр. 99. ... На платформе Intel IA-32... Надо было написать так: "на платформе Intel IA-32 фирмы Intel, разработанной фирмой Intel". Было бы круче. J (Для тех, кто не вкурил: IA = Intel Architecture). > Стр. 99. ...Речь идет о подлинном полиморфизме... А вот тут хотелось бы очень поподробней. Я конечно, догадываюсь, о чем речь. По хорошему, в этом месте напрашивался абзац-другой, в котором автор ввел бы свою классификацию полиморфных программ, например, такую: "полиморфиками _принято_ считать совсем не то, что всеми считалось до сих пор" J Но, как бы то ни было, этих абзацев нет, и автор счастливо избежал водопада критики. > Стр. 99. Существует несколько независимых стратегий распространения, > среди которых в первую очередь следует выделить импорт данных из > адресной книги Outlook Express... Вообще-то, это в лучших домах Филадельфии называется не распространением (propagation), а поиском целей (targetting). > Стр. 106. Попробуйте сгенерировать последовательность случайных байт и > подсчитайте количество шагов, требующихся для полного покрытия всей > области от 00до FFh. Очевидно, что за 100h шагов осуществить задуманное > ни за что не удастся. Вот это самая грубая ошибка в книге. Хотя и не критическая. Автор пытается обосновать замедление распространения сетевого вируса, использующего случайную стратегию поиска целей для заражения. Исходные предпосылки правильные, выводы тоже (тем более, что их можно найти практически в любой статье, посвященной изучению распространения вирусов). А вот в методе доказательства - дырка. На самом деле проблема в том, что _множество_копий_ червя, сканируя IP-пространство случайным образом и никак не согласовывая свои действия, неминуемо будут обращаться к одним и тем же IP-адресам. А в той интерпретации, которую привел автор ("попробуйте сгенерировать..."), задача решается элементарно - применением конгруэнтного линейного ДПСЧ - см. статью "Еще раз о случайных числах" в 5-м выпуске "Земского Фершала". Более того, развитие этой идеи приводит к весьма интересным результатам - см. статью "Как считать з-вирей" в 5-м выпуске "Земского Фершала". > Стр. 107. Рис. 3.2. Зависимость удельной скорости распространения червя > от времени. Ни одного пояснения к рисунку, который, к тому же, приходится рассматривать буквально под микроскопом. K > Стр.. 112. Важно понять, что антивирусы вообще не могут справиться с > червями. В принципе. См. примечание к стр. 16. Кроме того, следовало бы определиться с понятием "антивирус". Похоже, Крис на протяжении всей книжки имеет в виду детектор-полифаг типа AidsTest. Да, именно в этом случае, пожалуй, с его точкой зрения можно было бы согласиться. J > Стр.. 113. ...подложить вирусу дрозофиллу... "ДрозофиЛы - род двукрылых насекомых... и т.д." См. Советский энциклопедический словарь. М: Советская энциклопедия, 1982. Буква "л" одна. > Стр. 121. Существуют сотни тысяч публикаций, посвященных проблеме > переполнения... Ну да, много. Но нуля три-четыре я бы от этого числа срезал бы. J > Стр. 123. Автору приходилось сталкиваться с вопиюще небрежными > листингами, которые работали как часы, потому что были сконструированы > настоящими профессионалами... Профессионал - это человек, у которого _все_ направлено на получение требуемого результата. А запутанная, но работающая программа (клудж) - это свидетельство крайнего непрофессионализма программиста, по печальной иронии судьбы обладающего достаточно развитым интеллектом, чтобы умудриться ее отладить. J > Стр. 126. В классическом Паскале... указатели отсутствуют. Гы... В нашей стране сотни ВУЗов обучают миллионы студентов именно языку Паскаль, и каждый троечник знает, что в Паскале указатели присутствуют, и в классическом (стандарт ISO) и в "неклассическом" (Turbo Pascal или Object Pascal) вариантах. А вот Крис Касперски не знает, и воткнул этот перл в самое видное место своей книжки. J > Стр. 126. ...BFG-900... Вообще-то, BFG-9000. J > Стр. 132. Что интересного можно обнаружить в буферых? В "буферЫх" - ничего. А в буферах - очень даже много "чего", будь они программными, вагонными или дамскими. JJJ Очепятка. > Стр. 142. ...строковой буфер... СтроковЫй. Очепятка. > Стр. 142. "трас-поточное" Имелось в виду "траНс-поточное"? Очепятка. > Стр. 148. Любители же "классической миссионерской" могут... А где же слово "позы"? J Очепятка. > Стр. 150. ...библиотеки NTDLL.DLL и KERNEL32.DLL всегда присутствуют в > адресном пространстве любого процесса... В Windows 9X - да. В Windows NT процесс, явно не импортирующий KERNEL32 и запущенный не под отладчиком, получит шиш с маслом. > Стр. 153. ...хранитЬся в третьем двойном слове. Хранится. Очепятка. > Стр. 159. ...Или впасть в бесконечный цикл (правда, при этом на > однопроцессорных машинах загрузка ЦП может возрасти до 100%). Sleep() внутри цикла, и никаких проблем с загруженностью. > Стр. 159. ...Полувековые традиции вирусописательства... Ну, на самом деле, лет 35. Да и первые лет 10-15 писались вири в основном на каком-нибудь Фортране или даже на Бэйсике. J > Стр.. 200. Дыра в плавающих фреймах затыкается специальной > заплаткой, выпущенной Microsoft. Просто щелкните по следующей ссылке... Формально абсолютно корректный, а на деле - абсолютно бесполезный совет. Насколько я в курсе, для 99% локализованных IE версий 5.0 и 5.5 заплаток просто не существует в природе. > Стр. 201. Печально, но определить наличие обновления другим путем... - > невозможно. В Интернете полным-полно "определялок", написанных "third party". Вообще, забавно видеть в "хакерской" книжке (и на этой странице, и далее) советы, рассчитанные на "носорогов". J > Стр. 202. ...периодически контролируйте ветвь реестра > HKLM\...\Run... ...Также контролируйте список процессов, вызываемый по > Alt+Ctrl+Del... Вообще-то, в этом месте явно и недвусмысленно напрашивалась главка, наполненная РЕАЛЬНО полезными советами, содержащая полный список опасных ключей рееста, методы перечисления активных процессов и потоков, и т.п. Но автор предпочел формально отписаться, просто "шоб було", воспроизведя без изменений свою же статью 3-4-летней давности, уже и тогда бесполезную. > Стр. 202. ...Большой беды не будет, если вы удалите все прописанные > здесь штатные программы (включая служебные). Вообще-то, этот "вредный совет" я несколько лет назад читал в исполнении того же Криса Касперски, кажется, в журнале "Программист". На самом деле не стоит так поступать (особенно по отношению к "профилю повера"). "Чревато боком". :/ > Стр. 209. Известно, что на войне наибольшее преимущество получает > не тот, кто в совершенстве владеет искусством битвы, а тот, кто > заблаговременно построит больше оборонительных сооружений. Гы-гы, вот так вот взял и одним махом зачеркнул Александра Македонского, Тамерлана, Суворова с Кутузовым, генерала Брусилова с маршалом Жуковым, и даже самого Василиваныча Чапаева. J > Стр. 207. Boot form secondary device Должно быть "from". Очепятка. > Стр. 212. Код, завешивающий многие эвристические анализаторы. Этот глюк уж года 3 как исправлен. Сколько ж можно тянуть его из статьи в статью, из книжки в книжку? Ее теперь кулхацкеры будут еще лет 5 читать и делиться друг с другом в форумах "свежими" впечатлениями. > Стр. 216. ...Утилита DUMPBIN, входящая в штатный комплект поставки > любого Windows-компилятора. На самом деле, очень даже не любого. > Стр. 251. ...Если сбой старушки БЭСМ-6 был настоящим ЧП, то зависание > современного компьютера... "Не читайте перед обедом советских газет!" (с) Проф. Преображенский. J И не стоит путать оригинальность и прогрессивность аппаратной архитектуры с конкретным изделием. Типичная наработка на отказ ЭВМ, собранной на отечественной элементной базе и работавшей в нормальных условиях эксплуатации ... сколько бы вы думали?... всего несколько десятков часов! А в "ненормальных" условиях и того меньше. K Это вполне реальные цифры, а не восторженные воспоминания о чужой комсомольской юности. > Стр. 254. Исследуя чипсет VIA KT133, автор обнаружил несколько > критических ошибок планировщика очередей... Гм... Довольно наглое утверждение. J Может быть, у автора есть полная фирменная документация на чипсет, включающая принципиальную схему и алгоритмы работы планировщика очередей? Или он вскрыл микросхемы паяльником и самостоятельно разобрался в их устройстве и алгоритмах? 2. Общие впечатления В последние годы KPNC извлекает 200% из результатов своей деятельности: сначала публикует отдельные статьи в различных журналах, потом выкладывает их в Интернет, наконец собирает их вместе и издает в виде книжки. Получается "тематический сборник статей". Это, несомненно, зер гут для самого Криса, который проживает в маленьком городке и бумагомарание (точнее, дискоцарапанье) для него - единственный источник существования. J Но с точки зрения целостности книжки дас ист довольно-таки шлехьт. K Слава Богу, грубых ошибок в книжке я не обнаружил. Но это не значит, что их нет вообще. Ряд глав (особенно, посвященных UNIXам) я просто пролистал с вежливым интересом. Думаю, что реальные спецы могли бы сказать по поводу этих глав множество гораздо более интересных вещей. К тому же, как известно, не ошибается тот, кто ничего не делает. Крис в этой книжке как раз ничего и не сделал. K Каждая статья начинается с объемной "преамбулы", которые в чисто журналистской манере содержат массу очень эмоциональных, но весьма некорректных заявлений. Полным-полно подобного балласта и в теле самих статей. Заметно, как преамбулы разных статей, прочитанные подряд, противоречат друг другу (вероятно, потому, что написаны в разное время и рассчитаны на разные круги читателей). Вообще, книжка временами производит впечатление откровенной "несвежести". Стоило ли в очередной раз публиковать сильно устаревшие и местами глюкавые статьи в их прежнем виде? Зато это первая книжка Криса, в которой практически отсутствуют всяческие "опаньки", "тяпнутое пиво", "склеенные ласты", "прыгающая блоха", "держи Тигру за хвост" и прочие фразеологизЬмы и аллегории, каковыми весьма густо и не всегда по делу были усыпаны предыдущие опусы упомянутого автора. Впрочем, взамен появились не менее обильные "пляски с бубном" и "занятия Кама-Сутрой". J Опечаток в книжке по-прежнему довольно много ("фе" корректорам издательства "Питер"), да и взятых с потолка "фактов" тоже хватает ("фе" самому Крису). Вероятно, кроме редактуры и корректуры книжки подобного плана должны проходить рецензирование. Чтобы какой-нибудь незаинтересованный дядька (или тетька) поругал автора не ПОСЛЕ издания, а ДО оного. В общем и целом книжка меня не удовлетворила. K Она получилась водянистой и скучной. Ее невозможно использовать ни как справочник для спеца (ибо конкретной и полной информации в ней нет вообще), ни как учебник для чайника (ибо некоторые разделы рассчитаны на человека, по крайней мере пару лет поварившегося в системном программировании). Новых идей, и даже свежей пищи для размышлений в ней тоже с гулькин нос и кот наплакал. Есть в ней, конечно, пара-тройка забавных мест (например, почти вся глава "Побег через брандмаузер" и большие куски из главы "Вирусы в UNIX"). Но это процентов 10 общего книжного объема. Впрочем, есть мелкие свидетельства, что Крис решил идти до конца и сочинить "Записки-2" и "Записки возвращаются" (по крайней мере, уже валяются в Интернете статьи про загрузку PE-программ и про внедрение в них вирусов). У Криса же каждое лыко в строку. J Хотя, вполне перхапс пробабли, что это не будет отдельной книжкой, а войдет в качестве приложения к какому-нибудь "Предсказанию погоды" или "Разведению опенков" (как в свое время в "Укрощение Интернета" вошли астрономические фантазии). Если из этого получатся опять-таки "Записки-2", то лучше уж Крис дописал бы "Технику сетевых атак-2" или занялся бы давно обещаным "Учебником по ассемблеру". Хау, я все сказал. |