Сборки серверов

СливПлатные

Сейчас онлайн

  • NovaTristis
  • oldfounder
  • scom_1209yt
  • tetete
  • qKeefy
  • CTpaX67
  • Софочка
  • exzet
  • Croissanity
  • ThomasSlwbew
  • bobobo
  • erwrewr
  • Alone
  • afdsd
  • andela
  • DixFix
  • Axsion
  • equizze
  • Stokgolm
  • Vlas05
  • MrDanyaYT
  • Artelees
  • Nameless58
  • koyyy07
  • Zloydadad
  • artemis1206
  • awinic_haptic
  • corvexx
  • dimkusunt
  • alexnoyev
  • DeusVultMA
  • ArtemShel
  • ThoSanTreEm
  • Huhaa
  • ▶ MilkyВей
  • MrLemonleak
  • SayFay
  • 0_lerochkad
  • Nikita_JO
  • Apolen90
  • 432432
  • 1wairesdв
  • Jon1232113
  • qRompiXq
  • shqwdpro12
  • no_war
  • forcehype
  • stanosten
  • masda
  • ngamestalker
  • daniilbredikhin525@gmail.
  • Alex101010
  • sidvog
  • MystalDev
  • johndoe123123
  • Thimas_Jefferon
  • reclau
  • dasd2233
  • KILLER42
  • dxoat
  • mt8wwhce
  • Sawrum
  • gi2l
  • Koco
  • terpol
  • MineDream712
  • Masik
  • Miskam4ik
  • savenx
  • fr1z
  • RazorFlamehard
  • IGrok2#9483
  • SlavaIopdk183
  • deleo2342
  • nablocarlo
  • FaintGod
  • Towa
  • profiwm666
  • 666grin4ikua
  • YSIV
  • Ksewedo5
  • solonsky
  • LastClock
  • brandonTALENT
  • vanzero
  • ThangMC2374
  • 1MioSubs
  • Frutik
  • undefined322
  • dawidolsza10
  • ibdf
  • ghieldbeef
  • heysaiaan
  • Mr. Stranger
  • Dima23456789
...и ещё 2.

Безопасность сервера Minecraft | Часть 5; Предотвращение рисков

Серия перевода со спигота​

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

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

Эти посты состоят из следующих частей;​

Введение​

Статья написана, потому что (слишком часто) видно, как взламывают серверы Майнкрафт. Это само по себе, хотя и проблематично, но не обязательно вызывает тревогу. Тревогу вызывает то, как и почему их взламывают. По этой причине и написан блог по безопасности (или как вы хотите его назвать), в котором рассказывается обо всем. Обратите внимание, что это руководство не относится конкретно к Minecraft; оно касается разработки программного обеспечения и системного администрирования в целом.

Предотвращение рисков​

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

Какие риски теоретически могут произойти с этим программным обеспечением?​

  1. Глядя на теоретические риски, что можно сделать в качестве бокового движения через эти риски?
  2. При детальном рассмотрении данного программного обеспечения, какие доказанные риски я могу выявить?
  3. Глядя на выявленные риски, какие из них я могу уменьшить с помощью системного администрирования?
  4. Глядя на оставшиеся риски, что мы можем сделать для их дальнейшего снижения?

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

Отказ от ответственности: Пожалуйста, обратите внимание, что я не пренебрегаю ни одним из этих программных проектов (плагинов). Все эти плагины великолепны и предназначены для простой настройки. Легко настраиваемые системы часто небезопасны, а безопасные системы часто нелегко настраивать. По природе Minecraft, многие люди по праву выбирают или развивают простой в настройке подход. Однако для тех, кто хочет безопасности, мы выбрали противоположный путь. Ни при каких обстоятельствах ни один из упомянутых плагинов не должен вызывать неуважения или оскорбления.​

Социальная инженерия и ошибки пользователей​

Возможно, самый страшный и в то же время самый упускаемый из виду риск безопасности - это человек между экраном и стулом (также называемый PEBCAK, забавный факт). Люди слишком самоуверенны, не подготовлены или просто наивны, когда речь заходит о подобных рисках. Социальная инженерия может быть быстрой и легко распознаваемой, а может занять месяцы на подготовку путем установления социальных связей между злоумышленником и объектом. Я не говорю, что нужно стать таким же параноиком, как я, но всегда есть определенные правила, по которым вы должны жить. Не нужен доступ? Не предоставляйте его. Даете доступ к секретной информации? Пусть они подпишут NDA. Давайте еще раз быстро пройдемся по 5 вопросам;

Какие риски теоретически могут произойти с этим программным обеспечением?​

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

Если посмотреть на теоретические риски, что можно сделать в качестве бокового движения через эти риски?​

Мы, люди, любим быть добрыми, что некоторые люди могут использовать против вас. Хакеры - это не всегда зануды, сидящие за компьютером весь день в солнцезащитных очках, с зеленым текстом на экране и смотрящие "Матрицу" каждое Рождество. Некоторых можно сравнить с продавцами или маркетологами; гладкие болтуны. Иногда некоторые вещи просто кажутся "нормальными" или вовсе не такими уж подозрительными.​
Давайте снова возьмем пример из второй части; допустим, я присоединяюсь к вашему серверу Discord и просто пытаюсь быть дружелюбным. Я спрошу, какой вид спорта вам нравится, какая у вас любимая команда в этом виде спорта, есть ли у вас домашнее животное и как его зовут, и тому подобное. Если бы вы получили такие вопросы от кого-нибудь на вашем сервере Discord, я гарантирую вам (и будьте честны с собой), что вы ничего не подумали бы об этом. Теперь давайте возьмем те же самые вопросы и посмотрим их на видео ниже (это эпизод первого сезона сериала "Мистер Робот"; сериал о хакерстве, и довольно точный, в отличие от CSI Cyber). Подобная информация может быть использована в программном обеспечении, таком как Mentalist, которое представляет собой инструмент для построения огромного списка слов на основе гораздо меньшего набора предоставленных слов, таких как спортивные команды или имена домашних животных.​

Резюме: Если посмотреть на теоретические риски, что можно сделать в качестве латерального движения через эти риски? Все, что может сделать целевой пользователь, может быть использовано злоумышленником, если он сможет убедить пользователя выполнить эти действия.​

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

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

Если посмотреть на выявленные риски, какие из них я могу уменьшить с помощью системного администрирования?​

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

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

Кроме технических ограничений, о которых говорилось в предыдущем вопросе, единственный способ попытаться предотвратить это - обучение и строгие процессы. Дайте понять, что безопасность является главным приоритетом; проведите курсы, объясните людям, что может пойти не так. Покажите им, пусть они испытают это на себе. Может быть, даже установите Honeypot и попросите руководителя или члена команды попытаться провести социальную инженерию вашего члена команды (в безопасной и достойной манере). Лучший учитель - это неудача. Ваши родители всегда говорили вам, чтобы вы были осторожны при использовании острых кухонных приборов, когда режете бутерброды, но вы, скорее всего, все равно однажды случайно порезались. Кто из них двоих был лучшим учителем - ваши родители или нож? На мой взгляд, здесь применимо то же самое.

Резюме: глядя на оставшиеся риски, что мы можем сделать для их дальнейшего снижения? Установить технические ограничения и мониторинг, а также провести обучение пользователей, чтобы они знали об этих рисках.​
 
ymka

DiscordSRV​

Часто используемый плагин для синхронизации Discord с Minecraft; от рангов, до чата игроков и даже консоли сервера. С функциональной точки зрения плагин работает отлично, и его очень легко настроить. Однако, поскольку я использую его в качестве примера в этом посте, он не настолько безопасен, насколько это возможно. Я вкратце рассказывал о DiscordSRV в предыдущих частях, но я освежу вашу память с помощью заполненного контрольного списка.

Какие риски теоретически могут возникнуть при использовании этого программного обеспечения?​

Давайте начнем с этого вопроса. Для того, чтобы понять, какие риски могут возникнуть при использовании этого программного обеспечения, мы должны сначала точно знать, как это программное обеспечение работает. К счастью для нас, DiscordSRV имеет открытый исходный код. Но, имея исходники, как нам выяснить, как работает этот плагин? Ну, вы можете просмотреть весь исходный код и прочитать все методы один за другим. Хотя мы все занятые люди, к счастью, есть более быстрый подход. Что вы можете сделать, так это посмотреть на файл зависимостей для программного обеспечения, который в данном случае (поскольку плагин собран с помощью Maven) является файлом pom.xml. Здесь мы можем увидеть, какие зависимости есть у этого плагина, а знание того, какие зависимости есть у плагина, может дать вам хорошее и очень быстрое представление о том, как собран плагин.

Вы должны просмотреть все зависимости и попытаться выяснить, что эти зависимости предлагают. Делая это, вы можете наткнуться на зависимость JDA. JDA - это проект Java Discord API, который позволяет людям создавать ботов Discord на Java. Это самое важное, что нужно выяснить. Зная это, мы знаем, что плагин, скорее всего, является Discord-ботом, запущенным с сервера Minecraft. Это хорошее начало.

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

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

Если посмотреть на теоретические риски, что можно сделать в качестве латерального движения через эти риски?​

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

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

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

При детальном рассмотрении этого программного обеспечения, какие доказанные риски я могу выявить?​

Мы знаем, что если произойдет утечка нашего токена, то у нас будут большие проблемы. Поверьте мне, поскольку я видел невероятное количество серверов, даже довольно крупных, взломанных через это. Это действительно большой риск использовать этот плагин с самого начала, в зависимости от того, сколько функций вы используете. Хотя это все риски латерального перемещения, мы должны обратить внимание на прямой риск, который позволяет этому латеральному перемещению произойти. Этот прямой риск заключается в утечке вашего токена. Но как это может произойти? Есть несколько способов;
  • Ненадежные администраторы, имеющие доступ к вашим конфигурационным файлам
  • Вредоносный плагин
  • Другой плагин с эксплойтом, позволяющим читать из файловой системы
Вероятно, есть и другие причины, но это те, которые я могу вспомнить прямо сейчас. Если вышеупомянутую причину можно легко предотвратить, то две другие часто становятся полной неожиданностью. Вот почему нам нужно выявлять риски и думать о том, как все может произойти, а не просто знать, что риск существует. Знание того, что риск существует, не так уж ценно, но знание того, как этим риском можно воспользоваться, позволяет определить, большой это риск или маленький (см. в части 3). Если воздействие чрезвычайно велико, но вероятность того, что оно когда-либо произойдет, крайне мала, то это не такой уж большой риск. Если же воздействие чрезвычайно велико и имеет несколько вариантов развития событий, то мы имеем большой риск.

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

Если посмотреть на выявленные риски, какие из них я могу смягчить с помощью системного администрирования?​

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

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

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

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

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

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

Действующая:​

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

Моя рекомендация:​

Он отправляет информацию, поступающую из Minecraft, в API / Eventbus потребитель, который перемещает токен Discord из Minecraft в API / потребитель. Если на сервере Minecraft есть вредоносное ПО или эксплойт, позволяющий читать файловую систему, то токен не будет утекать, поскольку он больше не развернут в том же приложении, что и сервер Minecraft. API / потребитель (который также является ботом Discord в свою очередь) является отдельным приложением и не подвержен воздействию этого вредоносного ПО / эксплойта. Кроме того, вы можете запрограммировать дополнительные ограничения, например, синхронизацию рангов (которая будет вызываться через API или eventbus) только для рангов доноров, но не для рангов сотрудников. Аналогичные возможности могут быть применены для управления определенными каналами, членами и т.д.

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

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

22
Заключение: Наличие токена непосредственно на вашем сервере Minecraft само по себе является огромным риском. Подавляющее большинство выявленных рисков можно было бы полностью предотвратить, если бы токен не находился там, поэтому его перемещение в другое место - самый логичный шаг. Более того, установка промежуточного приложения позволяет реализовать дополнительные ограничения, эффективно компенсируя отсутствие детальных разрешений в Discord.​

Другие риски​

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

Какие риски теоретически могут произойти с этим программным обеспечением?​

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

Рассматривая теоретические риски, что можно сделать в качестве латерального перемещения через эти риски?​

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

При детальном рассмотрении этого программного обеспечения, какие доказанные риски я могу выявить?​

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

Если посмотреть на выявленные риски, какие из них можно уменьшить с помощью системного администрирования?​

  • Разделите ваши системы, ограничьте права доступа программ и пользователей. Если система А взломана, это не значит, что система Б затронута. Если база данных А подверглась воздействию, это не значит, что база данных Б подверглась воздействию. Это при условии, что вы правильно все разделили.

Рассматривая оставшиеся риски, что мы можем сделать для их дальнейшего снижения?​

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