Developer une API REST Sécurisée

Les APIs REST sont actuellement parmis les plus développées par les entreprises. Ces APIs, bien qu’elles reposent en partie sur des concepts connus et anciens sont néanmoins souvent mal sécurisées. A tel point que le OWASP a sorti un Top10 specifique a ces dernières.

AppSecFR vous propose une formation dédiée a ce theme, en prenant en compte de manière large le spectre des problèmes autour des APIs.

Lors de cette formation nous abordons les thèmes classiques de la securite WEB et nous appliquons spécifiquement ces elements au développement API.

La pédagogie est axée sur 50% de pratique minimun. Une application spécifique est fournie pour s’entraîner a la sécuriser.

La formation est réalisable en intra-entreprise ou inter-entreprises (dates a confirmer en fonction du nombre de participants

Contenu de la formation

Introduction aux concepts liés à la sécurité

  • Identification et méthodes d’authentification.
  • Autorisations et permissions.
  • Confidentialité, non-répudiation, cryptage, clés publiques/privées, autorités de certification.
  • Pare-feu et DMZ, rupture de protocole.
  • Rappels sur la securite WEB :
    • HTTP
    • HTTPS
    • OWASP Top10 Web.

Quelques rappels sur REST

  • Protocole / vs Architecture
  • REST et la securite
  • JavaScript Object Notation (JSON)
  • Jason Web Token (JWT)

Attaques des APIs et Sécurisation

  • Découvertes des elements / donnes
  • Contournement des mécanismes d’authentification / autorisation
  • Injections Serveurs
  • Stockage des elements de secret
  • Elements annexes de securisation (Reseaux, systeme,…)
  • L’OWASP Top10 API

Prix :

Prix : 1042 Euros pour 2j par personne.

Valider et non pas juste parser !

La plus importante manière d’eviter une injection est de valider une donnée ! et non pas juste la parser! 

 

Meme si vous pensez que le parser doit générer une Exception.

Exemple sur une question venue ce matin et utilisant la classe suivante : 

https://docs.oracle.com/javase/7/docs/api/java/text/DateFormat.html#parse(java.lang.String)

Et oui, le code suivant ne génère pas d’exception : 

 

import java.lang.String;
import java.text.*;
import java.util.Calendar;
import java.util.Date;

public class Main {

publicstaticvoid main(String[] args) {
DateFormat DFormat
= new SimpleDateFormat("dd/ mm/ yy");
try {
Calendar cal = Calendar.getInstance();

// Use of parse() method to parse
// Date From String
String dt = "10/ 27/ 16 <script>alert(1);</script>";
System.out.println("The unparsed"
+ " string is: " + dt);
// Parse string. if exception this is not a date
DFormat.parse(dt);

System.out.println ("Date parse and no exception, so use the string: " + dt);

} catch (ParseException excpt) {
excpt.printStackTrace();
}
}
}

Ce code produit : 

The unparsed string is: 10/ 27/ 16 <script>alert(1);</script>
Date parse and no exception, so use the string: 10/ 27/ 16 <script>alert(1);</script>

 

Toujours vérifier et/ou utiliser la valeur de retour d’une méthode si il y en a une ! 

#appsec #appsecfr #securecoding #java 

Certifications AppSecFR

AppSecfr(r) lance ses certifications a destination des développeurs. Fort de 10 annees de formation et de plusieurs milliers de personnes formées , AppSecFR lance les formations certifiantes en sécurité Web.

3 niveaux sont disponibles :

  • AppSec basic ; témoigne d’une capacité à détecter les failles du Top10 Owasp  et de proposer des remediations associees
  • AppSec spécialiste ; témoigne d’une capacité AppSec basic + de la capacité à maîtriser les concepts de l’ASVS et d’en decliner des exigences et remediations eventuelles
  • AppSec expert ; témoigne de la capacité d’un AppSec spécialiste plus de la capacité a mener un Threat Modeling sur une application Web.

AppSecFR(r) est prestataire de formation reference auprès de la DIRECTTE, prestataire reference auprès de Cybermalveillance.gouv.fr .

Contactez nous pour plus d’informations

Recrudescence des attaques de SPAM a la Sextortion

Depuis quelques semaines , il semble que cela revienne a la mode. La fameuse vidéo vous demandant des bitcoins est de retour en force. La remontée du cours du BitCoin y-est-elle pour quelque chose  ? 

 

En tout cas une fois encore les conseils de  CyberMalveillance.gouv.fr sont a utiliser : 

 

Que faut-il faire si on reçoit ce type de message ?

1. Ne paniquez pas !

2. Ne répondez pas !

3. Ne payez pas !

4 – Conservez les preuves !

5. Changez votre mot de passe

6. Déposez plainte !

 

La trouvaille du jour

Un petit code tout simple trouvé dans une application dont je revoyais le code….

<%

// Should we display the stacktrace directly ?

Cookie[] cookies = request.getCookies();

boolean showStackTrace = false;

for(int i = 0; i < cookies.length; i++) {

Cookie c = cookies[i];

if( "showStackTrace".equals( c.getName() ) ) pageContext.setAttribute("showStackTrace", Boolean.TRUE);

}

 

J’ai conclu en mettant les éléments suivants  :

  1. Joli code qui respecte les standards de développements internes et les bonnes pratiques de code sécurisé
  2. Portion de code ne comportant aucune vulnérabilité technique connue a la date de la revue
  3. Code correctement commenté
  4. Remarque : Est-ce bien nécessaire d’avoir une vulnérabilité logique aussi importante dans le code de l’application XXXX ?
  5. Peut-on en parler a Maitre Yoda  ?

Liens collectés 02/24/2018