Журнал "Компьютерра" №710
Шрифт:
Волею судьбы выход книги совпал по времени с большущим интернет-скандалом вокруг популярного онлайнового казино AbsolutePoker.com (См. заметку "Абсолютная афера" в КТ #708 - Прим. ред.). Завсегдатаи этого сайта - заядлые картежники - вдруг стали замечать, что некоторые игроки демонстрируют поистине сверхъестественные способности. Своими точными ходами, умелыми ставками и регулярными крупными выигрышами эти счастливчики попирали все законы теории вероятностей, словно видя карты соперников насквозь. Администрация сайта-казино, следуя традиции, ни в какую не признавала очевидные факты жульничества и категорически не желала проводить расследование. Тогда за дело взялись сами посетители сайта. Они собрали массу информации, документально подтверждающей мошенничество, которое стало возможным
В двух словах, книга Хоглунда и Макгроу о том, как жульничают в играх. Понятно, что всякая игровая компания к подобному жульничеству в своем хозяйстве и к его пропаганде относится в высшей степени нетерпимо. Если хитрости и манипуляции становятся крупномасштабными, то игрокам, которые в подобных вещах не участвуют, это рано или поздно надоест и они уйдут искать развлечений в более приличном месте. Поэтому разработчики игр предприняли ряд шагов, направленных на укрепление защиты программ против мошенничества и злоупотреблений. Одни контрмеры, вроде негласной слежки за каждым из игроков и содержимым их компьютеров с помощью шпионов-руткитов, заведомо спорные. Другие контрмеры имеют правовые перекосы, закладываемые в чрезвычайно жесткие лицензионные соглашения и условия пользования игрой. Третьи, наконец, носят характер чисто технической защиты, вроде шифрования коммуникаций между клиентом и сервером. Правда, как показывает анализ, криптографию в играх обычно реализуют весьма неумело. А потому, надеются авторы книги, сделанный ими тщательный разбор известных типов хакерских атак должен существенно помочь разработчикам игр в укреплении безопасности их программ.
Кроме того, Хоглунд и Макгроу выдвигают еще несколько веских, по их мнению, доводов относительно полезности своей работы. Во-первых (этот аспект многократно подчеркивается и другими авторами по самым разным поводам), в виртуальных мирах игр ныне крутятся реальные и весьма большие деньги. Во-вторых, огромное множество игроков по сию пору совершенно не в курсе, каковы подлинные масштабы жульничества. И в-третьих, безопасность программ для онлайновых игр имеет не просто много, а очень много критически важных моментов, которые напрямую связаны с проблемами безопасности других, более важных разновидностей программного обеспечения.
Как практикующие эксперты по компьютерной безопасности, авторы книги уверены, что для всестороннего понимания системы надо знать не только как она работает, но и как она ломается. Единственный же путь к этому - выявлять и досконально изучать все слабые места системы.
Предисловие, вступление и первая глава "Эксплуатации онлайновых игр" дают развернутое объяснение причин, побудивших авторов взяться за описание средств и методов жульничества. Хоглунд и Макгроу принадлежат к довольно узкой группе специалистов, умеющих работать в стиле "хакинг для защиты". Подробно исследуя всевозможные уязвимости систем, они выпустили уже несколько книг об эксплуатации слабостей защиты программного обеспечения. По всеобщему признанию это весьма полезные руководства для тех, кто пытается строить надежные, хорошо защищенные программы.
Итак, почему же на сей раз особое внимание авторы уделили играм? Прежде всего потому, что уже сформировалась крупная виртуальная экономика, которая на множестве направлений пересекается с "реальной" экономикой и оперирует вполне реальными деньгами. С тех пор, как геймеры начали продавать ценимые в играх способности, "игровое золото" и даже целиком персонажей, объекты игр обрели конкретную денежную стоимость в реальном мире. Одновременно мир игр, вроде World of Warcraft, EverQuest и онлайнового покера, привлек интерес и криминального мира. Торговля игровыми объектами ныне тесно переплетена с онлайновым мошенничеством, хищениями персональных данных и отмыванием денег. Так, в разгар финальных игр Суперкубка по американскому футболу сайты главных стадионов США были заражены троянцем, который наряду с кражей финансовой и персональной информации пользователей целенаправленно искал и похищал из компьютеров данные аккаунтов участника World of Warcraft.
Вторая глава ("Хакинг") содержит развернутое обсуждение разнообразных способов манипуляции играми. Большинство этих способов изложено на концептуальном уровне, хотя некоторые вещи разбираются очень подробно и с примерами, включая макрокоды и подпрограммки на языке C. Здесь же анализируются контрмеры, применяемые в играх для борьбы с жульничеством, и несколько популярных способов для обхода этих контрмер.
Глава три ("Деньги") на конкретных примерах исследует работу виртуальной экономики игровых миров. И хотя в предисловии подчеркивается важность экономического аспекта, в самой книге об этом говорится скупо. Впрочем, необъятное, как известно, объять нельзя.
Не может похвастать широтой охвата и глубиной и четвертая глава ("Адвокаты"), в которой собраны сведения об американских законах, регулирующих копирайт и смежные области защиты интеллектуальной собственности, а также рассмотрены всевозможные юридические и технические зацепки, встраиваемые разработчиками ПО в EULA (End User License Agreement, лицензионное соглашение конечного пользователя).
Пятая глава посвящена ошибкам в программном обеспечении игр. Точнее, тому, каким образом геймеры могут использовать баги в собственных целях - для взаимодействия со сложными функциями и состояниями игры.
В главе шестой разбираются инструменты и техники, применяемые для манипуляций клиентским программным обеспечением. С определенными оговорками можно утверждать, что содержание главы - это та самая суть, ради которой и была написана книга. Ибо именно с толстого (то есть функционально продвинутого) клиента идет подавляющее большинство злоупотреблений и манипуляций слабостями игровой системы. Глава в изобилии насыщена примерами и кодами на языке Си; в данном контексте это вполне оправданно.
Седьмая глава ("Строительство ботов") тематически тесно связана с предыдущей и столь же насыщена строками С-кодов, используемых при создании программных роботов, жульничающих в играх ради преимуществ для своих владельцев.
Глава восьмая - это, можно сказать, другое ответвление главы шесть, направленное в сторону обратной инженерной разработки ПО. Здесь тоже рассмотрен разнообразный инструментарий, применяемый для вскрытия программ. Дается и весьма подробный обзор базовых функций ассемблера.
Девятая глава посвящена продвинутому хакингу игр. В ней главным образом разбирается модифицирование программ, управляющих работой клиента или альтернативного игрового сервера.
Финальная, десятая глава ("Безопасность программ превыше всего") предназначена, судя по всему, для красивого перехода от технических подробностей к выводам самого общего характера. Глава начинается несколько запоздалым заявлением о том, что главная цель книги - "понять важность безопасности в массивно-распределенных программных системах, имеющих миллионы пользователей". Эта цель, напомним, прописана в подзаголовке книги, однако за подробным разбором приемов хакинга углядеть ее не так-то просто. Чтобы компенсировать это упущение, глава 10, по сути дела, представляет собой краткий обзор множества полезных, но, строго говоря, общеизвестных основ в деле защиты программного обеспечения.