1 bình luận

 
GN⁺ 2024-07-21
Ý kiến trên Hacker News
  • Với một hệ thống nằm trên đường dẫn trọng yếu đến mức này, lẽ ra nó không được phép vượt qua một pipeline CI đúng nghĩa
    Tôi không phải kiểu quá khắt khe với kiểm thử tự động, nhưng với hệ thống có mức độ quan trọng như thế này thì việc quản lý trạng thái phải đặc biệt tốt
    Không nên triển khai production nếu không có kiểm thử tích hợp cho mọi môi trường mà họ tuyên bố hỗ trợ; và thật vô lý nếu một công ty có quy mô và tầm quan trọng như vậy thậm chí không có server staging hay dev test để xác minh toàn bộ các image được hỗ trợ

    • Chưa có thêm thông tin mà đã giả định quá nhiều. Ví dụ, thực tế có thể đã có một file bình thường, và điểm lỗi nằm ở đoạn mã upload artifact đã được xác minh lên CDN
      Khi đó vấn đề chỉ có thể phát sinh sau khi đã vượt qua nhiều bước kiểm tra trước triển khai. Tôi không muốn vội kết luận rằng họ hoàn toàn không kiểm thử thứ xuất ra cho Windows
    • Ai nói là họ không có môi trường như vậy? Ai nói là nó không vượt qua tất cả các bài test đó? Hiện tại có quá nhiều giả định
    • Vài năm trước khi phỏng vấn với một nhóm phụ trách một ngôn ngữ chạy trong kernel, tôi nhớ họ nói CI chạy 20.000~40.000 tổ hợp máy/OS và cấu hình
      Trong số đó chắc hẳn cũng có Windows mặc định
    • Nếu tiêu chí chấp nhận là “khi có chữ ký dữ liệu sai thì ngăn máy boot”, thì vì điều đó có thể ám chỉ bản phân phối hoặc mạng bị hỏng, việc không boot xét về hậu quả có thể là hành vi đúng
      Cũng có khả năng thiết kế là máy không được boot hoàn toàn cho đến khi tải xuống được file có chữ ký hợp lệ
    • Khó mà tin rằng một file toàn ký tự null lại là artifact của pipeline build tự động
      Tôi sẽ cược rằng sau khi thứ gì đó được build và vượt qua test CI, hệ thống đã hỏng ở một bước hậu kỳ sao chép file để chuẩn bị triển khai. Nhưng hiện tại tất cả chỉ là suy đoán
  • Liên quan đến việc này, có vẻ không phải ngẫu nhiên khi hai thảm họa công nghệ lớn nhất trong lịch sử (CrowdStrike và vụ hack SolarWinds vài năm trước) đều xuất phát từ phần mềm bảo mật mất kiểm soát
    Tôi cho rằng những người có thiên hướng hacker muốn khởi nghiệp công ty phần mềm bảo mật có lẽ là nhóm ít quan tâm nhất đến việc triển khai những phần nhàm chán của một văn hóa hướng quy trình. Với SolarWinds, người ta đã phát hiện văn hóa bảo mật nội bộ của công ty tệ hại đến mức nào; còn vụ này, khi nguyên nhân gốc rễ được công bố, có vẻ nhiều khả năng sẽ là một quy trình triển khai nhanh và lỏng lẻo

    • Không đồng ý. Các công ty bảo mật mắc hội chứng “quá lớn để có thể sụp đổ”, còn khách hàng thì muốn tick đủ ô checklist nên tiền chảy vào rất dễ
      Bảo mật là văn hóa, không phải một sản phẩm để mua, và phải được gieo trồng từ ngày đầu bằng nỗ lực chủ động cùng những công việc khó nhọc. Trên thị trường không có sản phẩm nào “cung cấp bảo mật” cho bạn cả; chỉ có sản phẩm để khi có vấn đề thì bạn đổ trách nhiệm cho nó mà thôi
    • CrowdStrike ban đầu là công ty được thành lập và đặt trụ sở tại Irvine, California
      Phần lớn tổ chức kỹ thuật thời kỳ đầu hoặc làm remote/tại nhà, hoặc ở Irvine; khi mở rộng quy mô, họ thêm văn phòng Sunnyvale, rồi sau đó chuyển trụ sở chính thức sang Austin, TX
      Trong vài năm gần đây họ cũng đã mở rộng hoạt động kỹ thuật ở nước ngoài, và điều này có khả năng bao gồm cả offshoring
    • Đây là một giả thuyết riêng, nhưng tương thích với giả thuyết kia. Phần mềm bảo mật thường cần quyền truy cập rộng và mạnh
      Vì vậy khi có sai sót hoặc bị xâm nhập, tác động rất dễ trở nên lớn hơn nhiều
    • Lịch sử của ngành này đúng là khá đặc biệt. Chỉ tính những cái nghĩ ra ngay đã có CrowdStrike, SolarWinds, Kaspersky, https://en.wikipedia.org/wiki/John_McAfee
      Chắc tôi còn quên thêm vài trường hợp nữa. Có lẽ cấu trúc vấn đề tự chọn lọc này giống với vấn đề đang gây khó cho ngành cần sa hợp pháp
    • Phần mềm bảo mật cần quyền truy cập cấp kernel. Khi có gì đó hỏng, nó dẫn đến vòng lặp boot và crash
      Phần lớn phần mềm khác không cần mức truy cập thấp như vậy; kể cả khi crash cũng không kéo cả hệ thống xuống cùng, và còn có thể nâng cấp tự động nhanh chóng
  • Nếu phải tìm mặt tích cực của thảm họa này, thì có một chút hy vọng rất nhỏ rằng các tổ chức sẽ xem xét lại quyền truy cập cấp kernel
    Không thể coi công ty game nào cũng đủ năng lực để dùng phần mềm anti-cheat cấp kernel

    • Trừ khi Microsoft siết cực mạnh, tôi không nghĩ phần mềm game sẽ bị ảnh hưởng
      Dù vậy, Microsoft cũng sở hữu các công ty game, nên nhiều khả năng họ vẫn sẽ tiếp tục cấp các hook dành cho game. Các tổ chức doanh nghiệp sẽ chẳng bận tâm chút nào đến thông lệ anti-cheat của Riot, vì họ không cài LoL trên máy làm việc
    • Đối thủ cần phải đối đầu là những người mua cheat nói rằng “driver cấp kernel ngẫu nhiên à? Không vấn đề!”
    • Tôi nghĩ anti-cheat phần lớn nên dựa trên hành vi phía server
    • Trên macOS, theo tôi biết thì ít nhất là không thể truy cập kernel, điều đó cũng may mắn phần nào
  • Cái này trông như một file kiểm thử mà người phụ trách QA hẳn sẽ thử thứ hai hoặc thứ ba, ngay sau file rỗng và file hợp lệ tối thiểu. Mức độ bất tài toàn diện lộ ra ở đây thật gây sốc
    Trong một thị trường cạnh tranh nơi người ta gây ấn tượng với các lãnh đạo không chuyên kỹ thuật bằng các bài thuyết trình, cũng không có gì lạ khi một công ty có năng lực kỹ thuật không có lợi thế hơn một công ty bất tài
    Gần đây tôi đọc phán quyết về Craig Wright https://www.judiciary.uk/judgments/copa-v-wright/, và người này, vốn đã tuyên bố gian dối rằng mình là Satoshi Nakamoto, lại không có cả năng lực kỹ thuật cơ bản ngay trong lĩnh vực mà ông ta tự nhận là chuyên gia hàng đầu thế giới. Trên bục nhân chứng, ông ta thậm chí không biết ‘unsigned’ nghĩa là gì, và có vẻ từ thập niên 90 đã làm bảo mật cho các tập đoàn lớn, dùng thuật ngữ chuyên môn, demo bị dàn dựng và tài liệu giả để lừa mọi người
    Nhà sáng lập kiêm CEO CrowdStrike George Kurtz từng là CTO khi McAfee làm gần như điều tương tự 14 năm trước: https://old.reddit.com/r/sysadmin/comments/1e78l0g/can_crowd... https://en.wikipedia.org/wiki/George_Kurtz
    Bản thân CrowdStrike cũng đã gây ra cùng vấn đề trên Debian stable 3 tháng trước: https://old.reddit.com/r/debian/comments/1c8db7l/linuximage6...
    Thật kinh khủng khi các quy định tuân thủ PCI đã đẩy CrowdStrike và phần mềm diệt virus vào gần như mọi nơi trong hạ tầng IT ngày nay

    • Cũng thật mỉa mai khi tuân thủ lại tạo ra lỗ hổng lớn nhất dưới dạng một điểm lỗi đơn nhất khổng lồ
      Nhưng quy định của chính phủ vốn là vậy mà
    • Điều tệ nhất của sự cố lần này là các tác nhân quốc gia giờ đã có một bản thiết kế rõ ràng cho tấn công hạ tầng quy mô lớn
    • Thật thú vị khi những người trong liên kết nổi giận vì chuyện này bị gọi là “sự cố Microsoft” và nói rằng đó là “lỗi của CrowdStrike”
      Nhưng đây cũng là thất bại của Microsoft. Rộng hơn nữa, đây lại là một thất bại của cả ngành
      Những chuyện như thế này còn phải lặp lại bao nhiêu lần nữa thì mới có cải cách trong ngành, để chúng ta có thể xây dựng các hệ thống an toàn và đáng tin cậy mà ta đã nghiên cứu suốt 70 năm? Cảm giác như năm 1988 đang lặp lại một lần nữa
    • Khá mỉa mai là Craig Wright từng đề xuất không để một máy tính hay cụm máy ở một nơi phát hành chứng thư số, mà đưa chúng lên blockchain
      Nếu tập trung một chỗ thì sẽ trở thành mục tiêu, còn mạng ngang hàng thì chống chịu tấn công tốt hơn nhiều
      Nếu vấn đề lần này liên quan đến việc chứng thư gốc của mọi máy tính bị thay bằng CrowdStrike, thì chứng thư được đăng ký trên blockchain có thể là một giải pháp. Tôi không phải chuyên gia mật mã học, nhưng nghe có vẻ hợp lý
      Nói thêm, chỉ khi nghe Craig Wright giải thích về blockchain tôi mới bắt đầu hiểu khá rõ whitepaper Bitcoin. Ông ta có thể không phải coder giỏi nhất, nhưng một nhà toán học đâu hẳn là vô dụng trong bảo mật?
    • Tôi không muốn nghe như thuyết âm mưu, nhưng có vẻ vẫn còn quá sớm để chỉ dựa vào dao cạo Hanlon mà loại trừ ác ý
      Phần lớn sai lầm không vô lý đến mức có quy mô toàn cầu như thế này. Nó trông như sai lầm lớn nhất từ trước đến nay, tức giống như Y2K đã không xảy ra
  • Bài này sai, và vì không có cách nào khác để gỡ khỏi trang nhất nên tôi flag
    Việc tìm thấy một file toàn số 0 trên máy tính bị hỏng không có nghĩa file đó ngay từ đầu đã được phân phối dưới dạng toàn số 0
    https://x.com/craiu/status/1814339965347610863
    https://x.com/cyb3rops/status/1814329155833516492

    • CrowdStrike có hành vi thay thế bằng 0 một file đang được truyền qua socket mạng nếu file đó khớp với chữ ký mã độc
      Nếu chính các file này là file chữ ký mã độc, thì việc có kết quả khớp cũng không có gì đáng ngạc nhiên
    • CrowdStrike cuối cùng đã trực tiếp xác nhận: https://www.crowdstrike.com/blog/tech-analysis-channel-file-...
  • Điều này khớp với những gì tôi nghe được từ một người bạn quen người làm ở CrowdStrike về lỗi này
    Lỗi đã ẩn trong kernel driver suốt nhiều năm, rồi bị kích hoạt khi dữ liệu lỗi đi vào. Dữ liệu đó được thêm vào ở bước hậu xử lý của bản cập nhật cấu hình, sau khi kiểm thử nhưng trước khi được sao chép sang máy chủ cập nhật để client tải về
    Có vẻ cấu hình kiểm thử của CrowdStrike ổn đối với chính dữ liệu cấu hình, nhưng không bắt được trước khi đưa lên production. Vì họ đang kiểm thử sai thứ
    Nếu họ công bố phân tích hậu sự cố, hy vọng họ sẽ thừa nhận vấn đề này và giải thích sẽ làm gì để ngăn một thất bại quy trình gây ảnh hưởng toàn cầu khác

    • Cuối cùng cũng có một lời giải thích có phần hợp lý
      Một sysadmin có năng lực có lẽ lúc này đã tắt hết tính năng tự động cập nhật từ Greenland đến New Zealand, chặn bằng firewall, và lập kế hoạch loại sản phẩm này khỏi tài sản máy chủ càng nhanh càng tốt
      Ngân sách marketing của các sản phẩm cạnh tranh chắc sẽ tăng trong quý này
    • CrowdStrike cần phải chịu nhiều thứ lớn hơn nhiều so với việc chỉ “thừa nhận”
      Dù hợp đồng có điều khoản “giới hạn trách nhiệm”, tôi vẫn hy vọng sẽ có điều tra nghiêm túc, phạt tiền và truy cứu pháp lý
      Quy mô thiệt hại mà sự cố này gây ra rất khó tính toán, và còn lớn hơn nếu tính cả thời gian mà doanh nghiệp và người dân thường đã lãng phí. Ví dụ, cả những người định đi máy bay cũng nằm trong số đó
      Sự cẩu thả như thế này nhất định phải có cái giá của nó
  • Có ý kiến cho rằng tệp mà Kevin Beaumont nhận được trên Mastodon khác nhau tùy khách hàng
    https://cyberplace.social/@GossiTheDog/112812454405913406
    Chỉ cần kéo xuống một chút là thấy

    • Tôi từng nghĩ Windows yêu cầu tất cả mô-đun kernel phải được ký
      Nếu không phải chỉ là một bản thử nghiệm bị rò rỉ đơn thuần mà là nhiều bản sao bị hỏng, thì câu hỏi là làm sao chúng vượt qua được kiểm tra chữ ký để kernel có thể tải chúng
  • Đây có thể không phải là nội dung gốc của tệp, mà là kết quả của một biện pháp ứng phó thủ công nhằm ngăn thiệt hại
    Có thể ai đó đã kỳ vọng rằng nếu ghi đè tệp lỗi bằng một tệp toàn số 0 có cùng kích thước thì bản cập nhật sẽ trở nên vô hại
    Hoặc nếu theo giả thuyết “đã bỏ qua QA vì một lỗ hổng nghiêm trọng”, thì việc dừng phát hành bản vá thực tế có thể là nỗ lực nhằm giảm quyền truy cập vào dữ liệu thật và làm chậm quá trình reverse engineering lỗ hổng

  • Theo lời giải thích đăng trên bảng công nghệ của 4chan, vấn đề gồm hai giai đoạn
    Một driver kernel đã ký tên là CSAgent.sys phân tích các tệp định nghĩa virus của CrowdStrike, và không xử lý đúng trường hợp tệp định nghĩa malformed gây ra truy cập bộ nhớ sai
    Đã có một driver kernel như bom hẹn giờ chạy suốt nhiều tháng mà không gặp vấn đề cùng các tệp định nghĩa bình thường, rồi đến một lúc nào đó web server hoặc CDN cung cấp tệp định nghĩa bắt đầu cung cấp nội dung sai như tệp rỗng, byte ngẫu nhiên hoặc tệp của phần mềm khác
    Lời giải thích là client cập nhật tải chúng xuống dưới C:\Windows\System32\drivers, rồi CSAgent.sys đọc lại và phân tích, dẫn đến PAGE_FAULT_IN_NONPAGED_AREA, màn hình xanh và vòng lặp khởi động lại
    Người ta nói rằng khi nhìn vào khác biệt giữa CSAgent.sys_18511.sys và CSAgent.sys_18513.sys, có thể thấy dấu vết của việc thay đổi kiểm tra kích thước và kích thước buffer để các tệp định nghĩa lỗi trong tương lai không gây crash nữa

    • Nghe giống như một tính năng bảo vệ virus nào đó trên máy chủ cung cấp tệp định nghĩa đã chặn việc đọc đĩa và thay vì báo lỗi thì cung cấp dữ liệu đầu ra toàn số 0
      Nếu thực sự nguyên nhân là một gói antivirus nào đó thì khá buồn cười
    • Nếu chuyện này xảy ra nhiều lần, cũng có thể là một cuộc tấn công của hacker nhắm vào một driver kernel được viết tệ
      Đặc biệt trong bối cảnh thời điểm bầu cử hiện nay và đây là công ty mà Trump ưa thích, nó cũng có thể là một màn phô trương sức mạnh
  • Trước đây từng có trường hợp phần mềm bảo mật biến toàn bộ tệp thành số 0, làm hỏng quá trình biên dịch phần mềm
    Không nói rằng lần này là như vậy, nhưng cũng không có gì quá ngạc nhiên
    Về cơ bản, trên Windows, linker không mở được tệp vì một tiến trình khác đang khóa tệp để quét. Nhưng thay vì báo lỗi, nó lại biến mã đối tượng dự định được link thành số 0
    Mọi người không tìm ra nguyên nhân, cho đến khi mở debugger lên mới xác nhận rằng các khối lớn của mã đối tượng đã bị thay thế bằng số 0

    • Tôi đã gặp quá nhiều lần vấn đề Visual Studio không ghi được vào tệp vừa biên dịch
      Antivirus giữ chặt binary mới tạo đúng vào thời điểm mt.exe cần ghi vào, nên tôi thậm chí đã tạo một wrapper cho mt.exe có thêm cơ chế thử lại. Các bản build CI cũng vì thế mà thỉnh thoảng thất bại ngẫu nhiên