Các cuộc tấn công trong hợp đồng thông minh

Một phần của tài liệu CÁC CUỘC TẤN CÔNG LÊN BLOCKCHAIN (Trang 57 - 58)

1) Tấn công DNS

6.5 Các cuộc tấn công trong hợp đồng thông minh

Khi các ứng dụng mới được xây dựng trên nền tảng của Blockchain, những hạn chế của chính chúng cùng với các lỗ hổng trong Blockchain sẽ tạo ra một bề mặt tấn công mới. Hợp đồng thông minh thuộc thế hệ Blockchain 2.0 và trong phần này, chúng ta sẽ tìm hiểu các khả năng tấn công trong hợp đồng thông minh. Ứng dụng hợp đồng thông minh nổi tiếng nhất trong thế giới kỹ thuật số là Ethereum, sử dụng ngôn ngữ lập trình Solidity cho các hợp đồng mã hóa. Sự vững chắc [175]là một ngôn ngữ hướng hợp đồng, chịu ảnh hưởng của Javascript, Python và C ++. Sự thiếu sót trong ngôn ngữ lập trình, môi trường ngoại lai và phong cách mã hóa có thể dẫn đến một loạt các cuộc tấn công. Trong Hình 20, chúng em chứng minh một mã hợp đồng thông minh dễ bị tấn công, đánh cắp số dư của người gửi. “DAO” có một lỗ hổng tương tự trong hợp đồng thông minh của họ, dẫn đến khoản lỗ 50 triệu USD. Một số cuộc tấn công nổi tiếng đối với hợp đồng thông minh Ethereum bao gồm tấn công reentrancy, tấn công theo luồng, tấn công

phát lại, tấn công địa chỉ ngắn và tấn công sắp xếp lại thứ tự [42], [176].

1) Tấn công lần gần đây: Trong cuộc tấn công lần gần đây, nếu người dùng không cập nhật số dư trước khi gửi ether, kẻ tấn công có thể đánh cắp tất cả ether được lưu trữ trong hợp đồng bằng cách gọi đệ quy phương thức call.value () trong mã thông báo ERC20. Do đó, một người dùng bất cẩn có thể mất toàn bộ số dư của mình trong hợp đồng nếu anh ta quên cập nhật số dư của mình

2) Tấn công DoS: Tấn công DoS trong hợp đồng thông minh cho phép kẻ độc hại giữ tiền và quyền hạn cho chính mình. Hãy xem xét một ví dụ về đấu giá hợp đồng thông minh, trong đó một người trả giá ác ý cố gắng trở thành người dẫn

đầu cuộc đấu giá được minh họa trong Hình 22. Hợp đồng dễ bị tấn công ngăn cản việc hoàn lại tiền cho người lãnh đạo cũ của hợp đồng và khiến kẻ tấn công trở thành người lãnh đạo mới. Hơn nữa, nó hủy tất cả các yêu cầu bid () được gửi bởi những người đặt giá thầu khác và giữ cho kẻ tấn công là người dẫn đầu cuộc đấu giá. Một hình thức DoS tấn công trong hợp đồng thông minh Ethereum liên quan đến việc khai thác quá giới hạn khí theo quy định của hợp đồng Hình

21. Trong Ethereum, nếu khí tổng tiêu thụ bởi các hợp đồng thông minh khi thực hiện vượt quá giới hạn khí, giao dịch hợp đồng thất bại. Kẻ tấn công có thể khai thác điều này bằng cách thêm nhiều địa chỉ có nhu cầu hoàn lại tiền. Khi thực hiện, lượng gas cần thiết để hoàn lại các địa chỉ đó có thể vượt quá tổng giới hạn gas, do đó hủy giao dịch cuối cùng. 3) Tấn công tràn: Sự tràn trong hợp đồng

thông minh hap-pen khi giá trị của biến kiểu (2 256 ) bị vượt quá. Ví dụ, trong một

liên hệ thông minh của cá cược trực tuyến, nếu ai đó gửi một lượng lớn ether,

vượt quá (2 256 ), giá trị của đặt cược sẽ được đặt thành 0. Mặc dù việc trao đổi giá

trị ether lớn hơn (2 256 ) là không thực tế , nhưng nó vẫn là một lỗ hổng lập trình

trong các hợp đồng thông minh được viết bằng Solidity.

4) Tấn công địa chỉ ngắn: Cuộc tấn công địa chỉ ngắn khai thác một lỗi trong máy ảo của Ethereum để tạo thêm mã thông báo khi mua giới hạn. Cuộc tấn công địa chỉ ngắn chủ yếu áp dụng trên các mã thông báo ERC20. Đối với cuộc tấn công này, kẻ tấn công tạo một ví Ethereum kết thúc bằng chữ số 0. Sau đó, anh ta thực hiện mua hàng trên địa chỉ bằng cách loại bỏ số 0. Nếu hợp đồng có đủ số dư, thì chức năng mua sẽ không kiểm tra địa chỉ của người gửi và máy ảo của Ethereum sẽ bổ sung số 0 còn thiếu để hoàn thành địa chỉ. Kết quả là, với mỗi 1000 token được mua, máy sẽ trả về 256000 token.

5) Chuyển số dư cưỡng bức: Trong các mã hợp đồng thông minh dễ bị tấn công, việc chuyển số dư cưỡng bức sang hợp đồng có thể xảy ra mà không có chức năng dự phòng. Điều này có thể được sử dụng để làm cạn kiệt giới hạn khí đốt và không cho phép giao dịch cuối cùng.

Một phần của tài liệu CÁC CUỘC TẤN CÔNG LÊN BLOCKCHAIN (Trang 57 - 58)

w