Hackers of India

Shifting left blockchain development for safer DApps

By  Dhanith Krishna  on 07 Aug 2023 @ C0c0n


Presentation Material

AI Generated Summarymay contain errors

Here is a summarized version of the content:

Identity and Purpose

The speaker is an expert in content summarization, and will discuss security considerations for decentralized applications (DApps) built on blockchain technology.

Main Points

  1. Static Code Review: While static code review can identify basic vulnerabilities, it cannot detect logic problems or access control issues.
  2. Dynamic Analysis: Dynamic analysis, the deployment of smart contracts on a test network and manual testing against various attack possibilities is a powerful technique for identifying business logic-related problems.
  3. Fuzzing: Fuzzing, applying injection payloads to test contracts against a large amount of inputs, is another effective method for identifying unknown vulnerabilities.
  4. DevOps Mindset: Integrating security tools into the development pipeline can be challenging due to false positives and pipeline build failures. A balance between automation and human intervention is necessary.
  5. Blockchain-Specific Tools: Using blockchain-specific tools like Sether, along with traditional security tools, can help identify vulnerabilities more effectively.
  6. Monitoring Controls: Adequate monitoring controls, including web application firewalls and blockchain application firewalls, are essential for deployed DApps.
  7. Node Security: Node security is crucial, and nodes in the peer-to-peer network should be adequately protected, hardened, and updated regularly.
  8. Monitoring: Monitoring complex blockchain solutions is evolving, but it’s essential to monitor transactions and application logs to identify anomalies.

Closing Thoughts

  1. DApps have a wider attack surface than traditional applications.
  2. Smart contract security is not enough; security must be applied across all layers, including web2 and web3.
  3. Adopting DevOps practices into the development lifecycle can help create inherently secure software in a cost-efficient manner.