Kasm Workspaces – это DaaS (Desktop as a Service) использующий контейнеры Docker вместо виртуальных машин.

https://kasmweb.com

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

В этой статье я расскажу вам об основных возможностях этого инструмента.

VDI

VDI, или Virtual Desktop Infrastructure, — инфраструктура виртуальных рабочих столов. К неоспоримым достоинствам ВРМ (VDI)
с точки зрения ИТ в корпоративном окружении можно отнести:

  • безопасность

  • экономия на лицензиях

  • автоматизация (контроль и установкой софта и обновлений)

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

Kasm

Kasm в отличии от корпоративных VDI систем рассчитан для решения совершенно других задач.

Если перечислять основные возможности, то это:

  • Благородя поддержке NVIDIA GPU, Kasm можно использовать для централизованного управления удаленными рабочими местами разработчиков и инженеров данных (data engineer).

  • Тренинги и проведение образовательных курсов – простой доступ через веб-браузер это огромный плюс.

  • Исследование безопасности, багхантинг и ручное тестирование веб-приложений.

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

Технологии

Kasm не изобрел ничего революционного, системы вроде Apache Guacamole, предназначенные для стриминга удаленных рабочих столов через браузер,
хорошо известны специалистам в этой области.

В использовании контейнеров Docker для изоляции GUI приложений тоже нет ничего прорывного: https://www.digitalocean.com/community/tutorials/how-to-remotely-access-gui-applications-using-docker-and-caddy-on-ubuntu-20-04

Но у Kasm получилось собрать все эти компоненты в цельную платформу, с приятным веб-интерфейсом для администрирования и API.
https://github.com/kasmtech/KasmVNC

Возможности

После установки Kasm пользователю прямо «из коробки» предоставляется доступ к десяткам базовых образов Docker которые включают в себя полнофунциональнуюверсию Kali Linux, Chrome:

Рабочий стол Kasm
Рабочий стол Kasm

и другие образы:

Базовые образы
Базовые образы

Есть возможность добавления своих образов или кастомизации существующих.

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

Скрипт для Nmap
Скрипт для Nmap

Например скрипт для обнаружения kube-apiserver:

http-get.nse
http-get.nse
Скрипт
Скрипт

Установка Kasm

Скачиваем образы Docker Kasm Workspaces, это может занять 10-15 минут:

cd /tmp
curl -O https://kasm-static-content.s3.amazonaws.com/kasm_release_1.13.1.421524.tar.gz
curl -O https://kasm-static-content.s3.amazonaws.com/kasm_release_service_images_amd64_1.13.1.421524.tar.gz
curl -O https://kasm-static-content.s3.amazonaws.com/kasm_release_workspace_images_amd64_1.13.1.421524.tar.gz

Распаковываем скачанный архив:

tar -xf kasm_release_1.13.1.421524.tar.gz

Стартуем установочный процесс в режиме оффлайн:

sudo bash kasm_release/install.sh --offline-workspaces /tmp/kasm_release_workspace_images_amd64_1.13.1.421524.tar.gz --offline-service /tmp/kasm_release_service_images_amd64_1.13.1.421524.tar.gz

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

Соглашение
Соглашение

Установка может занять 10-15 минут:

Установка
Установка

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

Креды
Креды

Войдите в веб-консоль Kasm, используя учетную запись администратора (admin@kasm.local):
https://<KASM_SERVER>

Узнать IP адрес сервера:

hostname --ip-address

Такое сообщение означает, что Kasm использует сомоподписанный сертификат. Нужно пропустить проверку, нажав «Доверять этому веб-сайту»:

SSL
SSL

На этом этапе для входа нужно использовать учетные данные администратора сгенерированные установочным скриптом:

Логин
Логин

Панель управления:

Панель управления
Панель управления

Комментарии (1)


  1. ZloyKishechnik
    11.07.2023 08:59

    а эта штука позволяет записывать пользовательские сессии, например, как guacamole от апача?

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