ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [2022/03/07][짤막한 이야기 - 소프트웨어 보안의 안전성]
    짤막한 이야기 2022. 3. 7. 12:29
    728x90
    반응형

    [2022/03/07][짤막한 이야기 - 소프트웨어 보안의 안전성]
    소프트웨어 보안이란 소프트웨어를 보호하는 기술 혹은 이론을 의미한다.
    ASLR(Address Set Layout Randomization), DEP(Data Executable Protection), W^X(Write xor eXecute) 등 이미 시스템 자체적으로 적용되는 기본적인 보호 기술 뿐 아니라,
    난독화(Obfuscation), 제어흐름 무결성 검증(Control-Flow Integrity), 원격 검증(Remote-Attestation) 등 활발하게 연구되고 적용하기 위하여 움직이는 보호 이론 등을 모두 포함하는 것이다.
    그만큼 소프트웨어가 보호받지 않으면 매우 위험하며, 시스템 전체를 장악당할 수 있기 때문에 안전하게 보호되어야 하는 필수요소이다.
    그럼에도 불구하고 대부분의 연구자들은 “어떤 소프트웨어 보호 기술이 더 안전한가요?”라는 질문에 답을 할 수 없다.
    심지어는 “어떤 소프트웨어 보호 기술이 가장 안전한가요?”조차도 답을 명확하게 내리는 것이 어렵다.
    가장 안전한 소프트웨어는 취약점이 없는 소프트웨어인데, 이는 인간이 시큐어코딩을 수행한다는 관점에서도 매우 불완전(사람이 코딩하는데 취약점이 하나도 없을 수 있을까?)할 수 밖에 없다.
    그리고 취약점이 있는 소프트웨어를 보호하는 기술도 능동적인 기술(취약점을 공격하지 못하게, Ex: Control-Flow Integrity)과 수동적인 기술(취약점을 발견하지 못하게, Ex: Obfuscation)로 나뉘어져 있다.
    중요한 것은 능동적 기술도 수동적 기술도 각각 장단점을 가지고 있으며, 어느 정도로 보호를 할 수 있는지에 대한 “정량적인 지표”가 딱 정해진 것이 없다는 점이다.
    예를 들면, “발견하지 못하게 하는 수동적인 보호 기술보다 공격하지 못하게 하는 능동적인 보호 기술이 딱 30점 더 보안 관점에서 훌륭하다.”라는 등의 기준도 점수화도 제시할 수 없기 때문에 소프트웨어 보안은 어려운 것이다.
    즉, 보안을 적용하려는 사람이 자신의 목적에 맞는 보호 기술을 적용할 수 있어야 그 소프트웨어와 시스템이 안전해지는 것이다.
    [관련된 짤막한 이야기 - 패킹과 W^X[2022/03/04]]
    #이야기 #루니프 #핀 #핀툴 #W^X #섹션 #권한 #취약점 #패킹 #언패킹 #보안 #안전성 #시큐어코딩 #해커 #개발자 #분석가 #코딩

    728x90
    반응형
Designed by Tistory.