Guillermo Austin Kim
Posts
998 posts[Arm프로세서] 트러스트존(TrustZone)의 유래
트러스트존의 유래를 소개하려면 먼저 시스템의 공격을 방지하기 위한 시스템의 설계 과정에 대해 언급할 필요가 있습니다. 2000년 초부터 다양한 소프트웨어 기술들이 소개되고 발전되는데, 이에 비례해 해킹 기술이 업그레이드됩니다. 해커들이 다양한 소프트웨어 기법을 활용해 시스템을 공격하면서 해킹의 공격 루트가 다양해집니다. 애플리케이션에서 디바이스 드라이버 그리고 네트워트 패킷이나 서버를 통해 시스템을 침입하는 경로가 늘어난 것입니다. 많은 IT 업체들이 해킹으로 피해를 보면서 보안 수준이 높은 시스템 아키텍처의 필요성을 절감합니다. 그래서 IT업체들은 중요한 데이터를 암호화해서 저장하거나 해커의 공격으로 보호 받을 수 있게 시스템을 설계하게 됩니다. 고육지책으로 보안과 관련된 기능(Feature)를
[Arm프로세서] 트러스트존(TrustZone)이 필요한 이유
IT 기술이 발전하면서 사회 전반적으로 많은 분야에 소프트웨어가 활용되고 있습니다. 인터넷 뱅킹에서 학교 수업까지 우리 생활에서 프로그램을 자연스럽게 사용하고 있습니다. 이에 비례해 하드웨어에서 소프트웨어에 이르기 까지 보안을 위협하는 요소들이 늘어나고 있습니다. 시스템을 해킹할 수 있는 기법도 업그레이드 되고 있어, 개인정보와 국가 및 기업의 기밀 유출 방지를 위한 IT 보안(Security) 기술의 필요성이 계속 강조되고 있습니다. 그래서 IT 산업을 구성하는 다양한 업체와 학계에서 해킹과 같은 공격에 대응할 수 있는 안전 체계나 실행 환경(TEE: Trusted Execution Environment)을 구축하려는 노력을 기울여 왔습니다. IT 업체 중 메이저 CPU 프로세서 설계 업체 중 하나인 a
[Crash-utility] 컨트리뷰션 하기 (step-by-step)
이번 포스트에서는 Crash-utility에 컨트리뷰션하는 방법을 정리한다. 패치를 작성하는 이유 먼저 작성한 패치는 다음과 같다. 누구나 작성할 수 있는 typo 패치다. diff --git a/symbols.c b/symbols.cindex 73baa95..9ae0187 100644--- a/symbols.c+++ b/symbols.c@@ -3139,7 +3139,7 @@ kallsyms_module_function_size(struct syment *sp, struct load_module *lm, ulong * if (!(lm->mod_flags & MOD_KALLSYMS) || !(kt->
[Arm프로세서] Armv8: XEN 하이퍼바이저에서 익셉션 레벨을 체크
EL1에서 실행되는 리눅스 커널과 마찬가지로, EL2에서 구동되는 XEN 하이퍼바이저도 익셉션 레벨을 읽어서 제어하는 코드를 볼 수 있습니다. 이번에는 EL2에서 구동되는 XEN 하이퍼바이저에서 익셉션 레벨을 체크하는 루틴을 소개합니다. 이번에는 EL2에서 실행되는 XEN 하이퍼바이저의 check_cpu_mode 레이블의 구현부를 분석하겠습니다. check_cpu_mode:02 PRINT("- Current EL ")03 mrs x5, CurrentEL04 print_reg x505 PRINT(" -\r\n")0607 /* Are we in EL2 */08 cmp x5, #PSR_MODE_EL2t09 ccmp
[Arm프로세서] Armv8: 리눅스 커널에서 익셉션 레벨을 읽어서 제어하는 루틴
먼저 리눅스 커널이 부팅하는 과정에서 익셉션 레벨을 읽어서 제어하는 루틴을 소개합니다. Armv8 기반 리눅스 커널이 부팅을 할 때 el2_setup 레이블이 호출되는데, 이 레이블에서는 현재 익셉션 레벨을 읽어서 관련된 처리를 수행합니다. 다음은 el2_setup 레이블의 구현부입니다. SYM_FUNC_START(el2_setup)02 msr SPsel, #1 // We want to use SP_EL{1,2}03 mrs x0, CurrentEL04 cmp x0, #CurrentEL_EL205 b.eq 1f06 mov_q x0, (SCTLR_EL1_RES1 | ENDIAN_SET_EL1)07 msr sctlr_el1, x008 mov w0, #BOOT_CPU_MODE_EL1 // This cpu


