web-dev-qa-db-fra.com

REST Faiblesses de sécurité spécifiques

Je dois commencer à travailler avec des services Web retentissants. SOAP Les services Web basés ont déjà tant de normes pour sécuriser la communication, établir une confiance, etc. Je ne suis au courant d'aucun pour le repos.

Ce que j'apprécie, c'est des réponses aux questions suivantes:

  • Mon application mobile utiliserait des certificats x 509 lors de l'envoi REST Demandes. Existe-t-il un protocole, une meilleure pratique ... pour les sécuriser au niveau du message, comme ce que la sécurité WS permet?

  • Devrais-je utiliser un verbe HTTP spécifique lors de l'envoi de la demande? ou tous n'ont aucune implication de sécurité?

  • Si vous avez des liens sur REST sujets de sécurité, veuillez les partager aussi bien :)

16
Stefany

Après avoir travaillé avec des services Web reposants faisant des tests de Penentration de code et assistée par code de code sur des applications reposantes sur 3 mloc, je peux vous dire que les problèmes décrits par John Wilander In ID de la session STAUST et STAUSTS est le problème dominant et croissant. Si vous n'avez pas ce problème (ce qui est un très gros problème) dans vos services Web reposants, je serais choqué. Il fait essentiellement REST un cauchemar de sécurité. Si vous suivez les conseils de John et mettez en œuvre des sessions avec SSL/TLS, vous avez résolu votre problème premier et principal. Je l'illustre comme un très grand projet de développement d'applications.

De plus, de nombreuses composantes d'une telle architecture peuvent être à risque. Chris Gates a fait beaucoup de recherches sur le secteur de l'OEA, telle que sa colonne récente sur Oracle Web Hacking , qui comprend un lien vers Code d'exécution des modules métasployants sur son repo git. SensePost a publié un outil (dérive) et travaillez contre memcached au dernier Blackhat-US/Defcon.

Enfin, des services reposants ont certainement des problèmes avec une injection SQL, DRO, CSRF et XSS, tout comme la normale - et la survenue de versions stockées de ces injections dominerait les attaques directes/réfléchies.

Le problème avec REST vs. SOAP est-ce que SOAP produit habituellement un WSDL. REST pourrait avoir un WSDL (avec WSDL 2.0) ou un WADL décrit de la même manière. Cependant, cela est peu probable et sans liste de points d'entrée, il est difficile de tester des services reposants. On aurait besoin du code source, de la documentation ou d'un harnais de test existant. SOPAPSONAR est une option commerciale, tandis que WS-attaquant reste l'une des options open-source open source actuelles.

Je pouvais voir comment certains Firefox/ chrome Plugins et/ou proxy Web (par exemple Fiddler , Burp , Web2Proxy ) pourrait également être utile, mais cela nécessiterait un investissement important à temps pour créer manuellement des appareils de test. Si un harnais de test existant (par exemple, SOAPUI, httpunit) est disponible pour les testeurs (s), alors ces outils peuvent être exécutés via un proxy Web, de préférence celui qui prend en charge XML/JSON comme Web2Proxy, Web2Fuzz, AppCodeCAN et WSScanner (qui sont Discussion dans le livre de Shreeraj Shah, Sécurité Web 2.0 - Défense AJAX, RIA et SOA) .

XML lui-même peut être testé à l'aide d'outils tels que désordre , par le même auteur que W3AF , qui a son propre proxy appelé Spiderman (probablement idéal pour les tests REST si implémenté correctement). Je ne sais pas si Acunetix WVS (la version la plus récente, qui était la semaine dernière) prend en charge la proxy de la manière dont NetSparker Pro fait (ou Burp Pro Scanner), mais si cela le ferait alors acutix peut être le meilleur outil pour tester le Des injections stockées, comme je l'entends, il a un grand support pour ces types de chèques. Si quelqu'un a une licence pour la version complète de Acunetix WVS, veuillez nous en informer. La technologie acusensor serait également très utile ici, de même que HP Fortify PTA - d'autant plus que les points d'entrée sont inconnus.

En d'autres termes, tester des services reposants avec des méthodes et des technologies de boîtes noirs est liée à l'échec. Le problème avec l'identification des points d'entrée, même avec le code source, est que de nombreux services reposants sont souvent configurés et développés avec des technologies indirectes de code, telles que plusieurs modèles de services Web 2.0 connus et Web - ainsi que d'injection de dépendance, de CIO, Aop, et al. Pire, il y a souvent plusieurs niveaux de cette indirection, sans aucun dossier de vues ni autre simplification. Cela rend également difficile d'utiliser des outils d'analyse statiques axés sur la sécurité automatisée (par exemple lapsse +, Cat.Net, Yasca, Graaudit, Findbugs, CodePro Analytix, FXCop, Fortify SCA, CheckMarx CXSuite, Édition Source Appscan, Codes de Codification, Coverity, KlocWork, Grammatech et beaucoup d'autres). CIGITAL a une solution appelée [~ # ~] ESP [~ # ~] qui est considérée comme la meilleure pratique pour l'installation de grande installation, des portefeuilles d'entreprise SOA basées sur la SOA (notez que ESP est généralement soutenu par plusieurs applications Pen-testeurs toute l'année qui savent comment examiner manuellement le code source et identifier une analyse complexe d'exécution des vulnérabilités de la couche d'application - il n'est donc pas destiné à être utilisé uniquement comme une usine).

En résumé, il aura presque certainement besoin d'être examiné manuellement avec toutes les composantes de construction majeures et mineures disponibles pour les examinateurs.

25
atdre