La proposition du projet DALI

Une problématique complexe

Les applications web d'aujourd'hui n'ont plus rien à voir avec celles des années 2000, leur dynamisme et leur richesse permet de répondre à un grand nombre de besoins. Mais cette richesse fonctionnelle s'accompagne d'une complexité grandissante, offrant une surface d'attaque conséquente.

L'approche traditionnelle de la détection d'intrusion basé sur l'analyse des trames réseau, que ce soit comportemental ou par signature, se heurte à la quasi-universalité du protocole HTTP, sur lequel viennent s'ajouter des surcouches protocolaires telle que SOAP, JSON, Xml, AMF, etc... à cela s'ajoute la traditionnelle problématique des nombreux encodages de caractères existants. 

Tout ceci offre à un attaquant un grand nombre de techniques d'évasions simples et efficaces, fragmentation HTTP, encodage de caractères, chiffrement HTTPS, etc... Tout ceci rend là détection d'intrusion très complexe. Il faut ajouter à cela que les attaques menés contre ces applications web tirent souvent parti de la logique interne de l'application, et passent pour du trafic légitime au yeux d'un observateur placé au niveau réseau.

Des solutions innovantes

Un mécanisme d'IDS par contrats

Les développeurs implémentent souvent un ensemble de vérifications coté clients qui sont aisément contournés par un attaquant. Le principe du SHIELD est de récupérer l'ensemble de ces pré-conditions exprimés naïvement par le développeur et de s'assurer qu'il obtient ce à quoi il s'attend, et rien d'autre, soulageant ainsi ce dernier des problématiques de contrôle des données.

L'ensemble de ces pré-conditions est collecté automatiquement dans une phase d'analyse de l'application puis elles sont rafinées et complétées à l'aide d'un outil d'édition de contraintes. Suite à cette phase, le SHIELD est capable de détecter toute violation de ces contraintes (taille & typage des champs, constantes, liste d'attributs...).

Un mécanisme d'IDS par apprentissage

De  nombreuses applications sont développées avec des constantes non vérifiées ou bien des données dont l'altération a une influence significative sur la sécurité de cette dernière. Le problème de ces attaques, c'est qu'elles ne touchent pas au fonctionnement même de l'application, et ne provoquent pas forcément de crash ou d'erreurs aisément détectables.

Pour pouvoir détecter ce type d'attaques contre les données, un nouveau mécanisme a été mis au point permettant d'extraire l'ensemble des invariants contenus dans l'application. En s'assurant que ces invariants ne sont jamais violés lors de l'exécution de l'application, on se prémunie contre des attaques manipulant les données internes de l'application (Ex : manipulation d'un identifiant utilisateur pour accéder à un profil autre que le sien). 

Des résultats maitrisés

Résultats

Une méthodologie d'évaluation d'IDS outillée

Afin d'évaluer au mieux un IDS, il faut se placer au plus près du contexte opérationnel. Pour ce faire, l'IDS est soumis à un trafic qui ne contient pas seulement des attaques, mais aussi du trafic légitime. Pour le stresser encore plus, il est soumis à un trafic de charge équivalent aux conditions réelles, rendant son travail de détection plus ardu. Ainsi les résultats n'en sont que plus justes.

Une plateforme d'évaluation et de démonstration de qualité

L'ensemble des outils développés par les partenaires est intégré dans une plateforme de tests automatisés. En effet, la complexité et le grand nombre d'attaques que peut détecter un IDS induit une validation longue et complexe. L'automatisation de ces tests permet à l'évaluateur de se concentrer sur l'analyse des résultats plutôt que sur les tests eux-mêmes qui, une fois automatisés, sont aisément capitalisables.


Powered by PHP Nanomus Login