Ana Sayfa

Arm Cortex-M Güvenlik Durumunu GDB ile Belirleme

1 dk okuma

Arm Cortex-M mikrodenetleyicilerinde hata ayıklama yaparken, Armv8-M mimarisinin sunduğu ve TrustZone olarak da bilinen Cortex-M Güvenlik Uzantısı (CMSE) önemli bir rol oynar. Bu uzantı, işlemcinin belleği Güvenli (Secure) ve Güvenli Olmayan (Non-Secure) bölgelere ayırmasına olanak tanır. İşlemci Güvenli bellek bölgesinde çalışırken Güvenli durumda, Güvenli Olmayan bölgede çalışırken ise Güvenli Olmayan durumda kabul edilir. Hata ayıklama sırasında işlemcinin mevcut güvenlik durumunu hızlıca tespit etmek, özellikle karmaşık sistemlerde büyük kolaylık sağlar.

Armv8-M mimarisinde, yığın işaretçisi (SP) kaydı, işletim moduna (Handler veya Thread) ve CONTROL özel amaçlı kaydındaki SPSEL alanına bağlı olarak Ana Yığın İşaretçisi (MSP) veya Süreç Yığın İşaretçisi (PSP) ile eşleşir. Güvenlik uzantısı uygulandığında, MSP ve PSP gibi bazı kayıtların hem Güvenli (_S) hem de Güvenli Olmayan (_NS) varyantları bulunur (MSP_S, MSP_NS, PSP_S, PSP_NS). Bu varyantlar, SP'nin olası değerlerini genişleterek mevcut güvenlik durumunu belirlemek için ek bir boyut ekler.

GDB kullanarak bu durumu tespit etmek oldukça basittir. i r sp psp_ns msp_ns psp_s msp_s komutu ile mevcut yığın işaretçisi (SP) ile birlikte Güvenli ve Güvenli Olmayan MSP ve PSP varyantları görüntülenebilir. Eğer SP, PSP_NS veya MSP_NS ile eşleşiyorsa, işlemci Güvenli Olmayan durumdadır. SP, PSP_S veya MSP_S ile eşleşiyorsa, işlemci Güvenli durumdadır. Örneğin, bir Cortex-M33 çekirdeğinde sıfırlama sonrası işlemci genellikle Thread modunda ve Güvenli durumda başlar, bu durumda SP, MSP_S ile eşleşir. Thread modunda CONTROL.SPSEL alanının değeri de print $control & 0x2 komutu ile kontrol edilebilir. Bu yöntem, Armv8-M tabanlı sistemlerde güvenlik durumunu anlamak için pratik ve hızlı bir yol sunar.

İçgörü

Arm Cortex-M mikrodenetleyicilerinde TrustZone güvenlik uzantısının etkin olduğu sistemlerde, GDB ile yığın işaretçisi kayıtlarını inceleyerek işlemcinin mevcut Güvenli veya Güvenli Olmayan çalışma durumunu kolayca belirlemek hata ayıklama süreçlerini hızlandırır.

Kaynak