From 6a660d3eddfc51c122935d9a1a8cffb60aef6988 Mon Sep 17 00:00:00 2001 From: nitowa Date: Tue, 31 Oct 2023 18:18:06 +0100 Subject: [PATCH] improve paper formatting, code coloring, add abstract+conclusion, add safe code example, fix typos --- SemSEpaper/exercises.pdf | Bin 211703 -> 256404 bytes SemSEpaper/exercises.tex | 179 +++++++++++++++++++++++++++++++-------- 2 files changed, 144 insertions(+), 35 deletions(-) diff --git a/SemSEpaper/exercises.pdf b/SemSEpaper/exercises.pdf index 388556859649d03a5e061deb8126d0d4719fe7fb..25d163235d84449e6378e52488b610336beb5676 100644 GIT binary patch delta 94750 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 diff --git a/SemSEpaper/exercises.tex b/SemSEpaper/exercises.tex index 16bfc76..8009184 100644 --- a/SemSEpaper/exercises.tex +++ b/SemSEpaper/exercises.tex @@ -46,6 +46,40 @@ \definecolor{codegray}{rgb}{0.5,0.5,0.5} \definecolor{codepurple}{rgb}{0.58,0,0.82} \definecolor{backcolour}{rgb}{0.95,0.95,0.92} +\definecolor{verylightgray}{rgb}{.97,.97,.97} + +\lstdefinelanguage{Solidity}{ + keywords=[1]{anonymous, assembly, assert, balance, break, call, callcode, case, catch, class, constant, continue, constructor, contract, debugger, default, delegatecall, delete, do, else, emit, event, experimental, export, external, false, finally, for, function, gas, if, implements, import, in, indexed, instanceof, interface, internal, is, length, library, log0, log1, log2, log3, log4, memory, modifier, new, payable, pragma, private, protected, public, pure, push, require, return, returns, revert, selfdestruct, send, solidity, storage, struct, suicide, super, switch, then, this, throw, transfer, true, try, typeof, using, value, view, while, with, addmod, ecrecover, keccak256, mulmod, ripemd160, sha256, sha3}, % generic keywords including crypto operations + keywordstyle=[1]\color{blue}\bfseries, + keywords=[2]{address, bool, byte, bytes, bytes1, bytes2, bytes3, bytes4, bytes5, bytes6, bytes7, bytes8, bytes9, bytes10, bytes11, bytes12, bytes13, bytes14, bytes15, bytes16, bytes17, bytes18, bytes19, bytes20, bytes21, bytes22, bytes23, bytes24, bytes25, bytes26, bytes27, bytes28, bytes29, bytes30, bytes31, bytes32, enum, int, int8, int16, int24, int32, int40, int48, int56, int64, int72, int80, int88, int96, int104, int112, int120, int128, int136, int144, int152, int160, int168, int176, int184, int192, int200, int208, int216, int224, int232, int240, int248, int256, mapping, string, uint, uint8, uint16, uint24, uint32, uint40, uint48, uint56, uint64, uint72, uint80, uint88, uint96, uint104, uint112, uint120, uint128, uint136, uint144, uint152, uint160, uint168, uint176, uint184, uint192, uint200, uint208, uint216, uint224, uint232, uint240, uint248, uint256, var, void, ether, finney, szabo, wei, days, hours, minutes, seconds, weeks, years}, % types; money and time units + keywordstyle=[2]\color{teal}\bfseries, + keywords=[3]{block, blockhash, coinbase, difficulty, gaslimit, number, timestamp, msg, data, gas, sender, sig, value, now, tx, gasprice, origin}, % environment variables + keywordstyle=[3]\color{violet}\bfseries, + identifierstyle=\color{black}, + sensitive=true, + comment=[l]{//}, + morecomment=[s]{/*}{*/}, + commentstyle=\color{gray}\ttfamily, + stringstyle=\color{red}\ttfamily, + morestring=[b]', + morestring=[b]" +} + +\lstset{ + language=Solidity, + backgroundcolor=\color{verylightgray}, + extendedchars=true, + basicstyle=\footnotesize\ttfamily, + showstringspaces=false, + showspaces=false, + numbers=left, + numberstyle=\footnotesize, + numbersep=9pt, + tabsize=2, + breaklines=true, + showtabs=false, + captionpos=b +} \lstdefinestyle{mystyle}{ backgroundcolor=\color{backcolour}, @@ -73,6 +107,10 @@ \maketitle +\begin{abstract} + This paper outlines different forms of the common smart contract weakness with the SWC number 124, commonly referred to as "Write to Arbitrary Storage Location". While this paper focuses on applications within the context of Ethereum's EVM and higher-level language Solidity, we will also briefly touch on other research that deals with the Hyperledger Fabric environment. We will begin with a gentle introduction to the Solidity storage layout design that allows this weakness to occur, followed by common forms of exploit, alongside their associated consequences. Finally, we will outline the code characteristics that are detectable by automated tools as well as an exploit sketch. +\end{abstract} + \section{Weakness and consequences} \subsection{Solidity storage layout} @@ -95,9 +133,9 @@ Any unchecked array write is potentially dangerous, as the storage-location of a A trivial example of such a vulnerable write operation is shown in Algorithm~\ref{alg:vuln-write}. -\lstset{style=mystyle} + \begin{algorithm}[H] - \begin{lstlisting}[language=Octave] + \begin{lstlisting}[language=Solidity] pragma solidity 0.4.25; contract MyContract { @@ -124,9 +162,8 @@ In the following example (Algorithm~\ref{alg:pop-incorrect}) the $pop$ function \medspace -\lstset{style=mystyle} \begin{algorithm}[H] - \begin{lstlisting}[language=Octave] + \begin{lstlisting}[language=Solidity] pragma solidity 0.4.25; contract MyContract { @@ -158,19 +195,18 @@ In the following example (Algorithm~\ref{alg:pop-incorrect}) the $pop$ function \label{alg:pop-incorrect} \end{algorithm} -Another weakness that allows arbitrary storage access is unchecked assembly code. Assembly is a powerful tool that allows the developers to get as close to the EVM as they can, -but it may also be very dangerous when not tested correctly. As per the documentation\footnote{\url{https://docs.soliditylang.org/en/latest/assembly.html}, accessed: Oct. 30th 2023}: \textit{"this [inline assembly] +\medspace + +Another weakness that allows arbitrary storage access is unchecked assembly code. Assembly is a powerful tool that allows the developers to get as close to the EVM as they can, but it may also be very dangerous when not used correctly. As per the documentation\footnote{\url{https://docs.soliditylang.org/en/latest/assembly.html}, accessed: Oct. 30th 2023}: \textit{"this [inline assembly] bypasses important safety features and checks of Solidity. You should only use it for tasks that need it, and only if you are confident with using it."} -When given access to such lowlevel structures, a programmer can built-in not only weaknesses similar to the ones described previously, but also others, such as overwriting map locations, -contract variables etc. +When given access to such low-level instructions, a programmer can construct not only weaknesses similar to the ones described previously, but also others, such as overwriting map locations, contract variables etc. An example for such a weakness is given in Algorithm~\ref{alg:unchecked-assembly}. \medspace -\lstset{style=mystyle} \begin{algorithm}[H] - \begin{lstlisting}[language=Octave] + \begin{lstlisting}[language=Solidity] pragma solidity 0.4.25; contract MyContract { @@ -211,12 +247,15 @@ An example for such a weakness is given in Algorithm~\ref{alg:unchecked-assembly \label{alg:unchecked-assembly} \end{algorithm} -The contract has a manager mapping, which should be used as a stack. +\medspace + +The contract has a manager mapping, which is intended to be used as a stack. The developer has added the \texttt{setNextManager} function, which should set the top of the stack to the latest user as a manager. -The issue is that the function is implemented in such a way, that the stack would not grow, but the first element would always be overwritten - this arises from the fact that the memory slot +The issue is that the function is implemented in such a way, that the stack does not grow, but the first element is always overwritten - this arises from the fact that the memory slot of the managers mapping does not point to the memory address on the top of the stack, but instead to the base of it. The function is then using this slot address directly, without calculating any offset, overwriting the base of the stack. If social engineeering is applied, an attacker can persuade the owner to set them as a manager, which would result in the weakness being exploited directly and the owner giving up their own management rights. + \subsection{Consequences} The consequences of exploiting an arbitrary storage access weakness can be of different types and severity. @@ -225,15 +264,53 @@ They may also exploit the contract to circumvent authorization checks and drain According to Li Duan et al.~\cite{multilayer}, an attacker may also be able to destroy the contract storage structure and thus cause unexpected program flow, abnormal function execution or contract freeze. +\subsection{Similar yet safe code example} + +Using dynamic arrays is naturally not inherently dangerous, as long as they're used properly. The following version of Algorithm~\ref{alg:pop-incorrect} correctly checks for array length, and thereby prevents the integer underflow of the length value. This code example is not vulnerable to the techniques shown in this paper. + +\medspace + +\begin{algorithm}[H] + \begin{lstlisting}[language=Solidity] + pragma solidity 0.4.25; + + contract MyContract { + address private owner; + uint[] private arr; + + constructor() public { + arr = new uint[](0); + owner = msg.sender; + } + + function push(value) { + arr[arr.length] = value; + arr.length++; + } + + function pop() { + require(arr.length > 0); + arr.length--; + } + + function update(unit index, uint value) { + require(index < arr.length); + arr[index] = value; + } + } + \end{lstlisting} + \caption{Correctly managed array length} + \label{alg:pop-correct} +\end{algorithm} + \section{Vulnerable contracts in literature} One example for vulnerable contracts, which is similar to Algorithm~\ref{alg:pop-incorrect}, is mentioned in the paper by Li Duan et al.~\cite{multilayer}: \medspace -\lstset{style=mystyle} \begin{algorithm}[H] - \begin{lstlisting}[language=Octave] + \begin{lstlisting}[language=Solidity] function PopBonusCode() public { require(0 <= bonusCodes.length); bonusCodes.length--; @@ -248,16 +325,14 @@ One example for vulnerable contracts, which is similar to Algorithm~\ref{alg:pop \label{alg:multilayer-example} \end{algorithm} -We will not go into a detailed explanation, as we already did this in the previous section. +\medspace - -A more sophisticated example is presented in the paper by Sukrit Kalra et al.~\cite{Kalra2018ZEUSAS}: +We will not go into a detailed explanation, as we already did this in the previous section. A more sophisticated example is presented in the paper by Sukrit Kalra et al.~\cite{Kalra2018ZEUSAS}: \medspace -\lstset{style=mystyle} \begin{algorithm}[H] - \begin{lstlisting}[language=Octave] + \begin{lstlisting}[language=Solidity] uint payout = balance/participants.length; for (var i = 0; i < participants.length; i++) participants[i].send(payout); @@ -266,9 +341,13 @@ A more sophisticated example is presented in the paper by Sukrit Kalra et al.~\c \label{alg:zeus-example} \end{algorithm} -The vulnerability here is an integer overflow - as the variable \texttt{i} is dinamically typed, it will get the smallest possible type that will be able to hold the value 0 - that being \texttt{uint8}, which is able to hold positive integers up to 255. +\medspace -Because of this, if the length of the \texttt{participants} arrays is greater than 255, the integer overflows on the 256th iteration and instead of moving on to \texttt{participants[255]}, it reverts back to the first element in the array. As a result, the first 255 paricipants will split all the balance of the contract, whereas the rest will get nothing. +The vulnerability here is an integer overflow - as the variable \texttt{i} is dynamically typed, it will get the smallest possible type that will be able to hold the value 0 - that being \texttt{uint8}, which is able to hold positive integers up to 255. + +\medspace + +Because of this, if the length of the \texttt{participants} arrays is greater than 255, the integer overflows on the 256th iteration and instead of moving on to \texttt{participants[255]}, it reverts back to the first element in the array. As a result, the first 255 participants will split all the balance of the contract, whereas the rest will get nothing. \section{Code properties and automatic detection} @@ -288,22 +367,22 @@ teEther~\cite{teether} employs a similar approach, but instead the authors opt t \medspace -The fuzz-driven approach to vulnerability detection is more abstract, as general-purpose fuzzing tools generally don't have knowledge of the analysed program. For the tool SmartFuzzDriverGenerator~\cite{fuzzdrivegen}, a multitude of these fuzzing libraries can be used. The problem at hand is, however, that the technique cannot interface with a smart contract out of the box. The "glue" between fuzzer and program is called a driver, hence the name of "driver-generator". +The fuzz-driven approach to vulnerability detection is more abstract, as general-purpose fuzzing tools generally don't have knowledge of the analysed program. For the tool SmartFuzzDriverGenerator~\cite{fuzzdrivegen}, a multitude of these fuzzing libraries can be used, although its application is limited to the Hyperledger Fabric permissioned blockchain. The problem at hand is, that the technique cannot interface with a smart contract out of the box. The "glue" between fuzzer and program is called a driver, hence the name of "driver-generator". \medspace -SmartFuzzDriverGenerator aims to automatically generate such a driver by %TODO: I have no idea how it does this actually% +SmartFuzzDriverGenerator aims to automatically generate such a driver by inferring the available APIs from the bytecode. There are multiple approaches to decide the order of available fuzzing steps, including a heuristic based on code complexity (i.e. nested conditions, loops, array operations, etc.), random sequences, and user-generated strategies. \medspace -The Smartian tool~\cite{smartian} attempts to find a middle-ground between static and dynamic analysis by first transforming the EVM bytecode into control-flow facts. Based on this information, a set of seed-inputs is generated that are expected to have a high probability of yielding useable results. Should no exploit be found, the seed-inputs are then mutated in order to yield a higher code coverage. %TODO: This is probably extemely inprecise and should be re-written% +The Smartian tool~\cite{smartian} attempts to find a middle-ground between static and dynamic analysis by first transforming the EVM bytecode into control-flow facts. Based on this information, a set of seed-inputs is generated that are expected to have a high probability of yielding useable results. Should no exploit be found, the seed-inputs are then mutated in order to yield a higher code coverage. \section{Exploit sketch} An exploitation sketch to Algorithm~\ref{alg:pop-incorrect} and to Algorithm~\ref{alg:multilayer-example} is available from Doughoyte~\cite{doughoyte}. \textbf{Checkpoint A} -We assume that the following events have ocurred: +We assume that the following events have occurred: \begin{enumerate} \item the contract MerdeToken\footnote{\url{https://github.com/Arachnid/uscc/blob/master/submissions-2017/doughoyte/MerdeToken.sol}, accessed: Oct. 30th 2023} has been created; \item the investor has set a withdrawal limit of 1 ether, which only they can change; @@ -317,7 +396,7 @@ At this point, an example storage layout as per Doughoyte would be: \lstset{style=mystyle} \begin{algorithm}[H] - \begin{lstlisting}[language=Octave] + \begin{lstlisting} "storage": { // The address of the contract owner: "0000000000000000000000000000000000000000000000000000000000000000": "94b898c1a30adcff67208fd79b9e5a4d339f3cc6d2", @@ -336,6 +415,8 @@ At this point, an example storage layout as per Doughoyte would be: \label{alg:exploit-checkpoint-a} \end{algorithm} +\medspace + \textbf{Checkpoint B} Afterwards, the malicious owner calls the vulnerable function \texttt{popBonusCode()} and the length of the array is set to the max value. This happened, because prior to the underflow, the array length was zero and, to save space, it was omitted from the memory: @@ -343,7 +424,7 @@ Afterwards, the malicious owner calls the vulnerable function \texttt{popBonusCo \lstset{style=mystyle} \begin{algorithm}[H] - \begin{lstlisting}[language=Octave] + \begin{lstlisting} "storage": { "0000000000000000000000000000000000000000000000000000000000000000": "94b898c1a30adcff67208fd79b9e5a4d339f3cc6d2", "0000000000000000000000000000000000000000000000000000000000000001": "948bc7317ad44d6f34f0f0b6e3c8c7bf739ba666fa", @@ -358,43 +439,62 @@ Afterwards, the malicious owner calls the vulnerable function \texttt{popBonusCo \label{alg:exploit-checkpoint-b} \end{algorithm} +\medspace + Increasing the length of the array to the maximum allowed by \texttt{uint256} was important, as this will now allow the owner to pass the requirement set in \texttt{modifyBonusCode} and still use the function for storage modification. +\medspace + \textbf{Checkpoint C} The owner is then able to use \texttt{modifyBonusCode} to increase the fixed withdraw limit to the max \texttt{uint256} value. Had the contract not have this vulnerability, this action should only have been possible through the \texttt{setWithdrawLimit}, which is only available to the investor. +\medspace + In order to overwrite the withdrawal limit, the owner must calculate the hex value to use as a first argument (index) to the function. Since the array \texttt{bonusCodes} underflow is defined in the sixth place in the contract storage, its length is in the fifth storage slot (counting from zero) -The limit is defined at the fourth storage slot. Then, in order to manipulate the withdrawal limit, the owner must convert the address of the length to hexadecimal:\\ + +\medspace + +The limit is defined at the fourth storage slot. Then, in order to manipulate the withdrawal limit, the owner must convert the address of the length to hexadecimal: + +\medspace + \lstset{style=mystyle} \begin{algorithm}[H] - \begin{lstlisting}[language=Octave] - > web3.sha3("0x0000000000000000000000000000000000000000000000000000000000000005", { encoding: 'hex' }) - "0x036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0" + \begin{lstlisting} + $ web3.sha3("0x0000000000000000000000000000000000000000000000000000000000000005", { encoding: 'hex' }) + > "0x036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0" \end{lstlisting} \caption{Exploit - Convert length address to hex} \label{alg:exploit-convert-address} \end{algorithm} -and then just calculate the array index that will wrap around using the formula $2^{256} - H + 4$, where $2^{256}$ is the max \texttt{uint256} value, H is the hex obtained from the previous command and 4 is the offset of the withdrawal limit storage slot from the base of the contract. This, converted to hex, will give the owner the address to use with \texttt{modifyBonusCode}. The Perl snippet below does that:\\ +\medspace + +and then just calculate the array index that will wrap around using the formula $2^{256} - H + 4$, where $2^{256}$ is the max \texttt{uint256} value, H is the hex obtained from the previous command and 4 is the offset of the withdrawal limit storage slot from the base of the contract. This, converted to hex, will give the owner the address to use with \texttt{modifyBonusCode}. The Perl snippet below does that: + +\medspace + \lstset{style=mystyle} \begin{algorithm}[H] \begin{lstlisting}[language=Octave] - \$ perl -Mbigint -E 'say ((2**256 - 0x036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0 + 4)->as_hex)' - 0xfc949c7b4a13586e39d89eead2f38644f9fb3efb5a0490b14f8fc0ceab44c254 + $ perl -Mbigint -E 'say ((2**256 - 0x036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0 + 4)->as_hex)' + > 0xfc949c7b4a13586e39d89eead2f38644f9fb3efb5a0490b14f8fc0ceab44c254 \end{lstlisting} \caption{Exploit - Convert limit offset to address} \label{alg:exploit-convert-offset} \end{algorithm} +\medspace + As a result, the memory now looks like this: \medspace \lstset{style=mystyle} \begin{algorithm}[H] - \begin{lstlisting}[language=Octave] + \begin{lstlisting} "storage": { "0000000000000000000000000000000000000000000000000000000000000000": "94b898c1a30adcff67208fd79b9e5a4d339f3cc6d2", "0000000000000000000000000000000000000000000000000000000000000001": "948bc7317ad44d6f34f0f0b6e3c8c7bf739ba666fa", @@ -409,8 +509,17 @@ As a result, the memory now looks like this: \label{alg:exploit-checkpoint-c} \end{algorithm} +\medspace + \textbf{Checkpoint D} The owner can now call \texttt{withdraw()} with the full amount of ether in the contract and drain it. The investor has not increased the limit at any point. +\section{Conclusion} + +We presented different forms of the common weakness SWC-124: Write to Arbitrary Storage Location and how they might be detected using automated tools. We have shown how a possible exploit may be constructed, and how this can lead to the complete compromise of a smart contract's storage and control flow. We have given multiple attackable and benign code examples to illustrate this weakness. We believe this weakness to be of particular practical relevance, as it is very easy to introduce by accident, and hard to for a developer to spot without advanced knowledge of the underlying mechanisms that cause it. + +As for preventative measures, we would recommend developers not to interact with low-level building blocks like an array's length value or inline assembly instructions if possible, and instead to employ standard library functions when ever available. + + \bibliography{exercise.bib} \end{document}