Giới thiệu
- Kỹ sư bảo mật RyotaK của Flatt Security Inc. đã phát hiện lỗ hổng bảo mật trong quá trình nâng cấp firmware của OpenWrt.
- OpenWrt là firmware dựa trên Linux dành cho thiết bị nhúng, đặc biệt phổ biến trên router.
sysupgrade.openwrt.org
sysupgrade.openwrt.org là dịch vụ trực tuyến cho phép người dùng chọn các gói mong muốn để tạo ảnh firmware mới.
- Quá trình build ảnh từ mã nguồn do người dùng cung cấp có thể phát sinh vấn đề bảo mật.
Tiêm lệnh
- Máy chủ
sysupgrade.openwrt.org là một dự án mã nguồn mở, với mã nguồn được lưu trữ tại openwrt/asu.
- Máy chủ dùng container để cô lập môi trường build, nhưng đã phát hiện lỗ hổng cho phép thực thi lệnh tùy ý thông qua đầu vào của người dùng.
Va chạm SHA-256
- Trong quá trình tạo hash cho yêu cầu, hash SHA-256 bị cắt xuống còn 12 ký tự để sử dụng.
- Thông qua va chạm hash, có thể đánh lừa máy chủ trả về sai build artifact.
Brute-force SHA-256
- Đã triển khai một chương trình dùng OpenCL để brute-force hash trên GPU, nhưng hiệu năng không tốt.
- Sau đó đã thành công trong việc tìm va chạm 12 ký tự bằng Hashcat.
Kết hợp hai cuộc tấn công
- Cuộc tấn công được thực hiện bằng cách tìm payload tiêm lệnh có cùng hash với danh sách gói hợp lệ.
- Kẻ tấn công có thể buộc người dùng nâng cấp lên firmware độc hại.
Báo cáo vấn đề
- Sau khi báo cáo vấn đề cho đội ngũ OpenWrt, dịch vụ đã tạm dừng và được vá rất nhanh.
- Một thông báo cũng được gửi tới người dùng để kiểm tra xem thiết bị có bị ảnh hưởng hay không.
Kết luận
- Có thể xâm phạm dịch vụ
sysupgrade.openwrt.org thông qua tiêm lệnh và va chạm SHA-256.
- Cảm ơn đội ngũ OpenWrt đã phản hồi nhanh và thông báo kịp thời cho người dùng.
Quảng cáo
- Flatt Security cung cấp dịch vụ đánh giá bảo mật và kiểm thử xâm nhập, đồng thời đưa ra ưu đãi đặc biệt nhân dịp cập nhật trang web mới.
- Công ty cũng cung cấp Shisho Cloud, một công cụ đánh giá bảo mật mạnh mẽ.
1 bình luận
Ý kiến Hacker News
Việc hợp thức hóa thực thi mã được tùy biến cho từng người dùng hoặc từng thiết bị có một điểm yếu là không thể kiểm chứng, và không thể xác nhận rằng bản dựng đó không chứa backdoor
Việc dùng
".join"có thể nguy hiểmMã nguồn mở không thể cạnh tranh với mã nguồn đóng cấp doanh nghiệp
Thuật ngữ "chuỗi cung ứng" không xuất hiện trong bài đăng blog
Các công cụ nguồn mở đã được điều chỉnh để phục vụ mục đích ngoài thiết kế ban đầu
Thắc mắc không biết ý tưởng cắt ngắn hash xuất phát từ đâu
Ngạc nhiên vì cần rất nhiều sức mạnh GPU để tìm va chạm ngắn
Đã ngay lập tức nhận ra độ dài hash bị cắt từ 64 ký tự xuống còn 12 ký tự
Có câu hỏi vì sao hiệu năng của hashcat lại khác biệt lớn tùy theo thứ tự đối số
Đây là một bài viết rất hay về khả năng đọc mã và phát triển khai thác cực kỳ thông minh