티스토리 뷰

  • 버그(Bug)

- 알 수 없는 에러 혹은 소프트웨어 설계상의 실수로 발생

- 예상하지 못한 동작 또는 결과 발생

- 버그로부터 크래쉬(Crash)가 발생

- 버그의 종류 : 논리적인(Logical) 버그, 문법적인(Syntax) 버그, 리소스(Resource) 버그

 

  • 크래쉬(Crash)
소프트웨어 크래쉬 정상적이지 않은 명령어 실행 (Invalid instruction execution)
특정 권한을 필요로 하는 명령어 실행 (Privileged instruction execution)
정상적이지 않은 메모리 역 참조 (Dereference of invalid memory)
운영체제 / 커널 크래쉬 BSOD (Blue Screen of Death)
복구 불가능한 크래쉬 (Non-recoverable)

 

  • 취약성(Vulnerability)

- 정의 : 컴퓨터의 하드웨어 또는 소프트웨어의 결함이나 체계 설계 상의 허점으로 인해 사용자(특히, 악의를 가진 공격자)에게 허용된

              권한 이상의 동작이나 허용된 범위 이상의 정보 열람을 가능하게 하는 약점 (ex. Execution of arbitrary code, bypass

              security mitigation, etc.)

- 예 : 버퍼 오버플로우(Stack, Heap, Integer), 포맷 스트링(Format String), 널 포인터 역 참조(Null Pointer Dereference)

 

  • 취약점(Weakness) vs. 취약성(Vulnerability)

- 엄밀히 구분하면 단어 구성의 의미적 차이가 있지만, 대부분 취약점으로 사용하고 있음 (흔히 사용해서 익숙함, 편한 발음 등)

- 수직적 / 수평적 구분

수직적 구분 특정 기업의 자산이나 환경에서 발생하는 보안 위협 ← 취약점
수평적 구분 여러 기업에서 사용하는 공통적인 요소에서 발생하는 보안 위협 ← 취약성

- As-Is / To-Be 구분

As-Is 현재 공격에 악용될 수 있는 상태 ← 취약점
To-Be 언젠가 공격에 악용될 수 있는 상태 ← 취약성

- 예 : 데이터베이스에 소프트웨어 보안 취약점이 발견되었으나 보안 패치가 진행되지 않아 취약성으로 분류한다.

 

  • 취약점 구분
패치되지 않은 취약점
(제로데이 취약성)
세간에 알려지지 않은 취약성
해당 제품의 제조사에서 대응하지 못한 취약성
매우 위험한 상태로 APT 공격에서 가장 많이 사용
취약점 자체만으로도 금전적 가치가 상당히 높음
패치가 공개된 취약점
(원데이 취약성)
보안 연구가에 의해 보고되거나, 공격자가 사용한 제로데이 취약성을 발견하여 패치가 만들어졌으나 아직 그것이 적용되지 않은 상태
PoC(Proof of Concept)코드를 공개하기 전 제조사와 협업하고 신속한 대응

 

  • 소프트웨어 내 예상하지 못한 / 의도하지 않은 동작에 의해 발생

- 흐름 제어(Control hijack), 서비스 거부(DOS, Denial-of-Service), 정보 유출(Information Leakage)

 

  • 소프트웨어 내 크래쉬를 이용하여 익스플로잇(Exploit) 공격

- 소프트웨어에서 익스플로잇 가능한 크래쉬가 발생될 때, 어떤 버그로부터 크래쉬가 발생되는지 확인

  (일반적으로 사용자 입력 값으로부터 흐름 제어 가능)

- 공격 코드를 삽입하여 공격자가 삽입한 임의의 코드로 흐름 제어

'정보보호' 카테고리의 다른 글

버퍼 오버플로우  (0) 2021.08.26
메모리 구조  (0) 2021.08.26
보안 솔루션 종류와 이해  (0) 2021.08.16
8/3 과제 - IP Spoofing 공격 및 대응 방안  (0) 2021.08.03
7/23 수업  (0) 2021.07.24
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함