Giới thiệu chung
Dữ liệu gốcMột vấn đề đã được phát hiện trong ntopng 3.4 trước 3.4.180617. PRNG được sử dụng để tạo session ID không được seed khi chương trình khởi động. Điều này khiến các session ID được cấp cho các phiên người dùng đang hoạt động có tính xác định. Kẻ tấn công biết trước hệ điều hành và standard library đang được host chạy dịch vụ sử dụng, cùng với username của người dùng có phiên bị nhắm tới, có thể lợi dụng việc sinh số ngẫu nhiên mang tính xác định để chiếm quyền phiên của người dùng, từ đó nâng cao quyền truy cập của mình.
Sản phẩm và phạm vi ảnh hưởng
ntop ntopng:
- Nhánh
3.4bị ảnh hưởng từ3.4đến trước3.4.180617. 3.4.180617là bản sửa lỗi được nêu trong nguồn công khai và là ranh giới fixed release được dùng cho mục này.- Một mục public exploit sử dụng cách ghi build-suffixed
< 3.4.180617-4560, nhưng CNA/NVD xác định ranh giới chuẩn là nhánh3.4trước3.4.180617; không nên tự suy ra trạng thái của các nhánh song song hoặc mới hơn khi chưa có bằng chứng riêng.
Chi tiết kỹ thuật
Lỗi nằm trong cơ chế tạo session ID của ntopng: PRNG được sử dụng để sinh giá trị phiên không được seed khi chương trình khởi động, khiến các session ID của người dùng đang hoạt động có thể mang tính xác định. Kẻ tấn công cần biết hệ điều hành, standard library của host chạy dịch vụ và username của phiên mục tiêu để mô phỏng hoặc dự đoán chuỗi giá trị ngẫu nhiên. Bằng chứng khai thác công khai cho thấy luồng web liên quan sử dụng user và session cookie với endpoint /lua/network_load.lua; đây là chi tiết phục vụ nhận diện và phân tích, không phải khẳng định mọi triển khai đều dùng cùng cách xác thực. Bản vá được xem xét bổ sung khởi tạo ngẫu nhiên trong HTTPserver.cpp bằng gettimeofday và srand để randomize các giá trị do rand() trả về. Các chi tiết triển khai khác của cơ chế kiểm tra session ngoài những gì được mô tả trong nguồn công khai vẫn chưa được xác lập.
Khả năng khai thác
Lỗi có thể bị khai thác qua mạng trên giao diện web ntopng; không cần tài khoản hoặc tương tác của người dùng theo dữ liệu đánh giá được cung cấp. Điều kiện quan trọng là kẻ tấn công phải biết trước hệ điều hành, standard library và username của người dùng bị nhắm tới, đồng thời dự đoán được chuỗi PRNG, nên việc khai thác không mang tính tùy ý. Một public exploit và proof of concept đã được công bố, trong đó mô phỏng giá trị rand() và thử session value tương ứng. Nguồn được xem xét xác nhận khả năng remote, unauthenticated session hijacking và privilege escalation; trạng thái khai thác thực tế trong môi trường production chưa được xác lập.
Tác động kỹ thuật
Khai thác thành công cho phép attacker giả mạo session của người dùng mục tiêu và thực hiện các request dưới danh tính phiên đó. Kết quả trực tiếp là mất tính bí mật và toàn vẹn đối với dữ liệu hoặc chức năng nằm trong phạm vi quyền của tài khoản bị chiếm. Nếu tài khoản có quyền quản trị, attacker có thể đạt mức truy cập cao hơn đáng kể so với một tài khoản thông thường. Khả năng gây ảnh hưởng đến tính sẵn sàng là có thể xảy ra nếu quyền của tài khoản cho phép thực hiện thao tác gây gián đoạn, nhưng nguồn kỹ thuật không mô tả một đường tấn công từ chối dịch vụ cụ thể.
Tác động đến tổ chức
Kẻ tấn công chiếm được session có thể truy cập ntopng như người dùng mục tiêu mà không cần biết mật khẩu của người đó. Hậu quả có thể gồm lộ dữ liệu giám sát mạng và thực hiện các thao tác mà tài khoản bị chiếm có quyền thực hiện. Nếu session thuộc tài khoản có quyền cao, phạm vi ảnh hưởng có thể lớn hơn quyền của một tài khoản thông thường. Tác động cụ thể phụ thuộc vào quyền của người dùng, cách ntopng được triển khai và mức độ phơi bày của giao diện quản trị; không có bằng chứng cho thấy một vụ rò rỉ hoặc gián đoạn cụ thể đã xảy ra.
Cách khắc phục
- Nâng cấp ntopng thuộc nhánh bị ảnh hưởng lên chính xác
3.4.180617, là bản sửa được nguồn công khai xác nhận. - Sau khi triển khai, xác minh phiên bản của process đang chạy và đối chiếu lại inventory để bảo đảm bản vá đã được nạp vào dịch vụ thực tế.
- Vì lỗi ảnh hưởng đến session đang hoạt động, thực hiện quy trình quản trị session phù hợp của tổ chức sau khi nâng cấp, chẳng hạn buộc người dùng đăng nhập lại nếu chính sách vận hành cho phép.
- Trong thời gian chưa thể nâng cấp, hạn chế giao diện web ntopng vào các mạng tin cậy và áp dụng kiểm soát truy cập ở lớp mạng như biện pháp giảm phơi bày. Nguồn được xem xét chỉ nêu nâng cấp là mitigation và không cung cấp một workaround tạm thời riêng.
- Không coi việc một bản sửa tồn tại trong nhánh
3.4là bằng chứng rằng mọi nhánh song song hoặc mới hơn đều không bị ảnh hưởng; cần xác minh từng nhánh độc lập.
Cách phát hiện
- Kiểm kê tất cả máy chủ chạy ntopng, ghi nhận chính xác phiên bản và xác định các cài đặt thuộc nhánh bị ảnh hưởng.
- Xác định các giao diện web ntopng có thể truy cập từ mạng không tin cậy, đặc biệt những phiên bản vẫn cho phép truy cập trực tiếp đến web application.
- Nếu access log ghi nhận URI và cookie, rà soát các request đến
/lua/network_load.luacó đồng thờiuservàsession, nhất là các chuỗi thử lặp lại hoặc bất thường. Đây là dấu hiệu giám sát phòng ngừa dựa trên public proof of concept, không phải IOC được xác nhận. - Đối chiếu các lần đăng nhập và request thành công với hoạt động thông thường của từng tài khoản để tìm việc sử dụng session bất thường. Không thấy log bất thường không chứng minh hệ thống an toàn.
- Sau khi nâng cấp, xác minh process đang chạy đúng bản đã sửa và kiểm tra lại inventory thay vì chỉ dựa vào gói cài đặt đã tải xuống.