Проект CoreOS, развивающий серверное окружение (https://www.opennet.me/opennews/art.shtml?num=40275), основанное на идеях контейнерной изоляции, открыл (https://coreos.com/blog/vulnerability-analysis-for-containers/) исходные тексты нового инструмента Clair (https://github.com/coreos/clair), выполняющего работу по сканированию начинки контейнеров и выявлению неисправленных уязвимостей. В качестве источника данных используется база CVE (https://nvd.nist.gov/home.cfm) (Common Vulnerabilities and Exposures) и информация об исправлении уязвимостей в дистрибутивах Red Hat Enterprise Linux (https://www.redhat.com/security/data/metrics/), Ubuntu (https://launchpad.net/ubuntu-cve-tracker) и Debian (https://security-tracker.debian.org/tracker/). Исходные тексты написаны на языке Go и доступны под лицензией Apache 2.0.
В результате работы создаются отчёты, содержащие предупреждения о наличии проблем и учитывающие возможное совместное использование общих базовых наборов пакетов между контейнерами. Clair также может использоваться для организации отправки администраторам уведомлений о появлении новых уязвимостей, затрагивающих начинку ранее проверенных контейнеров. Clair не требует запуска программы-агента на стороне контейнера или внесения каких-либо изменений в конфигурацию. Система оформлена в виде обособленного движка, работающего на стороне хост-систем, систем непрерывной интеграции или хранилищ образов контейнеров.
Сервер включает в себя модули, отвечающие за управляющий HTTP API (запросы отправляются в формате JSON), выделение информации из слоёв контейнеров, обновление базы уязвимостей из разных источников, отправку уведомлений, самодиагностики всех внутренних сервисов и сохранения информации о начинке контейнеров и выявленных уязвимостях в графо-ориентированной СУБД Cayley (https://www.opennet.me/opennews/art.shtml?num=40098). Для хранения данных могут применяться разные бэкенды, но рекомендуется использовать Bolt (https://github.com/boltdb/bolt) для индивидуальных установок или PostgreSQL для крупных внедрений, охватывающих несколько серверов.
Проверка осуществляется без выполнения контейнера на основании анализа образующих контейнер слоёв. Информация о начинке контейнера сохраняется и в будущем может использоваться для определения подверженности проверенной версии контейнера новым уязвимостям. Для определения подверженности уязвимостям применяется сопоставление файлов из репозиториев известных дистрибутивов с файлами, входящими в состав контейнера. Как правило состав контейнера удаётся определить при помощи пакетного менеджера и отслеживания источника сборки репозитория. При отсутствии мета-данных осуществляется дополнительная проверка по хэшам известных исполняемых файлов и библиотек, входящих в типовые дистрибутивы Linux.<center><a href="https://raw.githubusercontent.com/coreos/clair/master/docs/M... src="https://www.opennet.me/opennews/pics_base/0_1447579164.png&q... style="border-style: solid; border-color: #e9ead6; border-width: 15px;max-width:100%;" title="" border=0></a></center>
В настоящее время Clair уже применяется для проверки безопасности образов контейнеров, размещённых в реестре
Quay.io (https://quay.io/). Ожидается, что внедрение Clair позволит решить растущие проблемы с накоплением контейнеров с неисправленными уязвимостями и проинформировать потенциальных пользователей и создателей таких контейнеров о имеющихся проблемах. Например, первый запуск сервиса выявил, что около 80% всех размещённых в каталоге Quay.io Docker-контейнеров содержат уязвимость CVE-2014-0160 ("Heartbleed"), которая была исправлена в дистрибутивах более 18 месяцев назад.URL: https://coreos.com/blog/vulnerability-analysis-for-containers/
Новость: http://www.opennet.me/opennews/art.shtml?num=43327
Есть такая проблема. Странно только Go, конечно...
Go уже почти де-факто стандарт для инструментов управления контейнерами. Все разработки Docker и CoreOS на Go.
> Go уже почти де-факто стандарт для инструментов управления контейнерамибомжи ликуют
Согласен. Вообще-то мне квм больше виртуалбоха нравится, но бомж так удобен! Использую с шелл/ансибиль/пипет-провижн.
Миша, ты проспал очередную ползучую революцию. GO местами уже стандарт, а во многих скоро им станет.
а сколько было экспертных мнений типа "не взлетит" и "чем он лучше C" :)
очередной проходной язычишко, который через пару лет забудут, и всё так же продолжут пейсать на крестцах и пехопе
как это часто бывает в RL взлетел он не благодаря тому, чем он лучше, а благодаря тому, чем он хуже: всё мимо системы.
Взлетел он благодаря продвижению Гуглем.
А облаивание с обочин, равно как и аплодисменты оттуда же, на курс никогда не влияли.
взлетел он потому что создавался для удобного и эффективного решения проблем специфичных для областей в которых взлетел и оказался там ожидаемо удобен и функционален.
В отличие от других языков, которые создавались специально для мучений и говнокода, оказавшихся на практике совершенно непригодными. Видимо, так.
> Миша, ты проспал очередную ползучую революцию.Да если б только её...
Все правильно написал.
> Есть такая проблема. Странно только Go, конечно...https://gist.github.com/kachayev/21e7fe149bc5ae0bd878
http://stackoverflow.com/questions/28272285/why-cgos-perform...
сначала придумаем систему, которая уязвима к такого рода явлениям (ну то есть необновляемые контейнеры), а потом будем упорно бороться с этой проблемой.
помню несколько лет назад одним из преимуществ линукса называли как раз эту особенность - то что сфот обновляется централизованно в системе. лицоладонь.
Дай человеку рыбу - и ты накормишь его на день.
Дай ему удочку - ...и потеряешь выгодный бизнес.
О чём ты?
о том что всё во имя бабок, и чем система сложнее и неустойчивее, тем больше бабок можно иметь. Нет смысла в простом, работающем и свободном окружении - его будет не нужно поддерживать, а значит не будет заработка.
Просто люди используют контейнеры неправильно. Большинство их использует для изоляции, и им не особо нужна другая базовая система. Люди особо не знают, что в том же systemd встроенные механизмы изоляции namespace, seccomp, они просто берут то, что на слуху.
> Просто люди используют контейнеры неправильно. Большинство их использует для изоляции,
> и им не особо нужна другая базовая система. Люди особо не
> знают, что в том же systemd встроенные механизмы изоляции namespace, seccomp,
> они просто берут то, что на слуху.а ещё люди не знают, что в системдэ встроена замена крону и пользуются кроном, вот лохи-то
>> знают, что в том же systemd встроенные механизмы изоляции namespace, seccomp,
>> они просто берут то, что на слуху.
> а ещё люди не знают, что в системдэ встроена замена крону и
> пользуются кроном, вот лохи-тоА ещё встроенный в этот продугД Апач никак не победит настоящего. Лохи все какие то :)))
какой долгий пук в лужу, браво
Сам-то вользовался контейнерной виртуализацией?По хорошему контейнеры не должны долго жить, а обновляться быстро и часто.
> По-хорошему, контейнеры не должны долго житьЭто ещё с какого перепугу? На том же ныне покойном хостинге linux.kiev.ua/osdn.org.ua жили годами, не тужили.
Оплошал, да.
Имел в виду конкретно контейнеры приложений а-ля docker, rkt.Частые деплои и вот это вот все, я об этом.
> используется база CVE (Common Vulnerabilities and Exposures)Предсказываю большое количество ложных срабатываний.
bool isVulnerable(container_t * c) {
if (c == NULL) {
return false;
} else {
return true;
}
}