securityAan de slag met beveiliging


Opmerkingen

Deze sectie biedt een overzicht van wat beveiliging is en waarom een ontwikkelaar deze mogelijk wil gebruiken.

Het moet ook alle grote onderwerpen binnen de beveiliging vermelden en een link naar de gerelateerde onderwerpen bevatten. Aangezien de documentatie voor beveiliging nieuw is, moet u mogelijk eerste versies van die gerelateerde onderwerpen maken.

In het begin

Tijdens het ontwerp moet de architect kijken naar welke delen van het systeem beperkte toegang nodig heeft en welke delen minder beschermd kunnen worden. Iedereen kan bijvoorbeeld leestoegang hebben tot de openbare webpagina van het bedrijf, maar alleen geautoriseerde personen kunnen de inhoud bewerken.

Om te helpen bij de te nemen beslissingen en om zwakke punten in het ontwerp te detecteren, moet een dreigingsmodel worden gemaakt zoals bijvoorbeeld hier bij OWASP is gedocumenteerd . Een dergelijk bedreigingsmodel is van onschatbare waarde bij het ontwerpen van een veilige applicatie, omdat het een licht werpt op verschillende perspectieven van het systeem in ontwikkeling, zoals de activa in kwestie, vertrouwensniveaus, toegangspunten en gegevensstromen. U kunt dus gemakkelijk zwakke plekken en mogelijke aanvalscenario's voor uw toepassing herkennen.

Een bedreigingsmodel wordt ook door serieuze pentesters en hackers in de eerste fase van een test of aanval gebruikt: informatie verzamelen en allemaal samenbrengen om mogelijke zwakke punten op te sporen.

Introductie op hoog niveau voor informatiebeveiliging

Het is een fundamenteel menselijk instinct om risico's te beoordelen en om een of ander soort actie op dat risico te aanvaarden of te ondernemen. Dit is de essentie van veiligheid, het geheel van kennis dat een kader biedt rond dit instinct.

Beveiliging definieert drie sleutelconcepten in een driehoekig paradigma: vertrouwelijkheid, integriteit en beschikbaarheid (het CIA-paradigma).

Hoewel het gebruikelijk is dat de samenleving gelooft dat beveiliging simpelweg gaat over het beschermen van vertrouwelijkheid, wordt er als ontwikkelaar niets gedaan dat niet ergens onder de vlag van beveiliging valt. Code is bijvoorbeeld geschreven om functies toe te voegen aan software (beschikbaarheid), om referenties veilig te houden (vertrouwelijkheid) of om ervoor te zorgen dat de eenvoudigste functies een consistente en correcte uitvoer produceren (integriteit).

De drie concepten staan nogal eens haaks op hun aard. Stel je voor dat je bedrijfsinformatie via een extranet beschikbaar stelt. Deze beschikbaarheid opent aanvalsvectoren die de vertrouwelijkheid van de gegevens kunnen schaden. Evenzo zal een bedrijf met zware vertrouwelijkheidsvereisten de wens van het bedrijf belemmeren om gegevens beschikbaar te stellen aan klanten en partners. Of misschien wilden ze dat de gegevens zo snel beschikbaar kwamen dat de ontwikkeling van de site werd versneld en leidde tot gegevenslekken tussen gebruikers - een gebrek aan gegevensintegriteit.

In navolging hiervan heeft degene die software laat ontwikkelen verschillende CIA-waarden. Stel je voor dat een retailwebsite beschikbaarheid boven integriteit of vertrouwelijkheid kan waarderen, terwijl een bank waarschijnlijk vertrouwelijkheid boven beschikbaarheid en integriteit zal waarderen. Dit wil niet zeggen dat niet alle in elk geval worden gewaardeerd, maar dat elk scenario verschillende wegingen van deze waarden kent, afhankelijk van de onderliggende risico's.

In de echte wereld wordt de CIA-triade vaak aangevuld met maximaal 3 andere factoren, die de Parkeriaanse hexade vormen: bezit of controle, authenticiteit en nut, en voor transactiemodellen, niet-afwijzing. Zoals u ziet, is er geen eenvoudig model dat in alle scenario's past.

Als ontwikkelaar gaat "goede beveiliging" over het kennen van de juiste balans tussen wat wordt beschermd en hoe dit te beschermen, en dit is enorm verschillend op basis van het type gegevens en de problemen die de software oplost.

Invoering

Beveiliging is een zeer algemeen, breed veld en raakt onder andere elk aspect van ontwikkeling, implementatie en ondersteuning. Volgens de (ISC) 2 zijn er 10 domeinen en deze omvatten fysieke beveiliging, naast de aspecten van de "Software". De bedoeling van informatiebeveiliging is om de vertrouwelijkheid, integriteit en beschikbaarheid van informatie te beschermen. Verschillende beveiligingsprofessionals hebben ook andere aspecten aan deze attributen toegevoegd, maar over het algemeen lijken deze het populairst te zijn. Een ander aspect van beveiliging is dat de maatregel om een stuk informatie te beschermen niet meer mag kosten dan de waarde van de informatie die wordt beschermd.