Bảo mật hợp đồng thông minh: Phương pháp tiếp cận SDLC linh hoạt Thông minh dữ liệu PlatoBlockchain. Tìm kiếm dọc. Ái.

Bảo mật hợp đồng thông minh: Phương pháp tiếp cận SDLC nhanh nhẹn 

Thơi gian đọc: 10 phút

Blockchain được coi là một sổ cái phi tập trung và chống giả mạo. Nhưng sổ cái chống giả mạo này rất dễ bị tấn công và lợi dụng. Tính phi tập trung, vốn là một trong những ưu điểm mạnh nhất của Blockchain, lại là một trong những nhược điểm. 

Chà, điều đó tốt, nhưng còn SDLC thì sao? 

Phương pháp tiếp cận vòng đời phần mềm mà chúng ta sắp thảo luận dựa trên việc phân loại các lỗ hổng bảo mật trong hợp đồng thông minh thành nhiều giai đoạn. 

Trong phần đầu tiên, chúng tôi đã trình bày các vấn đề bảo mật trong các hợp đồng thông minh. Và trong phần tiếp theo, chúng tôi thảo luận về các giải pháp của nó được chia thành bốn giai đoạn; Thiết kế bảo mật, Triển khai bảo mật, Kiểm tra trước khi triển khai và cuối cùng là Giám sát và Phân tích. 

PHÂN TÍCH VẤN ĐỀ AN NINH TRONG HỢP ĐỒNG THÔNG MINH 

Hợp đồng thông minh dễ bị tấn công và khai thác. Các hợp đồng này đồng nghĩa với các thỏa thuận pháp lý trong thế giới thực chạy độc lập dựa trên các điều khoản của blockchain gốc. 

Nhưng bạn có nghĩ rằng ngay cả những blockchain gốc đó cũng có thể chịu trách nhiệm về các mối đe dọa bảo mật tiềm ẩn trong các hợp đồng thông minh? Dưới đây, chúng tôi trình bày một số đặc điểm của Blockchain giống nhau:

Phân cấp: Nó được coi là một trong những ưu điểm của các giao thức dựa trên blockchain. Nhưng những kẻ tấn công đã nghĩ ra một cách để biến đặc điểm tích cực này thành tiêu cực. 

Các tác nhân độc hại có thể tạo danh tính giả để phát triển và triển khai hợp đồng thông minh. Đôi khi, thật khó để xác định một hợp đồng dễ bị tấn công vì chỉ địa chỉ công khai (hoặc) các khóa công khai mới có sẵn trên các blockchain công khai. 

Mã nguồn mở: Điều này có thể làm bạn ngạc nhiên, nhưng có, nói chung, hầu hết các mã hợp đồng thông minh đều là mã nguồn mở. 

Giả sử, trong trường hợp của Máy ảo Ethereum (EVM), mã bytecode của nó luôn ở chế độ công khai. Và một số trình dịch ngược Solidity có thể giúp bạn lấy địa chỉ hợp đồng thông minh và mã Solidity. Sự tiếp xúc của mã nguồn làm cho tính năng này trở thành lợi thế cho những kẻ tấn công. 

Nền tảng blockchain chưa được giải quyết: Đối với một nhà phát triển, yêu cầu chính là làm quen với nền tảng phát triển. Có nhiều nền tảng blockchain mới hoặc kém phát triển, vì vậy các nhà phát triển không thể phát triển kiến ​​thức chuyên sâu về các hoạt động trên blockchain. 

Sự không nhất quán này ảnh hưởng đến các hợp đồng thông minh do thiếu đồng bộ. Những sai sót trong nền tảng blockchain vẫn chưa được chú ý do sự phát triển liên tục của nó. 

Giao dịch không xác định: Ở điểm đầu tiên, chúng ta đã thảo luận về danh tính ẩn danh; tương tự, các giao dịch trên blockchain không được tiết lộ. Không thể theo dõi các giao dịch, dẫn đến nhiều hoạt động bất hợp pháp. Khi có liên quan đến các giao dịch tài chính, bất kỳ vấn đề bảo mật nào cũng có thể dẫn đến tổn thất tài chính lớn. 

GIẢI PHÁP BẢO MẬT HỢP ĐỒNG THÔNG MINH

Bây giờ, đi trước về bảo mật hợp đồng thông minh, chúng tôi có thể so sánh tất cả các bước cần thiết cần thiết để bảo mật hợp đồng thông minh với sự phát triển của nó. Như trong phát triển phần mềm truyền thống, chúng ta có xu hướng tuân theo một vòng đời phát triển; tương tự, chúng ta có thể phân loại vòng đời phát triển hợp đồng. 

Vòng đời phát triển hợp đồng thông minh có thể được chia thành bốn giai đoạn: thiết kế bảo mật, triển khai bảo mật, thử nghiệm trước khi triển khai, giám sát và phân tích.

tổng quan về các chủ đề bảo mật từ quan điểm vòng đời hợp đồng thông minh
tổng quan về các chủ đề bảo mật từ quan điểm vòng đời hợp đồng thông minh

1. THIẾT KẾ BẢO MẬT 

Giai đoạn đầu tiên này gói gọn trong ba chủ đề; nguyên tắc thiết kế, mẫu thiết kế và mô hình bảo mật (như trong hình trên). Trọng tâm chính của các chủ đề này là thiết kế hợp đồng và cách ngăn chặn các mối đe dọa bảo mật. 

NGUYÊN LÝ THIẾT KẾ

Các nguyên tắc thiết kế là những ý tưởng cơ bản để thiết kế các hợp đồng thông minh an toàn trên blockchain. Có năm nguyên tắc thiết kế cần thiết cho hợp đồng: Chuẩn bị cho sự thất bại, Triển khai cẩn thận, Giữ cho hợp đồng đơn giản, Luôn cập nhật và Phải biết về các thuộc tính blockchain. 

Bây giờ, bạn có thể nghĩ, làm thế nào họ sẽ giúp tạo ra một hợp đồng thông minh an toàn? 

Hãy thực hiện bất kỳ một trong các nguyên tắc ở trên, chẳng hạn như "Chuẩn bị cho sự thất bại", điều này có nghĩa là trong trường hợp không có các kế hoạch vá lỗi, hợp đồng sẽ có thể phản hồi các lỗi. Và nếu bất kỳ cuộc tấn công nào xảy ra, hợp đồng sẽ có thể tạm dừng để tránh bất kỳ tổn thất nào tiếp theo. 

MẪU THIẾT KẾ

Trong thiết kế phần mềm, các mẫu thiết kế là các giải pháp có thể được sử dụng lại để giải quyết một vấn đề. 

Nếu chúng ta lấy một ví dụ về Ethereum, có sáu mẫu bảo mật; Kiểm tra-hiệu ứng-tương tác, Dừng khẩn cấp, Tắt tiếng, Tăng tốc, Giới hạn tốc độ và Giới hạn cân bằng.  

Chúng tôi có thể sử dụng các mẫu bảo mật này để giải quyết các vấn đề bảo mật trong chuỗi khối như lỗ hổng bảo mật gần đây có thể được xử lý bởi mẫu Mutex. 

Đồng thời, mẫu dừng khẩn cấp có thể giúp chúng tôi chấm dứt việc thực hiện hợp đồng nếu hợp đồng bị ảnh hưởng bởi lỗ hổng bảo mật. 

MÔ HÌNH BẢO MẬT

Có thể có sự khác biệt giữa mã đã phát triển và mã bắt buộc cho hợp đồng vì Solidity được sử dụng để tạo hợp đồng; ngôn ngữ này đáp ứng đầy đủ Turing, nhưng nó dễ xảy ra lỗi. 

Hình trên cho thấy giai đoạn phụ này bao gồm hai giai đoạn; thiết kế và thực hiện bảo mật. 

Mô hình bảo mật liên quan trực tiếp đến logic nghiệp vụ; vì các thông số kỹ thuật có nguồn gốc từ doanh nghiệp, logic có thể được phân loại theo ngữ nghĩa không có lỗi. Điều này giúp sau này trong quá trình xác minh chính thức được thực hiện để giảm thiểu các lỗ hổng bảo mật. 

2. THỰC HIỆN BẢO MẬT

Trong phần này, chúng tôi sẽ đề cập đến hai trong ba chủ đề; Bảo vệ

Mẫu phát triển và bảo mật, vì chúng tôi đã đề cập đến mô hình bảo mật trong giai đoạn trước.

PHÁT TRIỂN BẢO MẬT

Phần này sẽ xem cách có thể tránh được các lỗ hổng trong quá trình thực hiện hợp đồng. 

Trên nền tảng Ethereum, chúng tôi có các EIP bảo mật (đề xuất cải tiến Ethereum) - các đề xuất để chống lại các vấn đề bảo mật trên Ethereum nền tảng. Do đó, các EIP này là đáng chú ý để thực hiện các hợp đồng thông minh một cách an toàn. 

MẪU BẢO MẬT

Các mẫu đóng vai trò là nguồn gốc cho các tài liệu mới. Các mẫu hợp đồng thông minh với các tham số hoạt động kết nối thỏa thuận pháp lý với mã thực thi. 

Trong bối cảnh với bảo mật hợp đồng thông minh, có thể trích xuất các mẫu hợp đồng tiêu chuẩn với các tham số bảo mật được nâng cấp, chẳng hạn như các mẫu bảo mật và thư viện bảo mật. Điều này sẽ làm giảm khả năng xảy ra lỗi trong quá trình viết mã thủ công. 

3. KIỂM TRA TRƯỚC KHI TRIỂN KHAI

Một lần nữa, yêu cầu của giai đoạn này xuất phát từ một trong những lợi thế của hợp đồng thông minh - “Tính bất biến”. 

Khi các hợp đồng thông minh được tạo, không có cách nào để thay đổi chúng. Do đó, bắt buộc phải thực hiện đầy đủ các bài kiểm tra để đảm bảo tính bảo mật của các hợp đồng thông minh trước khi triển khai.

Giai đoạn này bao gồm ba tham số bảo mật cần tuân theo trước khi triển khai hợp đồng thông minh; Xác minh chính thức nghiêm ngặt, Công cụ phân tích mã và Kiểm tra bảo mật. 

KIỂM ĐỊNH HÌNH THỨC RIGOROUS

Xác minh chính thức là một quá trình được xác định rõ ràng, sử dụng lý luận toán học và các chứng minh toán học để xác minh các thuộc tính mong muốn của hệ thống. 

Chúng tôi có thể thực hiện xác minh chính thức về hợp đồng thông minh vì chương trình hợp đồng ngắn và có giới hạn thời gian. Có nhiều cách để chính thức hóa và xác minh hợp đồng thông minh một cách cứng nhắc; một số dựa trên mã hợp đồng và một số khác dựa trên ngữ nghĩa của máy ảo Ethereum (EVM). 

CÔNG CỤ PHÂN TÍCH MÃ

Việc phân tích mã được thực hiện mà không cần thực thi các chương trình. Với mục đích này, chúng tôi sử dụng một số công cụ được gọi là Công cụ kiểm tra bảo mật ứng dụng tĩnh (SAST). Các công cụ này giúp phát hiện ra các lỗi bảo mật trong mã nguồn. 

Việc phân tích được thực hiện bởi các công cụ này có thể bao gồm một hoặc tất cả các bước sau:

(I) Tạo một biểu diễn trung gian (IR), chẳng hạn như cây cú pháp trừu tượng (AST), để phân tích chi tiết. 

(Ii) IR bổ sung với đầy đủ thông tin thu được từ kiểm soát tĩnh hoặc phân tích dòng ngày và các kỹ thuật xác minh chính thức; những kỹ thuật này bao gồm: thực thi ký hiệu, diễn giải trừu tượng và kiểm tra mô hình ký hiệu. 

Nhưng những công cụ nào người ta có thể sử dụng để thực hiện phân tích mã trên Hợp đồng thông minh? 

Mặc dù có nhiều công cụ mà người ta có thể sử dụng để thực hiện phân tích bảo mật, nhưng Oyente là công cụ phổ biến nhất. 

Người nghe có thể được sử dụng để thực hiện phân tích bảo mật cho các hợp đồng thông minh EVM. Nó sử dụng "thực thi biểu tượng" để phát hiện ra bốn lỗi phổ biến; sự phụ thuộc vào thứ tự giao dịch, sự phụ thuộc vào dấu thời gian, các ngoại lệ được xử lý sai và sự gần đây. 

Kiến trúc của Oyente
Kiến trúc của Oyente

Kiến trúc của Oyente cho thấy rằng nó sử dụng mã bytecode và trình bày trạng thái toàn cầu của Ethereum làm đầu vào. 

Một trong những mặt trái của Oyente là nó chỉ phát hiện các lỗ hổng bảo mật. Kỹ thuật thực thi biểu tượng được sử dụng bởi Oyente không khám phá tất cả các đường có thể có. Do đó, nhu cầu về các công cụ khác như Bảo mật và kiểm toán thủ công phát sinh. 

KIỂM TOÁN AN NINH

Chúng ta sẽ bắt đầu phần này, nơi chúng ta đã để lại phần cuối cùng; kiểm toán thủ công. 

Nhưng trước tiên, chúng ta hãy hiểu sự cần thiết của một cuộc kiểm toán bảo mật; có thể là vụ hack Ronin Network hoặc Poly Network, mã chưa được kiểm duyệt là phần mềm dễ bị hack và khai thác nhất. 

Chúng dẫn đến tổn thất tài chính lớn. Trên thực tế, không chỉ kiểm toán dự án Web3 của bạn, mà việc kiểm tra dự án bởi các chuyên gia chuyên môn cũng rất quan trọng vì nó phụ thuộc vào khả năng chuyên môn của kiểm toán viên để thực hiện kiểm tra bảo mật. 

Một lần nữa, tìm những chuyên gia chuyên nghiệp ở đâu? Bạn không cần phải đi bất cứ đâu để tìm kiếm các kiểm toán viên đáng tin cậy; nhấp chuột https://t.me/quillhash để liên lạc với một trong số họ! 

Kiểm toán hợp đồng thông minh lý tưởng là sự kết hợp giữa phân tích mã thủ công và tự động; như chúng ta đã thảo luận ở điểm trước, mặc dù sau khi phân tích mã tự động từ các công cụ như Oyente, vẫn có khả năng xuất hiện các lỗ hổng không xác định trong hợp đồng. 

Do đó, để khắc phục điều đó, kiểm toán viên bảo mật có thể phân tích thủ công mọi dòng mã và kiểm tra chúng để chống lại các lỗ hổng tiềm ẩn. 

4. THEO DÕI VÀ PHÂN TÍCH

Hãy nhớ nguyên tắc không ngừng phát triển của Blockchain mà chúng ta đã thảo luận ban đầu? 

Giai đoạn này dựa trên cùng một chủ đề; khi hợp đồng đã được triển khai và chạy, một số lỗ hổng chưa được chú ý trong các giai đoạn trước có thể xảy ra do các bản phát hành mới và cập nhật thường xuyên sau này làm cho hợp đồng kém hiệu quả hơn. 

Chúng tôi có thể thực hiện; tiền thưởng lỗi, giám sát bảo mật và phân tích hậu kỳ để vượt qua những rào cản này. 

TIỀN THƯỞNG LỖI

Khi chúng tôi đang xem xét các vấn đề bảo mật sau triển khai với các hợp đồng, Bug Bounties có thể hữu ích. Kỹ thuật xác minh chính thức đã thảo luận trước đây là kỹ thuật phân tích tĩnh. Mặt khác, Bug bounty là một kỹ thuật phân tích động. 

Khái niệm đằng sau Bug bounty rất đơn giản; tin tặc phát hiện ra lỗi và đổi lại, họ được trả bằng một số phần thưởng tài chính. Trông giống như một đôi bên cùng có lợi, phải không? Nhưng nó không phải!

Bắt ở đây là; rằng giá trị của lỗi có thể cao hơn tiền thưởng trên thị trường xám và khả năng là tin tặc có thể khai thác hoặc bán lỗi để được giá cao. 

Đôi khi, chủ dự án từ chối trả tiền thưởng trừ khi lỗi được xác nhận; tin tặc cũng lo lắng về sự không chắc chắn của các khoản thanh toán sau khi tiết lộ lỗi. 

Để khắc phục điều này, một khung tiền thưởng lỗi đã được đề xuất, được gọi là “Hydra”. 

Hydra sử dụng công nghệ lỗ hổng khai thác có tên là lập trình phiên bản N (NNVP) như một hệ thống tiền thưởng lỗi trên blockchain. 

Khung Hydra với các đầu
Khung Hydra với các đầu

THEO DÕI AN NINH

Chúng tôi có thể sử dụng phân tích mã tĩnh để phát hiện ra các lỗ hổng bảo mật, nhưng phương pháp này được sử dụng trước khi triển khai các hợp đồng thông minh. 

Nhưng để tìm ra lỗi và lỗ hổng tiềm ẩn trong thời gian thực, chúng tôi phải theo dõi và phân tích dữ liệu giao dịch trên blockchain. 

Những lỗ hổng này được phát hiện bằng cách phân tích các hợp đồng thông minh có thể được gọi là lỗ hổng theo dõi. Ba loại hợp đồng nằm ở tâm điểm của các lỗ hổng theo dõi này; 

(I) Hợp đồng tham lam (hợp đồng vẫn tồn tại và khóa Ether vô thời hạn).

(Ii) Hợp đồng hoang đàng (hợp đồng làm rò rỉ tiền một cách bất cẩn cho người dùng tùy ý) và,

(iii) Hợp đồng tự sát (hợp đồng mà bất kỳ người dùng tùy tiện nào cũng có thể giết chết). 

Thậm chí, một khái niệm về các đối tượng Miễn phí Gọi lại Hiệu quả (ECF) đã được đề xuất để xác định các lỗ hổng bằng cách giám sát các đối tượng ECF. 

Trong bối cảnh này, một thuật toán trực tuyến cũng đã được trình bày; nó đã giúp phát hiện ra các lỗ hổng không xác định. Trong cùng một đề xuất, đề xuất thực hiện các hợp đồng thông minh trên Testnet trước khi triển khai trên Mainnet. 

Giám sát UI là một nền tảng giám sát Blockchain sử dụng React.js. Nền tảng này có thể được sử dụng để thực hiện các giao dịch, kiểm tra tài sản và hỏi về trạng thái của Blockchain. 

Chúng tôi không thể dựa vào nền tảng này để giám sát an toàn các hợp đồng thông minh, nhưng vì hầu hết dữ liệu giao dịch liên quan đến hợp đồng thông minh có thể được tìm thấy, chúng tôi có thể phát hiện các vụ khai thác trong thời gian thực bằng cách theo dõi việc chuyển giao tài sản. 

PHÂN TÍCH SAU BÀI HỌC

Phân tích Post Hoc sử dụng dữ liệu giao dịch blockchain để phân tích, khám phá hoặc theo dõi các mối đe dọa tiềm ẩn trên blockchain theo cách hiểu của giáo dân. 

Nếu chúng ta thảo luận về phân tích Biểu đồ, nó được thiết kế như một cách tiếp cận để thu thập tất cả dữ liệu giao dịch (điều này bao gồm các giao dịch nội bộ từ các hợp đồng thông minh). 

Với sự trợ giúp của dữ liệu này, họ đã chuẩn bị ba đồ thị; 

(I) Đồ thị dòng tiền (MFG)

(Ii) Biểu đồ tạo hợp đồng (CCG) và,

(iii) Biểu đồ gọi hợp đồng (CIG)

Trên cơ sở phân tích các biểu đồ nêu trên, nhiều phát hiện mới đã được đề xuất, chẳng hạn như giải pháp cho các vấn đề bảo mật giữa nhiều hợp đồng tương tác với nhau. 

Tổng quan về phân tích đồ thị
Tổng quan về phân tích đồ thị

Kế hoạch Ponzi là một trong những kế hoạch gian lận cổ điển mà thông qua đó, một số lượng lớn tiền có thể được mua lại và ảnh hưởng đến blockchain gốc. Để chống lại sự gian lận này, một cơ chế phân loại đã được đề xuất để phát hiện các âm mưu Ponzi trên Ethereum. 

Cơ chế này sử dụng khai thác dữ liệu và học máy để phát hiện các hợp đồng Ponzi. Quá trình này hoạt động ngay cả khi không có mã nguồn của các hợp đồng thông minh. 

Khung phát hiện lược đồ Ponzi thông minh
Khung phát hiện lược đồ Ponzi thông minh

Chìa khóa

Đó là nó, vâng, đó là nó cho bây giờ!

Nếu bạn đã ở với chúng tôi cho đến bây giờ, chúng tôi sẽ đánh giá cao điều đó. Không kéo dài thêm, trong một lưu ý kết luận, chúng tôi chỉ nói rằng hệ sinh thái của các hợp đồng thông minh là phi tập trung và rất khó để vá lỗi. 

Chúng tôi đã cố gắng phá vỡ tính bảo mật của các hợp đồng thông minh từ quan điểm vòng đời phần mềm. 

Đầu tiên chúng ta đã thảo luận về các tính năng chính của blockchain chịu trách nhiệm về vấn đề bảo mật trong hợp đồng thông minh. Chúng tôi đã phân loại các giải pháp bảo mật cho các hợp đồng thông minh thành bốn giai đoạn. Chúng tôi hy vọng sẽ mang đến nhiều bài viết hơn để giúp bạn vượt qua những thách thức trong hệ sinh thái Web3 đang phát triển. 

Bạn nghĩ gì về cách tiếp cận SDLC linh hoạt này để bảo mật hợp đồng thông minh? Chia sẻ suy nghĩ của bạn trong phần bình luận bên dưới!

46 Lượt xem

Các bài viết Bảo mật hợp đồng thông minh: Phương pháp tiếp cận SDLC nhanh nhẹn  xuất hiện đầu tiên trên Blog.quillhash.

Dấu thời gian:

Thêm từ quillhash