Иногда легко случайно забыть в контейнере важную нформацию В отчете Snyk о состоянии безопасности открытого исходного кода - 2019 г. обнаружено что образы могут содержать до 580 Используйте многоступенчатые сборки уязвимостей в системных библиотеках операционной системы. Используйте команду secret Остерегайтесь рекурсивной копии, используйте .dockerignore Используйте образы с наименьшим кол-вом библиотек ОС и инструментов для снижения риска 6. Используйте фиксированные теги для неизменности Предпочитайте образы на основе alpine вместо полноценных ОС Каждый образ Docker может иметь несколько тегов, которые 2. Меньше привилегий являются вариантами одних и тех же образов Включите создание выделенного пользователя и выделенной группы в образе Docker; используйте директиву USER в Dockerfile, Подробный тег образа, с помощью которого можно отметить версию и для запуска приложения с минимально возможным доступом операционную систему. Например FROM node:8-alpine Хэш образа чтобы более точно позиционировать версию FROM node:10-alpine 7. Используйте COPY вместо ADD USER node CMD node index.js Произвольные URL, указанные для ADD, могут привести к атакам Образы Docker: MITM. Кроме того, ADD неявно распаковывает локальные 3. Подписывайте и проверяйте образы Лучшие практики по архивы, которые могут не следует ожидать, что приведет к Мы привыкли доверять образу Docker скачанному из интернета обходу пути и уязвимостям Zip Slip. безопасности не задумываясь о надёжности его источника Используйте COPY, если не требуется ADD. Используйте Notary для подписи своих образов 8. Используйте метки данных Авторы - Node.js Security WG & Проверяйте доверие и целостность подтягиваемых образов Метки с метаданными для образов предоставляют полезную Developer Advocate из компании Snyk 4. Ищи, исправляй и следи за уязвимостями в open source ПО информацию для пользователей. - DevSecOps Engineer из Добавляйте к ним также информацию о безопасности. компании Soluto Регулярно сканируйте образы на уязвимости и сделайте это Используйте и сообщайте политику касательно информационной Переведено частью своего CI. Snyk поможет обнаружить уязвимости в безопасности, добавив файл политики SECURITY.TXT и – пентестер и системных библиотеках и образах Docker предоставив эту информацию в метках своих образов. специалист по ИБ Просканировать образ Docker помощью этих команд: 9. Используйте многоэтапную сборку для безопасных образов # fetch the image to be tested so it exists locally $ docker pull node:10 На каждом этапе сборки старайтесь уменьшить её состав до # scan the image with snyk минимально необходимого, это позволит существенно снизить $ snyk test --docker node:10 --file=path/to/Dockerfile возможную поверхность атаки на образ https://snyk.io/ 10. Используйте линтер Включить мониторинг уязвимостей: Чтобы избежать распространенных ошибок и учесть https://securixy.kz/ snyk monitor --docker node:10 рекомендации по передовой практике используйте hadolint