diff --git a/docs/h6.md b/docs/h6.md index 7009e97..965e288 100644 --- a/docs/h6.md +++ b/docs/h6.md @@ -1,11 +1,474 @@ --- -title: "Hoofdstuk ?: TODO." +title: "Hoofdstuk 6: Availability" --- -# TODO +# 6.1 Onvoorziene problemen -Todo +--- + +## Disaster Recovery Planning + +Het is nodig om een organisatie draaiende te houden wanneer er een ramp optreedt. Een ramp omvat zowel **natuurlijke** als **menselijke** acties die schade toebrengen aan assets en eigendom. Het kan de organisatie beletten om zijn +activiteiten voort te zetten. + +--- + +## Disaster Recovery Planning + +- Natuurlijke ramp + - Geologische rampen (bvb. aardbevingen) + - Meteorologische rampen (denk aan bliksem, hagel, tornado, ...) + - Gezondheidsramp (pandemieën, quarantaines) + +- Ramp veroorzaakt door mensen + - Gebeurtenissen op het werk (staking, ontslag, en bewust trager werken) + - Socio-politieke gebeurtenissen (vandalisme, blokkades protesten, sabotage, terreur, ...) + - Onderbreking in nutsvoorzieningen (stroom, communicatie, ...) + +--- + +# 6.2 Hoge Beschikbaarheid + +--- + +## Wat is het 5x9 principe? +Wordt in het Engels the Five Nines genoemd +Systemen en services kennen een uptime van 99.999% +Ofwel: ze zijn beschikbaar in 99.999% van de tijd +Concreet: downtime bedraagt minder dan 5 minuten 15.36 seconden per jaar + +| Nine of availability | Uptime (%) | Max downtime per year | +|---|:---:|---:| +| one nine | 90.0 | 36.5 days | +| two nines | 99.0 | 3.65 days | +| five nines | 99.999 | 5 min 15.36 sec | + +--- + +## Omgevingen met hoge beschikbaarheid (cruciale sectoren) + +- Financiële sector: + - Trading, diensten beschikbaar voor klant, vertrouwen van de klant +- Gezondheidssector: + - Patiëntenzorg de klok rond +- Industrie + - Fabrieken, assemblage, ... +- Transportsector: + - NMBS, luchtvaart, ... + + +--- + +## Omgevingen met hoge beschikbaarheid (cruciale sectoren) +- Openbare veiligheid: + - Staat in voor de veiligheid van de gemeenschap (brandweer, politie, leger, ...) +- Nutsvoorzieningen: + - Energiecentrales, waterzuiveringsstations, ... +- Telecom sector: + - Telefoon, internet, TV, ... +- Retail industrie: + - Supply chains, leveren van producten, ... + - Denk aan de eindejaarsperiode + +--- + +## Bedreigingen van de beschikbaarheid + +- Er zijn heel wat oorzaken van **verlies van beschikbaarheid**. Van het falen van systeem tot een natuurramp. + - System failure + - Niet-doelbewuste oorzaak + - Doelbewuste aanval + - Natuurramp + + +--- + +## Hoge beschikbaarheid +
+
+ + + +
+
+ + + +
+
+ +Notes: +- https://www.nieuwsblad.be/cnt/dmf20200917_92485312 +- https://www.theguardian.com/world/2020/oct/01/tokyo-stock-exchange-trading-suspended-due-to-technical-problem + + +--- + +## Hoge beschikbaarheid + +
+
+ + + +
+
+ + + +
+
+ +Notes: +- https://www.cybersecurity-insiders.com/venezuela-power-outage-caused-by-us-cyber-attack/ +- https://www.hln.be/buitenland/flightradar-overbelast-iedereen-wil-luchtruim-oekraine-en-rusland-volgen~a5f6eaec/ + +--- + +## Hoge beschikbaarheid kan je bekomen door + +- Een zo hoog mogelijke uptime van diensten + - Door te mikken naar veel "nines" uit het 5x9 principe +- **Redundantie** om **single points of failure** vermijden +- **Robuuste** systemen bouwen +- **Monitoren** van de systemen +- **backups** + +--- + +### Vermijden SPoF + + +- Single points of failure zijn de **zwakke schakels** die ervoor kunnen zorgen dat het ganse systeem faalt. + +
+
+ + +
+
+ + +
+
+ +--- + +## Redundantie + +- Een **single point of failure** moet altijd vermeden worden. Dit kan zowel over hardware als data, processen, software, etc. gaan. +- Een oplossing is dan dikwijls om ervoor te zorgen dat je niet op **één element** vertrouwt. +- De organisatie kan **redundantie** inbouwen om kritische processen over te nemen op de moment dat er eentje faalt. Men gaat bv. meerdere load balancers voorzien (die eigenlijk allemaal hetzelfde doel hebben). + +--- + +## Redundantie + +- **N+1 redundantie** is een algemeen principe. N+1 redundantie zorgt ervoor dat systemen **beschikbaar blijven** als er eentje faalt. +- Componenten (N) moeten steeds **minimum één backup** component hebben (+1) +Voorbeeld: een auto heeft een reservewiel in de koffer voor als één van de vier wielen faalt. + + + +--- + +## Systemen zullen falen +- Elk systeem zal ooit falen, wat dan? +- Robuuste systemen hebben een **hoge tolerantie** voor **falen**. +Bv. routing protocols in een netwerk: als een toestel faalt, wordt er automatisch een andere weg gezocht tussen A en B. Robuustheid inbouwen is **meer dan enkel redundantie** voorzien. + + + + +Notes: +Een mooi voorbeeld van een hoge tolerantie is het internet. Berichten op het internet kunnen verschillende routes volgen. Als er een router wegvalt of een route beschadigd raakt, dan nemen de berichten een andere route. De verzender en ontvanger merken hier niets van. In het echte leven kan je dit vergelijken met een wegennetwerk. Zie https://www.youtube.com/watch?v=gQtgtKtvRdo voor enkele visualisaties. + +--- + +## Systemen zullen falen +- Meer en meer applicaties worden ontwikkeld met een bepaalde principes in het achterhoofd waarin men er van uit gaat dat de applicatie vroeg of laat kan "crashen". + - Video wordt hervat na connectieverlies bij een video call. + - Als je webbrowser crasht, kan je toch nog je openstaande tabs recupereren. + +- Ook bij het nemen van back-ups of rond het beheer van schijven (storage) zijn er systemen die **"self-healing"** zijn zoals ZFS (zie semester 2). + +--- + +## Monitoring +- Failures / problemen **detecteren** wanneer ze zich voordoen. +- **Alerts** / meldingen weergeven op communicatieplatformen + - Discord + - Microsoft Teams + - Slack + +- Visualisatie + - Vrije ruimte op harde schijven + - Temperaturen van fysieke machines + - CPU/memory load + +--- + +## Monitoring +
+
+ + +
+
+ + +
+
+ +--- + +# 6.3 Back-ups +--- + +## Neem jij back-ups? + + + +--- + +## De 3-2-1-regel +
+
+ +- **Minstens 3** kopieën +- Op **minstens 2** verschillende media +- Waarvan **minstens 1** op een andere locatie +- Meer mag altijd +
+
+ +
+
+ +Notes: +https://www.seagate.com/be/nl/blog/what-is-a-3-2-1-backup-strategy/ +https://www.backblaze.com/blog/the-3-2-1-backup-strategy/ +https://www.rubrik.com/insights/understanding-the-3-2-1-backup-rule +https://www.veeam.com/blog/321-backup-rule.html + +--- + +## De 3-2-1-regel +Voorbeeld: +- 1 kopie op laptop +- 1 kopie op een NAS +- 1 kopie op de cloud + +Strategie: +- 1 + 1 + 1 = 3 kopieën +- Laptop / NAS / cloud = 2+ verschillende media +- Cloud = 1 off-site media + +Notes: +Image: https://www.backblaze.com/blog/a-tale-of-two-nas-setups-part-one-easy-off-site-backups/ + +--- + +## De 3-2-1-regel + + +--- + +## Varianten op de 3-2-1-regel +- 3-2-1 regel is uitgevonden voor cloud storage bestond. + - 1 of meer van de kopieën was vroeger bijna sowieso steeds offline + - Als alles verbonden is, kan het ook beschadigd worden (bv. ransomware) + - Bv. laptop, NAS, cloud, ... + - **Synchronisatie != back-up** +- Nog steeds een goede leidraad + - Beter 3-2-1 dan geen back-ups + +--- + +## Varianten op de 3-2-1-regel +- 3-2-1-1-0 + - 1 van de kopieën moet offline staan zonder enige verbinding (air gapped). + - Net als toen de cloud nog niet bestond. + - Verifiëer de kopieën: ze mogen geen (0) fouten bevatten. + - Test de back-ups zelf en het herstellen van back-ups! +- 4-3-2 + - 4 kopieën, minstens 3 verschillende media, minstens 2 ander locaties + - Vooral voor gespecialiseerde bedrijven + +Notes: +https://www.backblaze.com/blog/whats-the-diff-3-2-1-vs-3-2-1-1-0-vs-4-3-2/ + + +--- + +## Welke media + +- Tapes +- HDD +- SSD +- USB +- CD/DVD/Blu-ray +- NAS +- Cloud + +--- + +## HDD + +- Kan niet tegen schokken of magnetisme. +- Hot storage: + - Datacenters houden statistieken bij over welk HDD's (niet) lang meegaan + - Welk model, welk merk, grootte, ... + - https://www.backblaze.com/cloud-storage/resources/hard-drive-test-data + - Voorlopige cijfers geven een gemiddelde levensduur van 6 a 7 jaar +- Cold storage: + - Geen exacte cijfers: +/- 5 jaar max? +- Bekijk de S.M.A.R.T. waarden + + + +Notes: +https://www.backblaze.com/blog/how-long-do-disk-drives-last/ +https://www.backblaze.com/blog/hard-drive-life-expectancy/ +https://www.backblaze.com/blog/whats-the-diff-hot-and-cold-data-storage/ +https://www.backblaze.com/blog/what-smart-stats-indicate-hard-drive-failures/ + +--- + +## HDD + + + +--- + +## SSD + +- Beperkt aantal writes +- Kan niet goed tegen hoge temperaturen +- Hot storage: + - Datacenters houden ook over SSD's statistieken bij + - Technologie is nieuw: nog geen harde conclusies t.o.v. HDD's +- Cold storage: + - Alweer geen exacte cijfers + - Best sowieso jaarlijks eens aansluiten tegen bit rot volgens JEDEC standaard +- Bekijk de S.M.A.R.T. waarden + - Andere dan bij HDD's + - Kijk zelf met https://crystalmark.info/en/software/crystaldiskinfo/ + - Zowel voor HDD's als SSD's + +--- + +## HDD vs. SSD + + + +Notes: +https://www.backblaze.com/blog/hdd-versus-ssd-whats-the-diff/ + +--- + +## NAS = Network attached storage + + + +--- + +## Cloud + +- Handig voor off-site back-ups +- Automatisch + - Hoeft er niet aan te denken om een back-up te nemen +- Wat met privacy / kost? + - Let op met "free tiers" + - Als je niet betaald, kan jouw data het product zijn +- Synchronisatie is geen back-up! + - Ransomware wordt gesynct + - Verwijderingen worden niet tegengehouden + - Nood aan "**immutability** of data" +- Cloud kan on-/off-prem geïnstalleerd worden + - Ook gekend als on-/off-site. + +Notes: +Tip: experimenteer gerust met jouw Terabyte op OneDrive via je school account. + +https://www.backblaze.com/blog/3-2-1-backup-best-practices-using-the-cloud/ + +Kosten: +- https://www.backblaze.com/blog/free-isnt-always-free-a-guide-to-free-cloud-tiers/ +- https://www.backblaze.com/blog/free-cloud-storage-whats-the-catch/ + +Synchronisatie is geen backup: +- https://www.backblaze.com/blog/business-cloud-backup-vs-cloud-sync/ +- https://www.backblaze.com/blog/the-case-for-backup-over-sync/ +- https://www.backblaze.com/blog/cloud-backup-vs-cloud-sync/ + +--- + +## Hoeveel back-ups bijhouden en hoe lang? + +- Je houdt best meerdere back-ups over langere tijd bij + - Je hebt niet altijd door wanneer er fouten of malware in je back-ups zitten + - Je wil zo ver kunnen terugkeren in de back-ups als nodig om een correcte kopie van een beschadigd bestand terug te vinden + +--- + +## Incrementele back ups + +- Automatiseer back-ups zodat je deze niet vergeet! +- **Full** back-up + - Telkens opnieuw de volledige inhoud opslaan (copy-paste) + - Verbruikt veel tijd en ruimte +- **Incrementele** back-ups + - Houdt 1 kopie bij, samen met alle verschillen ("delta's") die er later gebeurd zijn + - Bespaart veel tijd en ruimte + - Maakt het mogelijk om bv. 30 wekelijkse back-ups + 20 maandelijkse + 5 jaarlijkse kopieën bij te houden. + + +Notes: +https://www.backblaze.com/blog/whats-the-diff-full-incremental-differential-and-synthetic-full-backups/ + +--- + +## Incrementele back ups + + + + +--- + +## Test de back-ups! + +- "Is it really a backup if you haven't attempted to restore?" +- "Untested backup == no backup" + + + +Notes: +https://www.linkedin.com/pulse/hardware-backup-failure-brings-delta-its-knees-trevor-dierdorff + +--- + +## Heb je wel alles geback-upt? + +- Smartphones + - SMS, ... +- Tablets +- USB-sticks, CD's, DVD's, videocassettes, ... +- Social media (bv. foto's, bestanden in chats, ...) + - Facebook, Whatsapp, Discord, ... +- Cloud + - Google drive, OneDrive, Dropbox, MEGA, ... +- E-mails +Notes: +https://www.backblaze.com/blog/a-guide-for-the-family-it-manager/ +https://www.backblaze.com/blog/how-to-back-up-your-android/ +https://www.backblaze.com/blog/how-to-back-up-and-restore-whatsapp-messages-and-files/ +https://www.backblaze.com/blog/saving-your-uncles-data-how-to-back-up-a-social-media-profile/ + + + +--- https://www.canada.ca/en/conservation-institute/services/preventive-conservation/guidelines-collections/caring-audio-video-data-recording-media.html https://www.canada.ca/en/conservation-institute/services/care-objects/electronic-media/cd-formats-longevity-faq.html https://www.canada.ca/en/conservation-institute/services/care-objects/electronic-media/computer-hard-disks-diskettes-faq.html diff --git a/docs/img/h6/backup_failure.png b/docs/img/h6/backup_failure.png new file mode 100644 index 0000000..757305a Binary files /dev/null and b/docs/img/h6/backup_failure.png differ diff --git a/docs/img/h6/backup_strategy_steps.png b/docs/img/h6/backup_strategy_steps.png new file mode 100644 index 0000000..5078e99 Binary files /dev/null and b/docs/img/h6/backup_strategy_steps.png differ diff --git a/docs/img/h6/backup_survey.png b/docs/img/h6/backup_survey.png new file mode 100644 index 0000000..3c4573c Binary files /dev/null and b/docs/img/h6/backup_survey.png differ diff --git a/docs/img/h6/five-9s-table.png b/docs/img/h6/five-9s-table.png new file mode 100644 index 0000000..20d3651 Binary files /dev/null and b/docs/img/h6/five-9s-table.png differ diff --git a/docs/img/h6/flightradar_overbelast.png b/docs/img/h6/flightradar_overbelast.png new file mode 100644 index 0000000..fc282d2 Binary files /dev/null and b/docs/img/h6/flightradar_overbelast.png differ diff --git a/docs/img/h6/full_incremental_differential_backup.png b/docs/img/h6/full_incremental_differential_backup.png new file mode 100644 index 0000000..e009320 Binary files /dev/null and b/docs/img/h6/full_incremental_differential_backup.png differ diff --git a/docs/img/h6/grafana_dashboard.png b/docs/img/h6/grafana_dashboard.png new file mode 100644 index 0000000..d78acd9 Binary files /dev/null and b/docs/img/h6/grafana_dashboard.png differ diff --git a/docs/img/h6/nas_cloud_backups.png b/docs/img/h6/nas_cloud_backups.png new file mode 100644 index 0000000..beaaa1e Binary files /dev/null and b/docs/img/h6/nas_cloud_backups.png differ diff --git a/docs/img/h6/nas_storage.png b/docs/img/h6/nas_storage.png new file mode 100644 index 0000000..ad877a1 Binary files /dev/null and b/docs/img/h6/nas_storage.png differ diff --git a/docs/img/h6/network_routing.gif b/docs/img/h6/network_routing.gif new file mode 100644 index 0000000..6eb6977 Binary files /dev/null and b/docs/img/h6/network_routing.gif differ diff --git a/docs/img/h6/projected_hdd_survival_rates.png b/docs/img/h6/projected_hdd_survival_rates.png new file mode 100644 index 0000000..fa90969 Binary files /dev/null and b/docs/img/h6/projected_hdd_survival_rates.png differ diff --git a/docs/img/h6/pros_cons_hdd_ssd.png b/docs/img/h6/pros_cons_hdd_ssd.png new file mode 100644 index 0000000..c1fb9fd Binary files /dev/null and b/docs/img/h6/pros_cons_hdd_ssd.png differ diff --git a/docs/img/h6/redundant_system_design.png b/docs/img/h6/redundant_system_design.png new file mode 100644 index 0000000..19ed0e2 Binary files /dev/null and b/docs/img/h6/redundant_system_design.png differ diff --git a/docs/img/h6/road_closed_flooding.png b/docs/img/h6/road_closed_flooding.png new file mode 100644 index 0000000..33a2534 Binary files /dev/null and b/docs/img/h6/road_closed_flooding.png differ diff --git a/docs/img/h6/single_point_of_failure.png b/docs/img/h6/single_point_of_failure.png new file mode 100644 index 0000000..dd067dc Binary files /dev/null and b/docs/img/h6/single_point_of_failure.png differ diff --git a/docs/img/h6/slack_grafana_message.png b/docs/img/h6/slack_grafana_message.png new file mode 100644 index 0000000..214b044 Binary files /dev/null and b/docs/img/h6/slack_grafana_message.png differ diff --git a/docs/img/h6/storing_telenet.png b/docs/img/h6/storing_telenet.png new file mode 100644 index 0000000..efc1fa3 Binary files /dev/null and b/docs/img/h6/storing_telenet.png differ diff --git a/docs/img/h6/tokyo_halt_trading.png b/docs/img/h6/tokyo_halt_trading.png new file mode 100644 index 0000000..7225206 Binary files /dev/null and b/docs/img/h6/tokyo_halt_trading.png differ diff --git a/docs/img/h6/venezuela_power_outage.png b/docs/img/h6/venezuela_power_outage.png new file mode 100644 index 0000000..65ee633 Binary files /dev/null and b/docs/img/h6/venezuela_power_outage.png differ diff --git a/poetry.lock b/poetry.lock new file mode 100644 index 0000000..71d2517 --- /dev/null +++ b/poetry.lock @@ -0,0 +1,31 @@ +# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand. + +[[package]] +name = "chardet" +version = "5.2.0" +description = "Universal encoding detector for Python 3" +optional = false +python-versions = ">=3.7" +files = [ + {file = "chardet-5.2.0-py3-none-any.whl", hash = "sha256:e1cf59446890a00105fe7b7912492ea04b6e6f06d4b742b2c788469e34c82970"}, + {file = "chardet-5.2.0.tar.gz", hash = "sha256:1b3b6ff479a8c414bc3fa2c0852995695c4a026dcd6d0633b2dd092ca39c1cf7"}, +] + +[[package]] +name = "ski-lint" +version = "0.2.0" +description = "A pre-commit hook, that enforces ASCII content." +optional = false +python-versions = ">=3.9" +files = [ + {file = "ski_lint-0.2.0-py3-none-any.whl", hash = "sha256:219960c2ef23c33154e69931efa3f677a55e2cc56f1cc7afb5fb6aa3de746455"}, + {file = "ski_lint-0.2.0.tar.gz", hash = "sha256:905dbe281ee0faff4bf4e5550b1b7a15af025cc4e3539a374a863edce6fa4b01"}, +] + +[package.dependencies] +chardet = ">=5.2.0,<6.0.0" + +[metadata] +lock-version = "2.0" +python-versions = "^3.12" +content-hash = "2d33d1a1432c92881289a9fef1d05367dabba928f15f7983ec48248e001c8b5c" diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..ccf0090 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,16 @@ +[tool.poetry] +name = "cybersecurity-slides" +version = "0.1.0" +description = "" +authors = ["Your Name "] +license = "n" +readme = "README.md" + +[tool.poetry.dependencies] +python = "^3.12" +ski-lint = "^0.2.0" + + +[build-system] +requires = ["poetry-core"] +build-backend = "poetry.core.masonry.api"