

Vào ngày 5 tháng 9, tại Diễn đàn bảo mật hội nghị POD do Odaily tổ chức và 36Kr Group Strategy đồng tổ chức, Wu Jiazhi, phó chủ tịch R&D của PeckShield, đã có bài phát biểu với tựa đề "Hợp đồng thông minh chuỗi khối và bảo mật chuỗi công cộng".
Trong bài phát biểu của mình, Wu Jiazhi đã chỉ ra rằng các vấn đề bảo mật trong toàn bộ hệ sinh thái blockchain bao gồm hợp đồng thông minh, cơ sở hạ tầng, vấn đề về ví, vấn đề về nhóm khai thác, v.v.
Anh ấy cũng nói rằng vì có nhiều bên tham gia dự án liên quan đến chuỗi khối nên có nhiều chuỗi công khai khác nhau, chuỗi công khai có nhiều cách triển khai khác nhau và hợp đồng thông minh cũng có nhiều cách triển khai khác nhau.Những vấn đề bảo mật này không thể được giải quyết bởi một công ty mà cần nhiều người hơn. Để làm tốt điều này cùng nhau, vì vậy PeckShield và BCSEC thuộc White Hat Exchange đã cùng nhau thành lập nền tảng lỗ hổng DVP. Nền tảng này đã được ra mắt vào ngày 24 tháng 7 và đã nhận được hơn 1.700 lỗ hổng, hiện đã có 705 nhà cung cấp có liên quan và tổng cộng hơn 10.000 mũ trắng đã được đăng ký. PeckShield hy vọng có thể hợp tác với tất cả các bên liên quan để làm cho toàn bộ hệ sinh thái trở nên tốt đẹp hơn.
Sau đây là toàn văn bài phát biểu của Wu Jiazhi, mời các bạn thưởng thức:
Xin chào quý vị và các bạn, tôi là Wu Jiazhi, tôi xin chia sẻ kết quả nghiên cứu của PeckShield, công ty chúng tôi đã bắt đầu nghiên cứu blockchain vào đầu năm nay, tính đến nay đã được gần nửa năm. Nghiên cứu sớm nhất về thông tin liên quan đến chuỗi khối bắt đầu từ mã và hiện tại phạm vi nghiên cứu đã mở rộng ra tất cả các khía cạnh của toàn bộ hệ sinh thái chuỗi khối. Mọi người đều biết rằng tên của chúng tôi có thể đã bắt đầu với việc phơi bày các vấn đề về hợp đồng thông minh.Sau đó, chúng tôi cũng đã tiết lộ rất nhiều lỗ hổng liên quan đến chuỗi công khai và cũng đã nghiên cứu về phân tích dữ liệu như vị khách trước đã đề cập.Chúng tôi đã gửi một số tin tức liên quan đến dữ liệu.Có phân tích lỗ hổng liên quan đến các trò chơi phổ biến, v.v.
Một trong những mục tiêu của chúng tôi là hy vọng rằng toàn bộ hệ sinh thái có thể hoạt động trong trạng thái an toàn. Chúng tôi tin rằng chuỗi khối sẽ thay thế một số hành vi kinh tế của con người ở một mức độ nhất định và điều rất khác so với các hành vi kinh tế trước đây là "phân cấp". Do đó, không có tổ chức nào đảm bảo an toàn cho tiền của bạn. Nếu bạn bị mất tiền, không có cách nào tìm được tòa án hoặc ngân hàng để lấy lại cho bạn. Trong một môi trường như vậy, toàn bộ vấn đề an ninh sinh thái là rất quan trọng .
Hãy để tôi giới thiệu bản thân mình đầu tiên. Tôi đã từng đi học và đến Bắc Kinh để làm việc trong 360 vào năm 2015. Nếu bạn có điện thoại Android từ 2013 đến 2015 và 2016, có thể có một số mã tôi đã viết trong đó. Trước năm nay, tôi đã làm một số việc với tư cách là mũ trắng nghiên cứu bảo mật hệ thống, sau đó tôi bắt đầu thực hiện nghiên cứu bảo mật liên quan đến chuỗi khối.
Gần đây tôi cũng đang thực hiện một số phân tích dữ liệu và đây là một biểu đồ xu hướng tương đối lớn. Đây là lần đầu tiên tôi thấy bức ảnh này lớn như thế nào. Bạn có thể thấy rằng chúng ta đang ở đây, vào đầu tháng 9 và năm ngoái. Có hai dòng. Những dòng màu xanh lam là những bổ sung hàng tháng mà chúng tôi theo dõi. Bạn có thể hãy xem sự biến động của số lượng hợp đồng có màu xanh lam và màu xanh lá cây là con số chúng tôi theo dõi Bạn có thể thấy rằng đã có sự sụt giảm vào thời điểm này năm ngoái Bạn nên biết lý do của việc này. Vào cuối năm, có nhiều loại khác nhau bao gồm Ether Cat, loại tiền này sẽ tăng giá vào thời điểm này. Nó phục hồi một chút vào tháng 7, và lạnh hơn một chút vào tháng trước, và mọi người đều hiểu điều đó.
Bức tranh vừa rồi là một số liệu tương đối đơn giản, chúng ta hãy tính số tiền hàng tháng để xem tình hình của anh ấy như thế nào. Hình dưới đây thú vị hơn, hãy để tôi giải thích. Homestead, giai đoạn này là 1,55 triệu blknum, một vòng tròn đại diện cho 10.000 khối, vì vậy có 115 vòng tròn trên biểu đồ này. Tiếp theo là tọa độ X, có nghĩa là có nhiều hơn một giao dịch trong 10.000 khối, ví dụ: khối này có thể gần 8200 và khoảng 82% trong số 10.000 khối không phải là khối trống. Vì vậy, bạn có thể hiểu rằng nếu vòng tròn nằm ở phía bên phải của biểu đồ, điều đó có nghĩa là mạng đã được tải đầy đủ.
Hãy xem lại tọa độ Y, là số TX trung bình trong 10.000 khối này. Giá trị tối đa là hơn 200. Tại sao lại có giá trị này? Lý do là mỗi khối đều có giới hạn trên gas. Bạn có thể hiểu nó là TX được mang bởi mỗi khối. Số lượng có hạn. Lúc đầu, các dấu chấm đều ở vị trí rất thấp, nhưng có sự tăng trưởng về bên phải. Lúc đầu, nhiều trong số chúng có thể là các khối trống, chẳng hạn như khối khối tạo ở góc dưới bên trái, nhưng không có TX , Bước sang giai đoạn tiếp theo, bạn có thể thấy biểu đồ này bắt đầu phát triển lên trên, nhưng cũng ở bên trái, vẫn thuộc tình trạng mạng không quá tắc nghẽn.
Vào thời Byzantium, ngày càng có nhiều vòng kết nối ở bên phải và toàn bộ mạng trở nên đông đúc hơn.
Từ năm ngoái, về cơ bản nó đã được đăng ở phía bên phải, có thể là do các trò chơi hiện tượng khác nhau, bao gồm cả các cuộc tấn công của hacker, vì vậy bây giờ, một sự cố cấp độ hiện tượng có thể ngẫu nhiên xảy ra, bao gồm các trò chơi như Fomo3D, có thể dẫn đến điều này kết quả. Đây là một số hiện tượng chúng tôi quan sát được từ dữ liệu của PeckShield.
Tiếp theo, chúng tôi sẽ nói về một số vấn đề bảo mật của toàn bộ hệ sinh thái chuỗi khối ở một số cấp độ, bạn có thể xem tại đây, chẳng hạn như hợp đồng thông minh, cơ sở hạ tầng và các liên kết khác như vấn đề về ví. Chúng tôi có một số nghiên cứu.
Đầu tiên, tôi xin nói về vấn đề của hợp đồng thông minh, đây là một vấn đề tương tự như sự cố dây chuyền ở Mỹ mà mọi người lần đầu tiên biết về PeckShield, mã ở đây. Sau khi các giá trị này được cộng lại với nhau, một số tràn sẽ xuất hiện , điều này sẽ khiến việc kiểm tra số tiền bị bỏ qua. Hãy nhìn vào trường hợp ở bên phải màn hình. Bạn có thể thấy sự xuất hiện của hai chiếc điện thoại di động ở phía bên phải. Bên cạnh đó là quá trình tấn công của tôi. Bạn sẽ xem phần cập nhật ở bên phải và tôi sẽ tạo ra hai số lớn ngoài không khí. Vô số, theo cách này, chúng tôi tạo ra hai địa chỉ khác nhau, đó là địa chỉ ví của hai điện thoại di động, khiến nơi này bị tràn, và sau đó kiểm tra này bị bỏ qua, tương đương với việc nhìn thấy một nơi tạo ra nhiều tài sản kỹ thuật số, tức là ở nơi số dư += giá trị, con sói trắng găng tay trống rỗng, đây là một vấn đề rất nghiêm trọng.
Có một giải pháp tương đối được công nhận cho một vấn đề như vậy, đó là ở nơi này, đó là một thư viện hàm tính toán tương đối chặt chẽ có tên là Safemath.
Đây là một phép toán cho phép, có thể đảm bảo rằng bạn sẽ không bị tràn, vậy tại sao bạn thấy tiêu đề của tôi lại ghi là Unsafemath? Gần đây, chúng tôi đã phát hiện ra một hiện tượng rất thú vị. Ở phía bên tay phải của bạn, khi triển khai safeSub ở đây, khẳng định được sử dụng để đảm bảo rằng B nhỏ hơn hoặc tương đối so với A, nghĩa là bạn không thể trừ một số tương đối lớn từ một số tương đối nhỏ. Phương pháp khẳng định có thể đảm bảo rằng khi bạn mắc sai lầm, xăng của bạn sẽ bị đốt cháy và TX sẽ kết thúc, đây cũng là chi tiết của cuộc tấn công mà ông Guo vừa đề cập. Điều đó có nghĩa là, có một cơ chế như vậy trong kiến trúc ban đầu, nhưng trong quá trình triển khai safeMath của anh ấy, một hàm xác nhận bổ sung được thêm vào, hàm này sẽ trả về trực tiếp khi xảy ra lỗi. Vì vậy, hãy cẩn thận khi chọn thư viện bảo mật của bạn.
Hãy để tôi nói lại về nghiên cứu về cơ sở hạ tầng. Ảnh chụp màn hình bên trái là trang web của chương trình tiền thưởng lỗi. PeckShield hiện đang xếp thứ 5. Hiện tại, có ba lỗ hổng được gửi tới nền tảng trong giai đoạn đầu, tất cả đều có liên quan đến chuỗi công khai. Hôm nay mình sẽ giới thiệu sơ qua về một trong số chúng, lỗ hổng này đã được fix, bạn đừng lo nếu nâng cấp Geth lên phiên bản mới nhất thì lỗ hổng này sẽ không tồn tại.
Chúng ta hãy nói sơ qua về lỗ hổng này, chúng tôi đặt tên là EPoD, chỉ cần gửi một gói dữ liệu cho bạn. Bây giờ máy tính xách tay của bạn chạy một ứng dụng khách. Tôi biết IP của bạn và gửi trực tiếp cho bạn. Sau khi bạn nhận được, ứng dụng khách của bạn sẽ gặp sự cố, sự cố này sẽ xảy ra nghe có vẻ không có gì, nhưng khi tôi phát trực tiếp bộ phận dữ liệu này, nó sẽ chết Thực tế, bạn có thể dễ dàng nghĩ đây là một cuộc tấn công có thể được sử dụng cho sức mạnh tính toán.
Tôi không nói quá nhiều về chi tiết của mã, đơn giản là tôi làm cho một dữ liệu nào đó âm 1. Cách thực hiện mã ở đây là thêm số này + 1. Khi bạn muốn phân bổ dung lượng bộ nhớ, âm 1 + 1 là 0, và tôi truy cập lại. Phủ định 1. Vị trí của địa điểm này cuối cùng sẽ dẫn đến truy cập vượt quá giới hạn và chương trình sẽ bị lỗi.
Chúng ta hãy nhìn vào trường hợp trực tiếp.
Cái bên phải là ứng dụng khách tôi đang chạy. Trước tiên, hãy để tôi chứng minh rằng ứng dụng khách của tôi được tải xuống từ trang web chính thức. Tôi đảm bảo rằng ứng dụng khách này không phải do tôi sửa đổi mà được tải xuống trực tiếp từ trang web chính thức. Đợi 1 lúc sau khi kiểm tra sẽ xuất hiện 2 cửa sổ bên trái góc trên bên trái là trạng thái chạy của mã tấn công và góc dưới bên trái là hình chụp gói tin mình vừa thực hiện 1 thao tác đó là quay tắt cổng trước để đảm bảo rằng máy không còn được kết nối với Internet. , tất cả các gói dữ liệu được đo trên mạng là các gói từ máy cục bộ. Nhìn bên phải Geth client đã dẫn đầu rồi, đây là gói tin UDP mình vừa bắt được, bạn biết không, loại gói tin này không cần thiết lập kết nối, mình có thể lan truyền cuộc tấn công của mình vào cổng hoặc một nơi nào đó khác, góc trên bên trái là mã tấn công của tôi, mục tiêu tấn công của tôi là 127.0.0.1, là IP cục bộ của chúng tôi, đây là gói tấn công, miễn là ứng dụng khách Golang bên dưới một phiên bản nhất định nhận được gói này, nó sẽ tai nạn.
Trên thực tế, chúng tôi có cả một loạt các lỗ hổng như vậy và đây là lỗ hổng đầu tiên được công khai. Chúng tôi sẽ nói về nó tại Hội nghị Internet ngày mai và sẽ có một số trường hợp như thế này trong toàn bộ chuỗi.
Trên đây là 2 case đơn giản mình làm về vấn đề bảo mật của public chain và smart contract, các bạn có thể hiểu được, nếu thực sự muốn xem code các bạn có thể quan tâm đến trang web chính thức của PeckShield.
Cuối cùng, tôi muốn nói rằng đó là một dự án mà chúng tôi đã hợp tác gần đây với BCSEC thuộc Baimaohui. Chúng tôi cảm thấy rằng có quá nhiều bên tham gia dự án liên quan đến chuỗi khối. Có nhiều chuỗi công khai khác nhau, nhiều cách triển khai chuỗi công khai và nhiều hợp đồng thông minh khác nhau. Kiểu triển khai này, vì vậy chúng tôi bắt đầu cảm thấy rằng vấn đề bảo mật này không phải là thứ mà công ty chúng tôi có thể giải quyết được. Chúng tôi cần nhiều người hơn để làm điều này tốt hơn cùng một lúc, vì vậy chúng tôi đã thiết lập một nền tảng có tên là Nền tảng dễ bị tổn thương DVP. Nói một cách đơn giản, chúng tôi sử dụng phương pháp thử nghiệm đám đông để tập hợp tất cả các nhà nghiên cứu hoặc mũ trắng có khả năng bảo mật và để bên dự án trao phần thưởng cho các dự án của họ trên nền tảng của chúng tôi. Ví dụ: nếu tôi muốn thử nghiệm phiên bản 1.0 ngay bây giờ, bạn sẽ nhận được phần thưởng gì nếu tìm thấy lỗ hổng ở cấp độ nào, để khuyến khích mũ trắng giúp chúng tôi cải thiện toàn bộ hệ sinh thái. Nền tảng này đã được ra mắt vào ngày 24 tháng 7. Cho đến nay, hơn 1.700 lỗ hổng đã được nhận và có 705 nhà sản xuất có liên quan, với tổng số hơn 10.000 mũ trắng đã đăng ký. Đây là những nhà sản xuất đã giải quyết trên nền tảng này, bao gồm cả trang web của công ty chúng tôi, trang web này cũng đặt phần thưởng cho nó.
PeckShield thực sự hy vọng có thể hợp tác với tất cả các bên trong dự án để làm cho toàn bộ hệ sinh thái trở nên tốt đẹp hơn. Tôi cũng đã đề cập đến vấn đề này ngay từ đầu. Ngoài cùng bên phải là trang web chính thức của công ty chúng tôi. Chúng tôi sẽ thỉnh thoảng công bố kết quả nghiên cứu mới nhất của mình về vấn đề này. Bạn có thể Chú ý.
Trên đây là chia sẻ của tôi ngày hôm nay, xin cảm ơn.
