============================
Intro à la ““cybersécurité””
============================


1. Modèles de menaces
---------------------

Qui êtes vous ?

* un individu
* association, entreprise, syndicat
* administration (hôpital, université, police, …)

Contre qui se protéger ?

* votre petite frère
* des voleurs
* des hackers
* des États

Que protéger ?

* le matériel: protection physique (serrures, cartes d’accès, chiffrement de
    disque dur, se couper d’internet…)
* Confidentialité (exposition des données)
* Intégrité (des données)
* Disponibilité (risque d’attaque par dénis de service).

Quels vecteurs de menaces ?

* Malwares
  - virus: injections par programmes exécutés
  - worm: propagation autonome
  - trojan: chevaux de Troie (pdf, docx, …)
* Leur fonction
  - Adwares (publicités)
  - Spywares (récupères les informations sensibles)
  - Ransomwares (chiffrer les données et demander une rançon)
* DoS, DDoS (attaques par déni de service pour les serveurs)
* Intrusion directe (remote shell)
<https://thehackernews.com/>

Quelques conseils de sécurités informatique et généraux :

* <https://wiki.archlinux.org/title/Security>
* <https://github.com/Kicksecure/security-misc>


2. Principes de sécurité
------------------------
D’après [Tanenbaum]

Pleins de principes très généraux

1. Économie: le moins complexe est un système, le plus sûr, notion
   de réduction de **surface d’attaque** (heuristique: 1 bug toutes les 50 lignes de code).
   <https://xkcd.com/2347/>
2. Défaults sûrs: valeurs par défaults sûres. <https://xkcd.com/1934/>
3. Médiation complète: tout accès à une resource (matérielle) doit être
   vérifiée par une autorité (système…).
4. De moins moindre autorité: n’improte quel (sous-)système, programme etc…
   doit être exécuté avec le moins de privilège possible.
   (Ex. sur un serveur: chaque service tourne sous un utilisateur avec des
   droits minimaux.)
5. Séparation des privilèges.
6. Design ouvert: analogue du principe de Kerckoff en cryptographie: un
   système ouvert a plus d’yeux pour le scruter, qu’un système fermé.
   L’inverse de la sécurité par obscurcissement.
8. Acceptabilité collective: dans une organition, on fait de la sécurité
   avec tout le monde, pas tout seul.


3. Les mots de passe, alpha et omega de l’authentification
----------------------------------------------------------

Authentifier une identité, plusieurs choix:

1. L’ancetral mot-de-passe <https://xkcd.com/936/>
2. Codes pin
3. Questions de sécurité (nom de votre premier chien)
   <https://xkcd.com/565/>

4. Biométrie (empruntes digitales, reconnaissance faciale)
5. GPS
6. Cartes/badges

7. Cryptographie asymétrique (clefs publiques/privées, SSH, GPG)
   <https://xkcd.com/538/>

Gestionnaires de mot-de-passes (libres et hors-ligne, synchro à faire à la main
ou avec ssh ou git) :

* [KeePassDX](https://f-droid.org/en/packages/com.kunzisoft.keepass.libre/)
* [KeePassXC](https://keepassxc.org/)
* [the unix way](https://www.passwordstore.org/)


4. Sécurité serveur
-------------------

En-dehors de la sécurité physique, c’est l’OS qui garantie la sécurité des
utilisateurs et des services, notamment via le système de fichier !

* Gestion des utilisateurs du serveurs (moindres privilèges côté utilisateurs)
* Gestion des services du serveur (moindres privilèges côté processus)
* Sécuriser le réseau: pare-feu
* Sécuriser les services avec du monitoring de logs (fail2ban)
* Accès serveur uniquement par clefs SSH (rotatives)
* Gestion plus fine des droits via SELinux
  <https://wiki.archlinux.org/title/SELinux>

Rabe :

* <https://www.openbsd.org/security.html>
* <https://github.com/imthenachoman/How-To-Secure-A-Linux-Server>

Idées à tester : <https://landchad.net/>


5. Anonymité sur internet
-------------------------

TOR browser
* [wiki](https://fr.wikipedia.org/wiki/Tor_(r%C3%A9seau))
* [officiel](https://www.torproject.org/fr/)

À propos des moyens de communication :
* <https://framablog.org/2023/04/14/infrastructures-numeriques-de-communication-pour-les-anarchistes-et-tous-les-autres/>


