Skip to content

Linhead/secure-microservices-case

Repository files navigation

Secure Microservices & Nginx Hardening Case Study

Репозиторий демонстрирует архитектуру защищенного веб-приложения на базе микросервисов. Проект разработан с акцентом на Application Security (AppSec) и защиту инфраструктуры.

🛡 Security Features (Безопасность)

1. Защита от Web Cache Deception (WCD)

Реализована эшелонированная защита от попыток манипуляции кэширующими прокси:

  • Application Level (Fastify): Глобальный хук preHandler блокирует запросы к API-роутам, содержащие расширения статических файлов (.jpg, .css и т.д.).
  • Proxy Level (Nginx): Логика сопоставления расширения URL и Content-Type ответа. При попытке выдать динамический контент за статику принудительно выставляется заголовок Cache-Control: no-store.

2. Nginx Hardening

Конфигурация Nginx настроена по рекомендациям OWASP Best Practices:

  • SSL/TLS: Поддержка только TLS v1.2 и v1.3.
  • Скрыты версии сервера (server_tokens off) для минимизации сбора данных злоумышленником.
  • Security Headers: HSTS, X-Frame-Options (DENY), X-Content-Type-Options (nosniff).
  • PFS: Использование кастомных параметров Диффи-Хеллмана (dhparam.pem).

3. Infrastructure & Docker Security

  • Least Privilege: Приложение внутри контейнера запускается от имени системного пользователя node, а не root.
  • Network Segmentation: Разделение на frontend-net (доступна Nginx) и изолированную backend-net (для БД и внутренней связи).
  • Healthchecks: Использование pg_isready для контроля готовности БД перед запуском зависимых сервисов.
  • Оптимизация образов: Использование флага --only=production для исключения уязвимых инструментов разработки из продакшн-сборки.

🚀 Технологический стек

  • Runtime: Node.js 20 (Alpine)
  • Framework: Fastify v5
  • Proxy: Nginx (Stable-Alpine)
  • Database: PostgreSQL 15, Redis
  • Infrastructure: Docker Compose

🛠 Быстрый запуск

  1. Клонируйте репозиторий: git clone https://github.com/linhead/secure-microservices-case.git cd secure-microservices-case

  2. Настройте окружение:

  • Создайте файл .env на основе .env.example.
  • Сгенерируйте SSL-сертификаты в папку certs/: openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout certs/localhost.key -out certs/localhost.crt
  1. Сборка и запуск: docker-compose up --build

Author: linhead (https://github.com/linhead) Проект создан для демонстрации навыков в области Application Security.

About

A secure microservices architecture built with Fastify and Node.js, featuring Nginx hardening, Web Cache Deception protection, and strict network segmentation."

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors