Découvrez dans notre courte vidéo comment installer et déployer une solution UC en moins de 3 minutes avec la console de gestion Wazo Portal sur AWS.
Par Mathias, expert télécom
Découvrez dans notre courte vidéo comment installer et déployer une solution UC en moins de 3 minutes avec la console de gestion Wazo Portal sur AWS.
Une vulnérabilité de sécurité critique découverte dans FreePBX permet l’exécution de code à distance sans authentification.
Les serveurs FreePBX en version 14 ou 15 sont automatiquement mises à jour. Par contre, les serveurs fonctionnant en version 12 ou 13 doivent-être mises à jour manuellement. Assurez-vous que votre serveur FreePBX est mis à jour avec les dernières versions !
La vulnérabilité est corrigée dans:
Je me permets de vous rappeler qu’il est essentiel de tenir à jour ses serveurs et d’autant plus dans la VoIP qui est une cible particulièrement intéressante pour les assaillants !
Plus de détails sur la vulnérabilité sont disponibles sur le wiki de FreePBX.
L’objectif de Wazo Platform est de proposer une solution télécom flexible, facile à configurer et performante pour les opérateurs. Le composant clé de la solution est le routeur SIP basé sur le projet Kamailio, le serveur SIP open-source de premier plan.
Je vous partage un article écrit par Fabio de la team Wazo.
L’objectif de Wazo Platform est de proposer une solution télécom flexible, facile à configurer et performante pour les opérateurs. Le composant clé de la solution est le routeur SIP basé sur le projet Kamailio, le serveur SIP open-source de premier plan.
L’objectif est, tout en offrant une grande flexibilité et une grande facilité de configuration, d’éviter tout compromis sur les performances.
Bonne lecture : Kamailio routing with rtjson and http_async_client
La team Wazo vient d’annoncer la sortie de Wazo Platform 19.13.
Wazo Platform est une suite d’outils permettant de construire une infrastructure de communication IP programmable de classe opérateur. La suite est publiée en opensource, le code étant disponible sur le repo github de Wazo.
L’idée de fournir une solution de communication libre permettant de concevoir et de construire un système de communication adapté aux besoins spécifiques de chaque entreprise.
Les briques techniques sont construites autour de projets libres comme Asterisk, Kamailio, PostgreSQL et s’appuient fortement sur le langage de programmation python.
Pour ceux qui ne me connaissent pas, je travaille sur ce fabuleux projet, donc si vous avez des questions, n’hésitez pas.
Lien de la news : Introducing Wazo Platform 19.13
Comment sécuriser une application web avec le framework python Django ?
Tout le monde est maintenant conscient de l’importance de délivrer ou utiliser un service web fortement sécurisé. Il est indispensable de protéger les données stockées dans les bases de données, valeurs inestimables, et assurer la confidentialité des échanges.
L’utilisation d’un framework comme Django permet de partir sur des bonnes bases. Mais nous allons voir qu’il est nécessaire de paramétrer finalement celui-ci.
Je vais me servir d’un exemple concret, l’application PyFreeBilling dont je suis le créateur. PyFreeBilling est une application complète de VoIP (fonctionnalités de class 4 pour les connaisseurs) permettant à un opérateur télécom ou à une entreprise de services de connecter des clients et des fournisseurs, de router les appels, d’appliquer un tarif selon le type d’appel ainsi que l’ensemble des tâches nécessaires à cette activité.
L’exemple est intéressant du point de vue de la criticité de l’application. Une solution de communications de VoIP doit-être fortement sécurisée. Les risques de fraudes, de divulgation d’informations ou de perte de services sont importants. Un serveur à peine déployée subit ses premières attaques au bout de quelques minutes ceci étant aidé par des frameworks permettant d’automatiser les attaques.
L’interface de gestion de PyFreeBilling est développée avec le framework Django.
AUTH_PASSWORD_VALIDATORS = [
{
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
'OPTIONS': {
'min_length': 9,
}
},
{
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
},
]
Je vais faire la même remarque que pour le traitement de document XML.
Django étant un framework python, vous avez plusieurs outils vous permettant d’être notifié quand une dépendance est mise à jour. Mais surtout, certains outils peuvent envoyer une notification quand une dépendance utilisée contient une faille de sécurité. J’utilise PyUp pour cela. Ils annoncent surveiller 173 000 dépendances python !
Si votre projet utilise aussi du code qui n’est pas écrit en python, ce qui est souvent le cas comme du javascript, d’autres outils existent. Pour ce javascript, npmjs ou Retire.js pourront vous être très utiles. Retire.js propose même des extensions pour Chrome et Firefox !
OWASP dispose aussi d’un outil pouvant être intégré dans votre Jenkins préféré appelé OWASP Dependency Check. Il supporte actuellement les langages Java, .NET, Ruby, Node.js, Python et partiellement C++.
Il est en effet essentiel de logger les erreurs mais surtout de les traiter. Django propose des outils de génération de logs poussés. Une section dédiée à la génération de logs liés à la sécurité : https://docs.djangoproject.com/en/2.1/topics/logging/#django-security.
Pour un gros projet, un outil comme Sentry qui s’intègre parfaitement avec Django est un très intéressant.
Et pour surveiller votre application Django, les packages de monitoring sont listés dans https://djangopackages.org/grids/g/monitoring/
Nous avons vu au cours de cette article que la sécurisation d’une application web est une tâche complexe nécessitant de bien connaître les risques. Un framework puissant comme Django, à condition de bien le maîtriser, nous facilite la tâche.
Et pour finir, je vais vous partager un dernier truc afin d’améliorer la sécurité de notre projet Django : restreindre l’accès à toutes ou certaines URL à une ou plusieurs adresses IP.
Pour cela, le package django-iprestrict est l’outil adéquate. Afin de bloquer/autoriser l’accès à partir de région ou pays, geoip2 sera utilisé. Tout d’abord, il faut activer le middleware « iprestrict.middleware.IPRestrictMiddleware ». Le paramétrage se fait ensuite dans l’interface d’administration.
Et surtout pour sortir sécuriser Django correctement, sinon tous vos efforts auront été vains, assurez-vous d’utiliser un SECRET_KEY long, aléatoire et unique !
Si vous avez des remarques ou des packages intéressants à partager afin d’améliorer la sécurité d’un projet Django, les commentaires sont à votre disposition.
L’équipe d’OpnSense vient d’annoncer la nouvelle version de leur parefeu libre basé sur HardenedBSD.
Parmi les éléments les plus importants, la migration vers l’OS de base HardenedBSD en version 11.2. Pour ceux ne connaissant pas HardenedBSD et son intérêt pour un outil comme un firewall, voici un lien de comparif HardenedBSD avec FreeBSD, OpenBSD et NetBSD (cela vous permettra d’avoir un élément de comparaison en plus avec PFSense).
Voici les modifications les plus importantes depuis la version 18.7:
Pour télécharger et tester la nouvelle version, c’est par là : https://opnsense.c0urier.net/releases/19.1/
Avant d’effectuer une mise à jour d’un équipement existant, je vous invite à lire les notes de migrations !
Plus d’infos sur la nouvelle version d’OpnSense 1.9.1 ici.
Les nouveautés sont intéressantes, notamment la prise en charge de DNSSEC essentiel dans la protection de nos réseau et la migration vers Hardened BSD en version 11.2. Quelles sont les fonctionnalités que vous attendez d’OpnSense encore manquante ?
Bonne journée d’automne à tous !
Je ne suis pas très actif sur le blog ces derniers temps. Pas le manque d’envie, juste un cruel manque de temps. J’ai à peine le temps de trouver quelques heures pour aller surfer alors que les bonnes conditions sont enfin là !
Juste très pris sur des projets motivants avec des sujets qui m’éclatent : des architectures télécoms complexes, des services critiques, des environnements internationaux … et des techno sympas (kamailio, rtpengine, asterisk, ansible, postgresql …).
PyFreeBilling va bientôt voir arriver la version 3 avec plein de nouveautés sympa !
J’ai aussi publié ces derniers jours sur mon github des roles pour Ansible (notamment pour Asterisk et Kamailio. RTPEngine est en cours) avec une intégration complète avec travis pour des tests complets. Par avance, merci pour vos retours.
Bonne journée
Mathias
Bonjour. Je partage une initiative qui me semble très intéressante et de grande qualité.
Vous êtes intéressé par une spécialisation en Télécommunications ?
Posez vos questions en direct aux Directeurs de programme !
SAVE THE DATE
TELECOM ParisTech / Mastère Spécialisé Conception et Architecture de Réseaux
22 février 2018 – 12h00
Avec ce Mastère Spécialisé®, Télécom ParisTech vise à former des étudiants capables de concevoir un réseau répondant aux contraintes fonctionnelles ou à un schéma organisationnel précis. Ce MS prépare les étudiants aux métiers d’ingénieur ou architecte réseau, responsable réseaux et télécoms, chargés de la conception, du choix et du dimensionnement des réseaux. Au programme : Réseau commutés et signalisation, Nouvelles technologies IP, Réseaux radiomobiles cellulaires, Sécurité des systèmes d’information, etc. Le MS allie à la fois des outils techniques et technologique, que ce soit pour l’analyse, la conception ou encore la planification. Les étudiants participent également au projets fil rouge, et rédigent une thèse professionnelle.
TELECOM ParisTech / Mastère Spécialisé Architecte Digital d’Entreprise
Retrouvez le Replay !
Le Mastère Spécialisé® Architecte Digital d’Entreprise (anciennement Architecte Télécom Orienté Multiservices – ATOMS) vise à fournir un socle de compétences techniques et business intégrant toutes les problématiques TIC, network, IT ou encore services et positionnement du client. Il est proposé en partenariat industriel avec Orange. Son objectif ? Encourager une approche de la pratique de l’architecture qui repose sur le dialogue entre urbanisme et projets opérationnels tout en intégrant les dimensions techno centric et customer centric.
A noter : l’importance de la qualité de service, des infrastructures ou encore de la sécurité dans ce domaine
Campus-Channel, la plateforme 100% vidéo pour vous aider dans votre choix de formation.
La version définitive 2.0 de PyFreeBilling approche. La version beta publique a été rendue disponible.
Qu’est-ce que PyFreeBilling ?
Le logiciel PyFreeBilling est une solution sous licence Open Source AGPL permettant de gérer une activité d’opérateur télécom VoIP : gestion des clients, gestion des fournisseurs, gestion des grilles tarifaires ventes et achats, routage des appels et gestion des balances et reporting.
Merci à Hichem Ghazouani qui a mis à disposition la version 2.0 en démo.
Vous trouverez le lien ci-dessous :
https://51.255.173.122/ ( customer )
https://51.255.173.122/extranet/ (admin )
username : ghvoip
password: demo123 ( pmerci de ne pas changer le mot de passe !)
À qui est destiné PyFreeBilling ?
PyFreeBilling dans sa version 2 est destiné aux opérateurs VoIP permettant de router les appels entrants et sortants de ses clients vers différents opérateurs-fournisseurs de manière sûre, souple et simple.
Asterisk souffre d’un problème assez grave permettant à un attaquant d’écouter simplement vos conversations. Une attaque de l’homme du milieu (man-in-the-middle), sans être vraiment au milieu d’ailleurs, permet de redirriger les flux RTP assez facilement.
Asterisk souffre d’un problème assez grave permettant à un attaquant d’écouter simplement vos conversations. Une attaque de l’homme du milieu (man-in-the-middle), sans être vraiment au milieu d’ailleurs, permet de rediriger les flux RTP assez facilement.
L’annonce a été faite il y a quelques jours (31/08/2017). Il s’agit en fait d’un vieux bug datant de 2011 qui a été réintroduit au premier trimestre 2013. Le premier report annonçant la régression date de mai dernier ainsi que le patch (fournit pour test). L’annonce officielle a été faite le 31 août dernier.
Quelles sont les versions vulnérables ?
Toutes les versions d’Asterisk entre la 11.4.0 à la 14.6.1 sont malheureusement touchées.
Dans quel cas le serveur Asterisk est vulnérable ?
Quand le serveur Asterisk fonctionne avec des postes derrière un routeur NAT, il est nécessaire de mettre en oeuvre des actions afin de router correctement les paquets voix. Le protocole SIP s’appuie sur le protocole RTP afin de transporter la voix et le protocole SDP afin que les user-agents (UA) puissent négocier entre eux des éléments comme les codecs, adresses et ports. Ces éléments sont échangés en clair sur le réseau.
Pour permettre ces négociations, le serveur Asterisk est configuré (fichier sip.conf) avec les options nat=yes et strictrtp=yes. De plus, ces options sont configurées ainsi par défaut !
Comment exploiter la faille ?
Un attaquant doit envoyer des paquets RTP au serveur Asterisk sur un port alloué pour recevoir un flux RTP. Si le serveur est vulnérable, alors le serveur Asterisk répond à l’assaillant en relayant les paquets RTP du destinataire véritable. Il est ensuite aisé avec des outils comme Wireshark de décoder le flux audio.
Quelles sont les actions de mitigation envisageable ?
Par ailleurs, si vos postes IP et vos fournisseurs de trunk SIP utilisent des adresses IP fixes et connues, la mise en oeuvre d’une règle sur votre firewall bloquant l’accès aux ports UDP 10000 à 20000 (ports RTP utilisés par défaut par un serveur Aterisk) uniquement à partir de ces adresses apporte une protection suffisante.
Comment vérifier si mon serveur Asterisk est vulnérable ?
L’outil rtpnatscan permet de tester votre serveur Asterisk.
Références :