La surveillance des activités réseau est une activité historique de la SSI de l’IN2P3. L’IN2P3 a mis en place dès les années 2000 un IDS (Intrusion Detection System) dans l’ensemble des sites nationaux.

ZNets

ZNets est un IDS développé au sein de l’IN2P3 basé sur l’analyse des flux NetFlow des routeurs. A la fois basé sur l’activité en temps réel et sur une liste d’IoC fourni par l’administrateur de la plateforme, ZNets permet aux équipes d’administration système des laboratoires d’être averti au plus tôt d’une campagne d’attaque massive sur leurs infrastructures.

pDNSSOC

pDNSSOC est un analyseur de journaux systèmes des serveurs DNS des laboratoires. Les IoCs sont synchronisées en temps réel avec la plateforme MISP de l’IN2P3 pour une detection au plus tôt des comportements suspect des utilisateurs des différentes plateformes informatiques.

Configurer mon serveur DNS

Dans la section logging de /etc/named.conf il faut rajouter le canal de log suivant

channel queries_file_pdnssoc {
        file "/var/log/named/pdnssoc-queries.log" versions 100 size 2m;
        severity dynamic;
        print-time yes;
};
category queries { queries_file_pdnssoc; };

Il faut ensuite utiliser un script pour envoyer les logs sur la plateforme pDNSSOC de l’IN2P3

#!/bin/bash

declare -A pdnssoc_ports
pdnssoc_ports=(
  ["apc"]=5141
  ["cc"]=5142
  ["cppm"]=5143
  ["ganil"]=5144
  ["ijclab"]=5145
  ["ip2i"]=5146
  ["iphc"]=5147
  ["l2it"]=5148
  ["lapp"]=5149
  ["lp-clr"]=5150
  ["lp2i"]=5151
  ["lpc-caen"]=5152
  ["lpnhe"]=5153
  ["lpsc"]=5154
  ["lump"]=5155
  ["subatech"]=5156
)

echo $pdnssoc_ports
if [ $# != 1 ]
then
  echo "Usage : $0 nom_du_laboratoire"
  exit 1
fi

# IN2P3 pDNSSOC server
pdnssoc_server="soc-pdnssoc.in2p3.fr"
# Each IN2P3 lab have is own port
pdnssoc_server_port=${pdnssoc_ports[$1]}

path_logs="/var/log/named/"
path_target="/var/log/named/sender/"

echo "Send data for $1 to ${pdnssoc_server}:${pdnssoc_server_port}"

for log_file in $(ls $path_logs | grep -E "pdnssoc-queries.log.[0-9]+")
do
mv "$path_logs/$log_file" $path_target
# nc -c permet de faire une connexion ssl
cat  "$path_target/$log_file" | nc -c $pdnssoc_server $pdnssoc_server_port -w 10
# Si votre netcat ne support pas l'option -c (ssl)
# cat  "$path_target/$log_file" | timeout 10 openssl s_client -no_ign_eof -quiet -connect $pdnssoc_server:$pdnssoc_server_port
done

rm -f $path_target/*

Tester la connexion à pDNSSOC

-bash-4.1$ timeout 10 openssl s_client -quiet -connect soc-pdnssoc.in2p3.fr:5145

depth=3 C = GB, ST = Greater Manchester, L = Salford, O = Comodo CA Limited, CN = AAA Certificate Services
verify return:1
depth=2 C = US, ST = New Jersey, L = Jersey City, O = The USERTRUST Network, CN = USERTrust RSA Certification Authority
verify return:1
depth=1 C = NL, O = GEANT Vereniging, CN = GEANT OV RSA CA 4
verify return:1
depth=0 C = FR, ST = Paris, O = Centre national de la recherche scientifique, CN = soc-pdnssoc.in2p3.fr
verify return:1

-bash-4.1$