Byte’s shell security maatregelen

POODLE, Heartbreak, Freak SSL bug, shellshock, phishing, de Sony hack… Afgaand op het nieuws lijkt het er slecht voor te staan met onze online veiligheid. Het impliciete vertrouwen waarop in de jaren ’60 ooit DARPA net werd gebouwd, is niet meer van deze tijd. Geen enkele technologie of hosting bedrijf ter wereld kan 100% veiligheid garanderen *) maar er is wel degelijk een hoop vooruitgang geboekt. Denk aan PGP, uitgebreidere SSL-certificaat controles (met het bekende “groene balkje” voor de minder tech savvy medemens) en het feit dat bedrijven als Yahoo en Google geldprijzen uitloven voor het vinden van bugs en exploits.

En wat doet Byte? Een hoop! En nee, we gaan niet alles vertellen… Maar we lichten wel graag een paar van onze security measures toe.

Shell

De standaard Linux security implementaties zijn een goed begin om ervoor te zorgen dat users niet bij elkaars files en processen kunnen komen. Zijn ze voldoende? Niet voor Byte.

Byte_Shell_toon-processen-1
Eén van de meest gebruikte taken van een shell account zijn de cronjobs. Deze loggen in op een site of DB om hun taken uit te voeren. Vaker dan je zou denken, worden de credentials direct op de command line meegegeven. Al kan je processen van derden niet aanpassen of beheren, je kan ze wel zien. Een kleine test bij enkele andere hosting providers leverde binnen letterlijk 3 minuten al credentials op. Hoe? Door “ps -aux” te draaien…

 

byte-security_01_01_ps_bad

 

En verder? “mount” vertelde precies welke SAN storage onder welke IP adressen beschikbaar was, “lsof” welke files er open waren… Allemaal zaken waar een gewone user niets mee te maken heeft.

 

Enter…. grsecurity

Grsec is een open source kernel patch die verregaande ACL’s, kernel, stack en memory controle biedt. Het biedt bijzonder fijnmazige controle over users, hun processen en hun memory, en onderscheidt o.a. data memory van code memory, zodat b.v. buffer overflows geen malicious executable code kunnen injecteren. De lijst met mogelijkheden is te lang om hier op te noemen. Het resultaat?

 

byte_security_01_02_ps_good

 

Je ziet alleen je eigen processen. Velerlei standaard OS tools zijn afgeschermd. Zelfs al zou iemand ’t SSH account hacken, dan is hij gelimiteerd tot zijn eigen userspace en brengt daarmee andere gebruikers niet in gevaar.

Homepage en vergelijking grsec, SELinux en AppArmor

 

“Dus ik kan bij Byte veilig mijn password op de commandline gebruiken?”

Byte_Shell_toon-processen-grsec_1Boven de monitors van elke Byte Techie hangt een knuffel Tux. Een techie ontvangt de pluizige penguin wanneer hij/zij zijn/haar proeftijd goed heeft doorlopen en heeft bewezen zich bewust te zijn van de gevaren, de risico’s en de verantwoordelijkheden die volledige toegang tot de Byte systemen met zich meebrengt.

Het antwoord op bovenstaande vraag: ja, theoretisch gezien wel en Byte zorgt ervoor dat andere users het nooit kunnen zien… maar als Byte Techie zou je Tux onmiddellijk worden afgenomen! Omdat je iets kán doen, betekent niet dat je het ook móet doen…

 

FTP en security through obscurity

FTP is níet veilig. Punt uit. Met één tcpdump komen username en wachtwoord zo tevoorschijn. Toch biedt Byte nog steeds FTP access. We zouden het maar wat graag uitzetten en iedereen op ssh/scp, sftp of desnoods ftps over laten stappen. Feit is, security is een eeuwige afweging tussen 99.999% veiligheid aan de ene kant – toch die ConcreteNode? – en gebruiksgemak aan de andere kant. Teveel van onze klanten zijn nog van FTP afhankelijk om het zomaar af te schaffen.

Soms hopen mensen zich te beschermen door dergelijke diensten op rare poorten te laten draaien. Naar ons idee is dat schijnveiligheid die een misplaatst gevoel van verbetering geeft en hooguit helpt tegen de scriptkiddies die zonder enig benul hun gejatte scriptjes in de rondte gooien. Iemand met voldoende kennis heeft aan één nmap call voldoende.

Hoe beschermt Byte haar FTP toegang? We hebben een geavanceerd IDS/IPS (Intrusion Detection System/Intrusion Prevention System) dat via packet fingerprinting en geavanceerde statistiek al het inkomende verkeer bekijkt, controleert, ons waarschuwt als er iets loos lijkt te zijn, en in veel gevallen automatisch toegang vanaf verdachte IP adressen blokkeert. Da’s een mondvol en daarom heet-ie in de wandelgang gewoon de Woef-Woef.

Verder draaien we op onze FTP servers ClamAV, een geavanceerde opensource malware/trojan scanner. Als je account nou toch gehackt is nadat je één keer vanuit dat hippe koffietentje met free wifi je site wilde updaten, kan de boosdoener geen webshells en andere narigheid klaarzetten om die vervolgens remote, via je site, te benaderen. ClamAV controleert elke file en zet ze meteen in quarantaine als er ook maar één bit niet aan deugt.

 

Wat kan ik als klant doen?

  1. Pas je administrator URL aan naar iets dat niet te raden is. De security through obscurity gedachte is niet in alle gevallen zinloos. Het aantal permutaties van een tekststring van een letter of 10-12 is zo groot dat geen enkele scanner op het internet daar achter gaat komen zonder te brute-forcen… en lang voordat dát succesvol is, heeft onze Woef-Woef ‘m al in zijn kraag gevat.
  2. Gebruik geen FTP. We kunnen het niet vaak genoeg blijven zeggen. SCP, SFTP of FTPS zijn je ware vrienden.
  3. Analyseer met regelmaat je access logs op onbekende patronen. Bugs in code, frameworks en extensies blijven bestaan. Hou een oogje op vreemde requests

 

 

concrete_node*) tenzij … stel je voor: een server … in een blok beton … in het IJ…
Interesse in zo’n ConcreteNode? Mail en laat ons weten wat deze dienst je waard zou zijn.