[Contribution] NASA sous-domaines : multiples vulnérabilités

Plusieurs sous-domaines de la NASA présentent des vulnérabilités d’injection de code (JavaScript XSS / SQLi ColdFusion).

Introduction

Au cours de mes navigations dominicales sur la toile, j’ai atterri sur un portail gouvernemental de la NASA, la National Aeronautics and Space Administration, qui à titre de rappel,  est responsable du programme spatial civil des États-Unis.

En parcourant les pages du PDS, le portail des archives des données planétaires (Planetary Data System), j’ai rebondi sur d’autres projets de la NASA et j’ai pu y découvrir quelques vulnérabilités que je me suis empressé de signaler.

Le portail web de la NASA et ses nombreux projets / sous-domaines ont depuis tous temps été très prisés par les assaillants ; notamment dû à la renommée internationale de cette entité gouvernementale spécialisée dans la recherche spatiale. On recense plusieurs piratages et/ou découvertes de vulnérabilités dans les espaces de l’agence au cours des dernières années.

Dans le cadre de mes recherches, les vulnérabilités s’illustraient de manière canonique comme suit :

Vulnérabilités

Le Planetary Data System (PDS)

PoC

Simple RXSS au niveau du paramètre GET « INSTRUMENT_HOST_ID » de la page « viewHostProfile.jsp » qui n’était pas suffisamment traité / nettoyé avant d’être utilisé au sein de la page.

Syntaxe

1
https://pds.nasa.gov/ds-view/pds/viewHostProfile.jsp?INSTRUMENT_HOST_ID=NH<img src='x' onerror='alert(/Reflected XSS - Yann CAM @ASAfety/)' />

Le NASA’s Archive of Data on Energetic Phenomena (HEASARC)

PoC

Simple RXSS au niveau du paramètre GET « sid » de la page « vresults.pl » qui n’était pas suffisamment traité / nettoyé avant d’être utilisé au sein de la page.

Syntaxe

1
2
3
https://heasarc.gsfc.nasa.gov/vo/validation/vresults.pl?show=details&sid=1337<script>alert(/Reflected XSS - Yann CAM @ASAfety/)</script>&runid=539653&switch=no
https://heasarc.gsfc.nasa.gov/vo/validation/vresults.pl?show=oldtests&sid=1337'><script>alert(/Reflected XSS - Yann CAM @ASAfety/)</script>&runid=539653

Le Direct Readout Laboratory (directreadout) de la NASA

PoC

Simple RXSS et potentielle SQLi au niveau du paramètre GET « cid » de la page d’index qui n’était pas suffisamment traité / nettoyé avant d’être utilisé au sein de la page.

Au regard de l’erreur affichée en tant que commentaire dans le code source de la page, on remarque la présence d’une potentielle SQL injection suite à une erreur de transtypage / cast en integer de la variable :

1
2
Diagnostics:<br>
Invalid data 159---><img src=x onerror='alert(/Reflected XSS | SQLi - Yann CAM @ASAfety/);' /> for CFSQLTYPE CF_SQL_INTEGER. <br>The error occurred on line 13.

Je n’ai pas creusé cette SQL injection afin d’éviter de porter atteinte au système. Celle-ci portait sur des technologies ColdFusion.

Syntaxe

1
https://directreadout.sci.gsfc.nasa.gov/?id=dspContent&cid=159---><img src=x onerror='alert(/Reflected XSS | SQLi - Yann CAM @ASAfety/);' />

Corrections et patchs

Prise de contact

Le 31 octobre 2014, chaque responsable en « @nasa.gov » de chaque portail vulnérable a été contacté pour informer de ces vecteurs d’attaque.

Quelques heures plus tard, une réponse m’est parvenue concernant le portail PDS :

Hello,
Thank you for bringing the security issues to our attention.
We at PDS are looking into the issues related to PDS web site security and will address as quickly as possible.
Thank you,
Emily
PDS Operations
Le portail « PDS » ainsi que « heasarc » ont été corrigés très rapidement (semaines qui suivirent). Concernant le portail « directreadout », plusieurs relances ont dû être faites, jusqu’à une inscription au programme de collaboration de « directreadout » afin d’être sûr que le message atteignait les responsables. Celui-ci fut corrigé en ce début 2015.

Correction PDS

Validation et vérification du format et de la syntaxe de la variable « INSTRUMENT_HOST_ID ».

Correction HEASARC

Validation et vérification du format et de la syntaxe de la variable « sid ».

Correction DirectReadOut

Camouflage des erreurs et diagnostique au sein du code source, concernant les erreurs de la variable « cid ».

Conclusion

Les sous-domaines de « *.nasa.gov » correspondant à des projets spatiaux distincts sont gérés, administrés et maintenus par des équipes diverses et variées. Chaque équipe ne semble s’occuper que du projet auquel elle est affectée.

Lors de la détection de vulnérabilités au sein d’un portail de la NASA, la difficulté consiste à trouver et informer le bon interlocuteur du projet spatiale concerné, afin qu’une correction voit le jour.

Comme indiqué, cette étape peut être plus ou moins rapide, accompagnée d’un feedback ou non. En tout cas je remercie « Emily » pour son retour et sa prise d’action rapide concernant le portail PDS.

Le portail de la NASA et les sites dédiés aux divers projets ne sont pas dans l’ensemble des prouesses technologiques en termes de développement web et de design. La plupart disposent d’un graphisme succinct mais assurent pleinement leur partie fonctionnelle.

Les technologies employées sont très diverses, du Java/JSP au PERL en passant par le ColdFusion. Bon nombre de vulnérabilités bien plus critiques doivent subsister au sein de ces portails, c’est pourquoi je vous encourage à leur remonter si vous en décelez.

En attendant les prochaines découvertes, avancés et projets passionnant de la NASA, salutations à tous !

Yann

Consultant Sécurité