Опубликовано: 01.01.2017

Реалистичный хак

Действие всех трех моих любимых игровых вселенных (а это Fallout, BattleTech и Star Wars) разворачивается в будущем разной степени отдаленности. При всех различиях этих миров одна вещь объединяет их невидимой, но хорошо осязаемой нитью — и на радиоактивных пустошах, и в глубинах далекого-далекого космоса, и в боевой рубке своего стотонного «Дайши» вашим героям предстоит сталкиваться с различными высокотехнологичными штучками. От системы управления крейсера класса «Разрушитель звезд» до настольного компьютера.

Однако, к великому сожалению игроков и к стыду разработчиков игр, по-настоящему удобный, а главное интересный механизм взаимодействия с компьютерными системами воссоздать не удалось пока никому. Вот предположим, что вы находитесь в шкуре некого «компьютерного гения», которому нужно во что бы то ни стало получить доступ к управлению ядерными ракетами, захваченными сектой «Атомистов Судного Дня», потому что через 3 минуты они покинут свои шахты и сотрут с лица многострадальной земли и без того уже загибающееся человечество…

И теперь представьте себе: колоссальный накал страстей, счет идет на секунды. Одна ошибка, одно неверное движение — и всю работу нужно начинать сначала! «Бросай кубик — говорит ведущий, — так, что у нас там? выпало 15, да плюс у тебя навык «взлом комп. систем» +3, итого 18. Молодец! Итак, ты вошел в систему, ракеты взорвались в своих шахтах, мир спасен, ура товарищи!»

Чаще всего этим «элемент хакерства» в подавляющем большинстве ролевых игр и ограничивается. Можно ли считать такую систему реалистичной, а главное — интересной? Что вы, что вы, она же не выдерживает никакой критики, и ее единственным плюсом, да и то спорным, является лишь относительная простота реализации.

Однако устранить это недоразумение вполне в наших силах, нужно лишь подойти к делу с известной долей изобретательности, а уж ее-то, родимой, редакции «Ночной Ведьмы» не занимать, а потому приглашаю всех читателей на наш «хак-ликбез»!

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

Человек — вершина технического прогресса!

Это только кажется, что взломать любую компьютерную систему проще простого — ввел пару команд с клавиатуры, угадал архисекретный пароль из 3-х цифр со второго раза и все, ореол компьютерного гения уже прилип к тебе, как мокрый банный лист. На деле хакерство — это сложная работа, требующая массы времени, огромной кучи знаний и массы совершенно не очевидных на первый взгляд действий.
О каких-таких «неочевидных действиях» идет речь? Например, в мире реальном есть такая вещь, как «человеческий фактор». Есть она и в наших обожаемых виртуальных мирах. И этот самый фактор играет в компьютерной безопасности очень важную роль, ведь человек (или другой разумный индивид) — это одновременно и самая сильная, и самая слабая часть этой самой системы.

Бесхозных сетей и компьютеров не бывает — за каждой системой, даже автоматизированной до предела, почти всегда стоит живой человек — ее администратор. По этой причине попытка пролезть на «охраняемую территорию — это не столько противостояние живого существа-хакера и некой абстрактной, по определению «неживой» системы безопасности, сколько поединок двух существ из плоти и крови — хакера и администратора. Все антивирусы, межсетевые экраны (firewall), парольные защиты и смарт-карты (об этом позже) с одной стороны, а также разнообразные сканеры, сниферы и переборщики паролей (обо всем этом мы еще поговорим) с другой — это лишь инструменты, которые сами по себе, без разумной силы, стоящей за ними, ничего из себя не представляют.



Приготовится к атаке!

Атака чужой системы всегда проходит последовательно. Сперва взломщику нужно собрать информацию о своем противнике — как устроена сеть, какое программное обеспечение в ней используется, нет ли «дыр» в обороне или лазеек, которые остались незакрытыми.
Обычно такие операции проводятся в автоматическом режиме, с помощью особых программ — хакерских «инструментов», к числу которых относятся различные сканеры, определяющие, какие в сети используются адреса, какие сервисы, а главное — к каким из них можно без особых проблем подключиться. Разумеется, программа-сканер работает не совсем «бесшумно», и если сеть настроена правильно, а администратор не дремлет, он достаточно легко может узнать о непрошеном госте. В случае обнаружения шпиона он попытается проследить, откуда ведется наблюдение, а дальше все зависит от воли случая или должностной инструкции. Чаще всего администратор просто попытается закрыть доступ для шпиона, заблокировав адрес его отправителя, но с тем же успехом он может сообщить об инциденте «куда следует», а может и отвлечься на очередной бутерброд и просмотр любимого сериала, забыв об инциденте.

Это очень важный пункт. Даже если вы собрали всю возможную информацию, и дело вроде как шито-крыто, это еще не означает, что ваше проникновение осталось незамеченным. Бывает и так, что, получив всю необходимую информацию, хакер уходит довольный в предвкушении того, как он выгодно продаст ее заказчику, а через неделю администратор выходит со своего злополучного больничного, с одного взгляда определяет факт вторжения и, вычислив «обидчика», таки сдает его властям с потрохами.
Обмануть автоматическую систему безопасности сложно, но можно, однако борьба с живым противником, особенно достаточно квалифицированным, — это очень опасная игра.

Автоматика обычно просто борется с имеющейся проблемой, например пытаясь заблокировать доступ для хакера. Опытный же администратор способен «копнуть» куда глубже — он попытается не только разобраться с самой проблемой, но также найти и причину, которая эту проблему породила.

Как это смоделировать в игре?

Обычно, применяя навык, например «хакерство», персонаж просто делает проверку с помощью броска игральной кости, суммируемого со значением его личного навыка, — удалось или не удалось ему определенное действие. Возможно в случае с автоматической системой безопасности так и надо поступать, но в случае, если «на другом конце провода» находится системный администратор — живой противник, этот метод уже не подходит.
Это хотя и мозговой, но все же поединок, потому и проводить его нужно по правилам любого поединка — бросок кости+уровень навыка персонажа против броска кости+уровня навыка администратора сети. Однако, как мы уже говорили выше, мало просто взломать защиту, нужно еще и скрыться незамеченным, а значит хакер должен делать и второй бросок, чтобы узнать, были ли его действия обнаружены!

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

***
Как только информация об объекте хакерской атаки собрана и структура «вражеской» сети, а также систем ее защиты, предстает перед взломщиком как на ладони, можно приступать ко второй стадии атаки — поиску способа проникновения в систему.
Таких способов существует достаточно много, и какой будет использоваться к конкретном случае, сказать наверняка нельзя. Хакер — личность творческая, потому действовать он будет по обстоятельствам, умело применяя и комбинируя самые различные трюки из своего арсенала. Однако как бы они ни были разнообразны, все их можно поделить на два больших класса: атаки «технологические» и «социальные».

Технологическая атака — это поиск слабых мест в программном обеспечении, используемом на компьютерах противника: не установленный вовремя «патч», «дырка» в популярном медиаплеере, да и элементарная ошибка программиста — все это иллюстрации ошибок именно «технического» свойства.
Социальная атака сложнее, но часто и эффективнее — еще бы, ведь в ее основе лежат манипуляции с куда более тонкой, чем компьютерные сети структурой — с людьми. Это звучит парадоксально, но в некоторых ситуациях гораздо проще не тратить время на поиски уязвимостей в используемых на сервере программах, а, познакомившись с администратором, напоить его до беспамятства, и он все расскажет сам, без ухищрений.

При выполнении технологической атаки хакер исследует используемое на компьютере программное обеспечение и ищет какую-нибудь мелочь, возможно совсем не очевидную, которая может как-то способствовать его делу. Любая программа использует для своей работы определенные протоколы передачи данных и написана на определенном языке программирования. Вполне возможно, что программист, писавший ее код, где-то недоглядел или поленился, и в результатом этого стала маааленькая «дырка».
Например, когда вы просматриваете какой-то сайт через свой браузер, браузер не просто «показывает странички» — между ним и сайтом, к которому вы обращаетесь, происходит обоюдный обмен данными, настоящий «разговор», чего вы при всем желании увидеть не можете. Данные эти преимущественно служебные, типа «У меня не загрузилась картинка! — а теперь? — Теперь все отлично!»

Так вот, задача хакера заключается в том, чтоб «вклиниться» в этот разговор и иметь возможность принимать и отправлять промежуточные данные — например ваши пароли от почтового ящика 🙂
Конечно же, программисты стараются не допустить в своих творениях таких недоразумений, но все люди иногда совершают ошибки…

Так как же это смоделировать в игре?

Легко. Исследуя программное обеспечение на предмет ошибок, хакер как бы вновь вступает в «мозговой поединок», но на этот раз с создателями программы. Бросок кости+уровень навыка хакера, против броска кости+уровень навыка программиста.
Стоит заметить, что программисты стремятся обеспечить своим программам максимальную безопасность и очень быстро исправляют все найденные ошибки. В этом им немало способствуют и системные администраторы, которые, будучи «обиженными» хакером через уязвимость в какой-то программе, обязательно напишут об этом ее создателю.

Атака на социальном плане («социальная инженерия») предлагает больше возможностей для отыгрыша, то есть для ролевой игры она предпочтительнее, хотя кто мешает комбинировать оба способа? Перво-наперво необходимо выбрать вероятную мишень атаки. Этот «кто-то», конечно, должен обладать требуемой информацией или чем-то, что поможет этой информацией завладеть. Как вы будете добиваться расположения выбранного объекта — это, конечно, ваше дело, однако нелишним будет знать несколько фактов.
Никто не расстанется с важной информацией за просто так и уж конечно не выложит ее за будь здоров первому встречному, с кем удалось завязать разговор. Поэтому за выбором цели вновь следует сбор информации — на худой конец, вы должны знать имя объекта и его должность. Если умело распорядиться этой информацией, она сама по себе значит очень много.
Не верите? А вот вам пример. Зная, где расположен компьютер с нужной информацией и прочитав табличку на двери начальника отдела компьютерной безопасности фирмы, где были указаны его имя и должность, я преспокойно направился к этому компьютеру, представившись новым сотрудником, посланным начальством (подставить имя, фамилию, должность по вкусу), и так же преспокойно убрался восвояси, конечно же слив предварительно на флешку всю нужную информацию!

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

Подводя итоги

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

  • Атака всегда занимает какое-то время, и для ее проведения просто необходим план и хорошая «разведка местности». Если кто-то скажет вам, что взлом займет лишь пару секунд или требует результатов от вас через эту самую пару секунд — смело посылайте его ближайшим лесом.
  • Системы безопасности не существуют в изоляции. Попадетесь, наследите один раз, и вскоре о вас узнает гораздо больше людей, чем вам бы хотелось.
  • Взлом системы безопасности — это не просто «проверка навыка». Каждый раз вам придется вести напряженную борьбу против тех, кто эту систему создавал, и тех, кто обслуживает ее в данный момент.

 


Писать о методах атаки и не написать при этом о методах защиты, конечно, не по-джентельменски. Поэтому не пропустите в следующем номере «Ночной Ведьмы» продолжение этого материала под названием «Хакинг по ролям: защита от вторжения». А пока у вас есть месяц форы, так что легкого хака, друзья!

Автор оригинала: Clay Dowling (http://rpg.net)
«Русский текст»: Мэлфис К.
Статья опубликована в журнале «Ночная Ведьма» №4, август 2009 г.