├── JCSF v6.1_public.xlsx ├── README.md └── images ├── 398951626-fd47b785-1144-469d-b2b7-6d1aae0290b4.png ├── 5abstracts1.png └── controls1.png /JCSF v6.1_public.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jet-Security-Team/Jet-Container-Security-Framework/8203871d01194d7af65fcdeb0295977b0d886cd1/JCSF v6.1_public.xlsx -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Jet Container Security Framework (JCSF) 2 | 3 | ### Введение 4 | 5 | Контейнеры давно и прочно вошли в жизнь IT - все больше приложений работают в них, все больше компаний переходят с классических монолитных приложений на микросервисные. Тема безопасности контейнеров, сред контейнеризации (например, Docker) или контейнерной оркестрации (например, k8s), образов контейнеров тоже далеко не нова: существует множество лучших практик, рекомендаций производителей и просто устоявшихся подходов. Нам в нашей работе не хватало чего-то одного, агрегирующего и систематизирующего все эти знания. Поэтому мы решили создать Jet Container Security Framework, являющийся квинтэссенцией наиболее популярных рекомендаций, практик и нашего опыта. 6 | 7 | ### Важный дисклеймер 8 | 9 | В публичный доступ выложены не все наши наработки по JCSF. Мы считаем, что основная часть фреймворка JCSF должна быть публичным достоянием: общее описание абстракций, список контролей и их расположение на уровнях зрелости **навсегда останутся общедоступными.** 10 | 11 | Однако, есть и “закрытая” часть, которую мы реализуем в наших проектах по аудиту с использованием JCSF. В ней есть 12 | 13 | - опросные листы для более удобного сбора информации “оффлайн”; 14 | - супердетальные примеры того, “как проверить, что та или иная практика ДЕЙСТВИТЕЛЬНО выполняется”, а также примеры того, как необходимо реализовывать КАЖДУЮ практику; 15 | - динамическая “иллюминация” ячеек с практиками, степенью их выполнения; 16 | - расширенный и кастомизируемый отчет по аудиту на основе JCSF. 17 | 18 | JCSF не включает в себя практики, связанные с анализом исходного кода и используемых сторонних зависимостей. Для оценки безопасной разработки у нас есть отдельный фреймворк - [DAF](https://github.com/Jet-Security-Team/DevSecOps-Assessment-Framework) 19 | 20 | ### R&D и дальнейшие планы: 21 | 22 | - Разметить практики, применимые только к docker-swarm, OpenShift. 23 | - Описать примеры реализации каждой практики 24 | - Сделать маппинг на международные и российские стандарты 25 | 26 | ### Описание JCSF 27 | 28 | При обеспечении безопасности контейнеров на протяжении всего их жизненного цикла часто возникает вопрос **«А что действительно нужно делать вначале и что можно сделать чуть позже?».** Ведь если сделать “всю безопасность” сразу, то ничего работать не будет вообще :) 29 | 30 | Поэтому мы предлагаем смотреть на безопасность контейнерной инфраструктуры и жизненный цикл контейнеров через 5 абстракций (ДОМЕНОВ): 31 | 32 | - Безопасность узлов (nodes); 33 | - Безопасность сред контейнеризации (kubernetes или docker); 34 | - Безопасность образов (images); 35 | - Безопасность манифестов (manifests); 36 | - Безопасность контейнеров в рантайм (container). 37 | 38 | ![image.png](https://github.com/Jet-Security-Team/Jet-Container-Security-Framework/blob/main/images/5abstracts1.png) 39 | 40 | В каждом домене нужно выполнять определенный набор действий (контролей). Некоторые из контролей (например, управление событиями безопасности или управление секретами) могут выполняться в нескольких доменах (но разными способами и\или инструментами). 41 | 42 | В свою очередь, каждый из контролей состоит из набора практик (задач), которые необходимо выполнять на том или ином этапе зрелости компании (и процессов защиты контейнерной инфраструктуры). 43 | 44 | ![image.png](https://github.com/Jet-Security-Team/Jet-Container-Security-Framework/blob/main/images/controls1.png) 45 | 46 | Для определения уровня зрелости в рамках домена, используются уровни зрелости JCSF: 47 | 48 | - Uninitiated - L0; 49 | - Beginners - L1; 50 | - Intermediate - L2; 51 | - Advanced - L3; 52 | - Experts - L4 53 | 54 | ### Графические результаты 55 | 56 | **Для визуализации получаемых в результате аудита (или самооценки компании) контейнерной инфраструктуры мы добавили лист “Результаты”, где на лепестковой диаграмме отображаются “успехи” по каждому домену.** 57 | 58 | На каждом листе, содержащем в названии “sec” сгруппированы практики по уровням зрелости (по аналогии с большинством общеизвестных фреймворков): 59 | 60 | - **Уровень 0: Uninitiated** 61 | 62 | > На этом уровне компания не имеет никаких формализованных процессов или инструментов контейнерной безопасности. Практики могут использоваться случайным образом по инициативе отдельных работников. 63 | > 64 | - **Уровень 1: Beginners** 65 | 66 | > На этом уровне зрелости практик в компании начинают появляются инструменты, используемые при защите контейнеров с минимальной зоной покрытия и без автоматизации. Появляются базовые процессы. 67 | > 68 | - **Уровень 2: Intermediate** 69 | 70 | > Процессы на этом уровне становятся повторяемыми и управляемыми, происходит расширение зоны покрытия используемых инструментов, внедрение автоматизации. Компания начинает применять методики для планирования, выполнения и отслеживания активностей. Однако эти методики могут быть не всегда последовательными или полностью документированными. Инструменты по прежнему не покрывают весь процесс защиты контейнеров. 71 | > 72 | - **Уровень 3: Advanced** 73 | 74 | > На данном уровне фактически инструменты контейнерной безопасности обеспечивают максимальное покрытие и автоматизацию. Все процессы являются последовательными и полностью документированными 75 | > 76 | - **Уровень 4: Experts** 77 | 78 | > Когда все процессы и инструменты развиты максимально, нет предела совершенству. Можно по прежнему что-то улучшить и повысить зрелость. 79 | > 80 | 81 | 82 | - **ВАЖНО! Для аудита сред контейнеризации на базе Docker и Kubernetes инеобходимо использовать отдельные файлы, поскольку результаты аудита являются составными** 83 | ## Материалы, используемые при создании 84 | 85 | Для создания фреймворка были проанализированы и использованы следующие материалы: 86 | 87 | - Практики от Center for Internet Security (CIS): 88 | - [CIS Software Supply Chain Security Guide](https://www.cisecurity.org/insights/white-papers/cis-software-supply-chain-security-guide); 89 | - [CIS Kubernetes, CIS Docker Benchmark](https://www.cisecurity.org/insights/blog/cis-benchmarks-february-2023-update); 90 | - [NIST Application Container Security Guide](https://nvlpubs.nist.gov/nistpubs/specialpublications/nist.sp.800-190.pdf); 91 | - [ФСТЭК России №118](https://fstec.ru/dokumenty/vse-dokumenty/spetsialnye-normativnye-dokumenty/trebovaniya-po-bezopasnosti-informatsii-utverzhdeny-prikazom-fstek-rossii-ot-4-iyulya-2022-g-n-118); 92 | - [NSA Kubernetes hardening guideline](https://www.nsa.gov/Press-Room/News-Highlights/Article/Article/2716980/nsa-cisa-release-kubernetes-hardening-guidance/). 93 | - Лучшие практики: 94 | - Aqua Cloud Native Security Maturity Model 95 | - Наш опыт, а также опыт наших заказчиков. 96 | 97 | Почта для связи с нами dso@jet.su 98 | -------------------------------------------------------------------------------- /images/398951626-fd47b785-1144-469d-b2b7-6d1aae0290b4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jet-Security-Team/Jet-Container-Security-Framework/8203871d01194d7af65fcdeb0295977b0d886cd1/images/398951626-fd47b785-1144-469d-b2b7-6d1aae0290b4.png -------------------------------------------------------------------------------- /images/5abstracts1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jet-Security-Team/Jet-Container-Security-Framework/8203871d01194d7af65fcdeb0295977b0d886cd1/images/5abstracts1.png -------------------------------------------------------------------------------- /images/controls1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jet-Security-Team/Jet-Container-Security-Framework/8203871d01194d7af65fcdeb0295977b0d886cd1/images/controls1.png --------------------------------------------------------------------------------