From 202d045b5614277515d839c39292f99be47aab7e Mon Sep 17 00:00:00 2001 From: Makoto Inoue <2630+makoto@users.noreply.github.com> Date: Thu, 16 Aug 2018 16:50:56 +0100 Subject: [PATCH] Self audit (#161) * Add self audit report * Add a disclaimer --- doc/Conference.dot | 42 +++++++++ doc/Conference.png | Bin 0 -> 99186 bytes doc/SelfAuditV084.md | 208 +++++++++++++++++++++++++++++++++++++++++++ package.json | 4 +- 4 files changed, 253 insertions(+), 1 deletion(-) create mode 100644 doc/Conference.dot create mode 100644 doc/Conference.png create mode 100644 doc/SelfAuditV084.md diff --git a/doc/Conference.dot b/doc/Conference.dot new file mode 100644 index 0000000..d6b9d8e --- /dev/null +++ b/doc/Conference.dot @@ -0,0 +1,42 @@ +strict digraph { + constructor + registerWithEncryption [color=lilac] + registerInternal [color=gray] + RegisterEvent + register [color=lilac] + require + withdraw [color=purple] + transfer + WithdrawEvent + totalBalance [color=yellow] + isRegistered [color=yellow] + isAttended [color=yellow] + isPaid [color=yellow] + payout [color=yellow] + payback + PaybackEvent + cancel + CancelEvent + clear [color=purple] + ClearEvent + setLimitOfParticipants + changeName + attend + AttendEvent + registerWithEncryption -> registerInternal + registerWithEncryption -> RegisterEvent + register -> registerInternal + register -> RegisterEvent + registerInternal -> require + withdraw -> require + withdraw -> transfer + withdraw -> WithdrawEvent + payback -> PaybackEvent + cancel -> CancelEvent + clear -> require + clear -> transfer + clear -> ClearEvent + attend -> require + attend -> AttendEvent +} + diff --git a/doc/Conference.png b/doc/Conference.png new file mode 100644 index 0000000000000000000000000000000000000000..a023c5bdb7f8ed2287893c61b4f2125d4664486a GIT binary patch literal 99186 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 z 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 PET?! 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 + - [Ext] registerWithEncryption ($) + - [Ext] register ($) + - [Int] registerInternal + - [Ext] withdraw + - [Pub] totalBalance + - [Pub] isRegistered + - [Pub] isAttended + - [Pub] isPaid + - [Pub] payout + - [Ext] payback + - [Ext] cancel + - [Ext] clear + - [Ext] setLimitOfParticipants + - [Ext] changeName + - [Ext] attend + +$ surya describe contracts/GroupAdmin.sol + + GroupAdmin (Ownable) + - [Pub] grant + - [Pub] revoke + - [Pub] getAdmins + - [Pub] numOfAdmins + - [Pub] isAdmin +``` + +And this is the dependency graph + +![](./Conference.png) + +### The flow of the contract. + +The smart contract is a very simple contract similar to any crowdsale and flows in the following order. + +``` +deploy => register(WithEncryption) => attend => payback => withdraw => clear +``` + +- The main contract is called `Conference.sol` which inherits from `Distructible`, `Ownnable` and `GroupAdmin`. +- The `Conference` contract is configurable at deployment time to set event `name`, `number of participants`, `cooling period` and `deposit amount`. +- If a public key is given at the deployment type, it enables the user to input their full name which is encrypted with the public key. +- The event name is configurable until users start registering. +- The contract owner (= event owner) can increase/decrease the number of participants until the event ends. +- When the user registers, users are expected to provide the twitter handle. +- If an encrypted full name of the participant is passed at `registerWithEncryption` it is stored in the event log, which the owner of the private key can decrypt using `script/decrypt_fullname.js`. +- The participants can register even during check-in is in place. If the contract owner wants to prevent people from registering, the contract owner should call `setLimitOfParticipants` to lower the number of participants so that no more users can register. +- The check-in is done by either the event owner or admins. The event owner can grant/revoke admin rights. +- The event ends when the contract owner either call `payback` or `cancel` function. +- When the `payback` is called, it calculates the `payout` amount which attendees can `withdraw`. +- In the case of `cancel` all participants who registered the event can withdraw his/her. +- The attendees should be withdrawing their payout within the cooling period (the default is one week). After the cooling period, the owner can call `clear` function to transfer any remaining balance from the contract to the owner address. + +### Some decision behind the architectural choice. + +#### Deploying each contract per event. + +A new contract needs to be deployed for each event, which incurs some cost at each deploy. +This makes it relatively expensive to use for a small number of participant especially when the gas price or Ether price is expensive. However, this will allow us to constantly update and refactor the contract to be up to date without having complex upgradability strategy. + +#### No strict time dependencies. + +The current contract does not contain any information about the event start and ends time as real events often do not have strict deadlines on participation. Also, the current unstable nature of Ethereum mainnet occasionally make it difficult (or too expensive) to interact with the contract in a timely manner so it often comes down to the event owner to decide when it ends the event. The only exception is `cooling period` which last for a week by default. Having the cooling period is mainly to encourage users to withdraw deposits as soon as possible so that users can avoid possible loss of funds if any bugs or vulnerabilities are found (or the deployment account is compromised). Please refer to [this blog post](https://medium.com/@makoto_inoue/running-everyday-dapp-when-ethereum-is-under-pressure-2c5bf4412c13) for the user impact when Ethereum network is under performance pressure. + +#### Pull over Push + +The users need to interact with the smart contract twice, at registration and at withdrawal. The need to manually withdraw fund is an inconvenience to the users but this is to avoid the potential reentrancy attack. Please refer to [this blog post](https://medium.com/@makoto_inoue/a-smartcontract-best-practice-push-pull-or-give-b2e8428e032a) for how this decision was made. + +## History of vulnerabilities + +BlockParty has encountered multiple bugs though nothing has been exploited yet with the exception of [the author's deployment account being compromised](https://medium.com/@makoto_inoue/a-postmortem-on-the-blockparty-deployment-account-security-issue-35ad52d7f911) leading to a loss of ETH 1. To see the full detail of past security issues, please refer to the [github issues](https://github.com/makoto/blockparty/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3Asecurity++label%3Abug). + +The three major vulnerabilities are described in this chapter. + +- 1. Party Crasher +- 2. Reentrancy +- 3. Cancel and gone + +### [Party crasher](https://github.com/makoto/blockparty/issues/23) + +- Summary: any user can change the limit of participants +- Cause: Forgot to put `ownerOnly` on `setLimitOfParticipants` function +- When: 2016 Sep +- How it was found?: Makoto found it while showing the code to [Manuel Araoz](https://twitter.com/maraoz) at a security meetup during DevCon2. + +### [Reentrancy bug](https://github.com/makoto/blockparty/issues/45) + +- Summary: a malicious contract can re-enter +- Cause: Changing a state after transferring funds +- When: 2017 Feb +- How it was found?: [Daniele Carmelitti](https://github.com/danielitti) spotted while Makoto was showing the code at CodeUp. + +### [Cancel and gone](https://github.com/makoto/blockparty/issues/81) + +- Summary: Anyone can withdraw if the event is canceled +- Cause: Invalid condition after refactoring +- When: 2017 Sep +- How it was found?: [Will Harborne](https://twitter.com/will_harborne) raised the vulnerability issue after chatting with Makoto at a pub. + +## Static analysis + +### Prior to the auditing. + +I followed the excellent guide of Trail of bits [How to prepare for a security audit](https://blog.trailofbits.com/2018/04/06/how-to-prepare-for-a-security-audit/). + +The followings are the quick checklist. + +- Enable and address compiler warnings => All solium errors and warnings are fixed +- Increase unit and feature test coverage => Current coverage is 98% +- Remove dead code, stale branches, unused libraries, and other extraneous weight. => Deleted most dead branches. + +### Static analysis using off the shelf tools and services. + +- Securify.ch = No error was reported. +- SmartCheck = No error was reported. The full report is [here](https://tool.smartdec.net/scan/a51c4105dd0548d98495da1bac37dffa). +- Oyente = The latest solc supported version is 0.4.17 hence could not test. +- [mythril](https://github.com/ConsenSys/mythril) = The current version (0.18.6) seems to support only sol 0.4.23. Temporarily downgraded to the `0.4.23` and tried it manually. The full log is [here](https://gist.github.com/makoto/62542bafe6e4e19bdee7070acf56a1f0). There are a lot of duplicate errors against undecrypted functions (eg: `_function_0x05f203d9`) which make it hard to point to the exact location of the vulnerabilities. The followings are the notable warnings. + +``` +==== Integer Overflow ==== +Type: Warning +Contract: Unknown +Function name: changeName(string) +PC address: 9318 +A possible integer overflow exists in the function `changeName(string)`. +-- +==== Transaction order dependence ==== +Type: Warning +Contract: Unknown +Function name: withdraw() +PC address: 5265 +A possible transaction order independence vulnerability exists in function withdraw(). The value or direction of the call statement is determined from a tainted storage location + +-------------------- +In file: contracts/Conference.sol:142 + +participant.addr.transfer(payoutAmount) +-- +==== Dependence on predictable environment variable ==== +Type: Warning +Contract: Unknown +Function name: clear() +PC address: 5637 +In the function `clear()` the following predictable state variables are used to determine Ether recipient: +- block.timestamp + +-------------------- +In file: contracts/Conference.sol:220 + +owner.transfer(leftOver) +``` + +Both `changeName` and `clear` can be only called by admins so less of the issue. Currently contacting mythril team what is the meaning for `Transaction order dependence` warning. + +## Manual audit results. + +It is very difficult to audit my own code as I have seen it many many times. I could not find any obvious flows but there are more than a few inefficient codes and some logical flaws + +### Conference.sol + +- line 7: `string public name;` can be bytes32 to save storage cost (or no need to store within the contract). Even though this is not necessary, it is convenient to be able to inspect the contract name from something like Etherscan so left as is. +- line 20: Ues of `participantsIndex` to access to each participant increases the number of calls. There is [a stale PR](https://github.com/makoto/blockparty/pull/95) which can fix the issue. +- line 26: Marking each participant at `bool attended;` is not performant and can cost lots of gas if the number of participants is big. This is tracked at [github issue](https://github.com/makoto/blockparty/issues/160) +- line 103: It allows people to register without an encrypted full name. It is a non-issue as event owner can reject people who did not provide the full name. + +### zeppelin/ownership/Ownable.sol + +- line 38: The owner can be transferred into wrong address or empty address by mistake = Tracked [here](https://github.com/makoto/blockparty/issues/162) + + +### Potential Logical flaws + +#### Twitter account can be faked + +The twitter field is just a plain text so anyone can put fake id. This is usually not the case as event owner can simply reject the user if they put fake twitter account. The strict KYC can be deployed off-chain, not necessary to be done on-chain. + +#### Event owner could maliciously block participants to join by controlling limitOfParticipants + +This is a feature to close the event registration. + +#### Event owner can cheat. + +Currently, a contract owner has strong power to mark who attended and who did not attend. It is possible for event owners not to mark certain users who he/she does not like. For this reason, the creation of event is currently not open to everyone (unless someone downloads the project from GitHub and deploys on their own [which has been done in the past](https://blockparty.polynom.com/) but with the help of the author). + +#### Participants may try to deceive other participants to increase the payout + +It is possible though earning small extra payout does not give enough motivation to do so as long as the deposit is not significant. \ No newline at end of file diff --git a/package.json b/package.json index ab89767..fba39e2 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,8 @@ "test": "truffle migrate && truffle test --network test", "dev": "webpack-dev-server -d --inline --hot", "coverage": "./node_modules/.bin/solidity-coverage", - "build-contracts": "sol-merger './contracts/*.sol' ./build" + "build-contracts": "sol-merger './contracts/*.sol' ./build", + "solgraph": "solgraph contracts/Conference.sol > doc/Conference.dot && dot -Tpng doc/Conference.dot -o doc/Conference.png" }, "repository": { "type": "git", @@ -106,6 +107,7 @@ "react-dev-utils": "^0.2.1", "recursive-readdir": "2.1.0", "rimraf": "2.5.4", + "solgraph": "^0.3.2", "solidity-coverage": "^0.5.5", "solium": "^1.1.7", "strip-ansi": "3.0.1",