Security Essentials voor site-ontwikkelaars en beheerders

Van alle technische onderwerpen is veiligheid mogelijk de meest complexe en zeker de belangrijkste. Dit komt omdat de beveiliging altijd in ontwikkeling is. Het is een geforceerde evolutie, omdat we ons moeten aanpassen aan constant opkomende bedreigingen.

Er zijn verschillende niveaus van beveiliging waarvoor we verantwoordelijk zijn. Het eerste niveau is onszelf of de organisatie waarvoor we werken. Het tweede niveau is onze klanten. En het derde niveau zijn de gebruikers van de websites of applicaties die we voor onze klanten ontwikkelen.

Ondanks onze beste inspanningen zullen klanten altijd manieren vinden om de bescherming die we hen bieden te ondermijnen. Ze vertrouwen op ons als IT-professionals om hen te helpen veilig te blijven, maar paradoxaal genoeg ook volg zelden het veiligheidsadvies wij bieden hen. De meeste gebruikers echt waar hun eigen ergste vijanden.

Wat we daarom moeten doen, is dat het voor klanten zo moeilijk mogelijk wordt om hun eigen veiligheid in gevaar te brengen, en het ook zo gemakkelijk mogelijk te maken voor hen om de taken uit te voeren die ze moeten doen. Het is onmogelijk om beide doelen tot de perfectie te bereiken, maar in dit artikel bespreken we enkele dingen die u kunt doen om de risico's van het optreden van een beveiligingslek te beperken.

gif door Patswerk

Je eigen apparaten en gegevens beveiligen

Jij bent de eerste verdedigingslinie voor jezelf en je klanten. Als uw systemen zijn aangetast, kan iedereen waarvoor u werkt in gevaar komen. Hier zijn enkele aanbevelingen voor het minimum dat u kunt doen om te voorkomen dat u in een verhoogde risicomilieu werkt:

  1. Gebruik een veilig desktopbesturingssysteem. Dit is de meest elementaire upgrade die u kunt uitvoeren als u nog geen veilig besturingssysteem gebruikt. De veiligste besturingssystemen zijn Linux, Unix en BSD. U zou een van deze besturingssystemen moeten gebruiken als uw primaire desktopbesturingssysteem.
    De bonus voor zowel ontwikkelaars als beheerders is dat u toegang krijgt tot een veel grotere bibliotheek met gratis ontwikkelings- en beveiligingshulpmiddelen, en de meeste werken beter dan hun Windows- of OSX-equivalenten. Om echt te opereren in de paranoïde modus, kiest u de meer beveiligde Linux-distributies zoals Papegaai, Qubesbeheren en Tails.
  2. Houd scheiding tussen het besturingssysteem en uw gegevens. Als u Linux of Unix gebruikt, is dit eenvoudig. U hoeft alleen maar te zorgen dat u een partitie of een aparte harde schijf hebt gemaakt om uw home-partitie op te hosten. Vervolgens zullen alle gebruikersbestanden een willekeurig aantal installaties van het besturingssysteem overleefd hebben en als een bonus toegankelijk zijn vanaf meerdere besturingssystemen op multi-boot systemen.
  3. Gebruik een journaling-bestandssysteem om gegevensverlies te voorkomen als uw systeem onverwachts crasht of wordt gestopt.
  4. Spiegelen uw thuis partitie. Maak regelmatig een back-up van belangrijke bestanden en gebruik bestandsversies om onbedoelde overschrijvingen te voorkomen.
  5. Overweeg cloudback-up te gebruiken (niet te verwarren met cloudsynchronisatie, wat lang niet zo veilig en veilig is als een echte back-up). Gevoelige gegevens moeten worden gecodeerd voordat ze worden geüpload.
  6. Houd uw systeem up-to-date en negeer nooit beveiligingspatches. Systemen die draaiende updates gebruiken, hebben het voordeel dat u altijd weet wanneer er patches beschikbaar zijn, wat er moet worden gepatcht en waarom.
  7. Train mensen in uw organisatie om alert te zijn op social engineering-methoden die tegen hen kunnen worden gebruikt om toegang te krijgen tot uw systemen.
  8. Voorkom dat software wordt uitgevoerd op niet-geverifieerde bronnen. Wanneer u software downloadt van vertrouwde bronnen, controleert u de handtekeningen van het bestand om er zeker van te zijn dat u een authentieke kopie hebt.
  9. Handhaaf de fysieke beveiliging van uw computers, vooral tijdens het reizen. Je laptop overal dragen is misschien niet praktisch, maar het is beter dan wat te laten slechte meid corrupt uw ​​BIOS. Als het echt geen optie is om uw computer te dragen, sluit u hem op in een afsluitbaar etui en zet u deze op een veilige of anderszins zo goed mogelijke manier.
  10. Onthoud altijd dat het beter is om paranoïde te zijn dan om een ​​idioot te zijn die gehackt is.

illustratie door Phantom Points Creative

Klanten beschermen

Het is moeilijk om klanten te beschermen tegen IT-dreigingen, omdat ze niet allemaal begrijpen hoe groot de bedreiging is waarmee ze worden geconfronteerd. Velen zullen ook van mening zijn dat als hun site gecompromitteerd is, het jouw probleem is om uit te zoeken, niet de hunne.

Veel sites zijn jarenlang geëxploiteerd zonder dat de site-eigenaren hiervan op de hoogte zijn, omdat de meeste kwaadwillende aanvallen op sites niet verondersteld worden hun aanwezigheid kenbaar te maken. U kunt er daarom niet op vertrouwen dat de klanten u op de hoogte brengen van problemen. Je moet een proactieve houding aannemen.

  1. Probeer uw klanten voor te lichten over de risico's. Het grootste deel van het probleem is te wijten aan onwetendheid dat er enig risico is om waakzaam voor te zijn.
  2. Informeer zakelijke klanten dat de grootste dreiging die zij zullen tegenkomen is insider bedreigingen gemaakt door hun eigen werknemers en aannemers (vaak onbedoeld, maar niet altijd). Zorg er ook voor dat ze op de hoogte zijn van problemen zoals social engineering, schouder surfing en dumpster duiken.
  3. Houd servers gepatcht. Voer regelmatige back-ups uit.
  4. Scannen op bewijs van achterdeur exploits of andere kwaadwillige activiteit. Het ontwerpen van de bestands- en mapstructuur om de site zo eenvoudig mogelijk te maken, maakt detectie eenvoudiger. Weet welke bestanden in elke map moeten staan. Als u nieuwe bestanden ziet die niet vertrouwd zijn of door de computer gegenereerde namen lijken te hebben, is dat een serieuze rode vlag.
  5. Weet welke bestanden in de map cgi-bin moeten staan ​​(voor de meeste sites zijn dit geen bestanden), omdat dit een favoriete locatie is voor het opslaan van schadelijke programma's.
  6. Controleer regelmatig het htaccess-bestand om er zeker van te zijn dat er niet mee is geknoeid.
  7. Code die u schrijft, maakt waarschijnlijk geen uitgebreid gebruik van coderings- en decoderingsstrings of bevat sterk gecodeerde inhoud. Als PHP-bestanden ongebruikelijke code bevatten, is het niet erg waarschijnlijk dat dit legitieme bestanden zijn. Ongebruikelijke instructies voor het coderen van karakters zijn ook een weggeefactie. Het is niet waarschijnlijk dat uw legitieme bestanden bijvoorbeeld worden gecodeerd in Windows-1251-codering.
  8. Na het bevestigen van een schending, wijzigt u uw wachtwoorden. Controleer of bestandsrechten correct zijn ingesteld voor alle bestanden en mappen. Monitor tekenen dat de indringer is teruggekeerd. Zelfs nadat je je wachtwoord hebt gewijzigd, kunnen de aanvallers een ingang hebben. Je moet er zeker van zijn dat ze dat niet doen. Stel uw server in om u per e-mail op de hoogte te stellen wanneer er wijzigingen in de server worden aangebracht.
  9. Help uw gebruikers om wachtwoorden op de juiste manier te kiezen door hen de regels op een begrijpelijke manier uit te leggen. Dit is hoe de meeste mensen hun wachtwoorden willen instellen: jenny23Dit is hoe systeembeheerders hun meestal adviseren hun wachtwoorden in te stellen: n @ ^ 2z`jGAnd - het probleem is dat het eerste wachtwoord binnen enkele seconden kan worden gekraakt, terwijl het tweede wachtwoord kan worden gekraakt in een paar uur. Ook is er geen enkele hoop dat de gebruiker het complexere wachtwoord zal onthouden. Hier is een voorbeeld van een wachtwoord dat verschillende levens zou vergen en nooit vergeten zou kunnen worden: Ialwaysfly @ 40,000feet - Kenmerken van het bovenstaande wachtwoord zijn: Meer dan 20-tekens in de lengte, combinatie van hoofdletters en kleine letters, inclusief cijfers en letters, inclusief niet-alfanumerieke tekens, gemakkelijk te onthouden. Een vergelijkbaar voorbeeld kan zijn:

    asImove ^ inlife, Iwillnever4getwhereIstartedEr is echt geen limiet aan hoe creatief je kunt zijn met wachtwoorden, en er is zoveel meer voordeel met

    aslmove ^ inlife, Iwillnever4getwherewhereIstarted vergeleken met n @ ^ 2z`jG. Het eerste voorbeeld (gemengde 41-tekens) zou duren tot het einde van de tijd om te kraken en is gemakkelijk te onthouden, terwijl het tweede voorbeeld (gemengde 8-tekens) kan worden gekraakt onder zes uur en het is bijna onmogelijk om te onthouden. Denk niet dat je woorden gewoon aan elkaar kunt rijgen en alles komt goed, omdat de hackers dat wel zijn daarop. U moet nog steeds cases combineren en niet-alfanumerieke tekens gebruiken, maar zeker lengte is belangrijker dan complexiteit zoals de zaken er nu voorstaan. Door beide te combineren, krijg je een voorsprong op degenen die alleen het een of het ander gebruiken.

    De meeste op woordenboeken gebaseerde aanvallen zijn gericht op Engels, omdat dit de meest gebruikte taal is en de meeste van de beste sites om te targeten (in termen van de waarde van wat ze kunnen opleveren) zijn sites die worden beheerd door mensen die Engels spreken. Als u een andere taal kent, kunt u deze gebruiken bij het maken van uw wachtwoorden.

    Zo uitstekend als

    in het leven, Iwillnever4geteld waar Istarted is, is het nog steeds niet zo perfect als eenMedidaQue ^ enLaVida, nuncaolivdarededondecomence omdat dit nog een andere laag van complexiteit toevoegt, waardoor de kraker gedwongen wordt zijn toevlucht te nemen tot brute kracht. Een andere taal leren alleen om betere wachtwoorden te maken kan een beetje veel zijn, dus het andere wat je zou kunnen doen is gewoon Engels worden (of blijven) als je een wachtwoordzin ontwerpt. Bijvoorbeeld:

    asImoov ^ inlyfIwillnevar4getwhereIstarted

    Voor het ultieme zou je slecht gespelde woorden in een vreemde taal kunnen gebruiken en alle klinkers vervangen door Leet-klinkers:

    4M3d1d4Qu3^3nL4V1d3,nunc40l1vd4r3d3dond3c0m3nc3

    Ik weet het niet van je, maar ik zou niet het geduld hebben om dat te typen. Toch is het een zeer veilig wachtwoord, en dwingt het de cracker om een ​​waanzinnige hoeveelheid werk te doen (om hopelijk dan te ontdekken dat alles wat ze hebben bekeken een verzameling kattenbeelden is)

  10. Zorg ervoor dat klanten de gevaren begrijpen die inherent zijn aan het verzenden van gevoelige informatie via e-mail, Skype, enz.

gif door Hoang Nguyen

Een speciale opmerking voor ontwikkelaars

Een snelle en gemakkelijke culturele omschakeling voor ontwikkelaars om te voorkomen dat elk jaar talloze beveiligingsinbreuken worden voorkomen, is eenvoudigweg het minimaliseren van de externe afhankelijkheidsketen van hun sites. We maken onnodig verbinding met door derden gehoste scripts. Veel van deze scripts hebben mogelijk hun eigen externe afhankelijkheden. Alles voor het redden van een paar bytes.

Waar mogelijk moeten we proberen al onze scripts zelf te hosten. Een door een populaire derde partij gehost script is een aantrekkelijk doelwit voor een aanvaller, omdat door controle te krijgen over het script, het mogelijk is om exploits uit te voeren op duizenden computers.

Slotopmerkingen

Computerbeveiliging is een nooit aflatende uitdaging en er is veel geld te verdienen aan beide kanten van de uitdaging. De inzet is erg hoog en niemand is volkomen veilig, zelfs degenen die geloven dat ze niets te verbergen hebben. Winnen is meestal een kwestie van gezond verstand gebruiken en alert blijven, nooit toestaan ​​dat je zelfgenoegzaam wordt.

header afbeelding met dank aan Josh Warren

Bogdan Rancea

Bogdan is een van de oprichters van Inspired Mag en heeft in die periode bijna 6 jarenlange ervaring opgebouwd. In zijn vrije tijd studeert hij graag klassieke muziek en onderzoekt hij beeldende kunst. Hij is ook behoorlijk geobsedeerd door fixies. Hij is al eigenaar van 5.