Ứng dụng Voatz ‘Blockchain’ được sử dụng trong các cuộc bầu cử ở Hoa Kỳ có nhiều vấn đề về bảo mật, báo cáo cho biết

Voatz, công ty có trụ sở tại Massachusetts chào hàng ứng dụng bỏ phiếu di động hỗ trợ blockchain, đã vấp phải sự chỉ trích của công chúng vì sự thiếu minh bạch, trong số những thứ khác, đặc biệt là khi nói đến bảo mật dữ liệu. Và với mối đe dọa giả mạo cuộc bầu cử, cổ phần vẫn cao hơn bao giờ hết.

Voatz đã được sử dụng trong các cuộc bầu cử ở Tây Virginia; Quận Jackson, Oregon; Quận Umatilla, Oregon; bầu cử thành phố ở Quận Utah, Utah; cũng như trong các cuộc bầu cử dòng chảy và bầu cử thành phố ở Denver, Colorado.

Kiểm toán an ninh công cộng của một công ty bên thứ ba có uy tín mà các chuyên gia đã kêu gọi là cuối cùng ở đây. Vào tháng 12 năm 2019, Voatz và Tusk Philanthropies, tổ chức tài trợ cho hầu hết các phi công bỏ phiếu trên thiết bị di động của Voatz, đã phối hợp với công ty bảo mật Trail of Bits để tiến hành kiểm tra hộp trắng toàn diện.

Mặc dù Voatz không cung cấp chương trình phụ trợ để kiểm tra trực tiếp các vectơ tấn công độc hại, Trail of Bits có quyền truy cập vào tất cả mã nguồn, bao gồm máy chủ lõi, ứng dụng khách Android, ứng dụng khách iOS và giao diện web quản trị viên.

Báo cáo đánh giá là toàn diện và bao gồm đánh giá bảo mật dài 122 trang và tài liệu dài 78 trang về các cân nhắc mô hình hóa mối đe dọa. Dưới đây là tóm tắt nhanh về các bộ phận chính.

Voatz không cần blockchain

Điểm hấp dẫn của bỏ phiếu blockchain là nó là một hệ thống phi tập trung không yêu cầu cử tri phải tin tưởng bất kỳ ai. Nhưng blockchain mà Voatz sử dụng không thực sự mở rộng cho khách hàng di động. Thay vào đó, Voatz đã áp dụng các phiếu bầu cho một blockchain Hyperledger Fabric, blockchain mà nó sử dụng làm nhật ký kiểm tra – một việc dễ dàng thực hiện bằng cách sử dụng cơ sở dữ liệu với nhật ký kiểm tra.

Mặc dù người phát ngôn của Voatz tuyên bố rằng Hyperledger “cung cấp một số chức năng bảo mật như đảm bảo tổng số phiếu bầu, cho phép kiểm tra sau bầu cử và cung cấp chuỗi lưu ký cho các lá phiếu kỹ thuật số khi chúng đi qua hệ sinh thái”, không rõ nó sẽ làm như vậy như thế nào và khả năng này không rõ ràng trong báo cáo.

Đoạn mã Trail of Bits được xem xét không sử dụng chaincode tùy chỉnh hoặc hợp đồng thông minh. Trên thực tế, báo cáo viết:

“Tất cả xác thực dữ liệu và logic nghiệp vụ được thực thi ngoài chuỗi trong cơ sở mã Scala của Máy chủ lõi Voatz. Một số phát hiện rủi ro cao là kết quả của các vấn đề xác thực dữ liệu và các đại biểu bối rối trong máy chủ lõi có thể cho phép một người bỏ phiếu giả dạng người khác trước khi thậm chí chạm vào blockchain. “

Bởi vì các cử tri không tự kết nối trực tiếp với blockchain, họ không thể xác minh một cách độc lập rằng các phiếu bầu có phản ánh ý định của họ hay không. Nhưng bất kỳ ai có quyền truy cập quản trị vào các máy chủ back-end của Voatz đều có khả năng “hủy bỏ ẩn danh, từ chối phiếu bầu, thay đổi phiếu bầu và làm mất hiệu lực của các đường kiểm tra”.

Báo cáo cho thấy rằng hệ thống Voatz không có bất kỳ biện pháp giảm thiểu nào đối với việc bỏ danh nghĩa cử tri dựa trên thời gian lá phiếu của họ được ghi lại trong blockchain. Trong một tuyên bố, người phát ngôn của Voatz cho biết họ có một mixnet thử nghiệm đang chạy ở cơ sở hạ tầng biên được sử dụng cho các thử nghiệm cấp mạng, nhưng không có bất kỳ mã nguồn nào và Câu hỏi thường gặp của Voatz yêu sách rằng “sau khi được gửi, tất cả thông tin đều được ẩn danh, được định tuyến qua‘ mixnet ’và được đăng lên blockchain.” Nhưng đây là gọi là câu hỏi trong một báo cáo MIT – và bây giờ một lần nữa trong cuộc kiểm tra này.

“Dường như không có, cũng như không có đề cập đến, một mixnet trong mã được cung cấp cho Trail of Bits,” đánh giá cho biết. “Máy chủ lõi có khả năng hủy ẩn danh tất cả lưu lượng truy cập, bao gồm cả các lá phiếu.”

Trail of Bits đã xác nhận những phát hiện của MIT – Voatz phản bác lại chúng

Vào ngày 13 tháng 2, các nhà nghiên cứu của MIT đã công bố báo cáo nói trên, “Lá phiếu đã bị phá hủy trước chuỗi khối: Phân tích bảo mật của Voatz, Ứng dụng bỏ phiếu trên Internet đầu tiên được sử dụng trong các cuộc bầu cử liên bang của Hoa Kỳ,” mà Voatz đưa ra đã trả lời với một bài đăng trên blog cùng ngày để bác bỏ cái mà nó gọi là “báo cáo thiếu sót”, khiến các nhà nghiên cứu của MIT bài đăng một câu hỏi thường gặp với giải thích rõ ràng.

Hóa ra là lời bác bỏ của Voatz được viết ba ngày sau khi Trail of Bits xác nhận sự hiện diện của các lỗ hổng được mô tả cho MIT, sau khi nhận được báo cáo tóm tắt ẩn danh về các vấn đề từ Bộ An ninh Nội địa Hoa Kỳ. Điều này cho thấy rằng Voatz đã biết rằng báo cáo là chính xác trước khi công khai giảm giá nó.

Cuộc kiểm toán cũng tranh cãi một số phản đối của Voatz đối với báo cáo của các nhà nghiên cứu MIT. Voatz tuyên bố rằng ứng dụng Android được phân tích là 27 phiên bản cũ, nhưng Trail of Bits đã viết rằng nó “không xác định bất kỳ thay đổi liên quan đến bảo mật nào trong cơ sở mã” giữa phiên bản tháng 9 năm 2019 của ứng dụng mà các nhà nghiên cứu của MIT sử dụng. Điều này sẽ ảnh hưởng đáng kể đến tuyên bố của họ.

Voatz cũng đặt vấn đề với các nhà nghiên cứu đang phát triển một máy chủ giả, gọi đó là một “cách tiếp cận thiếu sót” nhằm “vô hiệu hóa mọi tuyên bố về khả năng xâm phạm hệ thống tổng thể của họ”. Voatz thậm chí còn viết rằng thực hành này “thay mặt các nhà nghiên cứu phủ nhận bất kỳ mức độ tín nhiệm nào”.

Nhưng Trail of Bits tuyên bố rằng “việc phát triển một máy chủ giả trong trường hợp kết nối với máy chủ sản xuất có thể dẫn đến hành động pháp lý là một phương pháp tiêu chuẩn trong nghiên cứu lỗ hổng bảo mật. Nó cũng là một thông lệ tiêu chuẩn trong kiểm thử phần mềm ”. Hơn nữa, báo cáo chỉ ra rằng các phát hiện tập trung vào ứng dụng khách Android, nhưng không dựa trên kiến ​​thức chuyên sâu về các máy chủ Voatz.

Người phát ngôn của Voatz cho biết Voatz “phản đối phương pháp luận và cách tiếp cận của các nhà nghiên cứu MIT,” và rằng có một số sai sót trong báo cáo.

“Nếu phương pháp luận của chúng tôi sai, lý thuyết sẽ là chúng tôi đưa ra kết luận không chính xác. Tuy nhiên, tất cả các lỗ hổng mà chúng tôi tìm thấy đã được xác nhận bởi đánh giá bảo mật của chính họ. Ngoài ra, có vẻ như họ đang chống lại bất kỳ ai trong số họ, ”Michael Spectre, một trong những nhà nghiên cứu của MIT, tác giả của báo cáo, cho biết.

Kiểm toán trước không toàn diện

Mặc dù Voatz chào hàng nhiều lần kiểm tra bảo mật, đây là lần đầu tiên một đánh giá hộp trắng được thực hiện, với máy chủ lõi và phần phụ trợ đã được phân tích. Mặc dù không phải tất cả các cuộc đánh giá trước đều được công khai, Trail of Bits đã tóm tắt tất cả chúng.

Một đánh giá bảo mật trước đó là tiến hành vào tháng 8 năm 2019 bởi NCC, một tổ chức phi lợi nhuận tư nhân, độc lập không tuyển dụng bất kỳ chuyên gia bảo mật kỹ thuật nào. Cuộc kiểm toán tập trung vào khả năng sử dụng hơn là bảo mật. Vào tháng 7 năm 2018, một nhà cung cấp giấu tên đã tiến hành kiểm tra hộp đen đối với các khách hàng di động của Voatz.

Vào tháng 10 năm 2018, TLDR Security, hiện được gọi là ShiftState, đã tiến hành đánh giá bảo mật rộng rãi bao gồm kiến ​​trúc hệ thống, quy trình làm việc của người dùng và dữ liệu cũng như lập kế hoạch giảm thiểu mối đe dọa, nhưng không tìm kiếm lỗi trong hệ thống cũng như trong ứng dụng thực tế. ShiftState sau đó đã tiến hành một cuộc kiểm tra khác vào tháng 12 năm 2018, xem hệ thống có hoạt động như dự kiến ​​và tuân theo các phương pháp hay nhất hay không.

Mặc dù Giám đốc điều hành ShiftState Andre McGregor trước đây đã nói rằng Voatz “đã làm rất tốt”, đánh giá của Trail of Bits về quá trình kiểm tra của ShiftState chỉ ra các vấn đề với việc ghi nhật ký hạn chế, máy chủ không được quản lý và giải pháp chống phần mềm độc hại di động Zimperium chưa được bật trong quá trình thử nghiệm.

Vì tất cả các biện pháp bảo vệ chống giả mạo của Voatz dành cho thiết bị di động đều dựa trên Zimperium nên việc không hoạt động có nghĩa là ứng dụng có thể đã bị giả mạo một cách đáng kể, vì Voatz thiếu tính năng bảo vệ bổ sung chống lại các ứng dụng độc hại có thể truy cập thông tin nhạy cảm.

Người phát ngôn của Voatz nói rằng Zimperium chưa được tích hợp hoàn toàn cho đến năm 2019 và một số nhà nghiên cứu yêu cầu vô hiệu hóa nó cho mục đích thử nghiệm, điều này họ thực hiện theo từng trường hợp. “Trail of Bits không thể xác minh một cách độc lập rằng các kiểm tra chống giả mạo độc quyền của Zimperium xác minh rõ ràng nhà cung cấp bảo mật Android”, báo cáo viết, đề xuất kiểm tra bổ sung trong trường hợp Zimperium đã từng bị vô hiệu hóa, cố ý hay không.

Cuộc kiểm tra cuối cùng của DHS, được thực hiện vào tháng 10 năm 2019, chỉ đơn giản là xem xét các tài nguyên đám mây chứ không phải ứng dụng – xem có bằng chứng về việc tấn công hay không hoặc liệu nó có thể được phát hiện nếu nó diễn ra hay không.

Ngoài những hạn chế của các đánh giá bảo mật trước đây mà Voatz đã quảng cáo mà không công khai – chẳng hạn như thực tế là không có cuộc kiểm tra nào bao gồm các lỗ hổng bảo mật và máy chủ – báo cáo của Trail of Bits cho biết rằng các bản ghi từ các đánh giá bảo mật khác được thực hiện là tài liệu kỹ thuật . Điều này đặt ra câu hỏi liệu các quan chức được bầu có đang đưa ra quyết định dựa trên những tài liệu mà họ không đủ tiêu chuẩn để đọc hay không.

Voatz có vẻ vô tổ chức

Đánh giá của Trail of Bits kéo dài hơn cả tuần so với dự kiến ​​ban đầu “do sự kết hợp của sự chậm trễ trong việc nhận mã và nội dung, độ phức tạp và kích thước không mong muốn của hệ thống cũng như nỗ lực báo cáo liên quan.”

Trail of Bits không bao giờ nhận được bản sao mã đang hoạt động, cấm công ty thử nghiệm trực tiếp, có nghĩa là các nhà nghiên cứu gần như hoàn toàn bị giới hạn trong việc kiểm tra tĩnh, vốn yêu cầu họ phải đọc qua một lượng lớn mã. Theo báo cáo, Voatz có quá nhiều mã đến mức nó “yêu cầu mỗi kỹ sư phải phân tích trung bình gần 3.000 dòng mã thuần trên 35 tệp mỗi ngày trong quá trình đánh giá để đạt được mức độ bao phủ tối thiểu”.

Mặc dù Trail of Bits đã nhận được quyền truy cập vào phần phụ trợ để kiểm tra trực tiếp một ngày trước khi đánh giá dự kiến ​​kết thúc, — mà người phát ngôn của Voatz cho biết là do kiểm tra đồng thời, sự chậm trễ trong kiểm tra và các hoạt động song song và số lượng nền tảng kiểm tra hạn chế, công ty bảo mật đã được yêu cầu không tấn công hoặc thay đổi trường hợp theo cách có thể từ chối dịch vụ cho các cuộc kiểm tra đồng thời.

Voatz đã mắc những sai lầm mới bắt đầu – và có vẻ như không nghiêm túc về việc sửa chữa

Trail of Bits đã mô tả một số lỗi có thể dẫn đến việc phiếu bầu bị quan sát, giả mạo hoặc bị ẩn danh hoặc có thể gọi tính toàn vẹn của một cuộc bầu cử bị nghi ngờ.

Ngoài thực tế là các cử tri không thể xác nhận một cách độc lập rằng biên lai phiếu bầu của họ là hợp lệ hoặc phiếu bầu đã được đánh số chính xác, nhân viên Voatz về mặt lý thuyết có thể buộc người dùng bỏ phiếu hai lần, cho phép họ bỏ phiếu hai lần hoặc nhân đôi phiếu bầu của họ mà họ không biết về phần phụ trợ . Ngoài ra, Voatz sử dụng mã PIN tám chữ số để mã hóa tất cả dữ liệu cục bộ – thứ có thể bị bẻ khóa trong vòng 15 phút.

Hơn nữa, báo cáo cho thấy rằng ứng dụng không có các biện pháp kiểm soát bảo mật để ngăn các thiết bị Android không được giám sát bị xâm phạm. Thông tin đăng nhập API nhạy cảm được lưu trữ trong kho lưu trữ git, có nghĩa là bất kỳ ai trong công ty có quyền truy cập vào mã – thậm chí có thể là nhà thầu phụ – có thể sử dụng hoặc lạm dụng các khóa bí mật được tiết lộ trong kho lưu trữ.

Nhân viên Voatz có quyền truy cập quản trị viên có thể tra cứu các lá phiếu cụ thể của cử tri. Voatz sử dụng giao thức bắt tay mật mã đặc biệt, thường không được khuyến khích – vì mật mã tự chế dễ có lỗi và tốt nhất là sử dụng các sơ đồ mã hóa đã được các nhà nghiên cứu và thử nghiệm trong thế giới thực. SSL (Lớp cổng bảo mật) không được định cấu hình theo cách hoàn toàn an toàn, thiếu tính năng chính giúp khách hàng xác định khi nào chứng chỉ TLS (Bảo mật lớp truyền tải) bị thu hồi.

Trong một trường hợp, Voatz thậm chí còn cắt và dán một khóa và vectơ khởi tạo từ câu trả lời Stack Overflow. Việc cắt và dán mã thường không được khuyến khích, ngay cả trong các khóa học bảo mật máy tính cấp đại học, vì chất lượng thông tin trên Stack Overflow khác nhau và ngay cả mã tốt cũng có thể không hoạt động trong một môi trường cụ thể. Tuy nhiên, việc cắt và dán khóa và IV thậm chí còn tệ hơn, vì nó có nghĩa là khóa và IV được sử dụng để mã hóa dữ liệu giống hệt với một thứ gì đó trên internet, mặc dù nó không được công khai. Một phát ngôn viên của Voatz cho biết trong một email rằng đây là mã thử nghiệm cho một bản demo trong ứng dụng và “không thực sự được sử dụng trong bất kỳ trường hợp hoặc giao dịch nào.”

Ngay cả khi được tóm tắt, các đề xuất của Trail of Bits dài tám trang. Voatz dường như đã giải quyết được tám rủi ro bảo mật, giải quyết một phần sáu rủi ro khác và còn lại 34 rủi ro chưa được khắc phục. Thông thường, các công ty có một kế hoạch toàn diện về cách khắc phục rủi ro cao và trung bình. Thật vậy, người phát ngôn của Voatz cho biết, “Chúng tôi xem xét từng phát hiện một cách nghiêm túc, phân tích từng phát hiện từ góc độ thực tế, chỉ định xác suất rủi ro và sau đó xác định hướng đi về phía trước”, người phát ngôn của Voatz cho biết trong một email.

“Nếu lỗi hoặc vấn đề thực tế có thể khai thác được trong một kịch bản thế giới thực phù hợp với các thử nghiệm quy mô nhỏ mà chúng tôi đang tiến hành, thì chúng tôi sẽ giải quyết chúng ngay lập tức nếu chúng chảy trong đường ống phát triển bình thường của chúng tôi tùy theo mức độ ưu tiên.”

Thật đáng kinh ngạc, Voatz quyết định “chấp nhận rủi ro” của nhiều lỗi này, về cơ bản chấp nhận rủi ro thay cho những người bỏ phiếu thay vì thực hiện các bản sửa lỗi được đề xuất từ ​​công ty mà nó thuê..

Tusk Philanthropies, Voatz và Trail of Bits đã giới thiệu Cointelegraph đến tách rời Blog bài viết về cuộc kiểm tra và Trail of Bits đề cập đến chính báo cáo.

Bài báo này đã được cập nhật với nhận xét của người phát ngôn của Voatz.

Liên quan: Bến cảng an toàn hoặc Ném cho cá mập của Voatz?