Smart Contract Audit - Security Review for Blockchain Code

Smart Contracts are programs that are executed decentrally by every participant in the network. Therefore, Smart Contracts require more careful checks, as they are economically rewarding targets for hackers. This execution has the characteristic that the resulting outcomes are immutable. Misguided executions, therefore, cannot be undone.

Definition and Explanation of Blockchain Components

Our assessment of Smart Contracts, decentralized Financial Markets, and the Metaverse

Many vulnerabilities in Smart Contracts surprised us and there is no reason to believe that there will be no further exploits. As long as investors decide to invest large sums in complex, but poorly reviewed code, we will continue to see new incidents that have devastating consequences. Methods for the formal verification of Smart Contracts are not yet mature. As new classes of vulnerabilities continue to be found, developers need to stay up-to-date and new tools need to be developed to find them. This top 10 will likely evolve quickly until the Smart Contracts have reached a state of stability.

References

Toyota
dkb
R+V BKK
State Bank of India
Clark
Metzler

Certificates

ISO 27001 Grundschutz
OSCP

Blockchain, Metaverse and DeFi

Our Investigation and Analysis Focal Points

We audit Smart Contracts and decentralized exchanges (DeFi projects) as well as Metaverse components using our own and external frameworks according to NCC standard, on which most blockchain technologies are based.

    Reentrancy Attack

    The Reentrancy attack occurs when external calls of a contract are allowed to make new calls to the source contract before the first execution is completed. For a function, this means that the contract status can change in the middle of execution through a call from an untrusted contract or the use of a low-level function with an external address.

    Access Control

    Typically, one accesses the functionality of a contract through its public or external functions. While insecure visibility settings provide attackers with easy opportunities to access a contract's private values or logic, access restrictions are sometimes more subtle. These vulnerabilities can occur when contracts use the outdated tx.origin to validate the user.

    Arithmetic Problems

    Integer overflows and underflows are not a new class of vulnerabilities. However, they are particularly dangerous in smart contracts, where unsigned integers are widespread and most developers are accustomed to simple int types (which are often just signed integers).

    Unchecked Return Values for Low Level Calls

    One of the deeper features of Solidity are the low-level functions call(), callcode(), delegatecall() and send(). Their behavior in error detection differs significantly from other Solidity functions, as they do not propagate (or throw) and do not lead to a complete reversal of the current execution. Instead, they return a boolean value that is set to false, and the code continues to execute. If the return value of such low-level calls is not checked, this can lead to failures and other undesirable results.

    Denial of Service

    While other types of applications may eventually recover, smart contracts can be taken offline forever by a single one of these attacks. Many paths lead to denials of service, including malicious behavior as the recipient of a transaction, artificially increasing the gas required for the calculation of a function, abuse of access controls to access private components of smart contracts, and the use of confusions. This class of attack encompasses many different variants and will continue to evolve in the coming years.

    Poor Randomness

    Randomness is hard to achieve in Ethereum. While Solidity offers functions and variables that can access seemingly hard-to-predict values, they are usually either more public than they appear or subject to the influence of miners. Since this source of randomness is predictable to some extent, malicious users can generally replicate it and attack the function that relies on its unpredictability.

    Front-Running

    Since miners are always rewarded with gas fees for executing code on behalf of external addresses (EOA), users can set higher fees to have their transactions validated faster. As the Ethereum blockchain is public, anyone can see the content of others' pending transactions. This means that if a certain user reveals the solution to a puzzle or another valuable secret, a malicious user can steal the solution and copy their transaction with higher fees to prevent the original solution. If smart contract developers are not careful, this situation can lead to practical and devastating front-running attacks.

    Time Manipulation

    Sometimes, Smart Contracts need to rely on the current time. This is usually done via block.timestamp or block.height Solidity. Since the miner of a transaction has some leeway in block creation, good Smart Contracts avoid relying heavily on the announced time. Furthermore, it should be noted that block.timestamp is also sometimes (incorrectly) used in the generation of random numbers, as described in 6).

    Short Address Attack

    Short Address Attacks are a side effect, as the EVM itself accepts incorrect padding. Attackers can exploit this by using specially designed addresses to get poorly coded clients to encode arguments incorrectly before including them in transactions. Although this vulnerability has not yet been exploited, it is good evidence of problems arising from the interaction between clients and the Ethereum blockchain.

    Unknown Unknowns

    Ethereum is still in its infancy. The main language for developing Smart Contracts, Solidity, has yet to reach a stable version, and the tools of the ecosystem are still experimental. Therefore, our expertise and experience in testing are particularly important.

Linkable on your website

Certification with Seal

We have developed an effective and comprehensive format for verifiable security that can be directly integrated into your website. This certificate demonstrates a high level of security, data protection, and an awareness of IT security to third parties such as customers or insurance companies.

The certificates we issue demonstrate a high level of IT security at a given point in time following a standard or individual test modules. Depending on the assessment, different test guidelines are chosen and evaluated.

Current Information

Recent Blog Articles

Our employees regularly publish articles on the subject of IT security

Contact

Curious? Convinced? Interested?

Schedule a no-obligation initial consultation with one of our sales representatives. Use the following link to select an appointment:

Please send me the free sample report.
Please send me more information.
I would like to subscribe to the newsletter and receive further information at the email address provided.
I consent to the use and processing of my personal data provided for the purpose of handling my inquiry.*