KasperskyOS является интересной операционной системой, имеющей в своем составе ряд особенностей, требующих изучения. Одним из препятствий, ожидающих потенциального разработчика, является необходимость подготовки и установки местной среды разработки и исполнения программ. Эта статья призвана показать два варианта использования KasperskyOS Community Edition в облачных средах без необходимости местной установки.
Необходимо обратить внимание, что такой вариант использования не позволяет создавать кибербезопасные и/или кибериммунные продукты и пригоден только для целей обучения.
Статья излагает процедуры подготовки среды и запуска штатных примеров на платформах Google Cloud Shell (https://cloud.google.com/shell) и Jetbrains Datalore (https://www.jetbrains.com/datalore).
В основе применяемого метода лежит запуск виртуальной машины или контейнера на основе Debian или аналогичной ОС с доступными правами суперпользователя, доустановка SDK напрямую с нашего сервера раздачи и запуск с доступом через браузер.
Основными ограничениями данного метода являются риски прекращения доступа к платформам с территории РФ (доступ проверялся в июне 2023), а также ограничение работы рантайма по длительности.
Основным преимуществом является бесплатность и малая потребность в ресурсах со стороны пользователя.
Google Cloud Shell — одна из ведущих мировых облачных платформ. Регистрация в Google Cloud бесплатна. Предоставляется двухъядерная виртуальная машина на основе Debian 11, 8 ГБ RAM, 60 ГБ на диске для ОС (не сохраняются после завершения сеанса) и 4,8 ГБ для пользовательских данных (сохраняются после завершения сеанса).
1. Пройдите по ссылке https://cloud.google.com/shell и нажмите «Go to console». Откроется консоль Google Cloud.
2. Устанавливаем SDK и дополнительные пакеты, необходимые для работы с примерами и удовлетворения зависимостей. В последней строке дополнительно для удобства можно установить mc (Midnight Commander).
wget https://products.s.kaspersky-labs.com/special/KasperskyOSCommunityEdition/1.1.1.13/multilanguage-1.1.1.13/3637303234377c44454c7c31/KasperskyOS-Community-Edition_1.1.1.13_en.deb?guid=0
sudo apt update && sudo dpkg -i KasperskyOS-Community-Edition_1.1.1.13_en.deb?guid=0 || sudo apt install -f -y && sudo apt install parted fdisk udev screen vim
В процессе выполнения последней команды у пользователя будет запрошено разрешение на скачивание необходимых файлов, на которое надо будет ответить положительно.
3. После этого можно скопировать примеры из папки SDK в домашнюю папку пользователя и запустить исполнение скомпилированного примера в эмуляторе QEMU.
cp -R /opt/KasperskyOS-Community-Edition-1.1.1.13/examples/hello ~/kosce && export PATH="/opt/KasperskyOS-Community-Edition-1.1.1.13:$PATH" && cd ~/kosce/hello && chmod +x cross-build.sh && sudo ./cross-build.sh
Завершить исполнение в эмуляторе можно клавишами Ctrl-C.
Терминал и ресурсы Google Cloud Shell не преназначены для продолжительных нагрузок, поэтому данный вариант применения является хоть и функциональным, но не самым желанным для Google Cloud Platform. На данный момент это выражается только в том, что при завершении сессии все системные файлы (установленные пакеты) будут утрачены, и при желании продолжить работы с KasperskyOS CE в новой сессии нужно будет развернуть окружение заново. Пользовательские файлы удалены не будут (в пределах предлагаемой квоты на хранение данных).
Интерфейс пользователя здесь — только терминал, что немного повышает порог вхождения и варианты использования на внешних мероприятиях, нет встроенного механизма распространения готового кода/скриптов, придется пользоваться сторонними сервисами или электронной почтой. Но важное преимущество — возможность запуска любых примеров на базе QEMU.
Jetbrains Datalore — относительно новый облачный сервис для работы с данными и применения технологий «искуственного интеллекта». По сути — это блокнот Jupyter, работающий в docker-контейнере с ресурсами AWS t2.medium (4 ГБ RAM, 2 vCPU), на бесплатном тарифе предлагается 10 ГБ хранилища для (любых) пользовательский файлов и 24 ГБ для временных файлов ОС/контейнера c ограничением в 120 часов работы в месяц. На июнь 2023 контейнеры строятся на основе Ubuntu 22.04.
Команды развертывания можно как выполнять в терминале, так и добавить в блокнот Jupyter. Datalore дает возможность делиться блокнотами, поэтому предварительно подготовленные скрипты можно раздавать всем желающим, отправляя приглашения на электронную почту.
1. Пройдите по ссылке https://www.jetbrains.com/datalore, выберите бесплатный тарифный план и зайдите в блокноты с использованием одного из трех доступных методов.
2. Скачайте и разверните SDK. Скачивание и копирование кода примеров можно сделать однократно, поскольку файл сохраняется в пользовательском пространстве, а разворачивание необходимо выполнять каждый раз, т.к. контейнер пересоздается с нуля.
!wget https://products.s.kaspersky-labs.com/special/KasperskyOSCommunityEdition/1.1.1.13/multilanguage-1.1.1.13/3637303234377c44454c7c31/KasperskyOS-Community-Edition_1.1.1.13_en.deb?guid=0
!sudo apt update && sudo dpkg -i KasperskyOS-Community-Edition_1.1.1.13_en.deb?guid=0|| sudo apt install -f -y
!cp -R /opt/KasperskyOS-Community-Edition-1.1.1.13/examples/hello /data/notebook_files
3. Последней строкой предыдущей команды необходимый пример скопирован в /data/notebook_files. Теперь его надо запустить.
!export PATH="/opt/KasperskyOS-Community-Edition-1.1.1.13:$PATH" && cd /data/notebook_files/hello && chmod +x cross-build.sh && sudo ./cross-build.sh
Если останов не предусмотрен в составе программы, исполнение необходимо выполнять вручную при помощи в левом верхнем углу рядом с таймером.
Предоставляемый Datalore docker-контейнер запущен не в привилегированном режиме (т.е. без опции —privileged), поэтому монтировать файлы с Linux-образами не получится. А значит, любые примеры, которые используют эту функцию (например, mqtt publisher/subscriber) работать в Datalore не будут.
Сервис Jetbrains Datalore предлагает на бесплатном тарифе достаточные для запуска KasperskyOS CE ресурсы, что делает его интересным для первоначального ознакомления с SDK. Имеющимися средствами можно редактировать код примеров, запускать (пере)сборку и выполнять их (конечно, только пригодны для использования в QEMU).
Возможность делиться готовыми блокнотами потенциально позволяет использовать этот сервис для различных мероприятий, тем более что регистрация учетной записи в Datalore занимает всего несколько минут.
Авторы
Александр Лифанов, менеджер по продукту, группа по развитию технического сообщества
Сергей Соболев, старший архитектор по информационной безопасности, группа по развитию технического сообщества
KasperskyOS является интересной операционной системой, имеющей в своем составе ряд особенностей, требующих изучения. Одним из препятствий, ожидающих потенциального разработчика, является необходимость подготовки и установки местной среды разработки и исполнения программ. Эта статья призвана показать два варианта использования KasperskyOS Community Edition в облачных средах без необходимости местной установки.
Необходимо обратить внимание, что такой вариант использования не позволяет создавать кибербезопасные и/или кибериммунные продукты и пригоден только для целей обучения.
Статья излагает процедуры подготовки среды и запуска штатных примеров на платформах Google Cloud Shell (https://cloud.google.com/shell) и Jetbrains Datalore (https://www.jetbrains.com/datalore).
В основе применяемого метода лежит запуск виртуальной машины или контейнера на основе Debian или аналогичной ОС с доступными правами суперпользователя, доустановка SDK напрямую с нашего сервера раздачи и запуск с доступом через браузер.
Основными ограничениями данного метода являются риски прекращения доступа к платформам с территории РФ (доступ проверялся в июне 2023), а также ограничение работы рантайма по длительности.
Основным преимуществом является бесплатность и малая потребность в ресурсах со стороны пользователя.
Google Cloud Shell — одна из ведущих мировых облачных платформ. Регистрация в Google Cloud бесплатна. Предоставляется двухъядерная виртуальная машина на основе Debian 11, 8 ГБ RAM, 60 ГБ на диске для ОС (не сохраняются после завершения сеанса) и 4,8 ГБ для пользовательских данных (сохраняются после завершения сеанса).
1. Пройдите по ссылке https://cloud.google.com/shell и нажмите «Go to console». Откроется консоль Google Cloud.
2. Устанавливаем SDK и дополнительные пакеты, необходимые для работы с примерами и удовлетворения зависимостей. В последней строке дополнительно для удобства можно установить mc (Midnight Commander).
wget https://products.s.kaspersky-labs.com/special/KasperskyOSCommunityEdition/1.1.1.13/multilanguage-1.1.1.13/3637303234377c44454c7c31/KasperskyOS-Community-Edition_1.1.1.13_en.deb?guid=0
sudo apt update && sudo dpkg -i KasperskyOS-Community-Edition_1.1.1.13_en.deb?guid=0 || sudo apt install -f -y && sudo apt install parted fdisk udev screen vim
В процессе выполнения последней команды у пользователя будет запрошено разрешение на скачивание необходимых файлов, на которое надо будет ответить положительно.
3. После этого можно скопировать примеры из папки SDK в домашнюю папку пользователя и запустить исполнение скомпилированного примера в эмуляторе QEMU.
cp -R /opt/KasperskyOS-Community-Edition-1.1.1.13/examples/hello ~/kosce && export PATH="/opt/KasperskyOS-Community-Edition-1.1.1.13:$PATH" && cd ~/kosce/hello && chmod +x cross-build.sh && sudo ./cross-build.sh
Завершить исполнение в эмуляторе можно клавишами Ctrl-C.
Терминал и ресурсы Google Cloud Shell не преназначены для продолжительных нагрузок, поэтому данный вариант применения является хоть и функциональным, но не самым желанным для Google Cloud Platform. На данный момент это выражается только в том, что при завершении сессии все системные файлы (установленные пакеты) будут утрачены, и при желании продолжить работы с KasperskyOS CE в новой сессии нужно будет развернуть окружение заново. Пользовательские файлы удалены не будут (в пределах предлагаемой квоты на хранение данных).
Интерфейс пользователя здесь — только терминал, что немного повышает порог вхождения и варианты использования на внешних мероприятиях, нет встроенного механизма распространения готового кода/скриптов, придется пользоваться сторонними сервисами или электронной почтой. Но важное преимущество — возможность запуска любых примеров на базе QEMU.
Jetbrains Datalore — относительно новый облачный сервис для работы с данными и применения технологий «искуственного интеллекта». По сути — это блокнот Jupyter, работающий в docker-контейнере с ресурсами AWS t2.medium (4 ГБ RAM, 2 vCPU), на бесплатном тарифе предлагается 10 ГБ хранилища для (любых) пользовательский файлов и 24 ГБ для временных файлов ОС/контейнера c ограничением в 120 часов работы в месяц. На июнь 2023 контейнеры строятся на основе Ubuntu 22.04.
Команды развертывания можно как выполнять в терминале, так и добавить в блокнот Jupyter. Datalore дает возможность делиться блокнотами, поэтому предварительно подготовленные скрипты можно раздавать всем желающим, отправляя приглашения на электронную почту.
1. Пройдите по ссылке https://www.jetbrains.com/datalore, выберите бесплатный тарифный план и зайдите в блокноты с использованием одного из трех доступных методов.
2. Скачайте и разверните SDK. Скачивание и копирование кода примеров можно сделать однократно, поскольку файл сохраняется в пользовательском пространстве, а разворачивание необходимо выполнять каждый раз, т.к. контейнер пересоздается с нуля.
!wget https://products.s.kaspersky-labs.com/special/KasperskyOSCommunityEdition/1.1.1.13/multilanguage-1.1.1.13/3637303234377c44454c7c31/KasperskyOS-Community-Edition_1.1.1.13_en.deb?guid=0
!sudo apt update && sudo dpkg -i KasperskyOS-Community-Edition_1.1.1.13_en.deb?guid=0|| sudo apt install -f -y
!cp -R /opt/KasperskyOS-Community-Edition-1.1.1.13/examples/hello /data/notebook_files
3. Последней строкой предыдущей команды необходимый пример скопирован в /data/notebook_files. Теперь его надо запустить.
!export PATH="/opt/KasperskyOS-Community-Edition-1.1.1.13:$PATH" && cd /data/notebook_files/hello && chmod +x cross-build.sh && sudo ./cross-build.sh
Если останов не предусмотрен в составе программы, исполнение необходимо выполнять вручную при помощи в левом верхнем углу рядом с таймером.
Предоставляемый Datalore docker-контейнер запущен не в привилегированном режиме (т.е. без опции —privileged), поэтому монтировать файлы с Linux-образами не получится. А значит, любые примеры, которые используют эту функцию (например, mqtt publisher/subscriber) работать в Datalore не будут.
Сервис Jetbrains Datalore предлагает на бесплатном тарифе достаточные для запуска KasperskyOS CE ресурсы, что делает его интересным для первоначального ознакомления с SDK. Имеющимися средствами можно редактировать код примеров, запускать (пере)сборку и выполнять их (конечно, только пригодны для использования в QEMU).
Возможность делиться готовыми блокнотами потенциально позволяет использовать этот сервис для различных мероприятий, тем более что регистрация учетной записи в Datalore занимает всего несколько минут.
Авторы
Александр Лифанов, менеджер по продукту, группа по развитию технического сообщества
Сергей Соболев, старший архитектор по информационной безопасности, группа по развитию технического сообщества