Keamanan dengan GitHub Copilot

Pengembangan Perangkat Lunak dengan GitHub Copilot

Thalia Barrera

AI Engineering Curriculum Manager, DataCamp

Saat bug menjadi kerentanan

 

nanobanana: half: Seorang pengembang melihat bug kecil tak berbahaya di layar laptop di satu sisi, dan di sisi lain sosok bayangan dengan data mengalir keluar dari server, ilustrasi vektor datar yang mengontraskan dua skenario

 

  • Kode rentan sering tampak identik dengan kode lain
  • Lolos uji, ulasan, dan kadang ter-deploy ke produksi
  • 🤖 Copilot dapat bertindak sebagai peninjau keamanan
Pengembangan Perangkat Lunak dengan GitHub Copilot

Fungsi yang rentan

 

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

 

Penyerang dapat menyuntikkan SQL:

  • Lewati autentikasi sepenuhnya
  • Mengambil seluruh tabel users
  • Menghapus database Anda
Pengembangan Perangkat Lunak dengan GitHub Copilot

[rekaman layar]

Pengembangan Perangkat Lunak dengan GitHub Copilot

[rekaman layar]

Pengembangan Perangkat Lunak dengan GitHub Copilot

Prompt keamanan yang efektif

 

Tinjauan terarah

Tinjau #selection untuk kerentanan SQL injection dan XSS

 

Pindai seluruh kode

Pindai @workspace untuk kredensial atau API key yang ditanam keras

Pengembangan Perangkat Lunak dengan GitHub Copilot

[rekaman layar]

Pengembangan Perangkat Lunak dengan GitHub Copilot

Dari tinjauan ke pencegahan

nanobanana: half: Perisai keamanan bercahaya dikelilingi ikon peringatan yang mewakili berbagai ancaman siber, ilustrasi vektor datar di latar bersih

 

Generasi kode defensif

Tambahkan validasi input ke endpoint ini. Tolak tipe tak terduga dan batasi panjang.

 

Jangan hanya menemukan kerentanan — cegah juga

Pengembangan Perangkat Lunak dengan GitHub Copilot

Tanamkan keamanan di setiap saran

 

.github/copilot-instructions.md

## Standar keamanan
- Gunakan query terparameter
- Jangan pernah menanam keras kredensial atau API key
- Validasi dan sanitasi semua input pengguna
- Gunakan bcrypt atau argon2 untuk hashing sandi
Pengembangan Perangkat Lunak dengan GitHub Copilot

Aturan keamanan spesifik bahasa

 

.github/instructions/security.instructions.md

applyTo: "**/*.py"

- Gunakan modul secrets, bukan random, untuk token
- Escape semua input pengguna di template Jinja2

 

✅ Keamanan menjadi bagian dari cara Anda menulis kode

Pengembangan Perangkat Lunak dengan GitHub Copilot

Ayo berlatih!

Pengembangan Perangkat Lunak dengan GitHub Copilot

Preparing Video For Download...