diff --git a/bus/03_can.md b/bus/03_can.md new file mode 100644 index 0000000..240fb2d --- /dev/null +++ b/bus/03_can.md @@ -0,0 +1,89 @@ +# Session 3 2024-03 + +bus can -> bus syst. série +réduire nb cables + +# BUS CAN +conçu par BOSCH, fin des années 80 +- temps maximal normalisé +- syst. d'erreur simple et efficace + +-> contrôleurs CAN petits, peu couteux, entièrement intégrés, utilisable à débit important en tps réel et env difficile avec haut niveau de fiabilité +-> origine automobile, étandu à tous les domaines + +syst critique (High speed) ou low speed +CAN -> prot. réseau intégré dans la norme ISO/OSI + +## Protocole CAN +(rappel : arbitrage non destructif, si collision réémission de la deuxième trame plus tard) +=> catégorie des réseaux de terrain + +-> hiérarchie des msg, garantie du temps de latence, souplesse de config +->reception de multiples sources avec synchro temporelle +-> fonctionnement multimaitre, detect° d'erreurs +->retransm. automatique des msg altérés +-> distinction d'err. : d'ordre temporaire ou de non fonctionnalité permanent au niveau d'un noeud +-> déconnexion des noeuds défectueux + +### Caractéristiques +bus série = paire différentielle avec CAN_H(igh) et CAN_L(ow), connecté sur des résist. 120ohms ou capa 30pF résistant aux perturbat° +-> attention Can_H(igh) != can high speed +résist. 120 ohm au bout pour éviter que le message reparte dans le can après avoir circulé +si EMI (interference electromagn.)=> modif des msg dans H et L, calcul de la diff. de différentiel, et les deux seront modifiés de la même manière +ex +| CAN-H|5|3 |3|*4.5*|3| +|------|-| - |-| ----|-| +| CAN-L|1|1.5|2|*2.5*|1| +| UDiff|4|1.5|1|*2* |2| +-> la différence reste constante contrairement à tension mesurée dans le fil + +ex : bit = 0 si Udiff < 3, 1 sinon + +low-speed = vit de propag sur le bus = 125Kbits (permet cable plus long) +high-speed = 1 Mbits + +### Principe de fctment +-> type wired-and : un bit dominant (0)(CANH > CANL) écrase un bit récessif (1)(CANH <= CANL) ++> les identif. des noeuds avec la valeur la plus faible sont prioritaires + +synchro d'horloge : bourrage de bit inversé (bit stuffing) +le débit réel des infos ne tient pas compte de ces bits stuffing + +si ajouter un bit de stuffing fait passer la séq. d'après à 5 bits conséc. => on ajoute encore un nouveau bit de stuffing => possibilité de propagation + +types de trames : +- de données +- de requête (remote frame) +- de gestion d'erreur +- de surcharge (ex si un calc n'arrive pas à lire assez vite) +- espace entre frames + +trame, fin = 7 bits à 1 + séparateur trames = 3 bits à 1 +CAN sur les couches appli (prot spécifié par l'utilisateur) liaison et physique (prot CAN pour les deux couches) + +#### Couche physique +couche MAC entre données et couche physique, elle donne la priorité et définit l'arbitrage +fournit les moyens matériels nécéssaires à l'activation, maintien, désactvation des connex physiques +-> gère repr. des bits et définit les niveaux electriques optiques etc des signaux +le type de transceiver définit le type de transmission (low speed ou high speed) + +transceiver transforme trame en voltage pour can high ou low (et receptionne avec processus inverse) + +2 couches basses, 3 parties : Implémentation, Standards et CAN (iso pas à connaitre) +can controller complète le msg (ajout identifiant, concat dataframe, etc) + +µcontrolleur => crée msg + +résist. de terminaisons évitent les répétitions en bout de ligne (rebond du signal) + +##### Topologie du réseau +réseau sous forme de bus => tt est connecté +réseau avec passerelle -> un can fait office de pont entre deux réseaux + +CAN low speed -> can fault tolerance : accepte des erreurs sur le réseau, et de les résoudre ou déconnecter les noeuds + +faisceau de bits codé en NRZ +Bit stuffing sur remote frame et dataframe, s'applique jusqu'au CRC +synchro de 2 façon : +hard : sur le bit de start +Re-synchro sur chaque front récessif et dominant \ No newline at end of file diff --git a/hardware/01_init.md b/hardware/01_init.md new file mode 100644 index 0000000..9782f59 --- /dev/null +++ b/hardware/01_init.md @@ -0,0 +1,95 @@ +# Session 1 Architecture hardware numérique 2024-03-01 + +3 controles continus + 1 projet : réalisation carte électronique + +programme : résistances, transistor type moss, bascules (nand, etc), logique combinatoire et séquentielle, alimentation, switch, processeurs, etc + +## Composants discrets + +### Résistance + +symbole R, unité ohm, ^v^v^v +energie dissipée P=RI² +limite le passage du courant +effet joule => ça chauffe + +V/I = R <=> i = V/(RT)->inf. (R->0+) + +si résistance faible=> courant augmente, le fil chauffe et se met à fumer +système de garde = disjoncteur / fusible, + +ex : 220V tension efficace, 9KW, disjoncteur à 41V + +(éléments de dissipation : resist. de charge, d'amortissement, chauffantes +elts de division de tension : résistances en ponts, resist. dans filtres (RC, RLC) +elts de polarisation : Pull-up, Pull-Down) + + +en série : Req = somme des résistances +en parallèle : 1/Req = somme(1/R) + +si générateur idéal => fournit tjrs même courant + + +tau = RC +3tau = 95% +exp(-t/tau) +### Condensateur +ŵ : oméga +energie stockée dans un cond. : Q=C.V +symbole C, unité farad +bloque le passage d'un courant continu en stabilisé --||-- +instantané = V = exp(-t/tau)+C si on colle un condens. déchargé avec une batterie forte (voiture) et un fil, la resistance est nulle (= le fil), le courant est infini, et le condensateur va charger vite + +point de contact du condensateur => généralement une petite résistance, et une résistance de fuite (~quelques gigaohm) + +en série : 1/Ceq = somme(1/c) +en parallèle Ceq = somme(C) +^v^v^v----||-----^v^v^v^ +| | +|^v^v^v^v^v^v^v^v^v^v^v| + +Z=1/cŵ, z=impédance d'un cond. en ohm +z=inf. en continu, car ŵ=0 + +oscour +lcŵ²=1 résonance (condens. et bobines(self)), courbe de fresnel, équations différentielles +ŵ=1/rac(LC) + +#### self (bobine ?) +symbole L, unité henry, --0000000-- +résistance nulle en courant continu, et résistance importante sinon +Lŵ/R=1 +tau=L/R, au bout de 3tau~=95% de la self est démagnétisée + +self en haute freq. c'est une bonne cappa +en série Leq = somme(L) +parallèle 1/Leq =somme(1/L) +impédance Z=Lŵ + + +### Les transistors MOS (Metal Oxyde Semiconductor) (MOSFET) +porteurs d'un seul type, donc composant unipolaire (contrairement au transist. bipolaire) +en silicium, car facilement dopable +V/Id = Rdson +3 contacts : (Grille, Drain et Source) +1er temps autour des zones n+ les charges : +-majoritaires sont '+' -> zone de déplétion lorsque Vgs >0 est appliquée entre drain et source, la diode substrat drain est bloquée, le courant ne passe pas +-quand la tension de la grille augmente, la zone entre D et S la force electromag attire les charges - et un canal se créé et -conduction d'un courant de D vers S (flux minoritaires d'e- dans la zone P attirée par la grille) +-proche de G, les e- deviennent majoritaires, un canal de conduction est créé entre D et vers S modulé par Vgs(dès que Vgs > Vth) + + +partie métal = condensateur +largeur grille ancien processeur : 5 nm, maintenant 18 angström (10^-10) : 1,8nm +salle grise - salle blanche : taux de particule réduit, on évite la poussière pour éviter d'abimer les processeurs + +-sorte d'interrupteur quasi parfait + +oxyde mauvais conducteur -> un composant s'oxyde R augmente -> RI² augmente mais comme I reste le meme le disjoncteur n'intervient pas -> la maison brule + +-si tension entre grille et source = 0, aucun courant ne passe, mode bloqué, R=inf, dissipation thermique RI²=0 +-sinon mode saturé, R = 0.5 ohm par exemple , si Vgs=V,I~32a, si Vgs baisse R augmente, dissipation thermique augmente + +chauffe pendant qu'il s'ouvre, si passage rapide, pas de chauffe=> solution sur les transistors (1 et 0 ouvert et fermé souvent) augmenter la freq pour éviter de trop chauffer + +zone ohmique, puis zone saturée \ No newline at end of file diff --git a/securite/01_init.md b/securite/01_init.md new file mode 100644 index 0000000..804faf6 --- /dev/null +++ b/securite/01_init.md @@ -0,0 +1,160 @@ +# Sécurité 2024-03-01 + +epita-ssie@priamos.fr + +etienne gérain => ne pas hésiter à se connecter sur linkedin +s8 => base cyber, cybersec technique (protection et attaques), sec du cloud, cybersec en entreprise + +évaluations => tout ne sera pas dans le support de cours + =>possibilité d'évaluation non prévues, réviser le cours pour le cours suivant + +actualité +oct 2023 -> vinovalie paralysée par hackers occitanie, hopitaux vittel et neufchateau dans les vosges sont la cible d'une cyberattaque grand est +lockbit, plus grand groupe cybercriminel , interventions récentes de polices interpays + +## Histoire +fin du 8ème siècle, les vikings attaquent la france car riche mais mal organisée, attaques surprises délocalisées, population naive, pas de réponse coordonnée au problème + +21è => la France possède une énorme richesse en capital intellectuel, même problème + +école/université contre cybercrime +Pasteur => association recherche enseignement et pratique est la meilleure approche + +internet vient de l'US army, sous le nom d'ARPANET, obj : améliorer la comm entre armées +années 50, guerre froide +bases stratégiques permettant aux USA d'encercler l'urss et de lancer des att. surprises avec des bombardiers +l'urss développe son arsenal nucléaire, prend l'avantage dans les années 60 +les usa n'étaient pas protégées contre des att. sur leur réseaux de comm, une att sur une infrastruct. pouvait faire tomber tout le réseau +=> développement de l'arpanet, premier réseau maillé de **communication distribué** par léonard kleinrock à la fin des années 60 privé non prévu pour le grand public => aucune confidentialité, peu de controle d'intégrité +d'autres réseaux se développpent autour de la techno TCP/IP (NSFnet, USEnet,...) +arpanet s'interconnecte avec des univ et des labo civils ou privés +TCP/IP (protocole ouvert)=>beaucoup de flexibilité mais aucun mécanisme de séc. +nombreuses failles dans le protocole (ICMP prot. de ping, Routage, N° de séquence, SYN flooding (ouverture de tonnes de connexion), UDP) palliées par des rustines ou des surcouches + +concept de *diode* dans un réseau => communique dans un seul sens x -- |> -- X + B diode A B peut communiquer vers A mais l'inverse est impossible +n'accepte que le protocole UDP car pas d'acknowledge possible, risque de saturation si TCP +ex d'utilisation : un pilote d'avion communique aux passagers + +TCP/IP combine identité et localisation sur le réseau dans un objet : l'adresse IP => attaques facilitées car mascarade possible, détection problématique, anonymat quasi assuré + +D'autres pb qu'internet : +- terminaux et OS optimisés pour exp. utilisateur pas pour la sécurité +- µprocesseurs tjrs plus complexes introduisant des failles dans le hardware (spectre, meltdown) +- Fournisseurs de services incompétents +- utilisateurs naifs +- hacktivistes, criminalité, concurrence, cyber guerre + +HSM = hardware sec module, équipement permettant de génerer et stocker des clés crypto de séc. +cage d'écho -> rés. sociaux, suivre les gens qui pensent comme nous donne un faux sentiment de sécurité, manipulation + +## Aujourd'hui + +- 1 entreprise sur 2 se fait attaquer +- 74% des etps déclarent le phishing comme vecteur d'entrée principal pour les attaques subies +- dans 60% des cas les attaques impactent le le business des etps avec dans 7% des un déficit du CA +- les autres préjudices sont : vol de données (35%),usurpation d'identité (33%),données chiffrées par ransomware (22%) + +8 etps sur 10 mènent des campagnes de sensibilisat°, mais 38% des incidents constatés proviennent de négligences/err. de manipulation + +Les budgets alloués à la cybersec dépassent majoritairement 5% du budget IT global. 63% des etps prévoient une augmentation allouée aux dispositifs de prot., et 54% attribuée à l'augment. des effectifs + +xdr -> syst. de détection temps réel mais ne répond pas aux "menaces inconnues" + +station blanche => équipement pour tester une clé usb par exemple + + +les attaques se multiplient + +réseau de zombies => utilisation d'une partie des ressources d'un tél. etc pr recréer un syst. virtuel capable d'attaquer + +fuite de données chez un opérateur tcom (2014)=> défaillance d'un sous-traitant, avec serveur mal sécurisé permettant l'accès libre au fichier client + + +STUXNET -> 1ère utilisation majeure d'un cyber arme sur les centrales nucléaires iraniennes +usb possède capacité d'autorun + + +nouveaux vikings => gouvernement, etp, crime organisé, fraudeurs +attaques => défaçage de site, arnaque au président (d'une société), chantage à la webcam, déni de service, etc + +Le niveau de risque augmente +france => 1 des 3 pays les + ciblés par la manipulat°, influence, etc + + +# Partie 2 +## Principaux types d'attaques + +maillon faible (l'humain) => peut souhaiter bypasser le système existant si inadapté aux besoins, pas forcément uniquement de la faute de l'humain +principaux vecteurs : +- le web (sysmantec detecte +10 000 nouveaux sites web infectés par jour) +- la messagerie +- les clés usb + +top 14 attaques : ransomware, malware, service Maas, attaque par DoS et DDoS, Phishing, attaque type Man in the middle (MITM) +, script intersite (XSS), injection SQL, Tunneing DNS, Attaque de mots de passe, Attaque des anniversaires, attaque type "drive-by", +cryptopiratage, attaque IoT + + +phishing => extensions communes dangereuses : doc, pdf, exe, etc +marché noir sur le dark web +achat / vente de documents d'identité, n° de cartes bancaires, comptes sur des cloud, kits pour malwares + +**Spear fishing (SP)**=> version ciblée du phishing, envoi d'un mail depuis un contact connu un collègue, ou un proche + -> adresse email source maquillée ou piratage du mail du contact + -> exploitat° des données publiques de la cible et de ses contacts sur les réseaux, des données de l'entreprise + +pb majeur dans les etps, organisation de campagnes de sensibilisation + +sécurité par l'obscurité = sécurité en cachant des bouts de code +-> mac et windows ont certaines parties de code propriétaires + +recommandation +(openbsd => aucun protocole ouvert par défaut) +un seul antivirus sur son OS, 2-3 antivirus dans une ept (1 pour les ordis portables par exemple, 1 pour les serveurs) + +plsrs antivirus se basent sur la même manière de detecter les virus + +ne jamais se connecter à un réseau wifi ouvert ou filaire, si données sensibles sur un ordi + +2017 : 1/13 des sites webs sont malicieux + + +début d'attaque : souvent SP (71% 2017), watering holes +watering holes => site web non géré par l'entreprise mais ou tous les utilisateurs se connectent (par exemple site web d'un comité d'etp) =>on attaque ce site web au lieu d'attaquer l'etp + +SP => signes évocateurs (un contact a un besoin urgent, on vous demande de changer votre mode de connexion, on vous questionne sur des outils de paiement, des projets en cours) + +recommandations d'outils : olvide, keepass + +comment réagir ? +->formation des utilisateurs +->controler, Phishing pédagogique +->et parfois sanctionner + + +mail suspect +vérifier l'id de l'interlocuteur +contacter l'expéditeur par un autre moyen pour demander confirmation +ne pas transmettre d'info sensible +ouvrir un mail est il dangereux ? oui si le logiciel pour ouvrir le mail interprète de l'html + + +SP : 1ère étape de l'attaque APT +*APT* ->(advanced persistent threat) attaque complexe qui s'est faite en plusieurs étapes, parfois en plusieurs années +Kill chain : représentation d'une APT + +reconnaissance (recherche d'infos publiques)-->construction (adaptat° des outils à l'etp)-->livraison (envoie de malware) -->exploitation (--escalade privilèges -->exfiltration--> maintien etc) + + +on peut représenter la séquence d'injection dans l'apt : envoi de mail--> ouverture du mail etc + +water holing +cryptolocker -> chiffre en masse les données accédés en vue d'une rançon +Botnet : l'attaquant donne un ordre aux machines zombies qui attaquent à l'insu de l'utilisateur, sert par ex à DDoS + +sabotages d'infrastructures industrielles + + +menaces : les réseaux sociaux, cyber-harcèlement +se protéger : mot de passe : mettre une phrase est plsu complexe à craquer qu'un mdp courts avec symboles spéciaux etc diff --git a/update.sh b/update.sh new file mode 100755 index 0000000..98d7ff0 --- /dev/null +++ b/update.sh @@ -0,0 +1,14 @@ +#!/bin/sh +set -e +cd "$(dirname "$(realpath "$0")")" + +if [ $# -lt 1 ] +then echo "Usage: update.sh [msg]" && exit 1 +fi + +dir="$1" +msg="$2" + +git add "$dir" +git commit -m "$dir $msg" +git push