Sécurité

Architecture de notre portail d’applications

Dans cet article, nous allons traiter de l’architecture de notre portail d’applications, et plus particulièrement de la partie authentification. Nous allons nous intéresser à tout ce qui a trait à la gestion de l’identité et à l’autorisation. Avant de rentrer dans le vif du sujet, attardons nous un peu sur comment sont organisés notre portail et nos applications. Tout d’abord, nous fonctionnons avec une API REST. Chaque application est en réalité une simple API qui est exposée et l’application web n’est qu’un client de cette API, au même titre que le serait une application mobile Android. Nous avons donc deux parties complètement distinctes et détachées pour chaque application, le backend (API) et le frontend (web app). Afin d’unifier chacun de nos services, nous avons besoin d’un pilier central qui soit capable de gérer la partie identité de nos utilisateurs. Cette application, nommée “Accounts”, se charge de toute la partie authentification, authorization et gestion d’identité de notre portail. Le schema ci-dessous illustre notre portail et ses applications:     Afin de gérer l’accès à nos API, nous avons choisi d’utiliser le protocol OAuth 2.0 et pour la couche identité nous utilisons le protocol OpenID Connect 1.0, basé sur OAuth. Le schema ci-dessous montre de manière...

NTP : serveur de « temps » … et de DDoS !

NTP ? C’est quoi… NTP : Network Time Protocol. C’est la machinerie qui permet de conserver une synchronisation horaire des équipements informatiques partout dans le monde. Ce protocole est très largement déployé et très largement utilisé, et par sa nature, il reste relativement ouvert. Chaque pays dispose d’une liste publique de serveurs NTP, les universités en fournissent également, idem pour certains fournisseurs d’accès. Mis à part quelques vulnérabilités découvertes, comme pour tous les services « Internet », ce protocole n’a pas fait beaucoup parler de lui tout au long de sa longue vie, jusqu’à il y a quelques semaines. Sur la période de Noël déjà quelques attaques DDoS reposant sur NTP étaient détectées, et ce jour dans les actualités, une attaque générant un débit de plus de 100 GBps sature des sites de jeux… D’où ce petit « billet » explicatif… De NTP à ADRDOS… NTP, comme décrit ci-dessus, est un protocole plutôt inoffensif à la base, servant à synchroniser nos horloges « électroniques » DOS : Denial of Service. Attaque consistant à faire tomber un ou plusieurs services, ou à remplir un tuyau réseau en le saturant. DDOS : Distributed Denial of Service. Exécuter un DOS en s’appuyant sur un nombre très important de machine (botnets de machines infectées par exemple) DRDOS : Distributed Reflective Denial of Service. Même principe que le DDOS. Cette fois, il s’agit...

SIEM, une vision centralisée de la sécurité

Introduction Le SIEM (Security Information and Event Management) est un système de supervision centralisé de la sécurité composé de deux solutions : Le SIM (Security Incident Management): Fourni un moyen de rétention des informations, de support à l’analyse Forensic et de reporting des données de logs Le SEM (Security Event Management): Garantit la supervision temps réels ou quasi, la corrélation et le traitement des événements Le SIEM s’articule autour de 6 fonctions : La collecte et la centralisation des évènements d’actifs qui composent votre système d’information : Actif d’infrastructure, équipement de sécurité, serveurs, firewall, routeur, journaux systèmes, base de données, applications, IPS, flux réseaux… Cette collecte s’opère sous différents formats de source d’évènements (Windows Security Log, Syslog, fichier plat, base de données, SNMP, NetFlow, IPFIX…) La normalisation des traces collectées au travers d’analyseurs spécifiques, offre une corrélation multicritères standardisées (métadonnées : date, heure, IP(s), port et services…). Les traces brutes sont stockées sans modification pour garder une valeur juridique. De nombreux analyseurs natifs (varie en fonction des éditeurs) sont disponible pour les solutions éditeurs et Open-Source. Dans le cas échéant la création d’un analyseur spécifique pour des éléments à raccorder au SIEM est réalisable (offre une grande...

Attention aux attaques DNS…

Certes les problématiques liées à la sécurité et à la protection de l’information ne manquent pas aujourd’hui : sécurité des applications Web, des bases de données, nombreux projets de mobilité, menaces APT, phishing e-mail, etc., au risque d’en oublier les attaques plus « traditionnelles ». Depuis la création du DNS, ces services ont régulièrement fait l’objet de toutes les convoitises des hackers du monde entier. Pourquoi ? Ce système nous permet de nous soustraire à l’ennuyeuse et difficile tâche de mémoriser les adresses IP des serveurs Internet ! Le DNS : pierre angulaire d’Internet. Le Domain Name Service (DNS) est l’annuaire d’Internet, transformant un nom (e.g. blog.e-xpertsolution.com) en IP (81.23.64.76). Déjà indispensable, il le sera encore plus quand IP v6 deviendra la standard avec des IP du type  3dfe:2450:3676:6:256:d9ab:fe21:5558. Tel le « Roi » aux échecs, les DNS sont les parties d’Internet les plus fragiles et vulnérables. Contrôler le DNS revient à contrôler Internet, et de nos jours peut signifier contrôler notre monde interconnecté. Intérêt pour les pirates Un attaquant peut porter un intérêt au DNS dans le cadre de plusieurs types d’attaques : Déni de Service par saturation : le déni de service peut être opéré directement sur le serveur DNS ayant autorité sur un domaine. Une fois saturé, il n’est plus en mesures de répondre aux requêtes légitimes, et...

Introduction à la commande cURL

cURL est une commande Linux très répandue. On peut l’utiliser pour effectuer des requêtes HTTP, transférer des fichiers via FTP ou encore envoyer des e-mails. Dans l’article ci-dessous, nous allons s’attarder sur les différentes utilisations de bases de cette commande avec le protocole HTTP. Utilisation basique de la commande   Pour commencer, regardons ensemble quelques exemples simple de cURL sur linux. Par défaut, cURL affiche le résultat complet de la commande dans la console. curl <a href="https://www.e-xpertsolutions.com/">www.e-xpertsolutions.com</a> 1 curl <a href="https://www.e-xpertsolutions.com/">www.e-xpertsolutions.com</a> La commande ci-dessus affiche le résultat de la requête GET sur https://www.e-xpertsolutions.com sur la console. Attention: le résultat de la commande n’est cependant pas sauvegardé dans un fichier. &lt;!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"&gt; &lt;html&gt;&lt;head&gt; &lt;title&gt;302 Found&lt;/title&gt; &lt;/head&gt;&lt;body&gt; &lt;h1&gt;Found&lt;/h1&gt; &lt;p&gt;The document has moved &lt;a href="<a class="vglnk" href="https://www.e-xpertsolutions.com/" rel="nofollow">https://www.e-xpertsolutions.com/</a>"&gt;here&lt;/a&gt;.&lt;/p&gt; &lt;/body&gt;&lt;/html&gt; 1234567...

8 commandes Curl qui sauvent la vie !

En qualité d’ingénieur dans le domaine de la sécurité informatique et plus particulièrement dans la protection des applications web, l’utilisation de la commande Curl se révèle être une arme très efficace pour troubleshooter des incidents ou tester les équipements de sécurité en réalisant des attaques simples. Cet article fourni quelques exemples d’utilisations de la commande Curl. Afficher le contenu d’une page web curl <a class="vglnk" href="http://www.example.com/" rel="nofollow">http://www.example.com</a> 1 curl <a class="vglnk" href="http://www.example.com/" rel="nofollow">http://www.example.com</a> Afficher les headers de la réponse du serveur curl –I <a class="vglnk" href="http://www.example.com/" rel="nofollow">http://www.example.com</a> 1 curl –I <a class="vglnk" href="http://www.example.com/" rel="nofollow">http://www.example.com</a> Ignorer les alertes de sécurité ssl curl –k <a class="vglnk" href="https://www.example.com/" rel="nofollow">https://www.example.com</a> 1 curl –k <a class="vglnk" href="https://www.example.com/" rel="nofollow">https://www.example.com</a> Passer un header d’authentification Basic dans la requête HTTP curl -u username:password <a class="vglnk" href="http://www.example.com/" rel="nofollow">http://www.example.com</a> 1 curl -u...