Overview
Our goal in Blaize.Security is to secure blockchain ecosystems, ensuring the security of the foundation – the blockchain itself. Recently, we finished several stages of security services for the E Money Network – starting with a blockchain security audit. E Money Network is a Cosmos-based blockchain, which utilizes Evmos for EVM support. We worked directly with the blockchain node, ensuring the security of natively developed Cosmos modules for network Regulation, checking the integrity of the EVM layer, and reviewing the details of governance/validator mechanisms implemented on the Cosmos side of the chain.
Task
During our audit, we processed the E Money Network codebase via several streams of security reviews:
1) Review of the standard vulnerable areas, including but not limited to:
- Storage structure, stored data structure
- Public interfaces and restrictions
- Communication flow and interfaces between different modules
- Global settings of the protocol and local settings of each module, the default settings, and misconfiguration risks
- Modules co-dependencies and 3rd-party dependencies
- Denial-of-Service (DoS) attack surfaces
- Order-dependency and time-dependency of operations
- Validations of parameters of functions/methods/messages and return values
- Golang language-specific checks
and other potential vulnerabilities and attack vectors;
2) Protocol-specific checks – business logic decompositions to find loopholes, deadlocks, hidden backdoors, incorrect math and calculations, malicious code injections, and other flow-related issues;
This stage included the review of all main components of the protocol:
- structure of the Regulations and Lock modules, implementation in terms of Cosmos SDK practices, correct settings and public interfaces
- the genesis of the blockchain – including a check of correct values for both modules and their correlation with the core chain genesis procedure and genesis export procedures
- storage export via standard Cosmos flows
- validators’ onboarding flows, their regulation within the logic of the audited modules
- correctness of Evmos integration
- the integrity of the storage
And other key areas of the protocol
3) Several rounds of manual tests of the protocol over the privately deployed network; verification of txs for both Cosmos and EVM sides;
4) Our own internal security checklists, additionally verified during the testing stage.
Lately, the requirements were extended to include the post-audit procedures and support:
- Post-audit patching for several discovered issues, thus implementing all the recommendations provided during the audit
- Assistance with the upgrade of the supported Evmos version up to the Evmos 12.1.6
- Implementation of the up-to-date network upgrade flows (on the testnet level) – including corrections for storage exporting, initialization of the network with new genesis and Cosmovisor flow integration
- Patching of the testnet launch mechanism including upgrade of the node container.