Done ✅
Tìm hiểu thêm về Solidity:
- Cơ chế ghi log (event) của Solidity và khái niệm topic.
- Error handling.
Hiểu cơ bản về kiến trúc tổng quát của dApp.
Problem 😥
Đa số các dApp là Web3 nên tất nhiên sẽ sử dụng ngôn ngữ JavaScript (mặc dù hiện tại đã chuyển dần sang TypeScript). Mà JS là ngôn ngữ scripting nên sẽ khó áp dụng static analysis.
Vậy không biết là cái tính khả thi của nghiên cứu có còn không ạ 😅.
Không phải khó mà là ít nên vẫn khả thi.
Todo 📋
- Tìm hiểu về IPFS (giao thức lưu trữ phân tán)
- Tìm hiểu về Polygon - (scaling blockchain)
- Tìm hiểu về The Graph
Đọc tiếp hai bài báo:
- Exploring the Attack Surface of Blockchain: A Comprehensive Survey
- AndrAS Automated Attack Surface Extraction for Android Application.
Questions
Tốc độ phát triển của Solidity khá nhanh, có rất nhiều phiên bản của compiler được cập nhật. Điều này có ảnh hưởng gì tới việc nghiên cứu không ạ?
Không đảm bảo được coverage nên đừng lệ thuộc vào công nghệ. Chúng ta cần làm tổng quát hóa, extendable. Target những thứ đơn giản và dễ tiếp cận trước rồi mới tổng quát hóa sau.
Mục tiêu của mình là xây dựng một framework để nhận diện các attack surface của một dApp bất kỳ hay là tổng hợp một danh sách các attack surface có thể có của các dApp ạ.
Về bản chất, dApp chỉ có 1 AS, và trong AS đó có nhiều entry/exit points. Cần phải có một định nghĩa về AS. Cố gắng đi lâu dài đến giai đoạn threat modeling (AS → DFD → Threat model). Các AS là độc lập và có thể dùng cho cả pentest.
Thời gian của seminar là bao lâu?
Khoảng 20-30p (informal, không cần quá serious)
Meeting Notes
- Tìm hiểu về các Terraform và Kubernetes, liệu rằng có thể apply các techniques lên thẳng infrastructures level (bởi vì bản chất dApp nó cũng sẽ được deploy lên các platform này).
- Dùng thử một số static analyzer (Slither, Solhint), quan sát cách nó làm.