Hơn 1,2 triệu ứng dụng ethereum đã sử dụng một công cụ bảo mật ít được biết đến để giúp họ tránh các lỗi tốn kém phát sinh từ các dòng mã tự thực thi được gọi là hợp đồng thông minh.
Ra mắt bởi công ty khởi nghiệp Amberdata công nghệ ethereum vào hồi tháng 10, công cụ miễn phí có sẵn cho bất kỳ ai trong cộng đồng nói chung để giải thích tính bảo mật của các ứng dụng đang hoạt động trên blockchain ethereum. Hợp đồng thông minh với các lỗi đã bị khai thác đã dẫn đến những tổn thất lớn, thậm chí là đến hàng trăm triệu.
Dịch vụ tự động quét các lỗ hổng phổ biến được tìm thấy trong mã hợp đồng thông minh và tạo ra xếp hạng bằng chữ cái (ví dụ: A, B hoặc C) để bảo mật cho ứng dụng phi tập trung (dapp).
Tính năng này là một trong nhiều công cụ khuyến khích thực tiễn tốt nhất và tăng tính minh bạch giữa các nhà phát triển dapp và người dùng cuối trong hệ sinh thái ethereum.
Hơn nữa, đó là một tính năng đã xuất hiện trong không gian web rộng hơn được một thời gian. Trình duyệt quan tâm đến quyền riêng tư DuckDuckGo gần đây đã ra mắt tiện ích mở rộng trình duyệt Chrome được sử dụng để xếp hạng các trang web (không phải dapps) với cấp độ chữ cái, cung cấp cho người dùng cái nhìn sâu sắc hơn về dịch vụ quản trị viên tốt hoặc kém như thế nào để bảo vệ quyền riêng tư của người dùng.
“Tầm nhìn của chúng tôi là nâng cao tiêu chuẩn vào niềm tin trực tuyến”, DuckDuckGo viết trong một bài đăng trên blog từ tháng 1 năm 2017.
Tương tự, tầm nhìn đằng sau công cụ phân loại bảo mật của Amberdata, như được nhấn mạnh bởi Giám đốc điều hành Amberdata, Shawn Doulass trong một thông cáo báo chí, là cung cấp “quyền truy cập lớn hơn và tăng cường khả năng hiển thị trong các hợp đồng thông minh”.
Ông nói thêm:
“Chúng tôi hy vọng rằng bằng cách cung cấp các công cụ này cho cộng đồng, chúng tôi có thể giảm bớt sự phụ thuộc bên ngoài và cho phép cộng đồng phát triển nhanh hơn và an toàn hơn”.
Các xếp hạng
Nhưng chính xác là như thế nào mà những ứng dụng trên ethereum này được xếp hạng trên Amberdata?
Chỉ ra 13 loại lỗ hổng được quét tự động bởi chương trình, Amberdata CTO Joanes Espanol đã ví từng loại này với “đèn báo động cơ trên bảng điều khiển [xe hơi]”.
“Nó chỉ đơn giản là tôi cần kiểm tra những gì xảy ra với chiếc xe. Bất kỳ điều nào trong số lỗi này đều có thể dẫn đến lỗi bảo mật”, Espanol đã giải thích cho CoinDesk.
Và càng nhiều lỗi bảo mật được phát hiện bởi chương trình quét lỗi của Amberdata, thì chữ cái trong bảng chữ cái mà một dapp sẽ nhận được càng thấp. Các xếp hạng này nằm trong khoảng từ A + đến F.
Nhưng họ không phụ thuộc một cách nghiêm khắc vào số lỗi bảo mật. Mỗi lỗi trong số 13 lỗ hổng có mức độ nghiêm trọng khác nhau, Espanol giải thích, điều đó sẽ ảnh hưởng đến lớp cuối cùng của dapp. Hai lỗ hổng mức độ nghiêm trọng thấp và phổ biến được đánh dấu bởi Espanol bao gồm “cuộc gọi ủy nhiệm đến một địa chỉ do người dùng cung cấp” và “cuộc gọi tin nhắn với hợp đồng bên ngoài”.
Trường hợp sau có thể gây ra rủi ro bảo mật tiềm ẩn nếu một dapp, thay vì khép kín trong một hợp đồng thông minh, kêu gọi thêm các hợp đồng bổ sung sở hữu mã lỗi.
Tương tự, một cuộc gọi ủy nhiệm là một hoạt động khác thường được sử dụng để phân chia mã hợp đồng thông minh thành nhiều hợp đồng phụ, do đó, bất kỳ nâng cấp cần thiết nào cho phần mềm đều có thể được thực hiện mà không cần chấm dứt toàn bộ ứng dụng.
“Đó là mặt tốt của các cuộc gọi ủy nhiệm. Nhưng mặt xấu là bây giờ với tư cách là chủ sở hữu của hợp đồng, tôi có thể bắt đầu làm những điều xấu. Vì vậy, tôi có thể bắt đầu thế chỗ các hợp đồng, dẫn đến thay đổi hành vi của [ứng dụng ban đầu]”, Espanol giải thích.
Như vậy, với cả hai lỗi, Espanol đã mô tả kiểm toán bảo mật là gửi đi các “cảnh báo”, thay vì chỉ ra các lỗi mã ngay lập tức.
Thật vậy, có một dapp như trên hiện đang tận dụng cuộc gọi tin nhắn và trước đây đã triển khai nâng cấp hợp đồng thông minh bằng cách sử dụng cuộc gọi ủy quyền vào hồi tháng 1 là TrueUSD. Được tạo ra bởi công ty khởi nghiệp blockchain TrustToken, stablecoin được hỗ trợ bằng USD trên ethereum hiện được xếp hạng với chữ C.
Mặc dù điều đó nghe không có vẻ tốt, nhưng nhìn vào các lỗ hổng giảm đi với TrueUSD, kỹ sư bảo mật của TrustToken William Morriss đã nói với CoinDesk trong một cuộc phỏng vấn trước đây, tất cả các mối lo ngại được xác định là thực sự không “nghiêm trọng”.
“Các lỗ hổng được báo cáo rằng đó không phải là cách mà chúng ta có thể bị tấn công. Chúng tôi nhận thức được chúng và khi mọi người mang lỗ hổng tới cho chúng tôi, chúng tôi giải quyết chúng rất nghiêm túc”, Morriss nói.
Xây dựng cụ thể vấn đề về các cuộc gọi tin nhắn, Morriss nói thêm rằng đối với TrueUSD, tất cả các hợp đồng bên ngoài đều được sở hữu và vận hành bởi chính các công ty, trái ngược với các bên thứ ba có tiêu chuẩn bảo mật thấp hơn.
Làm thế nào để được A+
Các lỗi có mức độ nghiêm trọng “cao” sẽ khiến xếp hạng bảo mật của ứng dụng khó hơn vì chúng cho thấy tiềm năng lớn hơn đối với lỗi mã và khai thác.
Một trong những trường hợp phổ biến nhất trong số này, “tràn số nguyên” (integer overflow), cho thấy các hoạt động được thực hiện trong hợp đồng thông minh có thể tạo ra các giá trị vượt quá giới hạn mã, dẫn đến hành vi lập dị, không thể đoán trước, trong trường hợp xấu hơn, có thể dẫn đến mất tiền.
Flipside là “tràn dưới số nguyên”, một lỗ hổng khác của mức độ nghiêm trọng “cao”, theo đó sự đảo ngược chính xác có thể xảy ra và một giá trị dưới phạm vi được xác định tương tự gây ra lỗi đầu ra.
Ngoài ra còn có một số tính năng trong Solidity mà các nhà phát triển dapp nên tránh, theo hệ thống phân loại của Amberdata, bao gồm “suicide()” và “tx.origin.”. Cái sau được Espanol mô tả là “mã bị loại bỏ” có thể bị xóa khỏi ngôn ngữ Solidity hoàn toàn vào một ngày trong tương lai, trong khi trước đây chúng có nguy cơ bị chiếm đoạt bởi bên ngoài để đóng băng tiền của người dùng – để họ không bao giờ có thể lấy lại.
Vì nó không có bất kỳ lỗ hổng nào trong số bốn lỗ hổng này, nên CryptoKitties ethereum dapp nổi tiếng hiện đang có xếp hạng bảo mật A + trên Amberdata. Kỹ sư phần mềm CryptoKitties – Fabiano Soriani cho là do “thực hiện nhiều thử nghiệm nhất có thể”.
Thêm vào đó, các “tài nguyên thụ động” chẳng hạn như tài liệu bằng văn bản và hướng dẫn bằng video về phát triển dapp là không đủ để xây dựng các ứng dụng an toàn trên ethereum, Soriani nói với CoinDesk:
“Khi ai đó điều hành một cuộc kiểm toán, họ chỉ ra nhiều điều cho bạn. Nó là một nguồn tài nguyên bổ sung rất tốt [cho các tài nguyên thụ động] bởi vì các nhà phát triển đến từ một nền tảng truyền thống hơn, không quen thuộc với blockchain”.
“Nó là một loạt các vấn đề mới”
Thật vậy, khi nói đến việc xây dựng các dapps, tầm quan trọng của mã kín, các mã không thể dò được cần phải nhấn mạnh. Lý do cốt lõi cho điều này nhiều gấp hai lần.
Đầu tiên, không giống như các ứng dụng truyền thống, dapps nói chung là các chương trình máy tính nguồn mở và như Morriss giải thích, “một mức độ thận trọng cao” là bắt buộc khi chạy mã “công khai”.
“Nếu có bất kỳ lỗi nào trong một ứng dụng truyền thống, bạn có thể thoát khỏi nó trong vài năm, nhưng nếu bạn có một lỗi trong hợp đồng thông minh, mọi người sẽ tìm thấy nó một cách nhanh chóng và tận dụng nó để phá hủy bạn hoặc vì lợi ích của họ”, Morriss nói.
Thứ hai, dapps trên ethereum chạy độc quyền trên các hợp đồng thông minh. Được mã hóa đặc biệt trong ngôn ngữ lập trình Solidity và được thực thi trong trung tâm thần kinh của blockchain, được gọi là Máy ảo Ethereum (EVM), một điểm mạnh của dapps là chúng có thể thay đổi.
Nhược điểm này là rõ ràng. Các lập trình viên không dễ dàng có thể sửa lỗi hoặc sai sót trong phần mềm một khi được triển khai trên blockchain.
Gọi nó là “lỗi nghiêm trọng” khi bỏ qua kiểm toán bảo mật của bên thứ ba hoặc quét vì lý do này, Morriss nói với CoinDesk, điều quan trọng đối với các nhà phát triển là không để trở thành nạn nhân của “sự ngạo mạn” của chính họ và đảm bảo rằng “các bài kiểm tra đều phải bao trùm mọi mã nhánh của bạn”.
“Với Ethereum, nó là một loạt các vấn đề mới mà mọi người không nhận thấy khi mã hóa trong Solidity”, Espanol nhấn mạnh với CoinDesk.
- 93% Dapp Ethereum không có giao dịch ngày hôm nay
- Top 5 Dapp Ethereum dựa theo số lượng người dùng hoạt động hàng ngày
Thủy Tiên
Theo Tapchibitcoin.vn/ Coindesk