GitHub đã triển khai một trình quét lệnh gạch chéo (slash-command scanner) trong ứng dụng Copilot dành cho máy tính để kiểm tra các mã chưa được commit nhằm tìm ra năm lỗi bảo mật phổ biến trước khi bạn thực hiện commit. Tính năng này khả dụng cho tất cả người dùng Copilot, bao gồm cả những người dùng gói miễn phí, và chỉ yêu cầu bản cập nhật ứng dụng ngày 14 tháng 7.
Các đoạn mã do AI tạo ra là một nguồn gây lỗi tiềm ẩn. Một nghiên cứu gần đây cho thấy 45% mã do các mô hình tạo sinh (generative models) tạo ra chứa ít nhất một lỗ hổng, từ các lỗi injection đơn giản đến mã hóa yếu. Bằng cách hiển thị các vấn đề đó ngay tại máy cục bộ, GitHub hy vọng các nhà phát triển có thể khắc phục chúng trong vài giây thay vì phát hiện ra chúng sau này trong các pipeline CI hoặc, tệ hơn là trên môi trường production.
Tại sao điều này lại quan trọng vào lúc này
Các nhà phát triển từ lâu đã dựa vào một hệ thống bảo mật phân lớp: Dependabot cảnh báo về các phụ thuộc (dependencies) dễ bị tổn thương, CodeQL thực hiện phân tích tĩnh chuyên sâu trong CI/CD, và việc kiểm tra mã (code review) thủ công giúp phát hiện các lỗi logic. Trình quét mới của Copilot bổ sung thêm một lớp phòng thủ đầu tiên chạy ngay trên máy của nhà phát triển, giúp bắt được những "lỗi dễ thấy" (low-hanging fruit) trước khi mã rời khỏi trình soạn thảo.
Phạm vi của công cụ này được giới hạn một cách có chủ đích. Nó tìm kiếm:
- Injection – các mẫu injection lệnh SQL, shell hoặc tương tự.
- Cross-site scripting (XSS) – xử lý không an toàn dữ liệu do người dùng cung cấp trong các ngữ cảnh web.
- Insecure data handling – vô tình ghi log hoặc làm lộ các thông tin bí mật (secrets).
- Path traversal – các nỗ lực truy cập tệp nằm ngoài thư mục dự kiến.
- Weak cryptography – sử dụng các thuật toán lỗi thời hoặc các khóa được mã hóa cứng (hard-coded keys).
Phân tích nội bộ của GitHub cho thấy việc lập trình với sự hỗ trợ của AI thường lặp lại những sai lầm này. Bằng cách gắn cờ chúng sớm, trình quét đóng vai trò như một bộ lọc nhanh, cho phép các nhà phát triển giải quyết các vấn đề hiển nhiên trong khi vẫn để dành các phần đánh giá kiến trúc sâu hơn cho các công cụ hiện có.
Cách nó tích hợp vào quy trình bảo mật hiện có
Hãy coi hệ thống bảo mật như một hệ thống phân cấp:
- Copilot slash command – một bước kiểm tra cục bộ, tức thì cho các mẫu lỗi hiển nhiên.
- CodeQL – một phân tích tĩnh toàn diện chạy trên toàn bộ kho lưu trữ (repository) trong CI/CD.
- Dependabot – một trình quét tập trung vào các phụ thuộc, theo dõi các lỗ hổng thư viện đã biết.
Lệnh Copilot mới không thay thế CodeQL hay Dependabot; nó chuyển một phần khối lượng công việc phát hiện lỗi lên phía trước (upstream). Khi nhà phát triển chạy lệnh, ứng dụng sẽ đóng gói phần thay đổi hiện tại (diff), gửi nó đến một mô hình từ xa để phân tích và trả về một danh sách ngắn gọn các kết quả tìm thấy. Thời gian xử lý chỉ tính bằng giây, cho phép nhà phát triển chỉnh sửa và commit lại ngay lập tức.
Cách sử dụng tính năng này
- Cập nhật ứng dụng Copilot desktop lên bản phát hành ngày 14 tháng 7.
- Thực hiện các thay đổi mã như bình thường.
- Mở khung chat Copilot và nhập lệnh gạch chéo (cú pháp chính xác sẽ hiển thị trong giao diện người dùng).
- Xem lại danh sách các lỗ hổng tiềm ẩn được trả về.
- Chỉnh sửa mã và commit.
Quy trình này tương tự như một lần chạy lint nhanh: không cần bảng điều khiển bảo mật riêng biệt, không cần chờ đợi một công việc CI.
Các hạn chế và lập luận phản biện
GitHub nhấn mạnh rằng trình quét này là một công cụ hỗ trợ, không phải là sự thay thế cho phán đoán của con người hay các bài kiểm tra chuyên sâu hơn. Nó không phát hiện các lỗi ở cấp độ thiết kế, thiếu quyền truy cập, hoặc các lỗi logic phức tạp đòi hỏi cái nhìn rộng hơn về toàn bộ ứng dụng.
Điều cần theo dõi tiếp theo
Điểm mấu chốt: Trình quét lệnh gạch chéo của GitHub Copilot bổ sung một bộ lọc bảo mật cục bộ, nhanh chóng và miễn phí cho mọi nhà phát triển, giúp bắt được các lỗi phổ biến nhất do AI gây ra trước khi chúng trở thành nỗi đau đầu tại thời điểm commit. Nó sẽ không thay thế việc phân tích chuyên sâu, nhưng nó cung cấp cho các nhóm một cách nhanh chóng để loại bỏ các sai sót dễ mắc phải và giữ cho các công việc bảo mật khắt khe hơn ở đúng vị trí của chúng—ở phía trước trong quá trình thiết kế và đánh giá.
