8 điểm bởi GN⁺ 2025-10-03 | 1 bình luận | Chia sẻ qua WhatsApp
  • Joshua Rogers đã sử dụng bộ công cụ dựa trên AI của riêng mình để tìm ra một danh sách lớn các vấn đề tiềm ẩn trong codebase của curl
  • Danh sách này không chỉ gồm các lỗi nhỏ về style code mà còn bao gồm các bug nhỏ và cả lỗ hổng bảo mật tiềm ẩn
  • Phần lớn các vấn đề được tìm thấy là bug nhỏ, nhưng có thể có 1–2 lỗi bảo mật ở mức nghiêm trọng
  • Đây là những vấn đề trước đó chưa từng được phát hiện, nên kết quả thực sự rất có giá trị
  • Dựa trên các nội dung đã được báo cáo, 22 bản sửa lỗi đã được hoàn tất
  • Vẫn còn hơn gấp đôi số lượng issue chưa được xác minh, nên việc rà soát và sửa lỗi vẫn đang tiếp tục
  • Các vấn đề chi tiết được ghi là "Reported in Joshua's sarif data" và nếu quan tâm thì có thể tự kiểm tra dữ liệu đó

1 bình luận

 
GN⁺ 2025-10-03
Ý kiến trên Hacker News
  • Đây là hình mẫu lý tưởng của một "bạn đồng hành lập trình AI" theo tôi
    Thay vì trực tiếp viết hoặc sửa mã, tôi muốn nó đóng vai trò chỉ ra những chỗ đáng nghi trong mã và nơi tôi nên xem xét kỹ hơn
    Khi nhờ Claude tìm bug trong thư viện C 20.000 dòng của tôi, nó chia nhỏ các file rồi grep các mẫu mã cụ thể, cuối cùng chỉ liệt kê lại các chú thích FIXME của tôi thôi (cười)
    Thực ra đó chỉ là mức mà một script bash đơn giản cũng làm được, nên khá thất vọng
    ChatGPT còn kém hữu ích hơn, cứ lặp đi lặp lại kiểu "mọi thứ trông ổn lắm! tuyệt vời! high five~"
    Cho đến nay, phân tích tĩnh truyền thống giúp ích nhiều hơn hẳn trong việc tìm bug thật sự, nhưng phân tích tĩnh sạch không có nghĩa là không có bug logic
    Tôi nghĩ đây chính là chỗ LLM nên tỏa sáng
    Nếu để lấy được thông tin hữu ích hơn về bug tiềm ẩn từ LLM mà phải dựng một môi trường cực kỳ tùy biến, thì cuối cùng giá trị sử dụng cũng giảm đi, giống như các công cụ phân tích tĩnh thường không được dùng khi đòi hỏi cấu hình quá phức tạp
    • Có một điểm hầu như không được bàn tới: nhiều lập trình viên thích tự thiết kế và viết mã hơn là review mã, ngoại trừ phần mã lặp đi lặp lại
      Hướng đi để AI viết mã còn lập trình viên chỉ review nghe có gì đó sai sai
      Dĩ nhiên tôi hiểu vì sao người ta muốn bán theo kiểu "số dòng code tăng lên nhé~"
    • Khi Claude cho ra kết quả đáng thất vọng như đã nhắc ở trên, một cách thường khá hiệu quả là "hỏi trực tiếp Claude xem prompt nào sẽ hiệu quả"
      Ví dụ, hỏi: "Tôi nên dùng prompt nào để Claude Code lập kế hoạch review bug logic hiệu quả và bỏ qua các chú thích như FIXME, TODO?"
      Prompt kết quả khá dài nên không thể chép vào đây, nhưng có thể xem ví dụ công khai trên gist
      Dựa trên kết quả đó, bạn cũng có thể tiếp tục cải tiến rồi biến nó thành agent
    • Cursor BugBot khá hợp với vai trò này
      Sau thời gian dùng thử miễn phí, nó được đội phát triển của chúng tôi ưa chuộng nên đã triển khai chính thức
      Ngoài vài trường hợp phát hiện sai thì nhìn chung rất hữu ích
      Cả người tạo PR lẫn reviewer đều tiết kiệm được nhiều thời gian
    • Tôi từng hỏi Claude rằng "Có một bug khiến thời gian phản hồi ở một endpoint cụ thể bị chậm, nhưng không liên quan tới mức dùng CPU/bộ nhớ hay DB, vậy nguyên nhân có thể là gì?" và sau vài vòng trao đổi đã nhận được gợi ý cho một bug cực khó tìm
      Có lần tôi đã lần ra manh mối và giải quyết được vấn đề vốn trước đây có thể mất hàng giờ
      Tôi khá kỳ vọng vào khả năng ứng dụng AI theo kiểu này
    • GPT-5 trong tình huống này bớt nịnh nọt hơn hẳn các model trước
      Tôi hơi ngạc nhiên khi lại có câu trả lời kiểu 'mọi thứ đều ổn'
      Khi dùng trong Codex CLI, nó thường đặt ra nghi vấn
      Gemini 2.5 Pro cũng ổn ở điểm này
  • Tôi thật sự không ngờ lại thấy một câu chuyện tích cực về curl và AI
    Có lẽ nên xem lại lịch sử ở đây: liên kết tìm kiếm HN về curl+AI
    • Dù Daniel Stenberg trước đây từng gặp đủ loại vấn đề với các báo cáo bug do AI tạo ra, tôi nghĩ việc lần này ông tiếp cận với thái độ rộng lượng là rất đáng nể
  • Có vẻ điểm mấu chốt là đây là một "bộ công cụ". Họ không nhầm nó với chế độ tự lái, mà đang kết hợp các công cụ đúng cách để dùng như một hệ thống
    • Có lẽ tác giả đã đưa thêm nhiều chi tiết trong bài gốc hơn blog tham khảo (đề cập trên Mastodon: liên kết liên quan)
    • Thật tiếc khi cuộc thảo luận bị thu hẹp thành thế lưỡng phân kiểu "tự lái hoàn toàn vs. mặc kệ"
      Có lẽ đúng hơn khi nhìn nó như sự khác biệt giữa người hiểu rõ mình đang dùng gì và người chỉ code theo cảm tính, theo bầu không khí
    • Stenberg mô tả nó như một bộ công cụ, nhưng tôi cũng tò mò contributor thực sự dùng các công cụ đó nghĩ gì
  • Trong kho curl có 55 PR đã đóng có nhắc tới "sarif data", và các PR được đề cập lần này chính là nhóm đó
    Điều này khá tương phản với việc Daniel Stenberg trước đây từng bị hành hạ bởi những báo cáo vấn đề bảo mật giả mạo cẩu thả do AI tạo ra
    Liên quan đến HackerOne: "Những người gửi báo cáo rác do AI tạo ra sẽ bị ban ngay lập tức. Thực chất nó gần như là một cuộc tấn công DDoS. Tôi còn muốn tính phí vì đã lãng phí thời gian"
    Cũng có thể tham khảo bài blog của Daniel hồi tháng 1 năm nay: The I in LLM stands for Intelligence?
    • Một số bug, chẳng hạn dùng sai định dạng printf cho size_t, có thể bị phát hiện chỉ bằng cách bật đúng các cờ warning của compiler
      Việc AI gợi ý rằng "bạn đang thiếu các cờ cảnh báo compiler quan trọng" sẽ khá hữu ích
      Có vẻ một số PR là do trùng khớp với dependabot, và nếu tìm "Joshua sarif data" thì có thể thấy danh sách PR cụ thể hơn liên kết
    • Có vẻ các model dùng khi đó đã tiến bộ rất nhiều
      Tôi đoán đó là lý do ấn tượng của Daniel Stenberg đã thay đổi
  • Trong số các scanner SAST thương mại cũng có loại tốt, nhưng đa số không thật sự thỏa đáng
    Có rất nhiều ý kiến kêu gọi áp dụng công nghệ SAST dựa trên AI và thực tế các sản phẩm liên quan cũng đã ra mắt, nhưng phần lớn vẫn chưa đáp ứng kỳ vọng
    Chỉ thất vọng thôi đã còn may; tệ hơn là nó tạo ra niềm tin sai lệch về bảo mật nên rất nguy hiểm
    Góc nhìn phê phán và cơ sở về scanner SAST dựa trên AI được giới thiệu tại đây
  • Tôi không dễ nhận ra ngay cụ thể công cụ AI ở đây là gì
    Tôi tò mò vì sao chiến lược lần này lại hiệu quả hơn, trong bối cảnh trước đó nhiều công cụ khác không tìm ra bug
  • Một vấn đề liên quan là trường hợp "dùng AI làm gì đó nhưng bản thân lại không hiểu mình đang làm gì", được nêu trong ví dụ này: You did this with an AI and you do not understand what you're doing here