Archives de catégorie : Technos

Sécurité – Les demandes de certificats trahissent votre infrastructure

Comment les demandes de certificats peuvent trahir la structure publique et privée de votre infrastructure.

La sécurisation des communications est une réelle avancée dans l’amélioration de la vie privée.

Aujourd’hui les certificats ACME fournis par Let’s Encrypt ou ZeroSSL représentent la majorité des certificats utilisés dans le monde. Les statistiques le montre.

Cependant peu de gens savent ou prennent en compte que ces demandes sont publiques.

Et Alors ?

Un exemple

https://crt.sh/?q=voila.fr

Vous y verrez par exemple pour le site voila.fr possède des sous admin vip, etc, certains en wildcard ou ne répondant plus.

Même constat avec orange.fr par exemple.

Vous me direz, ou est le problème ?

Il est simple, vous informez la terre entière que vous avez un service nommé par exemple billing.stagingrealdata.macompagnie.fr , ce service est une cible privilégié.

Pourquoi ?

  • Ce service est peut-être en développement, vous ne voulez pas forcément communiquer dessus
  • La sécurité de ce service, n’est pas forcément parfaite, par exemple il peut avoir des comptes de test plutôt génériques avec des mots de passe très sommaire.
  • être non maintenu
  • être seulement accessible en interne, mais donne tout de même l’architecture de votre infrastructure alors que vous pensiez l’avoir protégée et cachée derrière un wildcard dns fictif.
  • et je vous laisse chercher les autres raisons.

Conclusion

A l’aire du Zero Trust, ce n’est pas grave en soit, mais ajoute une menace supplémentaire.

Bien-sûr tout ça va également dans le bon sens.

Référence et notes

https://github.com/SSLMate/certspotter/

Docker buildx configuration unix

Buildx et BuildKit apportent beaucoup en rapidité de génération d’image docker.

Voici un petit guide pour activer Buildx par défaut.

éditer votre daemon.json et relancer docker

{
"experimental" : true,
"debug" : true,
"features" : {
  "buildkit" : true
 }
}

Ensuite pour que buildx soit le builder par défaut:

docker buildx install

et pour désinstaller

docker buildx uninstall

Pour fonctionner avec docker-compose, la première version compatible est la 1.25.0 avec son flag COMPOSE_DOCKER_CLI_BUILD=1 permettant d’utiliser directement la commande docker à la place de bibliothèque docker_py.

exemple de commande:

COMPOSE_DOCKER_CLI_BUILD=1 docker-compose build

ou exporter la variable COMPOSE_DOCKER_CLI_BUILD au préalable.

Go get and Fork – script helper workaround

Why

If you write some Golang code, from my point of view, one of biggest pitfall of this language is dependency management.

At the beginning, get library directly from git repository seems a good idea, but between package rules, versions, your pull requests, it becomes a mess quickly.

Some sources on this problem:
Article: Forking Golang repositories on GitHub and managing the import path

StackOverflow : Using forked package import in Go

My workaround

Then, why not automate this procedure ?
In your .bashrc add:

function gofork() {
  if [ $# -ne 2 ] || [ -z "$1" ] || [ -z "$2" ]; then
    echo 'Usage: gofork yourFork originalModule'
    echo 'Example: golang github.com/YourName/go-contrib github.com/heirko/go-contrib'
    return
  fi
   echo "Go get fork $1 and replace $2 in GOPATH: $GOPATH"
   go get $1
   go get $2
   currentDir=$PWD
   cd $GOPATH/src/$1
   remote1=$(git config --get remote.origin.url)
   cd $GOPATH/src/$2
   remote2=$(git config --get remote.origin.url)
   cd $currentDir
   rm -rf $GOPATH/src/$2
   mv $GOPATH/src/$1 $GOPATH/src/$2
   cd $GOPATH/src/$2
   git remote add their $remote2
   echo Now in $GOPATH/src/$2 origin remote is $remote1
   echo And in $GOPATH/src/$2 their remote is $remote2
   cd $currentDir
}

export -f gofork

This command do

  • a ‘go get’ on source and fork repositories
  • extract remote urls
  • replace source code by fork
  • add source remote to your fork repository in case you want pull from source

You can call this script from command line or directly from a script like this:

gofork github.com/heralight/baloo gopkg.in/h2non/baloo.v2