Rails vous protège par défaut. Vos dérogations, non.

Test d'intrusion ciblé de vos applications Ruby on Rails : mass assignment, autorisation, injections ActiveRecord et désérialisation. Un rapport que vos devs Rails corrigent sans aller-retour.

Ruby on Rails

Rails abstrait beaucoup. Les pièges, eux, sont précis.

Un strong params oublié, un where interpolé à la main, un secret_key_base faible, un YAML.load sur une entrée utilisateur : les failles Rails se nichent dans des endroits connus. Je vais droit à ces endroits au lieu de balayer au hasard.

ActiveRecord · Devise · Pundit API & monolithe Rails 4 → dernières

Ce que couvre l'audit Rails.

Les classes de failles les plus fréquentes sur une application Rails réelle, testées à la main sur votre code et vos endpoints. OWASP WSTG + API Top 10, en authentifié comme en non authentifié.

Périmètre testé06 classes de failles
01

Mass assignment

strong params contournés, attributs sensibles écrasables

02

Autorisation

Pundit / CanCanCan mal câblés, IDOR sur les ressources

03

Injection ActiveRecord

where interpolé, find_by_sql, ordre/condition non bornés

04

Désérialisation & RCE

YAML.load, Marshal, cookies signés, secret_key_base

05

SSTI & rendu

render inline, ERB sur entrée utilisateur, open redirect

06

Authentification

Devise, reset de mot de passe, JWT, énumération de comptes

Déroulement d'un audit Rails.

Cadrage, test, rapport, contre-test. Vous savez à tout moment ce qui a été couvert sur votre app Rails et ce qu'il reste à passer. Prix fixe défini au cadrage.

  1. ~ 1 appel

    Cadrage

    Un court appel, un prix fixe, des règles d'engagement écrites. La version de Rails et le périmètre sont notés ici.

  2. 5–10 jours

    Test

    Exploitation manuelle des classes de failles propres à cette stack, en plus du parcours OWASP complet. Le critique part le jour même.

  3. 48 h

    Rapport

    Chaque faille : criticité, reproduction pas à pas, impact réel, et le correctif au niveau du code. Vos devs corrigent sans me relancer.

  4. gratuit · 30 j

    Contre-test

    Vous patchez, je rejoue chaque faille et délivre l'attestation. Compris dans le forfait.

Quand tester une application Rails.

Un pentest n'attend pas l'incident. Les raisons qui reviennent chez les équipes Rails.

Avant de signer

  • Un client grand compte exige une preuve de test avant de signer
  • Une levée de fonds et sa due diligence technique approchent

Avant de mettre en ligne

  • Une montée de version Rails ou une refonte change la surface d'attaque
  • Une première mise en production d'une app qui manipule des données sensibles

Avant d'en répondre

  • Une revue SOC 2 / ISO 27001 réclame un pentest annuel
  • Un doute sur Devise, Pundit ou une logique de permissions

Questions sur l'audit Rails.

Les vraies questions d'un premier appel de cadrage sur une application Rails. Si la vôtre manque, elle a sa réponse en un e-mail.

Quelles versions de Rails testez-vous ?

De Rails 4 aux dernières, en API-only comme en monolithe avec vues. La version exacte est notée au cadrage.

Avez-vous besoin du code source ?

Pas obligatoire. En boîte grise (accès au code) le test va plus loin, surtout sur le mass assignment et les autorisations.

Testez-vous les gems tierces ?

Oui. Devise, Pundit, CanCanCan, Sidekiq et les dépendances exposées font partie de la surface d'attaque.

Sur prod ou sur staging ?

Staging iso-prod de préférence, avec des données réalistes. La prod reste possible avec des règles d'engagement écrites.

Le prix dépend-il de la taille du dépôt ?

Du périmètre exposé, surtout : nombre d'écrans, de rôles et d'endpoints. Un gros dépôt avec trois rôles se teste plus vite qu'un petit dépôt qui en compte douze. Forfait fixe, jamais de TJM, validé avant que je commence.

Et après le déploiement des correctifs ?

Je rejoue chaque faille sur la version patchée et je vous dis laquelle tient et laquelle non. Gratuit, sous 30 jours, puis attestation à jour.

Le rapport Rails,
point par point.

Pas de « revoir la configuration » : le correctif désigne le fichier Rails et la ligne à changer.

  1. Couverture du rapport de test d'intrusion base16 01 · Couverture
  2. Synthèse exécutive : six vulnérabilités, dont une critique 02 · Synthèse exécutive
  3. Registre des vulnérabilités et méthodologie de test 03 · Registre & méthodo
  4. Fiche de la faille F-01 : accès aux factures d'autres clients, CVSS 9.1 04 · Faille F-01 9.1
  5. Fiche de la faille F-02 : rejeu d'une requête de remboursement, CVSS 8.2 05 · Faille F-02 8.2
  6. Fiche de la faille F-03 : élévation de privilège par mass assignment, CVSS 8.1 06 · Faille F-03 8.1
  7. Contre-test, cadrage et attestation transmissible 07 · Contre-test & attestation

Qui mène votre test.

Saïd, expert en pentest et audit de sécurité

Saïd Mimouni

Pentest & audit de sécurité · applications web & API

Je teste des applications web et des API à la main, en solo, pour des startups et des agences. Vous parlez à la personne qui ouvre le terminal, du premier e-mail au contre-test.

Tout se fait à distance par défaut ; je peux aussi venir tester depuis vos locaux, partout en France.

Deux failles remontées, sur des composants Ruby.

Quand je tombe sur une faille dans un composant open source, je la remonte à l'éditeur, j'attends le correctif, puis je publie. C'est le même travail que sur vos applications, sans le contrat.

GHSA-jfrj-r728-qcc9 8.8CVSS

Injection de commandes dans spatial_features

Un nom de fichier dans une archive uploadée suffisait à faire exécuter n'importe quelle commande au serveur. Gem Ruby, corrigée en 3.11.2.

Lire l'analyse technique 
GHSA-75hc-9q9v-9cv2 8.7CVSS

Injection SQL dans arel-extensions

Un paramètre de filtre sortait du chemin JSON et réécrivait la clause WHERE. Gem Ruby, corrigée en 9.0.1.

Lire l'analyse technique 

Une app Rails à mettre à l'épreuve ?

Dites-moi la version de Rails, le périmètre et votre échéance. Je vous réponds sous 24 h ouvrées avec un périmètre et un prix fixe.

Le cadrage passe par un questionnaire de deux minutes.

  • Ce qu'il faut tester : application, API, périmètre.
  • Votre échéance, même approximative.
  • Le contexte, si vous voulez : stack, certification, audit client.