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$