DevoxxFR 2015: Secure your product, from scratch

About me

Security ?

pourquoi s'intéresser à la sécu? Il y a des trucs à protéger pourquoi se protéger? Rien à cacher? Toute entreprise est vulnérable à quelque chose

How does an attack work?

Lockheed Martin example

Targets

exemple de watering hole: curling.com

Targets

les mots de passe ont une valeur

Targets

Which ones will you protect first?

Priorities

protéger les cibles ci-dessus certaines sont plus importantes que d'autres peut-être que le plus important est la disponibilité

Entry points

(tout n'est pas lié au code, mais ce sont des vecteurs d'entrée, exemple de cloudflare)

Entry points

gaffe aux malwares, INSTALLEZ UN AD BLOCKER BERDOL

Attacker types

trier par temps, argent, compétence

Defining a threat?

Cost of a threat

l'attaquant a le temps avec lui Rowhammer VS XSS

on peut ainsi décider:

It is getting cheaper

BUT

les coûts pour se protéger diminuent, mais moins vite que les coûts pour attaquer n'hésitez pas à déléguer

Attacker only needs to enter once

La défense doit arrêter toutes les attaques, l'attaque ne doit percer la défense qu'une seule fois

The fortress

Attention à la métaphore de la forteresse. On imagine des grands murs autour du SI. DMZ

The city

Dans la réalité, un SI, une app, un site, c'est comme une ville. On ne peut pas vérifier tous les gens qui rentrent, on ne peut pas attraper tous les voleurs, on ne peut pas empêcher tous les feux de se déclarer. Il faut savoir les repérer.

Par contre, on peut découpler certaines parties, et gérer différents accès Exemple: chez Clever, on fait tourner le code d'autres personnes

What do I do first ?

Risk analysis and threat modeling

c'est un document vivant

ça permet de fixer les menaces

STRIDE: Spoofing, tampering, repudiation, information disclosure, Denial of Service, Elevation of privilege

E-commerce assets

E-commerce actors

E-commerce threat

Business continuity planning

Plan de continuité d'activité, plan de reprise d'activité

Who does the backups? Clever does the backups

Incident response

il y aura des pb, il faut être prêt à faire face. Qui gère les incidents de sécu? Pas forcément un poste attitré, juste quelqu'un sachant qui appeler. Avoir des gens on call, c'est important, cf clever

fix heartbleed chez Clever suivre les news sécu

CERT-FR

http://www.cert.ssi.gouv.fr/site/CERTA-2002-INF-002/index.html

In case of emergency

Communication

En cas d'attaque publique, une seule approche, la transparence modérée: "on a reçu un rapport d'attaque, on est en train de regarder".

LE PLUS TOT POSSIBLE

Surtout, ne pas mentir et faire l'autruche, ou pire, ne pas réagir. c'est une course contre la montre.

Rebuilding

Comment remonter le système en cas de pb? Qui a les accès? Bus factor! Les backups! On sauvegarde, mais est-ce qu'on sait restaurer? A-t-on le numéro de l'hébergeur?

System architecture

on ne peut pas empêcher les failles d'apparaître. Les applis modernes dépendent de trop de composants externes. (exemple des services d'audit de Gemfile)

Une architecture claire, qui fait du contrôle d'accès proprement, ça se passe beaucoup mieux. Ca indique quelles parties protéger, quelles parties monitorer

Code audits

(white box)

Si on a un bon modèle de menaces (et éventuellement une archi propre), on sait rapidement quelles parties du code attaquer. Spoiler alert: c'est principalement aux frontières du système: authentification, réseau, fichiers, API, etc.

Fix it!

Penetration testing

différence avec l'audit de code: un audit de code va indiquer des faiblesses potentielles du code le test de pénétration démontre un attaquant qui rentre. Souvent, le testeur se contente de trouver un point d'entrée. C'est une preuve par contradiction: on a juste besoin de rentrer une fois pour démontrer que ça n'est pas sécurisé

C'est intéressant si on a déjà une bonne pratique de la sécu, et qu'on peut faire un débrief, pour voir comment un tel attaquant aurait pu être détecté

Penetration test with scope

test de pénétration cherchant à atteindre une cible particulière, avec des moyens définis. Utile pour tester la réactivité de l'équipe sécu, la détection d'intrusions, la réponse aux incidents

Security practice levels

What is easy to fix right now?

SSL

Password storage

Buy a disk, make backups

Keep a copy of all the passwords in a safe

Thanks!