Bảo mật với GitHub Copilot

Phát triển phần mềm với GitHub Copilot

Thalia Barrera

AI Engineering Curriculum Manager, DataCamp

Khi bug thành lỗ hổng

 

nanobanana: half: Một lập trình viên phát hiện lỗi nhỏ vô hại trên màn hình laptop ở một bên, bên kia là một bóng đen với dữ liệu tuôn ra từ máy chủ, minh họa phẳng đối lập hai kịch bản

 

  • Mã dễ tổn thương thường trông y hệt mã khác
  • Vẫn qua kiểm thử, review, và đôi khi lên production
  • 🤖 Copilot có thể đóng vai người rà soát bảo mật
Phát triển phần mềm với GitHub Copilot

Hàm dễ bị tấn công

 

def get_user(username):
    query = f"SELECT * FROM users \
WHERE username = '{username}'"
    return db.execute(query)

 

Kẻ tấn công có thể chèn SQL:

  • Vượt qua xác thực hoàn toàn
  • Đổ toàn bộ bảng users
  • Xóa cơ sở dữ liệu
Phát triển phần mềm với GitHub Copilot

[quay màn hình]

Phát triển phần mềm với GitHub Copilot

[quay màn hình]

Phát triển phần mềm với GitHub Copilot

Prompt bảo mật hiệu quả

 

Rà soát có mục tiêu

Rà soát #selection tìm lỗ hổng SQL injection và XSS

 

Quét toàn mã nguồn

Quét @workspace tìm thông tin xác thực hoặc API key hardcode

Phát triển phần mềm với GitHub Copilot

[quay màn hình]

Phát triển phần mềm với GitHub Copilot

Từ rà soát đến phòng ngừa

nanobanana: half: Một khiên bảo mật phát sáng, xung quanh là các biểu tượng cảnh báo đại diện cho nhiều mối đe dọa mạng, minh họa phẳng trên nền sạch

 

Sinh mã phòng thủ

Thêm kiểm tra dữ liệu đầu vào cho endpoint này. Từ chối kiểu không mong đợi và giới hạn độ dài.

 

Đừng chỉ tìm lỗ hổng — hãy ngăn chúng

Phát triển phần mềm với GitHub Copilot

Tích hợp bảo mật vào mọi gợi ý

 

.github/copilot-instructions.md

## Security standards
- Use parameterized queries
- Never hardcode credentials or API keys
- Validate and sanitize all user input
- Use bcrypt or argon2 for password hashing
Phát triển phần mềm với GitHub Copilot

Quy tắc bảo mật theo ngôn ngữ

 

.github/instructions/security.instructions.md

applyTo: "**/*.py"

- Use secrets module instead of random for tokens
- Escape all user input in Jinja2 templates

 

✅ Bảo mật trở thành một phần của cách bạn viết mã

Phát triển phần mềm với GitHub Copilot

Ayo berlatih!

Phát triển phần mềm với GitHub Copilot

Preparing Video For Download...