Hãy xóa ứng dụng NightOwl ngay bây giờ
(archive.md)- Tiện ích tự động chuyển đổi chế độ sáng/tối trên macOS đã biến chất sau vụ mua lại vào cuối năm 2022 thành một công cụ đưa thiết bị người dùng vào botnet mà không có sự đồng ý
- Bên mua lại là TPE.FYI LLC dựa trên điều khoản sử dụng để dùng thiết bị người dùng như một gateway cho lưu lượng Internet, và không thể vô hiệu hóa tính năng này ngay cả khi đã thoát ứng dụng
- Khi cài đặt, một launch agent chạy với quyền root được đăng ký để tự khởi chạy khi bật máy, và không thể tắt từ bên trong ứng dụng
- Một daemon ngụy trang là 'tự động cập nhật' khởi chạy HTTP proxy cục bộ và mở đường hầm SSH tới máy chủ bên ngoài để chuyển hướng lưu lượng qua đường truyền Internet của người dùng
- SDK Pawns của IPRoyal, một công ty bán proxy dân cư, đã được sử dụng, tạo ra cơ chế bán lại băng thông Internet của người dùng cho mục đích nghiên cứu thị trường
Bản chất và sự biến chất của ứng dụng NightOwl
- NightOwl là ứng dụng tồn tại từ năm 2018, cung cấp chức năng tự động chuyển đổi chế độ sáng/tối của hệ điều hành
- Đây là giải pháp thay thế để khắc phục hạn chế của chế độ tự động tích hợp trong macOS, vốn chỉ chuyển khi người dùng rời máy
- Sau khi được TPE.FYI LLC mua lại vào cuối năm 2022, thiết bị bị ép tham gia vào một botnet phục vụ nghiên cứu thị trường mà không có nhận biết hay sự đồng ý rõ ràng từ người dùng
- Không có thông báo riêng nào ngoài phần điều khoản chữ nhỏ trên trang tải xuống
- Ngay cả khi đã thoát ứng dụng, tính năng này vẫn không thể bị vô hiệu hóa
- Hành vi này được nêu trong điều khoản sử dụng (TOS)
- Thay đổi cấu hình mạng của thiết bị để chia sẻ lưu lượng Internet và sử dụng thiết bị người dùng làm gateway
- Khách hàng sử dụng gateway bao gồm các công ty trong các lĩnh vực web/nghiên cứu thị trường, SEO, bảo vệ thương hiệu, phân phối nội dung và an ninh mạng
- Đã liên hệ phía NightOwl nhưng không nhận được phản hồi
Cách gỡ bỏ
- Ngay cả khi ứng dụng không chạy, nếu vẫn còn được cài đặt thì cần chạy các lệnh gỡ trong terminal
sudo killall NightOwllaunchctl unload ~/Library/LaunchAgents/NightOwlUpdater.plistsudo killall AutoUpdatesudo rm -rf /Applications/NightOwl.app/ ~/Library/LaunchAgents/NightOwlUpdater.plistsudo zsh -c "rm /Users/*/Library/LaunchAgents/NightOwlUpdater.plist"
Phân tích cách hoạt động kỹ thuật
- Khi cài đặt, một launch agent có tên
org.nightowl.autoupdater.comđược đăng ký- Daemon hóa tiến trình
/Applications/NightOwl.app/Contents/Helpers/AutoUpdateđể chạy khi khởi động với quyền root - Không thể vô hiệu hóa qua ứng dụng, và âm thầm diễn ra mà không có nhận biết hay đồng ý từ người dùng
- Daemon hóa tiến trình
- Thông báo mà ứng dụng hiển thị chỉ giới hạn ở việc thu thập thống kê bằng Google Analytics
- Ứng dụng cho biết dữ liệu được theo dõi để phân tích cách sử dụng tính năng và lỗi
- Nêu rõ rằng cài đặt
anonymizeIpsẽ che phần cuối của địa chỉ IP để đảm bảo thu thập dữ liệu ẩn danh - Hướng dẫn rằng có thể từ chối theo dõi bằng cách bỏ chọn "Send Statistics" trong phần cài đặt
- Tuy nhiên, ngay cả khi tắt gửi thống kê thì launch agent vẫn không bị vô hiệu hóa
- Daemon 'tự động cập nhật' thực hiện ba việc
- Kiểm tra cập nhật ứng dụng bằng Sparkle
- Báo cáo crash bằng Sentry
- Chạy HTTP proxy cục bộ trên cổng
40701(có thể thay đổi bằng tệp json cấu hình trong app bundle) - Mục cuối là hành vi không thể dự đoán từ một ứng dụng tự nhận là trình tự động cập nhật
-
Cấu trúc proxy và đường hầm SSH
- Daemon dùng
sudođể chuyển từ root sang tài khoản người dùng chính rồi chạynightowl_t.dylib- Đây là bản sao của tinyproxy, dùng giấy phép GPLv2 nhưng không kèm thông báo giấy phép GPL, nên có khả năng vi phạm
- Hoạt động như một HTTP(S) proxy
- Thiết lập kết nối SSH qua một tệp autossh đã bị đổi tên thành
nightowl_a.dylib(không có giấy phép)- Đích đến là
testconnectuser2023@proxy-gw1-europe.squidyproxy.com, cổng2043 - Sử dụng khóa công khai được thả vào
/tmpvới phần mở rộng.uu, và dùng tùy chọn-Rđể tạo đường hầm từ cổng từ xa về cục bộ - Khóa được lấy qua yêu cầu HTTPS tới
proxy-api1.squidyproxy.com - Tên miền này được đăng ký trên GoDaddy vào tháng 4 năm 2022, IP do Microsoft hosting
- Đích đến là
- Máy chủ SSH này đang bật quyền truy cập shell
- Sau khi kết nối thành công, lưu lượng HTTP được chuyển tới phía người dùng rồi đi ra ngoài qua kết nối Internet của người dùng
- Daemon dùng
-
Thử mở chuyển tiếp cổng UPnP
- Ứng dụng cố mở chuyển tiếp cổng UPnP trên router nhưng thất bại do tên khóa bị lẫn lộn
- Yêu cầu SOAP được gửi đi có chứa hành động
AddPortMappingvà giá trịip royal paws
- Yêu cầu SOAP được gửi đi có chứa hành động
- Ứng dụng cố mở chuyển tiếp cổng UPnP trên router nhưng thất bại do tên khóa bị lẫn lộn
Cơ chế bán lại băng thông (Pawns / IPRoyal)
- Có vẻ ứng dụng đang sử dụng Pawns SDK
- Pawns là ứng dụng trả cho người dùng $0.20 mỗi GB băng thông Internet được chia sẻ
- Dịch vụ Pawns do IPRoyal vận hành
- Đây là công ty proxy bán kết nối proxy dân cư với giá $1.75 mỗi GB
- Quảng cáo là "IP được thu thập 100% có đạo đức"
"TPE.FYI LLC" thực chất là gì
- TPE (hoặc Keeping Tempo, Tempo AI) đang xây dựng mô hình định giá để các địa điểm biểu diễn định giá vé theo nhu cầu thực tế của nghệ sĩ, dựa trên phân tích như lượt xem video YouTube và dữ liệu độ phổ biến theo khu vực
- Không liên quan tới Tempo AI Calendar hay Tempo AI Gym
- Thông tin liên quan rất ít, gần như không có tư liệu nào sau năm 2018
- Tại thời điểm viết, các bản cài đặt được xác nhận đã thử kết nối nhiều lần tới
https://stubbs.frontgatetickets.com/- Trang này là nơi bán vé biểu diễn nhạc sống của một nhà hàng ở Austin, Texas
- Công ty được thành lập tại Austin, Texas vào tháng 9 năm 2018, và bị giải thể vào tháng 3 năm 2023 bởi "Jarod Stirling"
- Địa chỉ là The Muse at SoCo, 1007 South Congress Avenue, Apartment 443, Austin, Texas, 78704
1 bình luận
Ý kiến trên Hacker News
Tôi biết chuyện này xảy ra khá thường xuyên, nhưng vẫn thắc mắc các công ty cập nhật Điều khoản sử dụng bằng những câu chữ như vậy thường xuyên đến mức nào
Ý tưởng về điều khoản tự động gia hạn/cập nhật chi phối vĩnh viễn mọi việc sử dụng lẽ ra đã phải bị chặn về mặt pháp lý từ lâu rồi
Câu chữ hiện tại của NightOwl nói rằng họ có thể thay đổi điều khoản và thông tin giá bất cứ lúc nào, có hiệu lực ngay khi đăng lên website, và việc thay đổi có “trọng yếu” hay không cũng do một mình NightOwl quyết định
Thông báo thay đổi điều khoản của một ứng dụng cài cục bộ bằng cách cập nhật website ư; chẳng lẽ còn phải theo dõi cả feed mạng xã hội để kiểm tra sao
Theo cảm tính thì đó có vẻ là điều khoản không thể thực thi và bất công, nhưng tôi cũng nghĩ đội pháp lý của Comcast hẳn đã xem xét rồi
Không biết có luật sư nào biết liệu câu chữ kiểu này có hiệu lực không, khi việc thay đổi hợp đồng được đăng trên website, đặc biệt là trong trường hợp không có thông báo riêng
Trước đây nó là một frontend OpenStreetMap tốt, nhưng tôi hiểu là đã bị một công ty đầu tư mua lại để kiếm tiền
Không biết tình trạng hiện tại của ứng dụng ra sao, mô hình doanh thu có giống những gì được mô tả ở đây không, và nên dùng ứng dụng thay thế nào
Trong vụ Safeway, tòa phán rằng người tiêu dùng không thể đồng ý với các điều khoản tương lai chưa tồn tại, và nếu không được thông báo về việc thay đổi điều khoản thì không thể chỉ vì tiếp tục sử dụng mà coi là đã đồng ý với điều khoản sửa đổi
Hình như các trình duyệt đã đánh dấu nó là không an toàn
Việc ứng dụng tạo nhiều kết nối tới các trang bán vé nhạc sống là một cách dùng phổ biến của proxy dân cư
Những kẻ đầu cơ vé dùng thiết bị của người dùng bị nhiễm để vượt qua chặn host trung tâm dữ liệu hoặc giới hạn truy cập hàng loạt, qua đó tăng xác suất lấy được vé có giá trị bán lại sau này
Các extension trình duyệt miễn phí, ứng dụng VPN, v.v. bị cài backdoor thông qua tác giả, kẻ xâm nhập kho mã, hoặc như lần này là bên mua lại, đôi khi biến thiết bị người dùng thành các proxy như vậy
Google và Amazon sở hữu các dải IP lớn cho dịch vụ cloud, nên bot chạy trên AWS hoặc Google Cloud tương đối dễ bị phát hiện
Ngược lại, Verizon cũng có các dải IP lớn cấp cho khách hàng dân cư, và NordVPN tận dụng việc các dịch vụ như Netflix hay Amazon không muốn chặn toàn bộ dải IP của Verizon để khiến lưu lượng trông giống như đến từ mạng dân cư
Tôi rất ghét các vụ thâu tóm âm thầm
Extension Chrome dành cho nhà phát triển cũng rất hay bị tác nhân độc hại mua lại rồi biến thành malware, thật kinh khủng
https://chrome.google.com/webstore/detail/hover-zoom%20/pccc...
https://github.com/extesy/hoverzoom/discussions/670
Kiểu như nếu chủ sở hữu thay đổi chỉ sau một đêm thì gửi cảnh báo thật nổi bật
Rất ít người muốn quyên góp, các công ty tử tế cũng không muốn mua ứng dụng để kiếm tiền, nên cuối cùng chỉ còn những công ty tệ nhất muốn khai thác người dùng là đi mua extension và ứng dụng
Những ứng dụng miễn phí này có giá trị, nhưng không chuyển thành thu nhập cho nhà phát triển, nên họ phải tìm lối khác
Một ứng dụng rất xâm nhập, vốn buộc phải cần quyền cực lớn để cung cấp chức năng cấp hệ thống, lại được chuyển giao trơn tru cho một công ty quảng cáo và bán dữ liệu — thật vô lý
Điều đó được ghi rõ trong điều khoản sử dụng mà người dùng đã đồng ý khi dùng phần mềm, nên rốt cuộc giống câu chuyện nguyên tắc người mua tự chịu trách nhiệm hơn
Cách giải thích rằng chế độ tự động tích hợp của macOS chỉ chuyển đổi khi người dùng rời khỏi máy tính nghe rất lạ
Nếu đặt lịch/vị trí Night Shift và để dark mode ở tự động, nó sẽ đổi ngay; còn nếu dùng launcher hoặc Spotlight thì cũng có thể đổi bằng một dòng AppleScript như
tell application "System Events" to tell appearance preferences to set dark mode to not dark modeTôi đoán xác suất dark mode bật lúc hoàng hôn chỉ khoảng 25%
Suốt nhiều năm, đến tận Ventura vẫn thế; không biết với người khác nó có luôn hoạt động hoàn hảo không
Có vẻ Apple đã thu hồi chứng chỉ nhà phát triển
Tôi thắc mắc liệu có nhật ký công khai nào cho biết nó bị thu hồi khi nào không
Việc tải ứng dụng đã bị chặn, nhưng hai dylib vẫn đang chạy, nên tôi tự hỏi có phải chuyện này xảy ra sau khi việc thu hồi chứng chỉ đã bắt đầu không
Ngay cả sau khi đăng xuất rồi đăng nhập lại, chúng vẫn tiếp tục chạy, nên có thể chúng tồn tại vượt qua cả việc đăng xuất
Cũng xuất hiện lời nhắc từ tường lửa macOS hỏi có cho phép binary AutoUpdate được nhắc tới nhận kết nối hay không, nên có vẻ tất cả những thứ này đã được phát hành trong vài ngày gần đây
Sau khi khởi động lại, hộp thoại
“NightOwl” will damage your computer. You should move it to the Trash.xuất hiện; dù cho phép thì/Users/*/Library/LaunchAgents/NightOwlUpdater.plistvà file thiết lập thông thường vẫn còn lại, nên chưa được dọn sạch hoàn toànVới người dùng không rành kỹ thuật, không quen dùng Terminal, có lẽ nên hướng dẫn họ khởi động lại
https://lapcatsoftware.com/articles/revocation.html
Trong môi trường của tôi, macOS đã gỡ ứng dụng xuống và từ chối mở nó
Thay vào đó tôi chuyển sang NightFall: https://github.com/r-thomson/Nightfall
Settings > Control Center > Display > Always Show in Menu Bar
Dù cần thêm một cú nhấp để bật/tắt chế độ tối, nhưng cũng dùng được Night Shift và là native 100%
Mở Automator, tạo một ứng dụng mới, chọn “change system appearance”, rồi chọn bật/tắt giữa chế độ sáng/tối
Sau khi lưu, mở tên ứng dụng đó từ Spotlight là có thể chuyển chế độ; có vẻ cũng làm được bằng Shortcuts
Tôi đặt phím tắt toàn cục là chuột phải+Option+Command, và nó hoạt động rất tốt
Có lẽ nên có luật để xử lý những chuyện kiểu này
Cần có một hợp đồng ngầm định rằng phần mềm sẽ hoạt động đúng như đã nói và không làm chuyện hoàn toàn khác, và nếu vi phạm thì phải có hình phạt nặng
Nếu mỗi lần gửi yêu cầu tới một website lớn lại gửi kèm một file EULA 10MB, rồi cứ gửi tiếp cho đến khi họ chấp nhận, thì có thể thành “DDoS bằng EULA”
Điều khoản viết hoa trong MIT License bắt đầu rằng phần mềm được cung cấp “nguyên trạng”, không có bất kỳ bảo đảm rõ ràng hay ngầm định nào về khả năng thương mại hoặc sự phù hợp cho một mục đích cụ thể; mục 15 của GPL cũng có câu chữ gần như tương tự
https://opensource.org/license/mit/
https://www.gnu.org/licenses/gpl-3.0.html#section15
Luật hợp đồng tiêu dùng của Anh, chịu ảnh hưởng từ Chỉ thị về quyền người tiêu dùng của EU, từ năm 2015 đã mở rộng tới cả nội dung số; trong đó có các điều khoản ngầm định rằng hàng hóa phải có chất lượng thỏa đáng, và các dịch vụ liên tục như Netflix, Spotify hay phần mềm có cập nhật không được thay đổi đột ngột so với khi được cung cấp ban đầu
https://www.legislation.gov.uk/ukpga/2015/15/part/1/chapter/...
Hầu hết các khu vực pháp lý cũng có quy định tương tự, và các nước EU hẳn có luật triển khai Chỉ thị về quyền người tiêu dùng
Tuy nhiên, điều này áp dụng khi đã trả tiền; NightOwl là miễn phí, nên những kỳ vọng pháp lý điều chỉnh việc bán hàng hóa/dịch vụ không áp dụng nguyên xi
Việc một công ty bị mua lại rồi sản phẩm bị nhét spyware là xấu, nhưng viễn cảnh một thiếu niên hoặc lập trình viên nghiệp dư đăng phần mềm nguồn mở miễn phí hay freeware để học lập trình rồi bị các tập đoàn khổng lồ kiện vì làm chuyện kiểu left-pad cũng không phải điều đáng mong muốn
Gánh nặng quản lý công nghệ nên đặt nặng hơn nhiều lên những nơi như Google, Microsoft, Apple, thay vì các nhà phát triển nhỏ làm tiện ích thanh menu miễn phí hay extension Chrome
Việc ngăn các ứng dụng nhỏ miễn phí/nguồn mở trở thành vector tấn công chuỗi cung ứng vẫn rất khó; cần những cải tiến chậm và chưa hoàn hảo như sandboxing tốt hơn, quyền ở cấp ứng dụng, giám sát mạng theo từng ứng dụng và phát hiện bất thường, xây dựng niềm tin trong quy trình đóng gói/phân phối, và kiện tụng nhiều khả năng không phải là câu trả lời
Phần nói rằng ứng dụng cố mở UPnP port forwarding nhưng thất bại vì tên khóa trên router bị lẫn lộn, thực ra lẽ ra phải thất bại trên mọi router
Vì UPnP nên được tắt
Mọi ứng dụng P2P như Tailscale đều cần tạm thời hoạt động như một server và cho phép lưu lượng đi vào
Không có chức năng này thì có thể nói thiết bị trở thành công dân hạng hai, và chẳng khác nào đối xử với người dùng như trẻ con
Dĩ nhiên có thể tự mở port, nhưng do UX khó tìm, thiếu nhất quán và phức tạp, đa số người dùng khó tiếp cận; phần lớn còn không biết port là gì
Họ cũng không muốn phiền phức vì phải tắt UPnP, và thiết lập đó nhiều khả năng vẫn đang bật, dù bạn có hiểu rõ hơn họ hay không
Phần lớn router có lẽ không có thiết lập như vậy, nên nếu thiết bị bị nhiễm nằm trong mô hình bảo mật của bạn, vì các cuộc tấn công NAT slipstream, tốt nhất nên giả định NAT trên thực tế gần như hoàn toàn vô hiệu
Thiết bị bị nhiễm có thể thay đổi bảng NAT của router để về cơ bản hoạt động như UPnP, nhưng không cung cấp UI nào để người dùng kiểm tra
Nếu chỉ dùng IPv6 không có NAT, thì việc vô hiệu hóa UPnP có thể là một biện pháp bảo mật ổn khi bạn sẵn sàng quản lý thủ công mọi ngoại lệ firewall; nhưng với đa số người hiện nay, host firewall mới là cách bảo vệ đáng tin cậy
Cách nói khá gây rối
Điều khoản ghi rằng “ứng dụng thay đổi thiết lập mạng của thiết bị người dùng để dùng thiết bị làm gateway cho lưu lượng Internet và chia sẻ lưu lượng Internet; khách hàng của NightOwl bao gồm các công ty nghiên cứu web/thị trường, SEO, bảo vệ thương hiệu, phân phối nội dung, an ninh mạng...”
Cái này đúng là đáng bị đem đốt
Nhưng tôi thật sự tò mò vì sao họ lại ghi rõ trong điều khoản sử dụng
Một tổ chức đã cài chức năng đáng ngờ như vậy thì tưởng cũng sẽ chủ động che giấu việc mình làm, nên tôi thắc mắc liệu việc ghi trong điều khoản có lý do nào khiến NightOwl được bảo vệ về mặt pháp lý không
Ví dụ như bình thường có thể bị kiện thành công, nhưng nếu đưa vào điều khoản thì lại ổn, hay hành vi đáng ngờ kiểu này về mặt kỹ thuật vẫn hợp pháp chỉ cần có trong điều khoản, tôi không rõ
Nếu vậy thì khá đáng thất vọng, và tôi mong quyền của ứng dụng được chia nhỏ hơn
Dùng Little Snitch sẽ giúp phát hiện ứng dụng kết nối đến IP và địa chỉ nào, cũng như chặn các kết nối đó
Mong họ tuyệt đối đừng cân nhắc bán mình