Özet - Güvenlik
- C kursu
- Uzman
- Ders 24/47
- 5 dk
Buffer overflow, canary ve ASLR'yi birleştirerek güvenli bir giriş fonksiyonu yazarsın.
Özet - Güvenlik
Bu grupta C programlarının sık yaptığı beş güvenlik hatasını ve karşılığı gelen korumaları gördün: buffer overflow, stack canary, ASLR, format string ve güvenli fonksiyonlar.
Buffer overflow yığın taşmasıdır; canary bunu yakalar. ASLR bellek bölgelerini rastgeleleştirir; format string açığı printf(input) kullanımından doğar. Güvenli alternatifler olan fgets ve strncpy taşmayı önler. Şimdi beş kavramı birleştiren bir mini görev yazacaksın; her birinin adını ve çözümünü ekranda göreceksin.
Uygulama Güvenlik kavramlarını yazdır
void print_security(const char *topic, const char *fix) fonksiyonunu tanımla; gövdesi printf("%s -> %s\n", topic, fix); olsun. main içinde beş konu için çağır: ("overflow", "bounds"), ("canary", "ssp"), ("aslr", "randomize"), ("format_string", "%s"), ("safe", "fgets/strncpy").
Başlangıç kodu
#include <stdio.h>
// print_security fonksiyonunu tanımla
// beş konuyu yazdır: overflow, canary, aslr, format_string, safe
int main(void) {
return 0;
}Örnek çözüm
#include <stdio.h>
void print_security(const char *topic, const char *fix) {
printf("%s -> %s\n", topic, fix);
}
int main(void) {
print_security("overflow", "bounds");
print_security("canary", "ssp");
print_security("aslr", "randomize");
print_security("format_string", "%s");
print_security("safe", "fgets/strncpy");
return 0;
}Beklenen çıktı
overflow -> bounds canary -> ssp aslr -> randomize format_string -> %s safe -> fgets/strncpy
Güvenlik temelleri tamam
Tebrikler! C güvenlik temellerini bitirdin. Artık buffer overflow, canary, ASLR, format string açığı ve güvenli fonksiyonları biliyorsun. Bir C programı yazarken bu beş kavramı birlikte düşünmelisin.
Savunma katmanlıdır: güvenli fonksiyonlar açık yaratmaz, canary açık yakalanırsa alarm verir, ASLR saldırganın hedef adresini gizler. Hiçbir koruma tek başına yeterli değildir; birlikte kullanılırlar. Bu, CodeBlanks C kursunun uzman seviye son grubuydu. Öğrendiklerini gerçek projelerde uygulayabilirsin.
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Bir programın taşmayı önlemek için hangi fonksiyonu kullanmalıdır?
- strcpy
- printf
- gets
- strncpy Doğru cevap
Açıklama: strncpy bir boyut parametresi alır ve taşmayı önler.
2 Beş güvenlik kavramını eşle
| Kavram | Anlamı |
|---|---|
overflow |
Taşma |
canary |
Yığın alarmı |
aslr |
Adres rastgeleştirme |
format_string |
Biçim dizesi açığı |
safe |
Sınırlı fonksiyonlar |