Niet zo lang geleden kwam ik erachter dat enkele van de websites die ik onderhoudt waren geïnfecteerd met vreemde code na. Nader onderzoek wees uit dat dit is veroorzaakt door Malware die FTP server informatie, gebruikersnaam en wachtwoord verzameld op mijn PC heeft verstuurd naar een onbekend adres.
Recentelijk onderzoek wees uit dat FileZilla de wachtwoorden van de diverse FTP als platte tekst opslaat in de bestanden ‘sitemanager.xml’, ‘filezilla.xml’ en ‘recentservers.xml’. Waardoor het voor virus/malware bouwers eenvoudig is om met een Python of VBScript je PC te doorzoeken en zo deze informatie te verzamelen. De informatie wordt vervolgens naar Rusland/Moldavië (in mijn geval) of een ander land verstuurd. Na controle in de FTP logbestanden werd duidelijk dat de aanpassingen in de index.* bestanden op mijn webservers afkomstig was van IP adressen uit Moldavië.
Het feit dat de wachtwoorden in FileZilla als platte tekst (plain text) worden opgeslagen is sinds 2008 al meerdere malen aan de orde gebracht bij de ontwikkelaar, echter blijft hij van mening dat het een probleem van het besturingssysteem alsmede de gebruiker is. Zijn stelling is “It is not a bug, it’s a feature” en geeft als advies om dagelijks 1 uur onderhoud aan je PC te plegen om deze vrij te houden van virussen en malware. De FileZilla versies voor 3.x beschikten wel over een vorm van encryptie, maar deze was eenvoudig te kraken met hulpmiddelen als ‘FileZilla Password Recovery‘.
De ontwikkelaar heeft deels gelijk aangezien een FTP verbinding in zijn geheel niet beveiligd is en gebruikersnamen/wachtwoorden en bestanden onversleuteld over het internet worden verstuurd. Het is daarom ook nooit aan te raden om belangrijke zaken via FTP te delen. Ook werkt het principe ‘Security through Obscurity’ niet mee aangezien de broncode van FileZilla, gezien het een open source product is, voor iedereen toegankelijk is. In dit geval kan iedereen de encryptie uit de broncode lezen.
Oplossingen voor betere beveiliging van wachtwoorden met FileZilla
Hieronder een opsomming voor diverse oplossingen om alsnog correct om te gaan met je gegevens:
- Wachtwoorden niet langer opslaan met FileZilla: Je kan ervoor kiezen om in Kiosk mode 1 te gaan werken wat ervoor zorgt dat je nieuwe wachtwoorden altijd moet invoeren en ze niet worden opgeslagen in o.a. het ‘sitemanager.xml’ bestand;
- Wachtwoorden in KeePass opslaan en ze middels copy/paste gebruiken: Wanneer je de wachtwoorden in KeePass heb staan kan je deze met CTRL-C kopiëren naar het popupvenster van FileZilla om in te loggen. De informatie in het clipboard wordt vervolgens na 12 seconden verwijderd;
- Wachtwoorden in KeePass en werken met geautomatiseerde scripts: Als variant op bovenstaande kan je ook met geautomatiseerde scripts werken;
- FileZilla als portable applicatie gebruiken; Wanneer je de wachtwoorden alsnog door FileZilla wil laten beheren kan je FileZilla als portable applicatie gaan gebruiken op een USB stick en blijft de informatie en historische gegevens achter op de stick. Dit maakt het voor Malware ook lastiger om je bestanden te lezen;
- Andere FTP client gebruiken; Er kan natuurlijk ook gebruik worden gemaakt van andere FTP client (zoals: WinSCP, WS_FTP, etc) die wel enige manier van veiligheid geven bij het opslaan van server, gebruikersnamen en wachtwoorden;
- Host bestand aanpassen; Een mogelijkheid is ook om je host-bestand aan te passen en daar andere benamingen te plaatsen voor de websites waar je een verbinding mee opzet.
Als er nog andere/betere oplossingen zijn hou ik mij aanbevolen. Laat in dit geval dan even een reactie achter, zodat ik later dit bericht kan bijwerken met deze informatie.
Beveiligde verbinding opzetten met FTP
Tijdens dit onderzoek werd mij wel duidelijk dat wanneer je belangrijke zaken aan het versturen bent met FTP je dit altijd moet doen met een beveiligde oplossing. Het standaard File Transfer Protocol (FTP) biedt daar geen ondersteuning voor aangezien deze van ASCII dan wel Binary uitgaat in het verzenden van de bestanden.
Wanneer je een beveiligde FTP verbinding wil opzetten kan je kiezen voor enerzijds FTPES of anderzijds SFTP, verschil tussen beide is dat de eerste gebruik maakt van het FTP protocol en de tweede gebruik maakt van SSH. Zie dit overzicht van FTP applicaties en wat ze ondersteunen. Controleer in dit geval wel of je hosting provider ook ondersteuning biedt voor deze oplossingen.
Al met al geldt dat een ‘gewaarschuwd mens telt voor twee’. Ik heb er in ieder geval veel van geleerd.
Oplossingen 1, 2 en 3 zijn ook niet toereikend! De inloggegevens van álle sessies worden opgeslagen in recentservers.xml! Verder kan ik me alleen maar aansluiten bij de waarschuwing.
Bedankt voor de aanvulling. Ik zal het bericht nog bijwerken. Het opslaan van deze gegevens is wel te ondervangen door de instellingen van FileZilla te wijzigen.