Diapo Rom1

This commit is contained in:
TESTUD Romain
2023-04-05 14:36:53 +00:00
committed by JOLY Amaury
parent fda8f2f405
commit fea7b7c5ab
19 changed files with 132 additions and 96 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -17,14 +17,12 @@
\begin{frame}{Fonctionnement} \begin{frame}{Fonctionnement}
\begin{block}{Méthode de l'Order Book} \begin{block}{Méthode de l'Order Book}
\begin{itemize} \begin{itemize}
\item Enregistrement de l'utilisateur (KYC). \item Ordres d'achats.
\item Dépôt des fonds dans un porte monnaie de la plate-forme. \item Offres de ventes.
\item Émission d'IOU\footnotemark.
\item Échange des IOU contre les tokens demandés.
\end{itemize} \end{itemize}
\end{block} \end{block}
\centering \centering
\includegraphics[scale = 0.25]{centralisation/img_plateformes/Achat-Vente.png} \includegraphics[scale = 0.5]{centralisation/img_plateformes/transaction.png}
\end{frame} \end{frame}
\begin{frame}{Avantages et inconvénients} \begin{frame}{Avantages et inconvénients}

View File

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 60 KiB

View File

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 113 KiB

View File

Before

Width:  |  Height:  |  Size: 7.8 KiB

After

Width:  |  Height:  |  Size: 7.8 KiB

View File

Before

Width:  |  Height:  |  Size: 8.7 KiB

After

Width:  |  Height:  |  Size: 8.7 KiB

View File

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

View File

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

View File

@ -1,31 +1,41 @@
\begin{frame}{Le protocole Nomad} \begin{frame}{Nomad - Mise en contexte}
\begin{block}{Mise en contexte} \centering
\begin{itemize} \includegraphics[scale = 0.8]{centralisation/img/nomad/nomad_contracts.png}
\item Protocole d'échange inter-blockchains.
\item Utilisation de \textit{smart contracts}.
\end{itemize}
\end{block}
\begin{block}{Les \textit{smart contracts}}
\begin{itemize}
\item \textit{Home} : "Boite d'envoi", déployé sur les blockchain source.
\item \textit{Replica} : "Boite de réception", déployé sur les blockchains de destination.
\end{itemize}
\end{block}
\end{frame} \end{frame}
\begin{frame}{Le protocole Nomad} %\begin{frame}{Le protocole Nomad}
\begin{block}{Fonctionnement d'une transaction} % \begin{block}{Mise en contexte}
\begin{itemize} % \begin{itemize}
\item Création de la transaction. % \item Protocole d'échange inter-blockchains.
\item Vérification du message par sa racine. % \item Utilisation de \textit{smart contracts}.
\item Accepte la racine. % \end{itemize}
\item Envoi. % \end{block}
\end{itemize} % \begin{block}{Les \textit{smart contracts}}
\end{block} % \begin{itemize}
% \item \textit{Home} : "Boite d'envoi", déployé sur les blockchain source.
% \item \textit{Replica} : "Boite de réception", déployé sur les blockchains de destination.
% \end{itemize}
% \end{block}
%\end{frame}
\begin{frame}{Nomad - Mise en contexte}
\centering
\includegraphics[scale = 0.9]{centralisation/img/nomad/nomad_fonc.png}
\end{frame} \end{frame}
\begin{frame}{L'attaque} %\begin{frame}{Le protocole Nomad}
\begin{block}{L'attaque} % \begin{block}{Fonctionnement d'une transaction}
% \begin{itemize}
% \item Création de la transaction.
% \item Vérification du message par sa racine.
% \item Accepte la racine.
% \item Envoi.
% \end{itemize}
% \end{block}
%\end{frame}
\begin{frame}{Nomad - L'attaque}
\begin{block}{Attaque sur les briges de Nomad}
\begin{itemize} \begin{itemize}
\item Premier Août 2022. \item Premier Août 2022.
\item Apparu après mise a jour utilisant la fonction \textit{process} pour vérifier la racine. \item Apparu après mise a jour utilisant la fonction \textit{process} pour vérifier la racine.
@ -41,29 +51,31 @@
\end{block} \end{block}
\end{frame} \end{frame}
\begin{frame}{L'attaque} \begin{frame}{Nomad - L'attaque}
\begin{block}{Erreur d'initialisation} \begin{block}{Erreur d'initialisation}
\begin{itemize} \begin{itemize}
\item Racine initialisée à $0$, fonctionnement normal. \item Racine initialisée à $0$.
\item Mais, racine $0$ pré-approuvée. \item Racine $0$ pré-approuvée.
\item Tout message non vérifié sera valide.
\end{itemize} \end{itemize}
$\rightarrow$ Tout message non vérifié sera valide.
\end{block} \end{block}
\begin{figure}
\centering \centering
\includegraphics[scale = 0.3]{centralisation/img/nomad_hack.png} \includegraphics[scale = 0.35]{centralisation/img/nomad/nomad_code_hack.png}
\caption{Contrat Réplica erroné}
\end{figure}
\end{frame} \end{frame}
\begin{frame}{L'attaque} \begin{frame}{Nomad - L'attaque}
\centering
\includegraphics[scale = 0.9]{centralisation/img/nomad/nomad_hack.png}
\end{frame}
\begin{frame}{Nomad - Correctif}
\begin{itemize} \begin{itemize}
\item Correction le 3 septembre 2022 \item Correction le 3 septembre 2022
\item La racine nulle n'est plus pré-approuvée. \item La racine nulle n'est plus pré-approuvée.
\end{itemize} \end{itemize}
\begin{figure} \begin{figure}
\centering \centering
\includegraphics[scale = 0.3]{centralisation/img/nomad_fixed.png} \includegraphics[scale = 0.35]{centralisation/img/nomad/nomad_code_fixed.png}
\caption{Contrat Réplica corrigé} \caption{Contrat Réplica corrigé}
\end{figure} \end{figure}
\end{frame} \end{frame}

View File

@ -1,80 +1,106 @@
% Auteur : Romain TESTUD % Auteur : Romain TESTUD
\begin{frame}{Le protocole Wormhole} \begin{frame}{Wormhole - Mise en contexte}
\begin{block}{Mise en contexte} \centering
\begin{itemize} \includegraphics[scale = 0.69]{centralisation/img/wormhole/worm_fonc.png}
\item Solution d'échanges inter-blockchains.
\item utilisation de bridges.
\end{itemize}
\end{block}
\begin{block}{Les étapes d'un transfert}
\begin{itemize}
\item Formulation de la transaction.
\item Récupération et vérification des signatures des gardiens.
\item Envoi de la transaction.
\end{itemize}
\end{block}
\begin{figure}
\centering
\includegraphics[scale = 0.3]{centralisation/img/fonctions.png}
\caption{Fonctions appelées lors d'un transfert}
\end{figure}
\end{frame} \end{frame}
\begin{frame}{L'attaque} \begin{frame}{Wormhole - Mise en contexte}
\begin{itemize}
\item Transaction standard.
\end{itemize}
\centering
\includegraphics[scale = 0.45]{centralisation/img/wormhole/sysvar_trans_normal.png}
\end{frame}
%\begin{frame}{Le protocole Wormhole}
% \begin{block}{Mise en contexte}
% \begin{itemize}
% \item Solution d'échanges inter-blockchains.
% \item utilisation de bridges.
% \end{itemize}
% \end{block}
% \begin{block}{Les étapes d'un transfert}
% \begin{itemize}
% \item Formulation de la transaction.
% \item Récupération et vérification des signatures des gardiens.
% \item Envoi de la transaction.
% \end{itemize}
% \end{block}
% \begin{figure}
% \centering
% \includegraphics[scale = 0.3]{centralisation/img/fonctions.png}
% \caption{Fonctions appelées lors d'un transfert}
% \end{figure}
%\end{frame}
\begin{frame}{Wormhole - L'attaque}
\begin{block}{Attaque sur le bridge entre Solana et Ethereum} \begin{block}{Attaque sur le bridge entre Solana et Ethereum}
\begin{itemize} \begin{itemize}
\item Le 2 Février 2022. \item Le 2 Février 2022.
\item 120 000 ETH de perte. \item 120 000 ETH (300M €) de perte.
\item Correction de bug publié mais pas encore en production. \item Correction de bug publié mais pas encore en production.
\end{itemize} \end{itemize}
\end{block} \end{block}
\end{frame} \begin{block}{L'attaquant a contourné\dots}
\begin{frame}{L'attaque}
\begin{block}{Passer la signature des gardiens?}
Utilisation de signatures d'une transaction antérieure.
\end{block}
\begin{block}{Passer la vérification ?}
\begin{itemize} \begin{itemize}
\item Exploitation d'une erreur d'implémentation dans \textit{verify\_signature} \item la signature des gardiens.
\item Appel à un programme externe. \item la vérification des signatures.
\end{itemize} \end{itemize}
\begin{figure}
\centering
\includegraphics[scale = 0.3]{centralisation/img/sysvar_atk.png}
\caption{Appel à la fonction de vérification}
\end{figure}
\end{block} \end{block}
\end{frame} \end{frame}
\begin{frame}{L'attaque} \begin{frame}{Wormhole - L'attaque}
\begin{itemize} \centering
\item Utilisation d'une nouvelle adresse. \includegraphics[scale=0.69]{centralisation/img/wormhole/worm_hack.png}
\item Validation des signatures par défaut.
\end{itemize}
\begin{figure}
\centering
\includegraphics[scale = 0.3]{centralisation/img/sysvar_transaction.png}
\caption{Appel à la fonction de vérification}
\end{figure}
\end{frame} \end{frame}
\begin{frame} %\begin{frame}{L'attaque}
% \begin{block}{Passer la signature des gardiens?}
% Utilisation de signatures d'une transaction antérieure.
% \end{block}
% \begin{block}{Passer la vérification ?}
% \begin{itemize}
% \item Exploitation d'une erreur d'implémentation dans \textit{verify\_signature}
% \item Appel à un programme externe.
% \end{itemize}
% \begin{figure}
% \centering
% \includegraphics[scale = 0.3]{centralisation/img/sysvar_atk.png}
% \caption{Appel à la fonction de vérification}
% \end{figure}
% \end{block}
%\end{frame}
\begin{frame}{Wormhole - L'attaque}
\begin{itemize}
\item Transaction de l'attaquant.
\end{itemize}
\centering
\includegraphics[scale = 0.45]{centralisation/img/wormhole/sysvar_transaction_hack.png}
\end{frame}
\begin{frame}{Wormhole - L'attaque}
\begin{block}{Transaction validée et envoyée} \begin{block}{Transaction validée et envoyée}
\begin{itemize} \begin{itemize}
\item 120 000 ETH transmis. \item 120 000 ETH transmis.
\item Sans avoir déposé de jetons au préalable. \item 0 wETH déposés.
\end{itemize} \end{itemize}
\end{block} \end{block}
\begin{block}{Correctif}
Vérification des appels externes.\\
\centering
\includegraphics[scale = 0.5]{centralisation/img/wormhole/worm_fixed.png}
\end{block}
\end{frame} \end{frame}
\begin{frame}{Correctif} %\begin{frame}{Correctif}
\begin{itemize} % \begin{itemize}
\item Vérification de l'appel par \textit{sysvar\_instruction} % \item Vérification de l'appel par \textit{sysvar\_instruction}
\end{itemize} % \end{itemize}
\begin{figure} % \begin{figure}
\centering % \centering
\includegraphics[scale = 0.3]{centralisation/img/worm_fixed.png} % \includegraphics[scale = 0.3]{centralisation/img/wormhole/worm_fixed.png}
\caption{Appel à la fonction de vérification} % \caption{Appel à la fonction de vérification}
\end{figure} % \end{figure}
\end{frame} %\end{frame}