Nos services

Audit de code

L’audit de code a pour objectif principal l’analyse de l’implémentation des mécanismes de sécurité mis en place pour protéger un produit. La lecture du code source permet d’identifier des vulnérabilités difficilement détectables dans d’autres contextes (boîte noire ou boite grise).

Alors que des tests dynamiques pourraient ne pas révéler une faille de sécurité, l’analyse statique offrira une vision complète et facilitera la recherche d’éventuelles vulnérabilités.

À ce titre, l’audit de code permet d’assurer une exhaustivité bien plus importante sur un périmètre restreint et encadré.


Cryptographie

Un audit cryptographique permet de vérifier la conformité à l’état de l’art et d’améliorer la sécurité des données sensibles en identifiant les vulnérabilités potentielles dans les primitives et protocoles utilisés. Il vise à évaluer la qualité et la robustesse des mécanismes de cryptographie utilisés, en se basant sur une analyse théorique et un audit de code pour vérifier leur mise en œuvre et leur implémentation.

L’analyse théorique implique la vérification de la conformité aux normes de sécurité établies par les autorités compétentes telles que l’ANSSI, des algorithmes utilisés et de leur paramétrage. L’évaluation de la mise en œuvre implique la vérification de la façon dont les mécanismes cryptographiques sont utilisés dans leur contexte et la vérification de l’implémentation permet de détecter des vulnérabilités potentielles liées à des erreurs de développement.


Mobile

En offrant des fonctionnalités étendues, les systèmes d’exploitation mobile permettent à l’utilisateur final de réaliser de plus en plus d’actions directement sur son téléphone. Toutefois, d’un point de vue développement technique, cette multitude de possibilités est l’une des causes les plus courantes d’erreurs d’implémentation.

L’audit mobile se doit donc de répondre à un triple objectif :

  • analyser les communications entre votre application et le serveur distant (robustesse des interfaces d’authentification, cloisonnement utilisateur etc.) ;
  • comprendre la façon dont l’application interagit avec le système d’exploitation sous-jacent (stockage local, interaction avec les autres processus etc.) ;
  • s’assurer que la compatibilité avec les anciennes versions ne diminue pas le niveau de sécurité.

Ainsi, en se basant sur les recommandations énoncées dans le Mobile Security Testing Guide, la réalisation d’un test d’intrusion couplé à un audit de code (nécessaire pour assurer l’exhaustivité de certains tests) permet d’identifier les vulnérabilités et d’apporter des réponses quant au respect des bonnes pratiques en vigueur.


Pré-CSPN

La Certification de Sécurité de Premier Niveau (CSPN) est un gage de qualité délivré par l’ANSSI qui garantit qu’un produit de sécurité est conforme aux normes en vigueur.

Une pré-CSPN reprend les principales tâches d’une évaluation CSPN, à savoir :

  • une analyse de la cible de sécurité et des spécifications cryptographiques ;
    • nous proposons également une aide à la rédaction de ces documents.
  • des tests de robustesse sur les fonctions de sécurité ;
  • un audit des mécanismes cryptographiques.

En réalisant une pré-CSPN, vous pourrez identifier les points faibles de votre produit/documentation et les corriger avant de passer la certification/qualification. Cela vous permettra de minimiser les risques de non-conformité lors de l’audit réel et par conséquent de réduire le coût total du processus d’obtention de la certification.


Reverse-engineering

Les prestations de reverse-engineering ont pour objectif l’étude de logiciels dont le code source n’est pas disponible puliquement. Elles peuvent être nécessaires à plusieurs égards et notamment pour :

  • évaluer la résistance d’une couche d’obfuscation propriétaire ;
  • rechercher et exploiter des vulnérabilités ;
  • comprendre le fonctionnement d’un logiciel (malveillant).

S’agissant de la recherche de vulnérabilités, ces prestations n’offrent pas l’exhaustivité d’un audit de code source mais permettent un aperçu plus réprésentatif de la surface d’attaque exposée en condition réelle.