Русский
Русский
English
Статистика
Реклама

Лонгрид

Мама, я хакер. Или как, где и чем я пользуюсь для того чтобы им стать сегодня

22.01.2021 16:14:24 | Автор: admin

Начало

Здравствуй, читатель.

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

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

А так, как с размерами моего эго, может потягаться только сверх-массивная черная дыра в кластере супергалактик - то я постараюсь сделать эту статью/гайд/обзор - максимально объемным и полезным для новичков любого уровня, чтобы он стал ЛЕГЕНДАРНМ и на него все ссылались отныне и вовеки веков.

Ремарка - все указанные ссылки не имеют никакого рекламного подтекста.
Я никак не связан и не рекламирую ничей продукт, ссылки на которые будут представлены в этой статье.

Немного обо мне

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

Меня зовут Ричард, на просторах интернета меня никто, нигде и никогда не знал ни под какими именами, потому что я, собственно говоря, никогда, нигде и не светился.

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

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

Посему, поделиться такой ироничной и, возможно, в каком-то будущем, даже интересной историей обязан, особенно если она кому-то, да поможет однажды.

На большее я и не могу надеяться.

Так как за годы проб, придумывания отговорок, причин и метаний (что собственно говоря типично для ребят моего поколения) в стиле - "Что же мне стоит делать?", "Куда лежит душа?", "Это не интересно", "Здесь скучно", "Тут тупо", "Здесь вообще меня воротит от сферы деятельности", "Да ну не, может мне бросить всё и стать мотогонщиком ралли гонок ДАКАР?", "Не, может лучше мне поступить в MIT и заняться роботехникой?", "Или может быть я просто ленивый и бесконечно прокрастинирующий фантазёр, и буду всю жизнь работать посредственным специалистом в какой-нибудь конторке?". Или просто потому что я никак не мог перестать лениться и избегать той работы, которая мне сразу оказалась не по душе. Даже если мне нечего есть и моё обыденное существование подвергается опасности, я всё равно буду продолжать это делать. Такой вот я упёртый/глупый/самонадеянный/сверх меры самоуверенный в себе баран.

Но, в итоге, остановился я твёрдо и уверенно на теме хакинга.

Это оказалась та бесконечно-фрактальная тема и область, где моё нескончаемое любопытство (а проще говоря ОКР и желание быть готовым ко всему, всегда, везде), а также вечное стремление узнавать новое, неспособность сидеть долго на уже досконально изученном до дыр месте, и желание применять полученные знания на высоком уровне скилла на практике - наконец-то гармонично собрались, как будто так и надо было, в единую картину - "это то что надо, чувак, давай обоснуемся пока в этих чертогах." - вещал я себе сам, радуясь как ребёнок, думая что мои потуги наконец-то подходят к концу (ага, щас).

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

Итак, после нудного и не особо полезного вступления, начнём.

Процесс обучения

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

Мне хотелось бы разделить условно процесс самообразования/самообучения на 2 важных составляющих.

И это:


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

2) Обладать навыком поиска нужной информации ( это значит уметь искать быстро (потому что ваше время - это ограниченный и самый ценный ресурс который есть у каждого из нас), это значит знать где искать, чем искать, грамотно фильтровать и после, и самое важное - грамотно её структурировать/каталогизировать, хранить, дополнять и после удобно использовать).
Особенно если мы говорим про хакеров, для которых навык OSINT'a (Open source intelligence - разведка из открытых источников) - является одним из самых crucial умений в списке профессиональных умений.

В этом году будет только 30 раз, как мне удалось облететь вокруг Солнца, стоя, лежа, сидя на этой планете.

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

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

Я разделю ниже указанные области на аспекты. Так должно быть проще и понятней.

  • Аспект 1.

    Правильно формулируйте и задавайте вопросы.

    Изучение любой темы, будь это поиск уязвимостей XSS, осваивание основных инструментов для проведения пентеста, вождение мотоцикла или как выполнять правильно болевой приём Гяку-Удэ-Гарами - должно начинаться с двух вопросов.

    1) Что я уже знаю об этом?

    2) Чего я ещё не знаю про это?

    Это можно описать так.
    Представьте себе что вы стоите на горе и перед вами внизу лес, вам нужно попасть на другую гору, которую вы видите перед собой, но между вам как раз таки расположен тот самый густой, очень тёмный, непроглядный лес.

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

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

    Таким образом вы создаете себе мини-помощника на бумажке - структуру - это может быть структурированный список или крякозябры нарисованные от руки или что угодно - но то, что понятно вам и не забудется спустя день, неделю, месяц. Это также может быть ваша уникальная система понятная только вам, экспериментируйте! Здесь нет единственного правильного ответа

    Таким образом вы обхватываете сразу две основных области в ваших головушках и разом убиваете двух зайцев

    Вы проходите один из самых важных этапов в процессе обучения - формированию структуры.

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

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

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

    Вы скажете, хорошо Ричард, это всё круто и здорово, но знать что-то не равно уметь делать это, да к тому же на профессиональном уровне.

    И будете абсолютно правы.

    Ведь практический опыт и теория неразрывно связаны.

    А точнее практика это ваша теория, которая обрела физическую форму на бумаге, в ваших действиях и словах.

    И тут стоит перейти к второму важному аспекту.

  • Аспект 2.
    Ошибайтесь.

    Нет ни одного человека на этой планете, который бы жил, живёт и будет жить - и который бы не ошибался ни разу в своей жизни.

    Быть хакером - значит обладать огромным запасом разношерстных, порой несвязанных друг с другом знаний из разных областей и умений - и как итог уметь их применять вкупе в нужное время, в нужном месте и получать результат высокого качества/уровня.

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

    А посему проще заклеймить и предать стигматизму ошибки и процесс их появления в наших жизнях, нежели принять их и сделать неотъемлемой частью наших жизней.

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

    НО

    Для прогресса это делать запрещено.

    Ни у кого из нас нет доступа к шару с предсказаниями и тому, что будет с нами в будущем.
    А потому никто не может знать, принесет ли мне занятие хакингом истинное удовольствие в жизни, стану ли я топ-10 на hackerone и заработаю милльоны-милльонов долларов на этом? (спойлер - если вы решили заниматься хакингом исключительно ради денег можете закрыть эту статью и забыть обо всём что прочитали как страшный сон, эта сфера точно не для вас просто потому что вы быстро выгорите и вам быстро надоест), стоит ли мне записаться на курсы? Или заниматься самому? Читать мне эту книгу или вот эту?

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

    Я хочу чтобы вы вспомнили себя детьми или те у кого есть дети и они сейчас учатся ходить.
    Если посмотреть на детей и их многочисленные попытки научиться ходить - вы не увидите ни одного ребёнка, который после пары падений на зад, сядет, закинет ногу на ногу и смачно посасывая соску аки заправскую сигару скажет "знаешь, пожалуй мне стоит записаться на курсы по ходьбе, я не справлюсь с этим никогда сам, пожалуй это не моё, я не достаточно для этого подготовлен, вон Света ходила на курсы и её там научили ходить за неделю, представляешь?"

    На данном изображении приведен пример того как происходит выход из зоны комфорта и постепенный переход в зону роста, через зону страха и обучения с попутными состояниями в каждой зоне.

    Всё что вы увидите - это нескончаемые падения и вставания после падений. 0 оправданий, 0 поиска причин почему не удалось и самокопания в себе. Это лишь чистые, честные постоянные попытки в которые дети вкладывают все свои усилия, навыки и знания.
    До тех пор пока не будет достигнут единственный верный результат - уметь ходить как все.

    И мне хотелось бы чтобы такой менталитет и такое отношение к своим занятиям, ошибкам и сложностям которые вас поджидают вы закрепили у себя в головах.
    Не важно что вы делаете, учитесь готовить, крутить заднее сальто, приседать со штангой или пытаетесь научиться эксплуатировать SQL-инъекции - если вам это дорого, вы любите это и вам интересно - отриньте мысли о неудаче и то, что у вас что-то может не получиться. И тогда ничто не будет вам мешать, всё время и возможности которые есть у вас, откроются у вас перед глазами, останется только взять и пользоваться ими.

    Проблема это лишь эмоциональное состояние. Без эмоций - это просто ситуация.

    Задачи не должны быть слишком простыми, иначе ты потеряешь интерес.
    Задачи не должны быть слишком сложными, иначе ты просто уйдешь в отказ.

    Баланс доступности задачи и её сложности - сохраняет живость и интерес к ней.

    Можно прибегнуть к разным подходам, таким как Закон Парето или нагуглить кучу разных видео с Ted talks, или вот такую диаграмму в виде пирамиды,, или очередное мотивирующее видео - суть остается одна и та же.

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

    Посему закон простой - пойми как устроен и функционируешь ты - поймешь как можно контролировать себя - поймешь что можно делать со своей жизнью.

    В этом вся суть хакинга.

    Изучить неизвестное, разобрать на компоненты, изучить детально компонент, собрать и посмотреть как работает вся система или части системы - научиться управлять этим так, как хочешь ты, а не так как есть по дефолту.

  • Аспект 3.

    Выгорание и фрустрация.

    Сфера информационной безопасности невообразимо огромна. Пентест, реверс, беспроводные сети, физический пентест, OSINT, ботнеты, форензика, 0-day уязвимости, DDOS/DOS атаки, сетевые уязвимости, уязвимости мобильных устройств, военная промышленность, банковское ПО, криптография и шифры - это лишь часть того, что я вспомнил наугад из головы, где информационная безопасность не просто важна, а играет жизненно-важную роль для функционирования той или иной отрасли.

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

    Я потратил весь прошлый год, только на то, чтобы вспомнить университетскую базу и в целом вновь окунуться в мир инфобеза, понять что вообще сейчас происходит, какие хакеры кого терроризируют, какие тулзы используются в криминалистике, а какие в пентестах, что такое реверс и как пользоваться burpsuite. И почти всегда меня сопровождало ощущение "ё-маё, ну неужели я такой тупой, что не могу запомнить такие простые вещи как HTTP заголовки или модель OSI, или как мне и когда собирать информацию о цели, что такое SQL инъекция и как вообще мне её применять".
    Но я старался не обращать внимание на подобные мысли, потому что я понимал, что я сейчас выстраиваю свой базис, основу на которую я буду сверху накидывать уже костяк своих умений и далее плясать в те сферы, которые мне будут наиболее интересны.
    Посему я просто давал подобным мыслям, фрустрации и нежеланию продолжать немного повариться во мне - отвлечься на ютуб, покушать вкусной еды, покачать пресс - и возвращался вновь к тому, на чём останавливался.


    Постоянно напоминайте себе о том, куда вы идёте, зачем и почему. Это полезно, это подзаряжает мотивацию, напоминает вам и позволяет высунув голову из тонны документации и текста с практикой - оглядеться, осознать на каком вы этапе и что вообще вы делаете сейчас и куда движетесь.(порой когда увлечешься какой-то темой, можешь вообще забыть с чего ты начинал, я не единожды начинал читать про модель OSI, а заканчивал в итоге про настройку сертификатов HTTPS соединения и как это сделать на apache2 и nginx или начинал изучать HTTP методы, а через полчаса находил себя за просмотром видео по тому как ломать wi-fi сети).

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

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

    Достаточно лишь взглянуть на очередную, нагло стыренную мной инфографику с ресурса о котором я сейчас ниже буду детально писать:

    Как видно из картинки выше - когда у нас есть четкое видение, навыки, наши стимулы выстроены, у нас достаточно ресурсов (денег, еды, мы выспались, морально готовы браться за очередную ответственность, у нас подготовлен и разработан первичный план действий и намечены основные майлстоуны по достижению которых мы проверим свой прогресс) и у нас есть план действий, которому мы будет следовать пока пробираемся через наш любимый, в самом начале описанный дремучий лес - мы четко и уверенно придём к точке под названием - Организованный успех.

    Если же у нас не хватает видения - то тогда рождается замешательство - где начать? откуда? что мне читать? а правильно ли я делаю, начав с этой книги, не пропускаю ли я каких-нибудь важных основ?

    Если у нас не хватает скиллов - мы начинаем чрезмерно волноваться и беспокоится что мы не справимся - как можно пройти дремучий лес, зайдя в него наполовину, без карты или хотя бы компаса?

    Если у нас недостаточно стимулов - происходит медленная, но верная смена интереса и затухание, в итоге мы сначала говорим "всё круто я справлюсь", потом это меняется на "да всё ок, должен справиться", "я не знаю справлюсь ли" и финальное и любимое "у меня не получится".

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

    Главное помните о том, что ваши эмоциональные переживания временны.
    Чем чаще вы сталкиваетесь с чем-то и учите себя бороться с переживаниями - тем более толерантными к подобным переживаниям вы становитесь.

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

Итак, подытожив очередную простыню, хочется сказать - ребята, не отчаивайтесь, это сложно, но правда очень интересно и увлекательно, стоит вам просто поверить в свои возможности и продолжать топить и оттачивать свои навыки и повышать количество знаний.

Hack is life. Или мой чемоданчик джентльмена

Ну что касатики, вот мы и добрались до самого желанного пункта данной статьи.

Ранее я не раз повторял фразу, что мир информационной безопасности невероятно велик.

Несмотря на то, что я постарался за своё прошлогоднее путешествие нагуглить и собрать максимум ресурсов и ссылок по всем возможным областям - я уверен, что список можно и нужно будет дополнять и добавлять по мере устаревания статьи.

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

1) Каков порядок изучения?

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

В любом случае экспериментируйте. Нет одного верного способа научиться хакингу. У всех свои истории, у каждого свой путь.

Можно идти сверху-вниз.
Начав изучать к примеру устройство ОС (linux, windows) и спускаться вниз по мере возникновения понимания как работает программа или наоборот не понимания как именно обменивается программа данными, как она их получает и как вообще происходит вся магия за монитором.

Или идти снизу-вверх.
Вы покупаете, скачиваете Таненбаума, Олифера, книгу Код - и идёте от низкого уровня - как устроены компьютеры и железо, и что вообще можно из них выжать - до высокого уровня работы программ, эксплуатации уязвимостей, поиска этих самых уязвимостей, защиты от них и т.д.

Или идти так, как удобно тебе.

Да-да, можно создать свой порядок следования и изучения тем, инструментов, ОС, чего угодно.
Например, я пользуюсь mind-map программой XMind ZEN (не реклама если чо) - которая позволяет мне создавать удобные майнд-мепы.

Пример моих майнд-мепов.

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

Однако, несмотря на многие "гайды" и подобные моим статьи - в интернете на зарубежных ресурсах таких как hackthebox, tryhackme ,pentesterslab (не спешите бежать гуглить, все ссылки будут ниже) - есть уйма уроков структурированных в том формате, в котором стоит начинать изучение темы хакинга.


Отвечая на второй вопрос.

2) "Где оттачивать скилы и что изучать?"

Думаю здесь уже стоит ввести некоторую разбивку на категории, которые я создал исключительно сам исходя из своих субъективных суждений.


Категории следующие:

1) Ресурсы для обучения (места где можно тренироваться использовать полученные навыки по пентесту и хакингу + ctf площадки типа hackthebox).

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

  • https://academy.hackthebox.eu/ - онлайн академия от достаточно популярного ресурса hackthebox. Здесь вы сможете найти модули по фундаментальным знаниям (Windows, Linux fundamentals, как работать с основными тулзами в kali linux, что такое обфускация, что такое Stack-Based Buffer Overflows on Linux x86, DNS enumeration и многое-многое другое). Основа бесплатна - остальные Tier - модули обучения - платны. Но цены весьма адекватные, а материал для старта вполне адекватен по качеству и количеству + сам Hackthebox тут же под рукой, на котором можно отточить все только что полученные навыки.

  • https://picoctf.org/ - CTF площадка от университета Carnegie Mellon на которой можно оттачивать свои навыки пентестера

  • https://www.professormesser.com/ и https://www.youtube.com/user/professormesser - полноценные курсы как в бесплатном, так и в платном доступе по сертификатам

  • https://www.pentesteracademy.com/ - очередной достаточно знаменитый ресурс для тренировок и оттачивания своих навыков (дебаггеры, wi-fi челенджи, network pentesting, web pentesting, forensics) - к тому же до 31 января 2021 у них сейчас вроде как скидоны идут (как и в течении года) - можно урвать хороший доступ к куче лаб и обучающим курсам и виде.

  • https://www.hacker101.com/ - замечательный ресурс с достаточным количеством видео и упорядоченным списком что изучать и в каком порядке - более чем достаточен для старта и дальнейших самостоятельных занятий.

  • https://www.learnqa.ru/security - не проходил, но по отзывам для старта веб-пентеста самое то.

  • https://academy.tcm-sec.com/courses и https://www.youtube.com/c/thecybermentor - один из первых ресурсов, которые я нашёл, когда начал изучать и искать инфу по теме хакинга - TheCyberMenthor - на сайте представлены платные курсы, на ютубе есть огромные 5-15 часовые полноценные курсы по пентесту, веб-пентесту, основам линукса и куче всего остального. Прелесть в том, что на ютубе, в бесплатной 15 часовой версии обучающей по пентесту - есть практически всё, что нужно для того, чтобы посмотреть на рабочий день пентестера, увидеть как юзаются тулзы.

  • https://book.hacktricks.xyz/ - хотите освоить основы эскалации привелегий на linux и windows? работать с shell'ом и заливать paylod'ы? Тогда вам точно следует изучить блог данного парня.

  • https://www.hacking-lab.com/ - очередная площадка для отработки CTF - но в этой есть также лабы на которых можно потестить sms spoofing и в целом "пощупать" уязвимости телефонии.

  • https://ctftime.org/ - площадка на которой можно принимать участие в upcoming CTF батлах и кубках. Можно командой, можно в соло.

  • https://sqlbolt.com/ - хотите научиться работать с SQL и понять вообще как он устроен, научиться писать запросы? Точно пройдите этот тренажер.

  • https://linkmeup.ru/sdsm/ - я думаю такая титаническая работа как "сети для самых маленьких" и иже с ним не нуждается в рекламе. А если вы не знаете кто это и что это - то тем более бегом туда.

  • https://github.com/bkimminich/juice-shop - очередной аналог DVWA или metasploitable2-3 - уязвимые ОС и веб сайты, для оттачивания своих навыков в эксплуатации уязвимостей.

  • http://www.iso27000.ru/katalog-ssylok/hakerskie-saity - ребят, ну самые настоящие хакерские сайты, что вам ещё надо?

  • https://xakep.ru/ - олды тут?

  • https://stepik.org/course/127/syllabus - думаю мне не нужно рекламировать Stepik? Помимо этого курса есть с десяток других, которые стоит обязательно просмотреть. Как по общим знаниям операционных систем, так и по сетям, устройству ЭВМ, основам программирования и куче всего интересного и полезного

  • https://www.hacksplaining.com/ - великолепный ресурс с инфографиками, гифками и пояснениями основных уязвимостей и того, как именно они работают. Очень рекомендую. Люблю такие простые и крайне понятные инфографичные ресурсы.

  • https://xss-game.appspot.com/ - хотите научиться находить XSS уязвимости за которые можно получать до 7500$ за одну найденную уязвимость? Тогда стоит посмотреть что там по ссылке.

  • https://www.hackers-arise.com/ - вырвиглазный форум с полезной инфой старого поколения и образца.

  • ine.com - великолепный ресурс, который имеет как платные, так и бесплатные модули, по которым можно набить себе базу по пентесту, реверсу и в целом по информационной безопасности.

  • https://pentesterlab.com/ - отличный ресурс для тренировок по CTF и пентесту с кучей лаб. Дешево стоит если покупать на год доступ.

  • https://jehy.github.io/mami/# - просто полезный ресурс, почитать про уязвимости.

  • https://overthewire.org/wargames/ - хотите научиться основным командам и работе в терминале ? Тогда этот ресурс с мини играми расположенными на удаленных ssh лабах точно для вас. Самый простой порог вхождения в CTF + обучает одновременно азам работы в линуксе.

2) Форумы, каналы, блоги, библиотеки книг.

Наиважнейшая ортодоксальная часть как форумы.
Список книг для обязательно (и не очень) изучения.

  • Таненбаум Э. - Компьютерные сети (5-е издание)

  • Таненбаум - Современные операционные системы

  • Олифер - Компьютерные сети. Принципы, технологии, протоколы (кстати в прошлом году вышел свежак этой книги)

  • Яворски П. - Основы веб-хакинга. Как зарабатывать деньги этичным хакингом.

  • Скабцов Н. - Аудит безопасности информационных систем (2018)

  • Эриксон Дж. - Хакинг искусство эксплойта (старая книга, но переиздание было пару лет назад, в любом случае актуальна как для новичков, так и для среднего уровня)

  • Мануал по Shodan - hackerlib (гуглите, ищите сами, заодно потренируетесь в OSINT)

  • Макконел С. - Совершенный код. Практическое руководство по разработке программного обеспечения

  • Парасрам Ш. - Kali Linux. Тестирование на проникновение и безопасность (2020)

  • Гейер Дж. - Беспроводные сети. Первый шаг.

  • Херцог, О'Горман, Ахарони - Kali Linux от разработчиков (Компьютерная литература) - 2019

  • Милосердов А. - Тестирование на проникновение с помощью Kali Linux 2.0 - 2015

  • Кофлер М. - Linux. Полное руководство - 2011

  • Колисниченко Д.Н. - Linux. От новичка к профессионалу, 6-е изд. (В подлиннике) - 2018

  • https://codeby.net/ - форум с кучей полезной инфы. Также у них есть пара курсов от создателей форума, по отзывам вроде ок. Я не тестил.

  • https://hackaday.com/ - англоязычный форум, свежие новости, но в основном всякий варезный и diy фан.

  • https://hacker-basement.ru/ - подвальчик хакера - нужно другое пояснение?

  • http://rus-linux.net/ - хотите быть в курсе последних изменений в мире линукса - надо сидеть тут.

  • http://dorlov.blogspot.com/2011/05/issp-cissp-all-in-one-exam-guide.html - говорят монстры среди монстров и отцы отцов только смогли прочитать эту книгу от начала и до конца.
    Ну а в целом очень полезное чтиво для уже подготовленного ума и начинающего.

  • https://hackware.ru/?page_id=1735 - просто куча разной литературы по хакингу и безопасности. Чекай и наведи порядок сам

3) OSINT.

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

  • Научись пользоваться google dorks или google hacking - невероятно расширяет доступ к поиску нужной информации, особенно если овладеешь этим скиллом как следует.

  • https://osintframework.com/ - отец всех отцов - старый добрый osintframework - почти все нужные тулзы собранные в одном месте, просто выбери нужную ветку, найди название фреймворка или тулза - загугли и юзай.

  • https://telegra.ph/Podrobnoe-opisanie-besplatnyh-modulej-v-Maltego-09-27 и https://telegra.ph/CHAST-2-09-29-2 - что такое Maltego и как пользоваться одним из основных инструментов для OSINT'a читать здесь (в двух частях)

  • https://www.spiderfoot.net/ - платформа с различными автоматизированными тулзами и плюшками для тех чья работа - пробив и поиск информации.

  • https://namechk.com/ - хотите пробить пользователя по нику и узнать где ещё он зарегистрировался с подобным? Ваш выбор номер 1 (не включая конечно фреймворки внутри kali)

  • https://www.social-searcher.com/social-mention/ - надо отследить часто повторяющиеся и упомянутые тренды? Тогда эта тулза выручит

  • https://hunter.io/ - надо найти связь почты и компании? Определенно пользуйся этим. Более 100 млн индексированных страниц дадут точный результат.

  • https://vas3k.ru/blog/389/ - полезная статья с которой началось моё знакомство с OSINT и техниками поиска информации.

  • https://search.buzz.im/ - в пояснении думаю не нуждается.

  • Обязательно посмотреть видео и почитать книги Андрея Масаловича - если ваша цель стать крутым OSINT'ером

4) Youtube каналы и курсы (какие-то скачаны с торрентов, какие-то куплены по акциям, "скидончики в пятерочке наше всё").

Всё и вся, что только можно нарыть на англоязычном и русскоязычном ютубе по тематике кибербезопасности.

  • https://www.youtube.com/c/PwnFunction/videos - основы OWASP-10 уязвимостей в формате красочных, простых и понятных коротких видео.

  • https://www.youtube.com/watch?v=fB3DI48MNno&list=PLnjNR4-S-EVqfJWovxEJyb7I0IOkKkoYM - не самый свежий, но вполне годный полноценный туториал курс по работе с kali linux и первыми шагами в направлении пентеста.

  • https://www.youtube.com/c/HackerSploit - пентест, основы работы с линуксом и терминалом, работа с основными тулзами в kali linux, разбор и объяснение основных уязвимостей и былых 0-day, научиться использовать Metasploite и много-многое другое.

  • https://www.youtube.com/c/KirillSemaev - старый добрый Семаев, хотите обучиться как юзать линукс в боевых задачах и условиях - милости прошу (его видео не имеют никакого особого отношения к пентесту или безопасности, скорее к общим навыкам работы с линуксом)

  • https://www.youtube.com/c/webpwnized - один из лучших англоязычных чуваков, которые очень понятно и доступно объясняют основы линукса, пентеста, настройки burp и owaspzap и тонна других полезных тем разбирается.

  • https://www.youtube.com/c/devnull1337 - кодинг, хакинг, много кофе - что нужно ещё? Иногда разбирает пройденные таски на picoCTF - который я указал ещё в первом пункте. Так что если застряли где-то - не стесняйтесь дать себе подсказку.

  • https://www.youtube.com/channel/UCQfwKTJdCmiA6cXAY0PNRJw - канал преподавателя Тимофея Хирьянова - нужны академические азы программирования, информатики и основ ЭВМ? Вам точно сюда

  • https://www.youtube.com/c/JohnHammond010 - прям как CyberMentor что упоминал я выше, только со своей колокольни.

  • https://www.youtube.com/user/RapidBug - очень толковая и крутая девчонка, которая расскажет, объяснит и покажет как начать свои похождения в веб-пентесте и научиться находить первый баг за который заплатят денюжку на hackerone.

  • https://www.youtube.com/channel/UCSXe3vOtFuMQnchDyGPi-fQ/videos - хакинг для самых маленьких. Не самое свежее, но годное.

  • https://www.youtube.com/watch?v=wBp0Rb-ZJak - фул курс по линуксу.

  • https://www.youtube.com/c/%D0%9A%D0%B0%D1%82%D0%B0%D0%BD%D0%BE%D1%82%D0%B5%D1%85%D0%BD%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D1%8F%D1%85/ - вот какая ссылка бывает, когда название канала на русском языке - узнать про нетсталкинг, осинт, слежку через камеры - и в общем популярным языком на коротких, красочных видео завлечь и развлечь себя ненадолго темой хакинга можно тут.

  • https://www.youtube.com/c/LiveOverflowCTF - достаточно известный канал и известный хакер в своих кругах.

  • https://www.youtube.com/c/ChrisGreer/videos - работа с wireshark, сетями, протоколами

  • https://www.youtube.com/c/devcentral/ - очень толковый канал, на котором можно найти подробные и очень понятные объяснения различных технологий (шифрование, безопасность, devops и многое другое)

  • Linux для начинающих (OTUS)

  • [OTUS] Пентест. Практика тестирования на проникновение (2019)

  • Хакинг веб-приложений, атака на куки (2018 Pluralsight)

  • https://www.youtube.com/channel/UC5gufuYHPSsJA-jul-iwyXA Курс по сетям и основам коммуникаций (Андрей Созыкин)

  • [HTML Academy] Профессиональный онлайнкурс HTML и CSS, уровень 1 (2020)

  • [jsexpert] [Евгений Калюжный] Понятный JavaScript (Beginner)

  • [SkillBox] [Вадим Шандринов] Python-разработчик

  • [Udemy] Полный Курс Python 3 от Новичка до Мастера (Питон, Пайтон) [Jose Portilla]

  • Kali Linux Для Начинающих (2018) Видеокурс (HackersAcademy)

  • Learn Hacking Windows 10 Using Metasploit From Scratch (iSecurutyPro) - какой-то индийский курс

  • Pentester Academy - Python For Pentesters

  • Udemy - SQL для начинающих с нуля до сертификата Oracle (2019)

  • Модель OSI и стек протоколов TCP-IP (GeekBrains)

  • Тестирование защищенности веб-приложений (software-testing ru)

  • Jason Dion - Анатомия кибератаки начинающий взлом с Metasploit! (2019) https://cloud.mail.ru/public/3ebg/o1im3g5fE/

  • Изучаем Python и взлом систем с нуля (2018) Заид Саби

5) Программирование.

Хоть тема и смежная, но в любом случае жизненно-важная для любого уважающего себя хакера.

6) WEB и всё что связано с веб-пентестом.

  • https://portswigger.net/web-security/learning-path - ресурс компании portswigger - создателей BurpSuite - имеют собственную академию онлайн в которой уйма и тонны полезной информации по веб-пентесту. Если хотите в будущем заниматься поиском багов и тестированием сайтов на уязвимости - вам точно следует вдоль и поперёк прочитать данный ресурс.

  • https://urlscan.io/ - надо узнать список субдоменов, доменов и технологий которые юзаются на сайте? urlscan твой друг товарищ и брат.

  • Расширение Wappalyzer в Chrome- позволяет просматривать расширения и технологии используемые на сайте.

  • Поставьте себе Firefox Multi-Account Containers - незаменимая вещь для проведения веб-пентестов. Позволяет легко и быстро переключаться между 4 разными пользователями с 4 разными куками, чтобы посылать 4 разных запроса не разлогиниваясь. Ну думаю понятно?

  • https://securityheaders.com/ - полезная тулза для проверки заголовков сайта.

  • https://builtwith.com - очередная тулза, которая позволяет получить полезную инфу в ходе сбора данных по сайту.

  • dehashed.com - узнать утекли ли креды на вашем сайте во вне, весьма полезная, но платная платформа

  • https://owasp.org/www-project-web-security-testing-guide/ - ну и как же без owasp ресурса компании, которая и занимается структурированием и категоризацией уязвимостей на сегодняшний день. Если что-то и будет появляться нового по уязвимостям - то точно в первую очередь у них.

7) Внешние инструменты вне ОС + железо (ПО).

  • https://urlscan.io/ - надо узнать список субдоменов, доменов и технологий которые юзаются на сайте? urlscan твой друг товарищ и брат.

  • https://market.yandex.ru/product--wi-fi-adapter-alfa-network-awus036ach/12473758 - тот самый знаменитый Alpha адаптер для тренировок по взлому wi-fi сетей (дисклеймер не взламывайте чужие сети, доступа к которым вы не имеете, это плохо, ломайте только те, доступ и разрешение к которым у вас есть)

8) Reverse engineering.

  • https://www.manhunter.ru/ - хотите уметь в настоящий мужской реверс и ассемблер? Конечно хотите.

  • https://www.youtube.com/c/LiveOverflowCTF - достаточно известный канал и известный хакер в своих кругах + также топит за реверс.

  • https://forum.reverse4you.org/c/materials/8?order=activity - хотите знать про реверс - точно надо сюда

  • http://personeltest.ru/aways/habr.com/ru/users/yashechka/posts/ - введение в реверс + адванс введение в реверс, одним словом на хабре куча статей по реверсу. Поиск в помощь.

  • https://yutewiyof.gitbook.io/intro-rev-ida-pro/ - однажды после очередного собеседования на позицию джуна мне сказали подготовиться по этой книге и решить тестовое (я конечно же этого не сделал). Но книга очень годная. Обязательна к прочтению.

  • https://www.corelan.be/ - надо в хардкорный реверс? там есть его с головой.

  • rdot.org - олдскул, реверс, хакинг, программирование и живое общение - пой душа, несись в рай.

  • Реверс-инжиниринг курс от OTUS

9) Bugbounty площадки

Как видите, списки получились весьма внушительные, если учесть что каждая ссылка введет на отдельное исследование и заслуживает как минимум нескольких десятков часов изучения - то не стоит ожидать что я смог учесть все возможные стоящие ресурсы для изучения.
Помимо того количества что я указал в статье, есть приблизительно вдвое больше, которых я не указал и/или не знаю о которых.

Поэтому как всегда - финальный результат всегда за каждым из вас.

Кто-то сможет найти ещё более крутые ресурсы, чем я.

Заключение

Написание данной статьи было решением принятым абсолютно случайно.

Я написал её сегодня за 5 часов без особой подготовки, одна из причин - потому что я записался на курс по веб-уязвимостям и в чате предложил поделиться своими накопленными знаниями с ребятами, записавшимися на курс и решил, если делиться - то делать это качественно и как следует, в удобном формате, который я бы смог редактировать время от времени.

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

В любом случае получилось то, что получилось.

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

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

Надеюсь что и дальше этот тренд у меня удастся поддерживать на должном уровне и отдаче.

Спасибо.

Подробнее..

Wi-Fiв офис, на склад, завод, банк Сценарии внедренияи сборкиWi-Fiв сферы бизнеса.(Часть2)

27.04.2021 12:23:09 | Автор: admin

Оглавление

  1. Введение

  2. Wi-Fi и размер бизнеса

    2.1для малого бизнеса

    2.2для среднего

    2.3дляenterprise

  3. Сценарии примененияWi-Fiв сферах бизнеса

    3.1 Wi-Fiна заводе

    3.2Умный ритейл.Wi-Fiв магазины и ТРЦ.

    -Сеть магазинов

    -МаркетингТРЦ

    3.3Wi-Fiв отеле, ресторане, кафе.

    3.4Wi-Fiвбанках

    3.5Wi-Fiна складе

  4. Заключение

Введение

В прошлойстатьерассказ шел о технологиях и инструментах, которые внедряют вWi-Fi. Часть 2 будет о типовых сценариях внедрения. Если лень читать- проматывай(ссылка на ту же статью в блог)вниз, там будет калькулятор. Калькулятор учитывает вендора, количество точек доступа и дополнительный функционал.

Сразу оговорюсь, статья будет не только оWi-Fi6в вакууме. В каждом кейсе будет примеси других технологийи оборудования. Все статьи я составлял с помощью решений отCiscoи Aruba/Huaweiкакальтернатива.Но это не значит, что мы не найдем аналогов наZyxel.

Начнем с решений в зависимости от масштаба бизнеса. Каждый класс предприятий имеет свой подходк построение беспроводной сети.

Wi-Fi и размер бизнеса

Малый бизнес

В малом бизнесе требования к WI-Fiсетям минимальные. В офисе на20-30человек хватит1-2точек доступа.Контроллер не нужен, либо им может стать точка доступа.Если в офис приходят посетители, стоит позаботиться о гостевом доступе.Возможна интеграция склада и терминалов сбора данных через беспроводноесоединение.Кибербезопасность ограничивается антивирусами на конечном устройстве и двухфакторной аутентификацией(CiscoDuo).

Средний бизнес

Схема беспроводной сети в средней компании уже включает в себя контроллер. Контроллер управляет подключенными точками доступа. В компаниях с виртуализацией контроллер может устанавливаться на виртуальную машину.

Еще всреднем бизнесе появляется понятие кибербезопасности. Дополнительно к аутентификации добавляется межсетевой экран для анализа вирусов в трафике.В теории каждый узел может быть защищен.Вопрос: стоит ли объект защитыпотраченныхсредств.

Офис нашей компанииОфис нашей компании

В офисе любого размера есть потребность в мобильных сотрудниках.Удаленкаэкономит деньги на аренду и содержания офиса. Командировки помогают вести проект и разговаривать с сотрудниками на месте. Выезды к заказчику приближают его к покупке.Чтобы безопасно подключаться к инфраструктуре нуженбезопасный канал.CiscoAnyConnectего предоставляет.

Типовой дизайн:

Требуется подключенияWi-Fiи сетевых служб в офисе под ключ. В офисе должны быть проводная и беспроводная инфраструктура, гостевой доступ, система безопасности, унифицированные коммуникации.

Помещение 1500 м2

Кол-во сотрудников: 150 человек

Решения кейса

На уровень ядра устанавливается коммутатор доступа-Catalyst9500.

На уровне доступа-Catalyst9200.Точки доступа-CiscoAironet9117или 9120.

КонтроллерCatalyst9800-L.(может быть виртуальным)

Управление и контроль:CiscoISE(Опция)

Безопасность периметра:Firepower1010+Duo(Опция)

Продукты:CiscoDNA,Firepower+Duo+ESA/WSA,Cisco ISE, Cisco Aironet 9117.

ИнфраструктураСМБв вакуумеИнфраструктураСМБв вакууме

Enterprise

Организация

WLANна уровнебранча(офиса компании), не отличается от среднего.На глобальномуровне добавляются коммутаторы ядра иDNACenter.Enterpriseотличается от СМБпостроением кибербезопасности в компании,интеграциейбизнес-приложений(но о них мы поговорим в другой статье)и повышенной отказоустойчивостью.

Так может выглядетьIT-инфраструктураEnterpriseТак может выглядетьIT-инфраструктураEnterprise

ВEnterpriseсегментекибербезопасность более актуальна,чем в среднем бизнесе.Точекпроникновения злоумышленниковбольше, чем в среднем бизнесе.Цена ошибкивыше. Стоимость простоя региональнойсети магазиновможетдостигатьсотен миллионов рублей.

Категории средств безопасности:

  • Сканеры уязвимости

  • SIEM-системы

  • Защита приложений

  • WebApplicationFirewall

  • CDN

Каждая категория закрываетпотребностьEnterpriseв безопасности.Но эта статья больше для СМБ, поэтому не будем углубляться вподробностирешенийдля большого бизнеса.

Сценарии применения Wi-Fi в сферах бизнеса

Описание сценариев применения будет по принципу.

  • Типовой дизайн предприятия сценария

  • Технологии для решения задач сценария

  • Решения кейса

  • (Иногда) Схема исполнения

Все описанныесценарии- общее среднее по сфере бизнеса. Типовые проблемы, которые мы часто встречаем у заказчиков, описаны ниже.

Каждый бизнес особенный, и кейс может отличаться от Вашего.

Wi-Fi на заводе

Wi-fiсеть на заводе строится по подобию складской сети. Разница в производственной линии и более агрессивной среде.

Типовой дизайн:в промзоне размещенарматурныйзавод.Управление завода намерено внедритьтерминалы сбора данныхдлямаркировкиконечной продукции. На территории цеха отсутствует беспроводная сеть- ее нужнопостроить с нуля. Финансовые потери от 1 дня простоя составляютот10до 80млн рублейв зависимости от контракта.

Стандартный вид производственного предприятия изнутриСтандартный вид производственного предприятия изнутри

Применимые технологии:

Задача похожа на организациюWi-Fiна складе, с важным отличием. Есть производственная линия, управляемая промышленными ПК. Терминалы сбора данных, вместе с высоким темпом производства нагружают беспроводную сеть. Высокая цена простоя требует вложений в кибербезопасность.

Основной акцент делается на непрерывности производственного процесса.

Риски прерывания по частиITинфраструктуры:

  • Прерывание сигналовIOTустройств из-за перекрытий и чугунного оборудования

  • Физическое повреждениеIT-оборудования

  • Остановка процессов вследствие вредоносного ПО и хакерской атаки

Направленные антенны

Электромагнитные помехи, изоляционные материалы, плотные перекрытия, балки, опоры мешают распространениюWi-Fiсигнала. Без направленной антенны сигнал потеряется.ТехнологияBeamFormingподойдет для агрессивной среды завода.

Wi-Fi антенна (не в вакууме)Wi-Fi антенна (не в вакууме)

Кибербезопасность

Атака на производственную цепь- цель для злоумышленников.Основные цели- бизнес-данные,энергоснабжение, АСУ-ТП.Отвязать сеть, возможно, лучшее решение для безопасности производственного цикла. Все управление производством сводится к1-2ПК. На них установлены специальное ПО управления.

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

Задача безопасностисводится к безопасности этихпромышленныхПК и смежных устройств.Фаерволлы, Многофакторная аутентификация и анализ трафика сети обезопасят промышленную сеть.

Пример использования:

Складское помещение нуждается в бесперебойномwi-fi.Работа на территории ведется в 3 смены. Стоимость простоя:10 млн. руб./сутки.

Одноэтажное здание

Площадь: 20000 м2

Кол-во ТСД: 20шт.

Кол-во ноутбуков15шт.

Решения кейса

На уровень ядра устанавливается коммутатор доступа-Catalyst9400.

На уровне доступа-Catalyst9200.Точки доступа-CiscoAironet9117с внешнимиантенами.

Промышленные коммутаторы:CiscoIE1000с защищенными портамиTACACS(Опция)

Контроллервотказоустойчивой конфигурации(может быть виртуальным).

Управление и контроль:CiscoISE(Опция)

Безопасность периметра:Firepower+Duo(Опция)

Продукты:

Cisco:МаршрутизаторCisco ISE(Опция),МСЭFirepower+Duo,КонтроллерточекдоступаWiFiC9800-40-K9,точкидоступаCisco Aironet 9117 Out-Door.

Huawei:USG6320,КонтроллерHuawei AC6508,точкидоступаAirEngine6760X1

Aruba:КонтроллерMobility Conductor Hardware Appliance,точкидоступа518 Series,управлениеAruba Central

Умный ритейл. Wi-Fi в магазинах и ТРЦ

Wi-Fiв ритейле использует службы склада, создает гостевой доступдля посетителейи служит для маркетинговых исследований иуведомлений.Wi-Fiмаркетинг, наверное, единственное применение технологии, которое может приносить прямую прибыль компании. ФактическиWi-Fiвмагазинеили в офисе продаж являетсяобразующейтехнологией.Склад магазина использует терминалы сбора данных, они беспроводные.

Сеть магазинов

Кейс: сетьпродуктовыхмагазиновне имеет беспроводной сети в каждой точке продаж. Проблемы недочета товарапривели к модернизации системы склада ивнедрению терминалов сбора данных (ТСД). Каждый ТСД требует подключения к беспроводной сети,значитв каждой точке продаж должен быть местныйWi-Fi.

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

Может выглядеть такМожет выглядеть так

Технологии и средства

Виртуальный контроллер

WLC(Опция)

(WirelessLocalController)может контролировать разветвленные сети, вроде той, что в кейсе. Основныепроблемыв управлении такими сетями:

  • нехватка информации о магазине(качество покрытия,загруженность устройств, безопасность в сетях, время на устранение ошибок и их кол-во)

  • Отдельные дорогостоящие специалисты на конечныхточках (магазины, офисы ит.п.)

  • Увеличение человеко-часов на обслуживание инфраструктуры как в магазине, так и в центральном офисе

WLC управляет всеми точкамидоступаизцентра управления. Центр управления это веб-интерфейсы, или CLI с которого администратор управляет параметрами каждой подключенной точки.

DNA(Опция)

DNAуправляет всеми сетевыми устройствами, чего не может сделать WLC. Этовиртуальные маршрутизаторы, коммутаторы, межсетевые экраны,контроллеры точек доступа и сами точки доступа.

Вот как выглядит пункт управления DNAВот как выглядит пункт управления DNA

Обычно DNA внедряется как подспорье раздутомуштатуинженеров.Однако внедрение DNA- дорогостоящий процесс.

Система по своим характеристиками и цене подходит среднему иEnterpriseбизнесу.

Продукты:

Cisco:МСЭFirepower 2100,контроллерКонтроллерWiFiC9800-40-K9(может быть виртуальным),точкидоступаCatalyst 9113, DNA(возможно).

Huawei:МСЭUSG 6320,КонтроллерHuawei AC6508,точкидоступаAirEngine8760-X1

Aruba:КонтроллерMobility Conductor Hardware Appliance,точкидоступа515 Series,управлениеAruba Central

МаркетингТРЦ

Кейс: Маркетинговый отдел торгового центра Юпитер сообщил о снижении спроса на продукцию. Маркетологи сошлись во мнении, что посетители хотят более индивидуального подхода. Было принято решение внедрить систему умногоWi-Fiивидеоаналитики.

WI-Fiзона в ТРЦWI-Fiзона в ТРЦ

Решение:

Технологии трекинга на территории магазина появились4-5лет назад.Последние 2 года маркетинг активно внедрял эти технологии. И сейчас Вы наблюдаете их у себя в уведомлениях на телефоне.

Эта связка дает информацию:

  • о поле

  • возрасте

  • предпочтениях

  • семейном положении

  • покупательской способности

В умелых руках эти инструменты продают посетителю те товары, которые, возможно, хочет купить покупатель.

Пример: В середине зимы вы пришли в торговый центр, в котором уже были раньше. После 10 мин прогулки в таком центре, на телефон приходитpush-уведомление магазина N с предложением купить пальто по скидке. Система предложила пальто, по нескольким причинам.

1.Скоро будет весна

2. Вы уже покупали в магазине N одежду

3. Вы даже примеряли пальто в магазинах конкурентов.

Точки доступа поддерживаютBluetoothТочки доступа поддерживаютBluetooth

Каждаякрупицаинформации- процентквероятности покупки. Как только количество информации наберет критическую массу произойдет продажа.

Точность предложения, зависит от количества информации о покупателе. Никто не любит, когда "впаривают" ненужный товар. Системы аналитики на базеwi-fiсделают предложение точнее.

Продукты:

Cisco:МСЭFirepower 2100,контроллерКонтроллерWiFiC9800-40-K9(может быть виртуальным),точкидоступаCatalyst 9130,DNA(Опция), Duo(Опция).

Huawei:МСЭUSG6320,КонтроллерHuawei AC6508,точкидоступаAirEngine8760-X1

Aruba:КонтроллерMobility Conductor Hardware Appliance,точкидоступа530Series,управлениеAruba Central

Wi-Fi в отеле, ресторане, кафе (HoReCa)

В гостиничном и ресторанном бизнесе беспроводная связь является правилом хорошего тона. Вы можете работать вкомандировке, Вы показываете презентации на переговорах в кафе или ресторане.

По факту,внедрение передовых технологий вотель- имиджевый вопрос.ХорошееWi-Fiсоединение воспринимается пользователями как стандарт, а не как дополнительное удобство.

Типовой дизайн(на примере гостиницы):

Для гостиниц характерна разветвленная сетьwi-fiточек. Так как каждый номер должен быть покрытWi-Fiсигналом, сетьпотребность в большом количестве точек.На территории отеля нет посторонних точек, значит нет конфликтамежду сигналами,интерференциии пр. Есть только большое количество перекрытий и стен.

Типовой дизайн этажа гостиницыТиповой дизайн этажа гостиницы

Технологиии сферы применения:

ГостеваяWi-Fiсеть отеля

Гостевой беспроводной сети уделяют особое внимание. Гости приезжают на командировку, по работе, или в качестве фрилансеров. Оставлять их без качественнойWi-Fiсети- удар по репутации. Вряд ли они вернутся при следующей поездке или порекомендуют отель друзьям, если сеть будет прерываться и мешать работе.

BeamForming

Поможет преодолеть стены между номерами.BeamFormingусиливает слабый сигнал, в частности, для преодоления стен.Следовательно, чтобы покрыть всю площадь сигналом, потребуется меньше точек доступа.

BSSColoring

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

IOTи умное управление отелем(Опция)

В отель можно внедрить все то же самое что и в умный дом.Но в отеле есть котельные, электрощитовые, системы управления отелем и пр.IOTустройства и беспроводная сеть поможет управлять всеми основными системамииз единого центра.

Управление:

  • освещением, влажностью,отоплением

  • датчики движения

  • сетью, розетками

  • электронными дверьмии окнами

  • IOT-техника (умные пылесосы, колонки, телевизоры ит.п.)

Таким образом обслуживание зданием можно управлять из дома. Это ведет к снижению затрат на инфраструктуру.

Авторизация пользователейи гостевой портал

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

Есть далеко не во всех отеляхЕсть далеко не во всех отелях

Пример использования:

Отель 5Season7-х этажноездание. В здание проведен10-гигабитный интернет, но ссамого начала модернизации, постояльцы жаловались на плохойWi-Fi.В конечном счете,руководство приняло решение модернизировать беспроводную сеть отеля.Тем более, что появились технологии умного управления отелем.Это внедрение повысит статус отеля среди конкурентов.

Кол-во номеров: 110шт.

Кол-воIOTустройств-2000 единиц

Решения кейса

На уровеньдоступаустанавливаются2коммутатора-Catalyst9400встэке.

На уровне доступана каждый этаж устанавливается коммутаторыCatalyst9300.Точки доступа-CiscoAironet9120сфункциейCleanAir.

Контроллер9000в отказоустойчивой конфигурации(может быть виртуальным).

Управление и контроль:CiscoISE

Безопасность периметра:Firepower2100.

Продукты:

Cisco:МСЭFirepower2100,контроллерКонтроллерWiFiC9800-40-K9,точкидоступаCatalyst9120,DNA(Опция),ISE,Duo(Опция).

Huawei:МСЭUSG6320,КонтроллерHuawei AC6508,точкидоступаAirEngine8760-X1

Aruba:КонтроллерMobility Conductor Hardware Appliance,точкидоступа550Series,управлениеAruba Central

Финансовый сектор

Под эту категорию попадают банки, компании-брокеры,финтехстартапы. Поотчетув IV квартале2020гогода совершено 29 преступлений в финансовом секторе. Главные объекты атаки- сетевое оборудование (26 из 29 атак).

Банковский залБанковский зал

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

В 95% банках установленwi-fi, но только 23% используютдополнительныесредства безопасности. Дополнительные средства безопасности это- песочницы, многофакторная аутентификация, анализ поведения пользователей, мониторинг сетевой активности. Каждый из перечисленных пунктов делает дорожеценувзлома.

Дизайн сети

Сетевая топология- тоже способ построить безопасность.Не будем заострять внимание на высоте монтажа точек.

Существуют требования к дизайну сети:

  • Выделение специальных зон для гостевого доступа

  • Разные права доступа гостевого и офисного доступа

  • Подавление сигнала за пределами зон

Для безопасности сети на каждом узле должна быть своя защита. На уровнекоммутатора- политика управления портами, на уровне контроллера- построение политики подключения, на уровне файрволла- аналитика поведения пользователей и аутентификация.

Так выглядит подключенные IT-продукты в банковской сфере 2019 годаТак выглядит подключенные IT-продукты в банковской сфере 2019 года

Более подробно о средствахзащиты

Песочницы

Термин не совсем правильный в рамкахWi-Fi, но раскрывающий суть. В сети создается промежуточная зона, сSSL(или другой) сертификацией.Любойвредоносповредит только виртуальную машину, на которой размещены ПО и данные.Оригиналы же будут не тронуты.

(Более подробныйответесть уKaspersky)

Шифрование потоков данных/Мониторингзашифрованного трафика злоумышленник может перехватить данные вwi-fi.Это может быть инсайдерская информация или имена доверенных лиц, которые он потом использует. Чтобы не допустить утечки, данные должны шифроваться.Шифрование происходит на уровне точек доступа и контроллера. Никакого дополнительного ПО не нужно.

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

Аналитика поведения пользователей

Системы анализа пользователей в сети, пока чтоbest-practiceв мире сетевой безопасности. Сложность обмана такой системы стоит дорогов расчете денег и человеческих ресурсов.

Принцип действия систем поведенческой аналитики-

Создается образ посетителя сети, который наделяется определенными параметрами (их очень много).

  • Частота (ГГц)

  • Фреймы

  • Количество

  • Используемые приложения

  • Базовая скорость

  • Скачки триангуляции

  • И многое, многое другое (см. документацию)

Стандартный посетитель сети находится в допустимых пределах. Как только пределы нарушены, системаищет паттерны злоумышленникаили вредоносного ПО. В случае совпадения пользователь блокируется.

Продукты:

Cisco:МСЭFirepower2100,контроллерКонтроллерWiFiC9800-40-K9(может быть виртуальным),точкидоступаCatalyst9120,DNA,ISE(Опция),Duo,WirelessIPS(Fortigate)илиCyberThreatDefense,CiscoDNA(Опция),CiscoUmbrella(Опция),ESA/WSA(Опция),SecureX(Опция).

Huawei:МСЭUSG6320, КонтроллерHuaweiAC6508,точкидоступаAirEngine8760-X1

Aruba:КонтроллерMobility Conductor Hardware Appliance,точкидоступа550Series,управлениеAruba Central

Wi-Fi на складе

Типовой сценарий:

Высокие стеллажи спаллетамитовара, высокие потолки, высокое содержание пылии влажности делают распространения сигнала сложным и неравномерным. Зимой неотапливаемые склады страдают от влажности и низких температур.

К складскойWi-Fiсети подключаются терминалы сбора данных, сканеры штрихкодов и ноутбуки.Каждый терминал или ноутбук обращаются к базам данных и бизнес-приложениям.

Как видно из примера условия беспроводной сети на складе можно считать сложными, если не агрессивными.

Классическая картина на складеКлассическая картина на складе

Проблема решается комплексно

Защита от помех и высокоскоростные точки доступа.

У вендоров уже появились точки доступа с защитой от помех.Например,уCiscoэтоCleanAir.Технологиянаходит источник(и) помех и перенастраивает сеть для лучшего сигнала.

Управление политиками доступа.

У ТОП производителей точек доступа есть контроллеры с дополнительным ПО, для управления.Платформы управления могут автоматически управлять и балансировать точки доступа.

Правильное расположение точек доступа.

Даже6йстандарт не обойдет стеллаж толщиной в 3 метра. Только правильное расположение точек доступа покроет сигналом весь склад.

Чтобыузнатьгде сигнал ловит хуже, нуженпредиктивныйанализ. Есть несколько способов исполненияпредиктива.

Первыйспособ- без выхода на местность.

В специальной программе строят план помещения, указывают материалы перекрытия, высоту потолков и другие подробности.На план наносят точки доступа, и программа обсчитывает распространение сигнала. Если покрытие сигналом устраивает- точки устанавливаются в реальности.

Второй способ-с выходом на местность.

На территории предприятия устанавливаются тестовые точки доступа. Далее инженер ходит сWi-Fiантеннойпо территории склада и проверяет уровень сигнала. Преимущество метода в высокой точности, так как покрытие проверяется на практике.

Так выглядит планпредиктиваТак выглядит планпредиктива

Пример использования:

Складское помещениенуждается в бесперебойномwi-fi.Работа на территорииведется в 3 смены. Стоимость простоя: 150k$/сутки.

Одноэтажное здание

Площадь: 25 000 м2

Кол-во ТСД: 25шт.

Кол-во ноутбуков 20 шт.

Решения кейса

На уровеньдоступаустанавливается коммутатор доступа-Catalyst9400.

На уровне доступа-Catalyst9200.Точки доступа-CiscoAironet9117с внешнимиантеннами.

КонтроллерWiFiC9800-40-K9(может быть виртуальным)в отказоустойчивой конфигурации.

Управление и контроль:CiscoISE(Опция)

Безопасность периметра:МСЭFirepower2100.

Так может выглядеть инфраструктура на складеТак может выглядеть инфраструктура на складе

Продукты:

Cisco:МСЭFirepower1100,контроллерКонтроллерWiFiC9800-40-K9,точкидоступаAironet1560,ISE,Duo,CiscoDNA.

Huawei:МСЭUSG6320, КонтроллерHuaweiAC6508,точкидоступаAirEngine6760-X1E

Aruba:КонтроллерMobility Conductor Hardware Appliance,точкидоступа513Series,управлениеAruba Central

Калькулятор есть в статье в блоге

В этомкалькуляторе подобраныминимальные позициипо которым, можно примерно понятьот какой цены начинается внедрение WI-Fi.

Заключение

В этих двух статьях я постарался широкими мазкамиописатькак и куда внедряетсяWi-Fi.

Статья не освещает каждую сферу глубокои не стоит читать ее как руководство.Чтобыподобратьрешения под конкретный случай пишите нам наzakaz@olly.ru

Подробнее..

Из песочницы Веб-разработка с нуля руководство для молодых команд по созданию инфраструктуры CICD и процесса разработки

04.11.2020 16:22:09 | Автор: admin

Чуть больше года назад я столкнулся с тем, что на внутреннем проекте совсем не айтишной компании вырос целый отдел веб-разработки, которым мне и довелось руководить. Рабочий процесс вроде как устаканился и всех устраивал, но оставались проблемы:


  • Проверка каждой ветки проходила локально. Приходилось откатывать базу от изменений с предыдущей проверки, билдить фронт. Когда несколько разработчиков вот-вот закончат работы и осталось проверить каждую по мелочи это превращалось в ад;
  • Различались окружения на проде и между разработчиками, что приводило к ошибкам: у меня всё работает.

Внутренний перфекционист жаждал организовать всё правильно. Делюсь результатами поисков ответа на вопрос: а как, собственно, правильно?


Мы добились


  • Легкого и быстрого деплоя в production (ради эксперимента выводили каждый день две недели подряд);
  • Гарантию защищённости от ошибок из-за различий в окружении приложения;
  • Можем организовать эффективное взаимодействие с заказчиком:
    • демонстрировать каждую feature-ветку;
    • давать гостевой доступ для создания задач и наблюдения над ходом работ.

Данная статья будет полезна, если вы:


  • начинающая IT-компания или в первый раз столкнулись с работой в команде над большим проектом;
  • хотите обновить свой устаревший процесс разработки (workflow);
  • ищете лучшие практики и хотите посмотреть, как у других;
  • часто натыкаетесь на статьи про DevOps, CI/CD, облака и хотите, чтобы у вас одним нажатием кнопки создавались тестовые окружения, а очередное обновление прода не было рулеткой.

Под катом вы найдёте


  • типовой рабочий процесс от постановки задач до релиза;
  • инфраструктурное решение для построения любого современного процесса разработки с использованием минимального количества инструментов;
  • пример для часто встречающегося кейса: разработка веб-приложения;
  • видеозапись доклада, где вживую показывается результат.


Статья состоит из трех частей:


  • Моё видение типичного процесса разработки;
  • Инфраструктура для реализации любого современного рабочего процесса;
  • Кейс для веб-разработки.

Поиск информации, актуальность вопроса


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


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


В конце концов, я пересмотрел большое количество связанных с данной темой материалов, ознакомился с различными инфраструктурными инструментами, пропустил всё через собственный опыт. При реализации прошёлся по всем граблям, о которых в официальной документации было сказано мало, но грабли должны были быть пройдены во имя best practices. Также понадобилось время по наладке работы отдела по-новому.


И, хотя данный опыт был получен уже как год назад, гугл показывает, что ещё не появилось гайда, который я искал когда-то.


Итак, приступим.


Вам понадобится:


  • Наличие каких-либо мощностей в распоряжении. Может быть свой сервер, а может быть и облачная инфраструктура;
  • Знание вашего приложения, как оно работает, как сейчас разворачивается;
  • Базовые знания сетей, git, Linux, Docker, GitLab, Traefik.

Типичный процесс разработки


Обязательные составляющие


1. Работа по классической модели в git



A successful Git branching model by Vincent Driessen


Необходимый минимум иметь ветки: master, dev и feature.


Feature
В каждой feature-ветке ведется работа над каждым отдельным функционалом / исправлениями, создаются от dev-ветки. Прекращают существование после того, как изменения вольются в dev.


Dev
В dev происходит окончательная совместная отладка и тестирование всех новых изменений, после этого производится релиз в master.


Master
От этой ветки и происходит релиз на production-сервер. Также, при необходимости срочных исправлений, от неё создаются hotfix-ветки, вливаются в неё же и удаляются.
Master и dev защищены от прямых пушей, существуют всегда.


2. Совместная работа в трекере задач. Документация всех принятых решений.



Это очень важный момент. При переключении между несколькими feature ветками, программисты теряют контекст буквально на следующий день. Записать задачу с невысоким приоритетом в виде глянуть, что не так с xxx недостаточно, чтобы вспомнить, о чем идёт речь. Все замечания необходимо фиксировать в обсуждениях Merge Request-а данной ветки. Необходимо вести wiki проекта, чтобы ускорить адаптацию новичков и утверждать принятые решения.


Важно всегда помнить, что если что-то не записано этого не существует.

Крайней степенью документирования может служить опыт GitLab, которая была компанией без офиса ещё до того, как это стало мейнстримом пандемии.


3. Автоматизация инфраструктуры для тестирования и релизов


Всё просто чем быстрее вы можете выводить свои решения в продакшн, тем они надёжнее и вы конкурентоспособнее. Часто можно встретить статьи, где измеряется количество релизов в месяц/неделю/день.


Я считаю, что это и послужило катализатором развития всех современных IT-гигантов и то, что сформировало DevOps. Сперва они автоматизировали процесс тестирования и выкатки своего монолита. Появилась проблема ожидания и невозможности локально развернуть окружение для разработки. Решением стала идея микросервисной архитектуры, что принесло новые проблемы. Где-то тут появилась идея контейнеризации (LXC), затем Docker, оркестраторы и понеслось...


Функциональные роли


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


Менеджер проекта


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


Владелец продукта


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


Аналитик / Технический писатель


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


Дизайнер UI/UX


Ответственный за то, чтобы пользователям было удобно работать с продуктом. Критически важный элемент успеха (если вы не Microsoft, конечно).


Архитектор


Скорее всего работает на нескольких проектах. Самый опытный разработчик в компании. Консультирует тимлида.


Тимлид


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


Разработчик


Пишет и документирует код. Проводит код-ревью коллег.


Разработчики специализируются на своих направлениях: бэкенд, фронтенд, мобильная разработка и т.д., в зависимости от проекта.


Тестировщик (QA / QC)


Quality Control (QC) тестирует продукт. Как вручную, так и с помощью написания кода. Quality Assurance (QA) также участвует в разработке архитектуры и инфраструктуры проекта, чтобы получение качественного результата закладывалось в процессе производства (Дао Toyota принцип встраивания качества). К примеру, тестировать именно тот docker-образ, который и будет выкачен на продакшн, а не пересобирать его после тестов.


Системный администратор (DevOps)


Как и архитектор, скорее всего работает на нескольких проектах. Создаёт инфраструктуру при старте проекта, вносит изменения по ходу его развития.


Процесс разработки



Этапы workflow


  1. Любая задача начинается с появления потребности в каком-то улучшении (feature) или отчёта об ошибке, которая сообщается владельцу продукта. Происходит фиксация в трекере.
  2. Владелец продукта сам или с помощью аналитика выясняет все подробности. Всё записывается в задачу. Проводится первичная оценка трудоёмкости. Определяются приоритеты, возможно уже ставится в план работ.
  3. Когда подходит время реализации, совместно с тимлидом производится декомпозиция (разбиение на подзадачи), определяются исполнители, совместно с ними она проговаривается, фиксируются достаточные для исполнителей описания по реализации. Если требуются уточнения по задаче обращаются к владельцу продукта.
  4. Создаётся feature-ветка из dev и, собственно, пишется код. Если задача большая и состоит из подзадач, то выделяется основная feature-ветка, в которую вливаются ветки подзадач. Пишутся тесты, если для этой задачи было принято такое решение.
    Примечание: для того, чтобы минимизировать конфликты при слияниях веток, необходимо, чтобы архитектура вашего приложения поддерживала минимальную связанность модулей. А также не стоит начинать работать над задачей, реализация которой приходится на тот же самый участок кода, который изменен в другой задаче, но по ней ещё не принят merge-request.
  5. Создаётся merge-request в dev-ветку, производится сборка, тестирование и деплой feature-ветки.
  6. Проводится ревью кода другими разработчиками, ручное тестирование. При наличии недочётов снова авто-тесты, деплой, повторная проверка.
  7. Тимлид проводит финальную проверку и принимает готовую feature-ветку в dev.
  8. Когда приходит время очередного релиза, из dev-ветки со всеми последними изменениями создаётся merge-request в master и аналогичные пунктам 5, 6 действия.
  9. Аналогично пункту 7, возможно привлекается владелец продукта.
  10. Очень полезно сообщать пользователям, какие произошли изменения (формирование changelog-а), а также обновлять справку по продукту. Обновляем документацию и принимаем изменения в мастер.
  11. Автоматически или вручную, выкатываются изменения в production.
  12. Ведётся мониторинг приложения. В данной статье не рассмотрен.

Инфраструктура


При выборе инструментов использовались критерии:


  • production-ready
  • большое комьюнити
  • невысокий порог входа относительно других инструментов
  • как можно меньшее их количество (больше функциональности у каждого)

Итогом стал выбор технологий: Traefik, GitLab и Docker.



  • Используется 3 сервера [Production], [Staging] и [Services]. Могут быть физическими или виртуальными машинами, количество может быть меньше и больше, может быть всё в облаке. Приведена наиболее эффективная конфигурация с точки зрения надёжность/цена. Главное, чтобы [Production] был отдельным и самым надёжным. На сервере [Services] установлен GitLab а также второстепенные сервисы (мониторинг, docker registry: Portainer, ELK, Harbor, etc), которые и будем называть Services. В данном примере их настройка не рассматривается. Все приложения работают в Docker-контейнерах. GitLab лучше установить отдельно, зависит от располагаемых мощностей.
  • Traefik собирает информацию о запущенных динамических DNS-именах для *.dev.company.ru, подключившись к докеру [Staging] по TCP и предоставляет к ним доступ. Также автоматически получает SSL сертификаты для приложения на [Production]. Wildcard (WC) сертификат *dev.company.ru получается с помощью отдельного контейнера letsencrypt-dns, если ваш DNS-провайдер не поддерживается в Traefik. Traefik использует этот или самостоятельно полученный сертификат, обрезает SSL от клиентов и перенаправляет http запросы по доменным именам на соответствующие сервисы. Работает на [Production] вместе с основным приложением App.
  • GitLab на [Services] с помощью GitLab-runner-ов, установленных на остальных ВМ, по Merge Request-ам (МР) на ветки dev и master, управляет запущенными докер-образами на [Staging] и [Production] согласно файлам .gitlab-ci.yml проектов.
  • Сборка, тест и стейджинг происходят на [Staging].
  • В данном решении GitLab также работает как Docker Registry, где хранятся собранные образы приложений.
  • Сами GitLab, Traefik и Gitlab-runner-ы также работают в docker-контейнерах, что позволяет легко обновлять и переносить инфраструктуру.

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


https://github.com/Akkarine/demo_cicd


Предупреждение


  • Данное инфраструктурное решение является скорее стартовой площадкой для понимания основных принципов, нагрузочных тестирований не проводилось. Очень многое зависит от железа и архитектуры приложения. Для больших нагрузок, повышения надёжности и работы в облаке рекомендуется рассмотреть Enterprise версии Traefik и GitLab и воспользоваться консультациями специалистов.
  • В репозитории содержатся части конфигурации, которые очевидно нужно будет изменить под себя. Например, временная зона, почтовые адреса, домены и т.п.
  • Так как работа была проведена год назад, Traefik и GitLab заметно развились за это время и уже многие вещи можно оптимизировать. Так, Traefik уже поддерживает DNS Yandex (не без моего скромного участия) и больше не нужен промежуточный сервис. А в GitLab появились более гибкие возможности конфигурирования. Например, rules.
  • Также стоит обратить на секцию Что можно сразу улучшить.


Кейс для веб-разработки


https://github.com/Akkarine/demo_cicd_project


Пример приводится для небольшого веб-приложения, также для понимания основных принципов, так как предполагает:


  • Недоступность приложения при обновлениях. Для организации выкатки без downtime потребуется поддержка со стороны кода приложения (версионность API бэкенда, поэтапные миграции БД), более сложные настройки load-balancer-а и алгоритма выкатки, а в идеале переход на другой уровень инфраструктуры kubernetes. Так что это уже далеко не уровень для начинающих
  • Запуск базы данных в докере (влияет на производительность)
  • Копирование production-базы данных для стейджинга (конфиденциальность данных)
  • Вызов команд от root в контейнерах (далеко не лучшая практика)

Самое главное в репозитории файл .gitlab-ci.yml. Рассмотрим стадии pipeline-а и входящие в них задачи на соответствие шагам в рабочем процессе:


  • base-img-rebuild
    • rebuild-base-backend
      Для ускорения сборка разбита на два этапа. На текущем первом, строится базовый образ, который будет запускаться только при изменении файлов с описанием зависимостей. Во втором (стадия build), уже самого приложения.
  • rebuild-dev-db
    • rebuild-dev-db
      В данной задаче подготавливается общий образ базы данных для тестовых веток с бэкапом базы данных, развёрнутой прямо внутри образа.
  • build
    • rebuild-proxy-img
      Так как образ прокси-сервера nginx будет обновляться крайне редко, то данный образ можно сразу создавать с тэгом latest
    • build-backend
      Происходит сборка приложения с текущими изменениями, пока тегируется номером задачи (уникально для всего GitLab)
  • test
    • testing
      Запуск автоматических тестов
  • deploy-review
    • deploy_review
      Поднимается тестовый сервер, практически идентичный production, только с конфигурациями серверов, менее агрессивными к ресурсам.
  • skip_review
    Используется для того, чтобы пропустить создание тестового сервера, если он на данном этапе разработки не нужен.
  • review
    • approve-dev
      Вызывается вручную. Когда Merge-request идёт в dev (т.е. текущая ветка feature), то можно не нажимать. Задача просто для зелёной галочки на пайплайне.
    • approve-staging
      Вызывается вручную. Когда Merge-request идёт в master (т.е. текущая ветка hotfix или dev и идёт релиз), то протестированный образ с этапа build тегируется latest и заменяет предыдущую версию в репозитории. Для того, чтобы не затёрлась следующей latest версией, также заливается и с тэгом номером задачи.
    • reject
      Вызывается вручную. Просто отображает красный крест на пайплайне. Так из списка Merge Request-ов будет видно, что с данной веткой что-то не так.
    • stop_review
      Может быть вызвана как автоматически, так и вручную. Останавливает поднятый тестовый сервер.
  • rebuild-approved-db-img
    • rebuild-approved-db-img
      Если review был успешен и было обновление файлов в контексте создания образа БД, то создаётся новый образ с меткой latest и заливается в репозиторий.
  • deploy-prod
    • deploy-production
      На проде делается бэкап базы данных и обновляются контейнеры до latest. Если бэкап был неудачен, выкатка не происходит.
    • deploy-production-wo-containers
      В случае, если не поднята базы данных для бэкапа, пропускается это действие.
  • clear
    Происходит очистка серверов staging и production от хлама
    • clean-staging
    • clean-prod
  • restore-db
    • restore-db
      Для первого деплоя или крайне неудачного обновления восстанавливает базу данных из бэкапа.

И в заключение привожу видео митапа в феврале этого года, где показывается результат вживую. В части с экраном чуть рассинхрон с рассказом пришлось потом повторить, забыл включить запись. Первое выступление на публике, волновался.



Материалы


Traefik



Альтернативный вариант reverse proxy + SSL на nginx



GitLab



GitLab SSL config



GitLab Registry



Gitlab-runner



Docker



Прочее полезное


Подробнее..

Перевод В 40 я всё ещё разработчик?

18.01.2021 14:21:57 | Автор: admin
Если вам кажется, что 40 это уже слишком, вы ошибаетесь. Представьте: вы рано приходите в офис. Бросаете рюкзак и отправляетесь на кухню. Вы полночи уговаривали детей уснуть, и они рано разбудили вас. Теперь вам нужен кофе. С кружкой кофе в руке вы замечаете, что на кухне разговаривают три разработчика. Сейчас 9 утра. Они просто пришли пораньше, решаете вы. Но замечаете на них ту же одежду, что и вчера. Они были здесь всю ночь. Вот чёрт! Что-то не получилось?! И что теперь?! CEO, улыбаясь до ушей, проносится мимо вас. Она перескакивает к группе, даёт ребятам пять и издаёт победный вопль.

Ребята, вы его добили, произносит она.

Ваша первая мысль: Я никак не мог остаться прошлой ночью. Случилась предсказуемая неприятность, иногда жизнь так складывается, дети делали уроки. А вы ощущаете себя объектом шуток. В банду вы не попали, потому что не можете протянуть всю ночь. Многие из нас переживают этот ужасный кошмар. Страшно уйти с работы по старости. Индустрия посвятила молодых людей в рыцари стюарды технологий? Естественно сомневаться в себе и думать, сможете ли вы заниматься своим делом. Руководство вознаграждает героические ночные усилия, но как насчёт продуктивного труда? Что насчёт опыта, который привносите вы? Вы хотите потягаться с молодёжью, но не за счёт своей семьи. Но как тягаться с ними, спящими в офисе?

Что ж, есть хорошие новости. Исключительное мастерство не ограничивается возрастом. Но это не освобождает сорокалетних инженеров от проблем. В подобных ситуациях я выживал не раз и провёл небольшое исследование.




Карьера разработчика в 40 это тупик?


Нелепый вопрос. Я знаю, что отдельные разработчики зарабатывают больше 200 000 долларов в год. Им больше 40 лет, но они продолжают идти в ногу с развитием программного обеспечения. Компании предпочитают умения в программировании, но им также нужны опыт, интуиция и наставничество. Вклад опытного разработчика отличается от вклада его молодого коллеги. Оба ценны сами по себе, но вместе остановить их невозможно.

В 40 лет вы были там, делали то. Ваш шар предсказаний, то есть ваш опыт, открывает вам что-то ещё до того, как это произойдёт. Когда на вентилятор подбрасывает говна, вы закатываете рукава и что-то с этим делаете. Я был по обе стороны уравнения и знаю, что отдельные участники вносят свой вклад независимо от возраста. Без них ни одной компании просто нет; компания не ощутит успеха, если будут подражать Повелителю мух.

Коллегии давят, а информации не хватает в менеджменте это вводит опытных инженеров в заблуждение. Есть ощущение, что так и должно быть, потому что опытные инженеры отстают от времени. На самом деле это типичный паттерн: если вы чувствуете, что не можете соперничать в программировании, кажется, что согласиться на должность в управлении это именно то, что нужно сделать. Посмотрите: опрос на StackOverflow показывает, что в среднем опыт программистов США составляет 14,1 года. Для респондентов, которые учились в школе, это означает, что им 36-37 лет.


Скриншот автора из опроса разработчиков на StackOverflow в 2019 году

Дело в том, что есть преуспевающая группа инженеров 40 лет, которые продолжают разрабатывать высококачественное ПО. Вот еще данные, которые я нагуглил:



Похоже, эта возрастная категория вполне устраивает технического гиганта Amazon.

Нужно ли направлять карьеру в сторону управления?


Только если вы этого хотите. Менеджмент это другой набор навыков. Чтобы преуспеть в лидерстве, вам нужны опытные инструкторы и менторы. Распространено заблуждение, что человек становится менеджером, потому что он достаточно долго выполняет свою работу. Если вы выберете путь лидерства, относитесь к нему как к новой профессии или навыку. Пройдите обучение и тенью следуйте за теми, кого уважаете, чтобы понять, как работают эти люди. Оби-Ван Кеноби ваш лучший друг. Я рекомендую выполнить курсовую работу с опытным профессионалом, который разбирается в том, чему и как учить лидеров. Управление это не кладбище слонов из мультфильма Король Лев, а увлекательное направление, которое выбирают профессионалы. Для тех, кто хочет профессионально программировать, даже после 40 лет есть надежда. Согласно опросу StackOverflow 2019 года, 51 % респондентов считает, что переходить в менеджмент нужно, чтобы заработать больше денег.


Скриншот автора из опроса разработчиков на Stack Overflow в 2019 году

У любой возрастной группы есть много вариантов. Индустрия программного обеспечения молодая, но огромная. Когда я много лет назад работал в Symantec, у них появилась понятие, которое вернулось в профессию: главный инженер. Эти инженеры уважаемые люди, эта должность того же уровня, что у менеджеров и вице-президентов, но внимание этих людей сосредоточено исключительно на инженерии. Независимо от того, являетесь ли вы главным инженером, архитектором или другим специалистом, у программиста есть масса возможностей, чтобы продолжать работать. Если в вашей компании нет этой должности, предложите её. В IMS я создал должность Главный технологический руководитель, чтобы мигрировать в облако.

Сколько лет может работать программист?


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

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

Что делать инженеру старше 40?


Основы бессмертны. Оставайтесь стойкими


Умение и талант всегда вознаграждаются. Любая хорошая руководящая команда продолжит работать с лучшими людьми, каких только сможет найти. Как ни странно, я не знаю ни одного инженера-программиста, который бы не работал, независимо от возраста. Инвестирование в основы позволит вам, когда нужно, погрузиться в технологии. Чтобы освоить любую технологию, я использую базовые принципы. Читаю как сумасшедший, всё время что-то пробую. Программирование моё охотничье копьё. Я всегда могу писать код, если у меня есть профессиональные качества, которые меня спасают.

Не позволяйте модным технологиям пройти мимо


Коллеги думают, что вы старый, если вы не знакомы с новейшими, передовыми технологиями. Не важно, когда вы родились, важно, насколько вы соответствуете времени. Вспоминается, как я разговаривал о контейнерах с инженером помоложе. Он читал мне лекции о Docker и не знал, что я работал с контейнерами с рассвета этой технологии. Не задумываясь, я преподал моему лектору урок истории. Тогда мне и пришло в голову: нужно быть в курсе событий, и не важно, как я смотрю на какой-то стек технологий. Я имею в виду такой вопрос: на что ещё я трачу время как человек, который занимается технологиями? Оставайтесь в курсе последних тенденций. Чтобы быть профессионалом в нужный момент, нужно иметь достаточно глубокое понимание.

Изучение конкретных навыков


Многие работодатели требуют конкретных навыков. В этом отношении я заметил небольшую выгоду, которую можно извлечь, если сосредоточиться на N годах Angular или на другом стеке технологий. Это не о возрасте; это о том, чтобы соответствовать времени. Бытует мнение, что сорокалетние инженеры не успевают за новейшими технологиями. Это сбивает с толку, потому что 83 % всех веб-приложений используют REST. Подавляющее большинство этих приложений вызывают некоторый интерфейс CRUD. CRUD API далеки от технологий посадки на Луну. Дело в том, что огромного пробела в навыках нет. В значительной степени все сводится к восприятию. Мой совет: оставайтесь в курсе событий, будьте активны. Убедитесь, что ваше ближайшее окружение понимает, что вы по-прежнему соответствуете времени.

Заключение


Квалифицированные инженеры попадают в ловушку, полагая, что невидимый возрастной барьер ограничивает их ценность. У некоторых людей в самом деле есть предвзятое представление о том, что вы можете делать в 40 лет, но это их границы, а не ваши. Планирование, взаимодействие и чистое желание позволят вам преодолеть заблуждения о возрасте и продолжить процветать как человеку, который вкладывается в дело.




Подробнее..

Рутокен ЭЦП 2.0 3000, COVID-19, УЦ Росреестра и операции с Росреестом онлайн ver. 2.0

01.09.2020 16:17:46 | Автор: admin
Привет, хабровчане!

К написанию данной статьи меня подтолкнули сразу несколько вещей:
  1. Должок перед компанией Актив, которая любезно предоставила мне их новый крипто-токен Рутокен ЭЦП 2.0 модификации 3000. Nastya_d, тэгну вас, т.к. вы последняя, кто постил от лица компании
  2. COVID-19, который перевел работу Росреестра в режим только по предварительной записи с хронической невозможностью туда записаться
  3. Изменения в законодательстве, которые были приняты после череды прошлогодних скандалов, связанных с применением электронной подписи
  4. Обновление Росреестра по части проведения электронных сделок и подачи каких-либо иных электронных заявлений


Так что, наверное, так и пойдем. Кому что-то не интересно, можете переходить на интересный заголовок.

Рутокен ЭЦП 2.0 3000



Факты


Новый токен под старым брендом. Вроде какая-то добавка 3000 в конце и вообще не понятно о чем это. А между тем перед нами принципиально новый носитель ключевой информации. С классическим Рутокен ЭЦП 2.0 его объединяет пожалуй лишь то, что он может быть с ним совместим, и по прежнему на нём можно хранить неизвлекамые закрытые ключи, криптографические операции с которыми происходят прямо в контроллере девайса, а закрытые ключи никогда не покидают его пределов.

А в чем же разница? Пожалуй, отличия четыре:
  1. Это функциональный ключевой носитель (ФКН), работающий по протоколу (на самом деле метапротоколу) SESPAKE, что дает нам защиту канала между драйвером и контроллером от прослушивания
  2. Многократное ускорение при работе с токеном, на котором есть несколько ключей с сертификатами
  3. Невозможность работы в режиме ФКН через PKCS#11
  4. Отсутствие режима работы без КриптоПро


Давайте теперь по порядку.

ФКН с SESPAKE дает возможность защитить канал обмена между драйвером/криптопровайдером и контроллером хранилища. Раньше подобный перехват был возможен, и любой любитель Wireshark с установленным USBcap мог лицезреть открытые PIN-коды при работе с классическим Рутокен ЭЦП 2.0, которые транслируются в APDU командах контролера, что потенциально даёт вектор атаки по подслушиванию PIN'а и дальнейшему подписыванию всего и вся без взаимодействия с пользователем. И хотя формально закрытые ключи всё равно остаются неизвлекаемыми, это может перестать быть принципиальным моментом.

Ускорение. Уж не знаю как и почему, но если у вас было несколько сертификатов на одном токене Рутокен ЭЦП 2.0, то тормоза были обеспечены. Особенно при попытке софта перебрать все сертификаты или найти контейнер с нужным. Ваш покорный слуга хватал лично ситуации, когда в некоторых системах ЭДО дешифрация маленького документа занимала более минуты. Всё кончилось тем, что Тензор в своих плагинах даже запретил использование аппаратных токенов совместно с КриптоПро 5-й версии, чем вызвал много подозрений. Теперь всё не так, я даже не замечаю разницы между тем, когда на токене был один сертификат, и теперь, когда их четыре (Тензор при этом всё равно не работает с аппаратными ключами в версиях плагинов где-то с осени 2019 года).

Режим PKCS#11 это возможность использовать библиотеку производителя, которая реализует стандартное API PKCS#11 по работе с ним (напрямую без КриптоПровайдера). Под Windows применяется мало, т.к. Windows Crypto API является доминирующим способом. Под Linux похоже увы, если не брать гипотетическую возможность установить КриптоПро под Linux и использовать его. КриптоПро под Linux представляет собой по сути реализацию Windows Crypto API, то есть ни одна традиционная софтина под Linux это не поддерживала и не будет поддерживать. Скорее это возможность для разработчиков пилить госзаказ и разрабатывать соответствующие серверные продукты под Linux с возможность криптографии ГОСТ. О применении в Linux Desktop речи не идет. Тем не менее Рутокен поставляет свою библиотеку PKCS#11 для старого Рутокен ЭЦП 2.0 и мне даже удавалось как-то подружить её с плагином ГосУслуг для аутентификации по электронной подписи. С ФКН возможности такой, как я понимаю нет, но возможно компания Актив меня поправит.

Отсутствие режима работы без КриптоПро. Скорее всего это связано с предыдущим пунктом. Но на практике сложилась некоторая путаница при использовании Рутокен ЭЦП 2.0. Почему-то мало кто знает, что Рутокен ЭЦП 2.0 умеет прекрасно работать с КриптоПро 5-й версии. Возможно, из-за того, что он появился задолго до КриптоПро 5. В результате, различные участники рынка наработали кастомные решения, которые позволяют работать с Рутокен ЭЦП 2.0 без КриптоПро. Это приводило к достаточно серьезным трудностям в диагностике проблем на сайтах. Ты говоришь, что у тебя КриптоПро и Рутокен ЭЦП 2.0, а тебе говорят, что Рутокен ЭЦП 2.0 не работает через КриптоПро. С 3000-м альтернативы, похоже, никакой нет. Только КриптоПро 5. Хорошо это или плохо время покажет.

Картинки


Если вы используете КриптоПро 5-й версии, то поддержка идет из коробки. Отличия для пользователя минимальны. Создание ключевого контейнера:


В отличие от тупого носителя у вас теперь есть выбор в каком режиме вырабатывать ключевую пару. Верхний новый режим ФКН, внизу старый режим Рутокен ЭЦП 2.0 с поддержкой PKCS#11, посередине режим тупого токена, в котором всю работу делает криптопровайдер.

При создании первого контейнера в режиме ФКН КриптоПро попросит задать PUK-код и пароль:



В результате получим ключевую пару, которую можно посмотреть через Панель управления Рутокен:


Резюме


Рутокен ЭЦП 2.0 3000 стал для меня долгожданной заменой для ранее использованного функционального ключевого носителя из АПК КриптоПро Рутокен CSP 3.6, который умел только старые ГОСТы. Тем не менее, я очень расстраиваюсь, что для работы с этим всем добром приходится держать виртуалку с виндой. Было бы здорово, если бы Рутокен раскрыл описание своей реализации протокола SESPAKE. Думаю, что прикрутить стандартные линуксовые библиотеки для работы с этим токеном можно будет будет без особых проблем.

COVID-19 и РосРеестр


Пандемия нехорошим образом сказалась на возможности работы с РосРеестром. Не знаю как других регионах, но в Питере случилась прямо какая-то вакханалия. С одной стороны, МФЦ полностью перешли на работу по предварительной записи (сейчас вышли, но по услугам РосРеестра продолжают оставаться). С другой стороны, записаться на это стало возможным только в первые минуты начала дня после 9:00 и где-то на 2-3 недели вперед. СМИ сообщали, что риелторы бронировали всё под себя, а потом продавали свою очередь но так как запись была именная, то помимо покупки очереди приходилось ещё и оформлять доверку на такого дельца, потому что кроме него никто пойти по очереди не мог.

Альтернативой этому стали нотариусы, которые могут в электронном виде отправлять документы на регистрацию сделки в Росреестр, но они берут очень дорого за нотариальное удостоверение сделки. Другая альтернатива ДомКлик от Сбербанка: если покупатель покупает в ипотеку, то ДомКлик позволяет зарегистрировать всё электронно (даже с небольшой выгодой по процентной ставке).

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


Однако ДомКлик такие заявления подавать не умеет. Нотариусы тоже за это не берутся по неизвестным мне причинам, которые я не выяснял. Сделка оказалась под угрозой, так как МФЦ предложил запись аж на 23 сентября.

И тут выхожу я весь в белом и говорю: А давайте сделаем это в электронном виде сами?

Изменения в законодательстве


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

После череды скандалов(раз, два, три), прокатившихся в 2019 году, связанных с регистрацией прав на недвижимость и создания ЮЛ с использованием электронной подписи, были приняты некоторые изменения в законе. Вкратце: теперь по дефолту использовать ЭП для сделок по недвижимости можно только в том случае, если сертификат ЭП выдан удостоверяющим центром Росреестра, а точнее его дочки ФГБУ Кадастровая палата. Вы можете этот дефолт отменить, явно указав, что хотите это делать с сертификатом любого УЦ. Однако, для этого вам необходимо подать заявление в Росреестр через МФЦ, а для этого предварительно записаться на 2-3 недели вперед (смотри выше) то есть никакого выигрыша по времени.

Что ж? УЦ Росреестра оказывается единственной альтернативой. Начинаем изучать. УЦ располагается по ссылке. Нажимаем Сколько стоит?. 2200 рублей с записью на токен. 700 рублей Предоставляется в электронном виде личность удостоверяется в офисе. Опаньки! В электронном виде, это означает, что работают по схеме с запросом на сертификат. То есть можно самым правильным способом сгенерировать пару у себя на рабочем месте, отправить им запрос, а в офисе только пройти процедуру удостоверения личности то чем и должен заниматься УЦ.

Регистрируемся, заводим все данные в профиль. Жмем Отправить запрос. Сайт делает автоматическую диагностику установленного ПО: всё удовлетворяет необходимым требованиям, т.к. используются только общепринятые плагины к браузеру, а не так как у Тензора. Генерируем пару в режиме ФКН на нашем новом Рутокен ЭЦП 2.0 3000. Ждем. Через несколько минут приходят на электронную почту письма о дальнейших действия. Сказано, ждать документа на оплату. Где-то через полчаса приходит квитанция на оплату с QR-кодом. Платеж в бюджет, поэтому используется УИН. Оплачиваем 700 рублей через онлайн-банк. Ещё через 20 минут, заявка переходит в состояние оплачено. Связка Банк<->ГИС ГМП<->Росреестр работает быстрее чем платежи по реквизитам счета, но конкретная скорость может зависеть от выбранного банка. Звоним по указанному в письме телефону для записи на время для удостоверения личности номерки есть даже на сегодня. Бегом в офис кадастровой палаты. И вот результат в 14:00 этим вопросом озадачились. В 16:00 прошли процедуру удостоверения личности и пока ехали домой, выпустились сертификаты. Процедура достаточно тщательная, помимо всех документальных проверок, также производят фотографирование. Сертификаты, к слову, на 15 месяцев, а не как обычно на год.

Резюме


Несмотря на то, что Росреестр остался фактическим монолистом на рынке ЭП для сделок по недвижимости, работает четко. До этого я пользовался УЦ Тензор, где физлицу можно получить сертификат ЭП за 500 рублей. Но скорость работы, факт того, что не нужно ставить дополнительный софт, как у Тензора, сертификат на 15 месяцев всё это даёт мне основание похвалить впервые за много лет Росреестр. 200 рублей переплаты относительно Тензора того стоят, ИМХО.

Обновление Росреестра по части проведения электронных сделок



В предыдущей статье на эту тему мы рассматривали оформление сделок с помощью основного портала Росреестра (не доступен в момент написания). Вначале я решил пойти по проторенной тропе, но очень быстро упёрся в то, что введенный кадастровый номер помещения не валидируется, хотя введен абсолютно правильно. Анализ HTML-кода показал, что в валидатор вставлен костыль, который отвергает большинство кадастровых номеров по первой группе цифр, которая обозначает регион. Все регионы кроме шести штук (16, 26, 47, 61, 63 и 76) оказались таким образом как бы забаненными. Нигде об этом естественно не написано. Хотелось разбомбить.

Однако я быстро вспомнил, что аналогичный функционал, но с другим интерфейсом был представлен в личном кабинете гражданина в Росреестре (авторизация через ЕСИА), который мне не удалось протестить в прошлой статье. Сходил туда и беглый осмотр показал, что для Питера никаких ограничений нет. Значит будем делать так.
О возможных причинах такого поведения Росреестра
В настоящий момент в Росреестре идет активная миграция на новую информационную систему ФГИС ЕГРН. Миграция происходит по регионам. Возможно, что старый интерфейс для электронных заявлений не предназначен для работы с ФГИС ЕГРН. А новый, который в личном кабинете, предназначен.


Переходим на вкладку Услуги и сервисы и выбираем нужную услугу:


Далее нас ждет несколько шагов по заполнению заявления (в зависимости от выбранной услуги):


На первом шаге необходимо просто согласиться и поставить галочку.

Далее, к сожалению, скриншоты не публикую, так как в них содержится много персональных данных.

На втором шаге необходимо проверить и заполнить данные заявителя. Данные подтягиваются из ЕСИА, но если у вас профиль заполнен не полностью, то что-то придется дописать. Также Росреестр плохо подтягивает из ЕСИА адреса проживания и регистрации скорее всего вам придется указать их вручную. Также отмечу, что на данном шаге есть возможность добавить других заявителей. Это необходимо сделать, если у квартиры несколько собственников.

На третьем шаге указываются (в данном случае) данные о собственности (реквизиты помещения, доли и т.д.).

Четвертый шаг самый сложный. Тут необходимо загрузить все документы. Начиная со сканов паспорта, которые каждый заявитель заверяет своей электронной подписью, заканчивая договорами и прочими документами, которые должны заверяться электронными подписями тех, кто их подписывает. Например, договор, должен быть подписан всеми сторонами сделки. Кроме того, может понадобиться документ, который у вас есть только в бумажном виде или от стороны, которая в сделке не участвует например, согласие супруга. Тут можно прибегнуть к нотариусу нотариусы умеют сканить документы и своей электронной подписью подписывать сканы и факт того, что получившийся электронный документ полностью тождественен документу на бумажном носителе. Возможно, если весь документ составляет сам нотариус, то он может сразу сделать его электронным со своей подписью без вывода на бумагу не поверял работают ли так нотариусы на практике.

Для подписи одного документа несколькими электронными подписями так, чтобы все подписи попали в один файл (Росреестр не поддерживает возможность указать несколько файлов с подписями, которые относятся к одному документу), в каментах к прошлому посту рекомендовали использовать бесплатную утилиту Криптолайн фирмы Такском. Действительно, утилита огонь, хоть интерфейс и чудаковат.

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

Резюме


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

Из песочницы Анализ геймдизайна Hollow Knight. Часть 1. Забытое перепутье

17.06.2020 14:20:13 | Автор: admin


Привет! Я буду подразумевать, что если вы читаете это, то прошли Hollow Knight. Это позволит мне не описывать каждый пенек, а уделить больше времени важным вещам.

своих эссе про Город Слёз я касался темы того, как формируется поведение игрока. Но если там фокус был на самой ситуации, и я не сильно вдавался в детали, чтобы не перегружать повествование; то сейчас я хочу разобраться с этим настолько подробно, насколько это будет необходимо. Таким образом, я начинаю серию материалов о геймдизайне Hollow Knight. И здесь самое время внести ясность, поскольку понятие геймдизайна слишком широкое. В общем смысле оно о том, как передать человеку задуманный опыт. Меня интересует то, как геймплейные возможности ведут к определенному поведению, так что на этом будет центральный фокус. Ясное дело, что на то, как себя вести, будет также влиять звукорежиссура, визуальная составляющая, и прочие несомненно важные вещи, так что иногда я буду говорить и о них.

Чтобы анализировать, насколько хорошо у игры получается передать опыт, надо понять, каким он задумывался. Для этого рассмотрим страницу в стиме. Выделим главное: Hollow Knight приключение, которое предлагает узнать о тайнах древнего королевства, при этом придется много сражаться и исследовать. Также важной характеристикой обозначается вариативность. Тут нужно добавить, что для мидкор аудитории эта игра будет как минимум челенжевой. При этом в описании на сложность намекает лишь слово классический, что весьма странно. Так что всегда обращайте внимание на теги. Естественно, помимо стима человек мог узнать об игре благодаря Кикстартеру, обзорам, просто получив совет или из любого другого источника информации. И все это напрямую с произведением не связано, так что важно понимать, как сильно первые часы игры будут влиять на конечный опыт.

Если вы задумаетесь, что влияет на поведение игрока, то на ум придет множество вещей. Но на что ориентироваться в самом начале? Вероятно, вы неоднократно слышали про силу цвета, света, направляющих линий, композиции, а также других классических приемов, которые позволяют управлять человеческим вниманием. И это довольно универсальные правила, но они не являются гарантией, что даже в линейной игре человек будет делать то, что задумано. Как же Team Cherry справились с начальным этапом прохождения, где закладываются важнейшие аспекты игрового поведения? Давайте разбираться.

Your browser does not support HTML5 video.

Ролик ничего не говорит, помимо того, что произошла какая-то неведомая хрень. Это важно, поскольку если бы в нем сообщалась конкретная информация, то это сильно бы влияло на дальнейшее поведение, т.к. больше ничего о мире игрок бы не знал. ГГ падает, игрок получает управление, и сразу же возникает вопрос, а куда идти, налево или направо? Ну, во-первых ХК изначально повернут вправо, если же есть предшествующий опыт, то он тоже подскажет, что базовое направление в платформерах слева направо. Можно порассуждать о том, почему так: может потому что европейцы читают слева направо, сверху вниз. Но один из первых культовых платформеров сделали японцы и тут самое время обрубить всю эту историю, потому что вероятность определенного поведения важна, если она ведет к значимым изменениям. (А в данном случае слева находится тупик с гео). Именно поэтому в большинстве случаев я буду сначала рассматривать опции, доступные игроку, а уже потом дополнять их рассуждениями, если они вообще потребуются. По такому поводу рассмотрим сразу весь туториал.



Сперва идут сегменты, которые при прохождении будут гарантировать, что игрок освоился с механикой, поскольку не сделав этого, их невозможно пройти. Далее гайд по лечению и платформенная секция, где при этом будут мешать мстекрылы. Далее вновь платформинг, и финишная прямая. При этом уже в туториале есть опциональные ответвления с ништяками. Работает это таким образом: игрок совершает определенное поведение, в конце которого получает награду, и теперь он будет стараться воспроизводить действия, которые к ней привели, вновь. И наоборот, нежелательное для разработчиков поведение наказывается, а после игрок будет стараться избегать подобного. Так используется оперантное научение, без применения принципов которого не обходится ни одна современная видеоигра.

Your browser does not support HTML5 video.

Данный сегмент интересен тем, что препятствие непреодолимо без знания о погинге, так что если приём получится, то амулет будет более существенной наградой, чем простая кучка гео. Таким образом игрока поощряют разбираться с механиками тщательнее. Так что исследование в этой игре относится не только к прохождению локаций.

Позже по пути встречается живокровь, но происходит это как бы кстати, не особо объясняя полезность этой механики. Дело в том, что эти коконы расположены в основном в скрытых местах рядом с усложнившимся куском локации, таким образом поощряя игроков, которые исследуют каждый уголок. А появление ее в туториале на ровном месте лишь сбивает, и ничему не учит кроме сообщения о том, что такая механика вообще существует.
Дальше остается небольшой кусок информации, а после Грязьмут.

В нём первый NPC. Он даст некоторую информацию, что будут делать и все другие после него. Интересность их монологов будет зависеть от индивидуальности игрока. И в любом случае персонажи будут просто подстегивать чувство неизведанного, тем самым мотивируя проходить дальше. Здесь же происходит знакомство с местной системой сохранения, которую, кстати, можно абузить, при этом узнать об этом довольно легко, а сл-но многие будут этим пользоваться. В конце можно найти тупик с запертой дверью. Далее спуск в Забытое Перепутье.



Здесь у игрока есть единственная тропка, по которой он пройдет в 100% случаев, все остальное является опциональным.

В видео-версии я разбираю контент каждой комнаты, поскольку это влияет на пейсинг, а следовательно позволяет смотрящему его прочувствовать. Здесь же я буду разбирать наиболее важные моменты.


Храм черного яйца

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



В конце этажа первый серьезный враг самое время рассказать о том, как смерть влияет на игрока. Фактора тут два. Во-1, это наказание за поражение, так что игрок будет впредь стараться его избегать. А во-2, это отрицательное подкрепление, что должно заставить возвращаться к месту смерти. Вместе это создает цену навыкам игрока: в такой ситуации достижение цели будет гораздо приятнее.

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


Шахта

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

Your browser does not support HTML5 video.

Очередной сегмент, который награждает за любознательность и сноровку. До гусенички не допрыгнуть обычным способом, но можно использовать пого на мстекрыле.



Эта комната познакомит с Отцом Гусениц, а также если игрок придет сюда, встретив хотя бы одну из них, то получит награду. Поскольку это важная игровая механика, то стоит отметить, что комната с высокой вероятностью будет посещена, так как: находится в самом начале первой локации, вход выделен аркой, светом и понятным уступом. Так что было сделано достаточно, чтобы игрок не упустил этот элемент.


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



А вот уступ пониже уже не так явно выделяется, что не удивительно, поскольку проход на данном этапе для большого числа игроков закончится необходимостью апгрейда. Однако его можно преодолеть с помощью погинга, и в таком случае встретить мини-босса, который является сильнейшим врагом на данном этапе. Возможностей уворачиваться не так много, а суммарно придется нанести 60 ударов. Челенж хоть и нелегкий, но вполне преодолимый, поскольку есть достаточное количество окон как для хила, так и атак. В награду игрок получит кусок маски, который сам по себе ничего не делает, а гео с Чревня не выпадает вовсе. Таким образом, основной наградой будет осознание того, что человек прошел необязательное испытание, которое большинство игроков в начале пропустят. Для некоторых это будет весьма круто, но гео сверху я бы всё-таки накинул.

После шорткат, который ведет в обязательное ответвление. Здесь происходит знакомство с картой. Предоставляет ее Корнифер новый npc, нахождение которого в будущем станет для игрока крайне приятным событием. Интересный факт: картограф не сигнализировал о своем присутствии с помощью напевания и листов бумаги в релизной версии, но изменилось это спустя менее двух недель. Помимо покупки карты, игрок узнает, что в магазинчике в Грязьмуте можно приобрести полезные вещицы, которые помогут ориентироваться еще лучше. Что тут важно отметить: если до сей поры у разработчиков было не так много средств, чтобы предсказывать вероятность посещения комнат и в целом пути, который будет выбирать игрок, то теперь центральное место в формировании поведения, связанного с перемещением по локации и между ними займет карта. Безусловно, будут и люди, которые захотят поиграть вслепую или станут пользоваться картой очень редко, но в данном разборе я эту категорию рассматривать не буду, поскольку игра подразумевает использование этой механики.



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



А тут большинство игроков в вероятнее всего встретит своего первого мини-босса. Матка Жужж не особо опасный противник, но в случае смерти идти до нее придется прилично, если не найти лавку рядом с вокзалом, и тем более рядом с горячими источниками. В награду игрок получит гео. Справа недосягаемый склон, откуда слышны тревожные маньячные звуки. И далее можно найти Слая, после диалога он будет продавать в Грязьмуте полезные вещи.



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

Your browser does not support HTML5 video.

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

Интересная деталь: как только босс в первый раз выполнит свою атаку после нока, левая сторона арены станет хлипкой и ее можно будет сломать. По словам разработчиков, это было сделано для тех людей, которым даже первого босса будет слишком трудно одолеть. И данный вариант возможность продолжить путешествие, и с новыми силами вернуться и попытаться вновь позже. Звучит интересно, поскольку добавляет вариативности, но есть ряд проблем. Для примера: я об этой возможности не знал ровно до тех пор, пока не прочёл о ней на вики. И также читал комментарии других людей, которые тоже понятия об этом не имели, так что проблема не единичная. Почему так? Во-первых, сама возможность не очевидна. До этого боя мы могли встретить всего 2 подобных энкаунтера, и из них выбраться живым было нельзя, не победив врага. Сами разрушаемые стены точно так же можно было встретить, но нет гарантии, что конкретный игрок будет о них знать, даже с учетом всех приложенных усилий. Так или иначе, разрушаемая стена арены первый подобный случай ( и, кстати, единственный ). Ну окей, скажем, можно было догадаться, ведь отчетливо видны трещины в стене, а также визуально это подчеркнуто отлетающими досками. Ладно, но что если игрок находится в другом конце арены? Также надо учитывать, что в этот момент его внимание будет сфокусировано на бое. Если сражаться будет слишком легко, то вы может и заметите эту деталь, но она вам не пригодится. А если сложно то скорее всего упустите, если только ради прикола в панике не начнете долбить по стенам, мол выпустите меня: вот в таком случае вас будет ждать приятный сюрприз. По какой-то причине атаки босса, если он прижмет игрока к стенке, не могут разрушить выход. Также странно, что не происходит никакого треска, хруста или чего подобного вместе с визуальным эффектом.

Your browser does not support HTML5 video.

Ну да ладно, допустим игрок, для которого предназначалась эта возможность, воспользовался ею. И ему останется лишь бежать. А вот представьте, как для него круто было бы зачизить этого босса, нанося ему урон через пол. Человек несколько секунд назад был в безвыходной ситуации, а теперь у него возникнет чувство, что он перехитрил игру, поскольку был внимателен, а также хорошо понимает, как она работает. Это была отличная возможность для разработчиков наградить игрока за исследование, которой они, к сожалению, не воспользовались. Вместо этого рыцарь отлетает в недосягаемое место, а не остается на краю, и только тогда вылезает опарыш. А без нанесения урона по нему, выиграть бой, увы, невозможно.

И да, это ни в коем случае не серьезный косяк. Я рассказываю об этом, потому что мне эта ситуация кажется интересной с точки зрения дизайна тут есть чему поучиться.

В награду игрок получит гео, а также эмблему города, которую пока применить нельзя. Но само упоминание города явно заинтересовывает.

Your browser does not support HTML5 video.

В родовом кургане находится апгрейд, который позволит направиться в следующую локацию. Сама комната, естественно, задизайнена таким образом, что без применения заклинания ее не пройти. Так что теперь игрок будет знать, как справиться с Древним Бальдром на входе к Зелёной Тропе. Сразу после находится амулет.

И теперь, в зависимости от предшествующих действий, игрок может доисследовать локацию, либо отправиться в следующую. В любом случае, давайте посмотрим, что игроку предлагает Слай с Изельдой.



Весь ассортимент скупить не получится, так что придется выбирать. Если полностью пробежать Перепутье, при этом ничего не терять при смерти, а также усиленно не фармить, то в итоге будет примерно 1200 гео. Из которых игрок с крайне высокой вероятностью потратит 30 на карту, 220 на компас, 120 на перо, а также 50 на вокзал. Остается 780. Важно, что фармить в этой локации не очень-то приятно. Самый эффективный способ убивать оболочку стражника, из которого высыпается 45 гео. Так что допустим, что раз максимум 5 игрок может на него сходить, но потом всё равно заскучает.

Естественно, могут быть люди, которым всё ни по чем, и они сразу же нафармят себе на фонарь 1800 гео, что позволит им второй локацией посетить Кристальный Каньон, хоть исследовать его толком и не получится, поскольку не будет необходимых апгрейдов. И закончится все в Землях Упокоения, где находится гвоздь грез. Рут возможный, но малоинтересный и маловероятный, так что подробно на нем останавливаться не будем.

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

Your browser does not support HTML5 video.

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

Игрок скорее всего неоднократно сталкивался с тем, что гео иногда падают на колючки, таким образом становясь недоступными, поэтому польза Загребущего Роя будет для него ясна. Однако на данном этапе придется выбирать, ведь доступно всего 3 ячейки.
А вот с Крепким Панцирем будет уже не так очевидно. Даже если его купить и немного поэксперементировать, то не будет ясно, насколько этот амулет полезен.



И дальше остаются только булавки, которые продает Изельда. Поскольку я подозреваю, что большинство игроков захочет ориентироваться по карте лучше, то часть пинов является практически обязательным приобретением. Так что будем считать, что игрок крайне вероятно купит несколько из них.

Итог


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

В следующий раз расскажу про Зеленую Тропу и Грибные Пустоши. Не забудьте написать свои мысли об этом материале в комментариях это поможет мне улучшить качество контента в будущем. Спасибо за внимание, пока./>
Подробнее..

Анализ геймдизайна Hollow Knight. Часть 2. Зелёная тропа Грибные пустоши

21.06.2020 18:22:59 | Автор: admin

deviantart.com/orioto

Предыдущая часть. Видеоверсия внизу.

Зеленая тропа


Основной упор при разработке был направлен на разнообразие мира. Зеленая Тропа не просто версия Перепутья, немного измененная тематически, но полноценный биом со своей уникальной атмосферой и наполнением. Но силами двух людей не создашь столько контента, чтобы одним разнообразием держать темп на заданном уровне, поэтому нужно также следить за сложностью. Помимо грубого роста за счет здоровья и дистанции атак, она также увеличивается за счет мувсета, взрывающихся трупов, а также неожиданных нападений. И последнее является основным акцентом локации: ловушки здесь расставлены на каждом шагу, что заставляет игрока быть более внимательным, а не только умело таймить атаки. Платформинг остался примерно на том же уровне, разве что некоторые враги требуют лучшего позиционирования. Важно, что основной задачей здесь было скорее просто не дать заскучать, чем научить сражаться лучше.


После апгрейда менеджмент души стал более вариативным. По задумке он должен создавать ситуации, где игрок будет принимать мини-решение, и его исход будет либо совершенствовать навыки, либо укреплять уверенность в своих силах. Например, стоит ли убить врага, чтобы восполнить хп, либо дождаться более легкой добычи, чтобы не рисковать? Стоит потратить душу на заклинание, чтобы облегчить бой, либо обезопасить себе будущие драки, оставив душу на хил? Это отличная идея, углубляющая геймплей. Но на практике все иначе.

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


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

Your browser does not support HTML5 video.


Здесь опытные игроки могут перепрыгнуть, и получить ценную возможность исследования без карты, но данный путь менее вероятен, из-за труднодоступности. А при прохождении основного пути в самом начале сидит картограф, что явно уменьшает шанс заблудиться. Так исследование локации становится менее напряжным, но и менее наполненным эмоциями. Также до получения следующего апгрейда есть возможность посетить 2 различные локации, обе из которых закончатся тупиком, но о них позже.
Журнал охотника прибавляет мотивации убивать каждого врага на пути, не пропуская даже самых сильных, поскольку за убитых будет даваться информация. Но количество жертв, требуемое для получения крупиц лора таково, что некоторых мобов придется фармить а это представляется мне не самым интересным занятием.
Далее на пути будет пару интересных драк, NPC, и после этого значимые опции в исследовании локации заканчиваются, поскольку придется убить Босса.

Апгрейд охраняет Хорнет. У меня не сразу получилось ее победить, потому что я не сильно умелый игрок в 2d-экшн играх, но ушло на это менее 5 попыток. Однако я читал такие истории, где люди делали по 20 попыток и больше, прежде чем смогли продвинуться дальше. Но босс довольно легкий, почему так? Не смотря на индивидуальные особенности, можно найти причины таких событий в геймдизайне. Хорнет первый враг, где надо стабильно избегать урона, при этом сильно полагаясь на скорость реакции. Естественно, рано или поздно игрок начнет действовать упреждающе, выучив атаки, но до той поры ему придется полагаться на свою ограниченную проводимость нервных волокон. Давайте посмотрим, сколько видов мобов было встречено всего, а для скольких требуется проверка на реакцию.

Апгрейд охраняет Хорнет. У меня не сразу получилось ее победить, потому что я не сильно умелый игрок в 2d-экшн играх, но ушло на это менее 5 попыток. Однако я читал такие истории, где люди делали по 20 попыток и больше, прежде чем смогли продвинуться дальше. Но босс довольно легкий, почему так? Не смотря на индивидуальные особенности, можно найти причины таких событий в геймдизайне. Хорнет первый враг, где надо стабильно избегать урона, при этом сильно полагаясь на скорость реакции. Естественно, рано или поздно игрок начнет действовать упреждающе, выучив атаки, но до той поры ему придется полагаться на свою ограниченную проводимость нервных волокон. Давайте посмотрим, сколько видов мобов было встречено всего, а для скольких требуется проверка на реакцию.


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

Неудивительно, что когда возникает необходимость сражаться с боссом, у которого это основная особенность, то у игрока возникнут проблемы.Хорошо, что рядом есть лавка, так что перерывы между попытками не будут слишком долгими. Однако ничто не мешает ее пропустить, и в таком случае опыт будет куда более фрустрирующим.

После получения Плаща ХК становится гораздо мобильнее, в драках теперь становится легче использовать тактику hit&run. Открывается доступ к Салюбре, а также следующей локации Грибным Пустошам. При встрече нового торговца игроку преподносится явный способ стать сильнее собирать амулеты, поскольку так откроется доступ к большему числу ячеек. Это тоже служит дополнительным поводом к исследованию ответвлений. Так, Салюбра и наличие карты дают высокую вероятность, что игрок будет возвращаться к неисследованным местам на карте, прежде чем двигаться в новый биом. Данное поведение к тому же прослеживается у некоторых любознательных игроков: таким сложно жить с фактом того, что у них за спиной находится закрытая дверь, к которой у них уже есть ключ. Они обязательно вернутся и посмотрят, что за ней, прежде чем идти дальше. Так что важно понимать, что некоторые сначала будут исследовать все комнаты, доступные прямо сейчас, и только потом двигаться к получению нового апгрейда.



Предложенные амулеты, бесспорно, полезны. Но за неимением достаточного числа ячеек наиболее эффективным будет Длинный Гвоздь, поскольку позволит лучше делать то, что уже и так умеет игрок, занимая лишь 2 ячейки. В этом он, кстати, схож с Ловцом Душ. Для драк с боссами можно будет надеть Быстрый Фокус. И да, Шаманский Камень один из самых сильных амулетов в игре, но на данном этапе он малоэффективен для неопытного игрока.

С плащом на Зеленой Тропе можно будет подобрать парочку амулетов, подраться с опциональным мини-боссом, и дальше останется только направиться к Грибным Пустошам.

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

Понимая это, разберем доступные опции к перемещению. Мы-то с вами знаем, что следующей крупной локацией будут Грибные Пустоши. Однако к ним сейчас есть два прохода: через Забытое Перепутье и Туманный Каньон. А последний является отдельной локацией, пусть сейчас из нее и доступно всего пару комнат. Поэтому игрок засомневается, стоит ли отправляться вглубь. И то же самое справедливо при переходе к Грибным Пустошам с Забытого Перепутья. Так какой вариант более вероятно выберет игрок? Я считаю, что через Туманный Каньон. Во-первых, потому что этот переход доступен до получения апгрейда. Во-вторых, локация отличается тематически, и игрок найдет ее позже, чем переход со стороны Перепутья а значит и запомнит лучше. Также имеет смысл отметить, что пройдя одинаковое расстояние как по одному, так и по-другому проходу, в случае с Туманным Каньоном игрок доберется до Вокзала, а оттуда уже более вероятно пойдет в следующую локацию.
По пути через этот проход игрок встретится с напевающим вдалеке Корнифером, а также банком, где надежно будут храниться гео, пока счет не превысит 2550 единиц, но об этом позже.

Грибные пустоши


Как и предыдущая локация, Грибные Пустоши отличаются тематически и геймплейно. Здесь акцент будет на платформинге, который усложнится как в боевых ситуациях, так и при обычном исследовании. Это первая локация, которую невозможно пройти без применения пого, так что к ее концу можно быть уверенным, что игрок понял этот аспект. Но это совершенно не гарантирует, что такой вид атак будет применяться в бою.
При входе со стороны Вокзала Королевы, сразу же можно найти картографа, что для третей локации слегка удручает. Очень сложно постоянно не подглядывать в карту, когда она есть. А так теряется весомая часть погружения, поскольку нет необходимости рисовать местность в голове, тем самым лучше ощущая масштаб мира.
Бой незначительно усложняется. У местных рядовых мобов теперь в среднем больше здоровья, и по 2 атаки, из-за чего придется сильнее полагаться на реакцию, а также лучше маневрировать, чему способствует новоприобретенный плащ.

Your browser does not support HTML5 video.
После исследования деревни богомолов откроется новый апгрейд, и вот тут в игре происходит существенное увеличение вариативности в последующем изучении локаций. Mark Brown

Об этом давайте в порядке вероятности их посещения.



1)Город слез. Скорее всего большая часть игроков сперва посетит именно его. Происходит это так: вы пытаетесь победить Лордов Богомолов, у вас не получается. Вы возвращаетесь за своей тенью, по пути встречаете Квирелла. Он дает явный комментарий о текущей неготовности к этому бою, и предлагает посетить Город, найти кузнеца и улучшить свой гвоздь. Также именно в этом направлении отправилась Хорнет, так что Город самая яркая точка интереса.

2) Глубокое гнездо. Как я говорил, есть существенная тенденция к изучению всех доступных опций в локации, прежде чем идти в следующую. Таким образом игрок найдет разрушаемую стену, и рухнет в Глубокое гнездо. Также в него попадут игроки, что одержали победу над Богомолами ( которые, к слову, являются одним из лучших боссов). Здесь важно, что в отличии от Города, из гнезда можно выбраться. А учитывая некомфортную обстановку и жирных мобов, некоторые игроки решат сперва посетить Город, чтобы улучшить оружие.

3) Воющие утесы. Тут все просто. Для их посещения нужно лишь помнить об одном из входов: со стороны Зеленой Тропы или Королевского прохода. И учитывая, что ХК изначально спрыгнул с той стороны, то это представляет весомый интерес.

4) Кристальный каньон. Эта локация вряд ли будет посещена первой, поскольку игрок скорее потратит гео на апгрейды, чем на фонарь.

5) Вторая половина Города Слёз. Самый маловероятный вариант, потому что придется провернуть вот такой трюк.

Your browser does not support HTML5 video.

Да, подразумевается, что игрок при этом пройдет через Земли упокоения, но о них в другой раз

В плане исследования порядок немного поменяется:

1) Город. Потому что закрытые ворота искусственно ограничат посещение других локаций.

2) Воющие утесы. Потому что локация простая, а также не требует дополнительных поисков и ресурсов.

3) Гнездо. Потому что из него можно выбраться, а локация сложная по мобам и труднопроходимая без фонаря.

4) Кристальный Каньон. Потому что фонарь дорогой, и в отличии от Гнезда, на одном из входов здесь не надо убивать босса: игрок не будет отождествлять исследование локации с сокровищницей, которая ему досталась за прохождение трудного испытания.

5) Вторая половина Города Слёз. Поскольку вход неочевиден, а враги слишком жирные для первого гвоздя.

Итог


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



Пишите, как вам сегодняшняя часть. Спасибо за внимание.

P.S.



Видеоверсия: 1, 2
Подробнее..

Итеративный геймдизайн, Godot и мир маленьких планет

01.09.2020 20:19:15 | Автор: admin

Итеративный подход

Существуют различные подходы к организации геймдизайна. Я предпочитаю использовать итеративный способ, вернее путь к итоговым механикам и структурам через прототипирование ядра неполной концепции, с последующим многократным тестированием и дополнением. То есть под итерациями понимаются не просто новые слои улучшений, а и сама суть концепции видоизменяется под влиянием результатов её практического применения.

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

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

Таким образом, итеративный подход, он про эксперименты и как раз ожидает, что при соприкосновении концепта с реальностью будут возникать различные задачи, которые нужно будет решать, адаптируя идею, и в то же время получая через практику новые подсказки о том, в какую сторону её следует развивать.

Перейдём к большей конкретике. В разработке игры это всё означает, что приступая к более менее полноценному прототипу мы в первую очередь сфокусируемся на том, чтобы там работала какая-то самая стержневая механика и определимся с основными проблемами, которые требуют решения на ранних этапах. То есть, проектируя таким образом Марио, нам нужен условный объект-персонаж, который умеет прыгать и бегать в стороны, вот с его отображением и написанием кода прыжков-движения мы и будем разбираться. Для Квейка нам понадобится создать контроллер от первого лица и реализовать возможность создавать пули по нажатию кнопки. Для тактической стратегии - логику поведения фигурок-юнитов на поле сражения, возможность двигаться и атаковать.

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

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

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

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

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

Среди приходящих новых идей отмечаем какие-то перспективные, на которые можно перейти сразу или в дальнейшем. Даже если они противоречат каким-то нашим векторам разработки и мы не будем ими пользоваться, всё-равно полезно их записать.

Прототипирование Microspace project в Godot engine

Итак, некоторое время назад я в общих чертах сформулировал концепцию rpg-игры, в которой можно собрать партию разумных звездолётиков и летать по секторам местного космоса, участвуя в жизни маленьких планеток. Подробнее тут:

Таким образом, требовалось собрать прототип, в котором на самом элементарном уровне были бы реализованы какие-то классические ингредиенты jrpg-жанра - режим глобальной карты, режим сражений. Чем я и занялся.

В качестве движка был выбран Godot engine, а конкретнее версия 3.2.1, язык GDScript и gles3 рендер. В целом данный проект относится к категории достаточно код-интенсивных, всё-таки это далеко не аркада, где можно обойтись вобще без программирования. Выбор GDScript'а не особо принципиален, просто на нём быстрее писать внутри редактора, без открытия лишних окон, а так - вся логика без каких-то особых проблем переносится на тот же C#. Gles3 тоже не принципиален, но я взял более мощный рендер в качестве целевой платформы, а на упрощённом всегда можно собрать отдельную версию, только потребуется переработать частицы.

Началось всё с набросков карты сектора и написания контроллера, чтобы добавить модель кораблика и полетать по получившемуся "космосу" (попутно придумалась музыкальная композиция для глобальной карты):

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

Прописывая скрипт для определения столкновений с планетками я подумал, что перед визитом будет сначала всплывать окошко с общими параметрами планеты (или прочего объекта, доступного для посещения), где можно согласиться на посещение либо пролететь мимо.

Подготавливая приблизительные иконки с персонажами/предметами для инвентаря я завёл пару текстурных атласов в формате png, размерами 512 на 512. Таким образом в каждом можно держать по 64 иконки размерами 64 на 64. Godot, кстати, сам умеет сшивать несколько выбранных картинок в атлас, но у меня почему-то эта его функция не срабатывает, поэтому набросал заготовки в графическом редакторе.

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

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

Следующее обновление принесло ещё один важный момент, которого не хватало - собственно, партию героев, к основному звездолётику Wanderer добавились Spira и Vanguard. Появились новые враги, отображение получаемого урона, самописный ориентировочный трек сражения, доработки инвентаря и специальная станция, где можно отправить одного из героев с основного корабля на задние, а потом забрать его, после истечения срока.

Архитектура приложения

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

Собственно, про некоторые особенности движка Godot и я рассказывал вот в этой статье:

А внутренняя архитектура прототипа космической jrpg следующая: есть основная 2д сцена - стартовый экран, куда попадает пользователь. При выборе уровня к корню стартовой сцены крепится сцена космического сектора, в которую дочерним объектом крепится звездолётик и на него навешиваются слушатели некоторых сигналов. Сама стартовая сцена при этом скрывается, но её скрипт обрабатывает сигналы от кораблика - столкновение с врагом, открытие инвентаря, попадание в зону планеты. Когда игрок открывает инвентарь, то стартовая сцена снова показывается, но отображает не менюшку входа в игру, а окошко инвентаря.

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

Сам кораблик представляет собой объект, содержащий внутри себя сразу все возможные кораблики, и притворяясь то одним, то другим, в зависимости от того, какой кораблик выбран пользователем в качестве основного. По сути это такой элемент трёхмерного атласа звездолётиков. Вражеский объект - это тоже такая спрессованная общность всех возможных врагов, в её скрипте прописан идентификатор, глядя на который она показывает определённого врага.

Примерно таким же образом союзники и враги представлены внутри сражения, принимая вид корабликов партии и демонстрируя расстановку вражеских сил.

В Godot предусмотрена возможность заводить в отдельном окошке синглтоны, которые будут доступны глобально. Я использую один такой для простого хранения глобальных переменных и массивов.

Где брать идеи

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

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

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

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

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

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

В плане разработки стоит сосредоточиться на том, что вы реально сможете сделать сами, хотя планировать и задумывать можно и довольно сложные конструкции. Но лучше быть реалистами и именно в реализацию на практике брать что-то, хотя бы частично и в общих чертах, достигаемое. То есть не говорить что "вот был бы у меня движок А, а не Б", или "вот сделают мне ролики и крутые модели, тогда я и сваяю нетленку". А просто взять и что-то сделать. Хотя бы в тетрадке нарисовать, хотя бы приблизительно, хотя бы общий план. Нарисовать одного персонажа, а не триста. Написать не рассказ, но диалог. Это всё вроде бы мелкие и незначительные шаги, но они раз за разом формируют новые условия, от которых можно оттолкнуться ещё дальше, ещё дальше и ещё дальше.

Вот нам нужна игра про партию героев, которые сражаются с врагами, исследуют различные города, имеют систему развития, разные предметы... Начните с одного героя. Одного врага. Сражение с одной только опцией - удар. Вместо города несколько примитивов изображающих дом. Отображение пустого окошка с информацией о герое. И так далее. Потом героев станет два. В статистике появится имя. Врагов станет двое. Кроме ударить, появится вторая опция, пусть она даже сначала не работает. Коробок-домов станет несколько. Появится отображение содержимого сумки, пусть сначала только одна ячейка. Затем героев станет три, и можно будет менять их местами. Враги станут попадаться группами по 2 или 3. Появятся ещё боевые опции. Появится вторая область с "домиками", до которой можно добраться. Итак далее.

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

Время от времени переключаться на разные виды деятельности - тоже немаловажно. Так сохраняется нужный уровень интереса и процесс не превращается в скучную рутину. В конце концов мысли и состояния приходят определёнными циклами и ритмами - если неудержимо тянет именно сейчас отвлечься от первостепенных задач и поработать над чем-то не таким важным, но более интересным, то почему бы и нет, пока есть желание.

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

Н

Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru