This commit is contained in:
Dorian
2023-04-04 15:19:50 +02:00
parent cbb49f5801
commit d1784217c1
4 changed files with 11 additions and 11 deletions

View File

@ -10,7 +10,7 @@ Elles proposent également un large éventail de cryptomonnaies disponibles.
\subsubsection{Inconvénients et risques}
Nous avons pu tout de même relever certains inconvénients et certains risques pour les utilisateurs liés à l'utilisation de ces plate-formes.
Tout d'abords, les utilisateurs doivent confier leurs fonds et leurs données à un tier en qui ils doivent avoir confiance.
Tout d'abords, les utilisateurs doivent confier leurs fonds et leurs données à un tiers en qui ils doivent avoir confiance.
Cela peut exposer les utilisateurs à de la fraude, du vol ou encore du piratage si les plate-formes présentent des failles de sécurité. \\
Ensuite, ces plate-formes peuvent être victimes de pannes ou de saturation du réseau pouvant entraîner des retards, des pertes de transactions ou encore du déni de service bloquant ainsi l'accès aux \gls{actif}s des utilisateurs.
Finalement, ces plate-formes sont soumises à la réglementation et à la surveillance des autorités financières, limitant leur accessibilité dans certains pays ou régions.
@ -22,7 +22,7 @@ Ce point signifie aussi que les \gls{actif}s de l'utilisateurs sont traçables p
\centering
\includegraphics[scale=0.2]{centralisation/Achat-Vente.png}
\label{fig:simplifiedcex}
\caption{Échange d'un jeton en Euros}
\caption{Modélisation d'un échange}
\end{figure}
Ces plate-formes fonctionnent sur le principe de l'\textit{order book method} (méthode du carnet d'ordre\cite{orderBook}), une modélisation des ordres d'achats et de vente des jetons.
Un ordre étant une demande d'un utilisateur visant à réaliser une opération à un prix et une quantité donnée.

View File

@ -23,7 +23,7 @@ Pour contourner cette étape de récupération des signatures la transaction de
Seulement, n'étant pas pour la bonne opération cet ensemble ne peut pas être approuvé par \texttt{verify\_signature}.
C'est ici que l'attaquant à utilisé un défaut d'implémentation pour valider son \textit{SignatureSet}.
Comme décrit précédemment, la fonction \texttt{verify\_signature} appelle un programme pour effectuer la vérification des signatures.
Cependant il n'y à pas de vérification faites sur le programme appelé, l'attaquant à pu donc utiliser une adresse différente lui permettant de valider sa transaction.
Cependant il n'y a pas de vérification faites sur le programme appelé, l'attaquant à pu donc utiliser une adresse différente lui permettant de valider sa transaction.
Avec le \texttt{SignatureSet} ainsi validé, l'attaquant a pu générer un \textit{VAA} valide et pu déclencher une création d'\gls{actif} vers son propre compte sans en avoir déposé au préalable.
La correction de cette faille était contenue dans la mise à jour évoquée en début de paragraphe\cite{SolGitFixed}, permettant la vérification du programme appelé pour la vérification.
@ -55,11 +55,11 @@ En analysant l'application \textit{Réplica} après la mise à jour, nous pouvon
Dans les lignes précédentes nous observons cette affectation : \texttt{confirmAt[\_commitedRoot] = 1}, le rôle de cette ligne est de pré-approuver la racine d'un message.
Cette fonction est utilisée pour approuver le premier message lors du déploiement du contrat sur une \textit{\gls{blockchain}}.
Or ici, la valeur de la racine à été initialisée a $0$, donc cette racine devient une racine valide pour la fonction de vérification des messages.
Or ici, la valeur de la racine a été initialisée à $0$, donc cette racine devient une racine valide pour la fonction de vérification des messages.
Seulement comme nous l'avons énoncé précédemment, $0$ est la valeur par défaut pour un message n'ayant pas encore été vérifié.
Ainsi, lors de l'émission d'un message par la fonction \texttt{process}, tout message non vérifié sera envoyé.
Cette erreur d'implémentation a permis à des pirates d'effectuer plusieurs transactions frauduleuses et de retirer l'équivalent de 190 Millions de dollars dans la réserve de liquidité du bridge de \gls{Nomad}.
Le contrat à été corrigé, dans une mise en ligne datant du 3 Septembre 2022, tel que la racine $0$ n'est plus pré-approuvée.
Le contrat a été corrigé, dans une mise en ligne datant du 3 Septembre 2022, tel que la racine $0$ n'est plus pré-approuvée.
\begin{lstlisting}[caption={Fonction corrigée de l'application \textit{Réplica} \cite{NomadGitFixed}}]
function initialize(