Bazinga!

[시스템 보안] 시스템 해킹 조사 유의사항 본문

수업기록/시스템 해킹

[시스템 보안] 시스템 해킹 조사 유의사항

Bazinga! 2024. 8. 3. 01:32

2일차 공격표면 조사
- 소프트웨어에서  공격가능한 부분 ( 소켓 통신 부분, 파라미터 등등)
- 해야하는 이유 : 실제 규모가 있는 소프트웨어에 대해서는 모든 코드를 분석하기에는 한계가 있다. 효율적인 분석을 위해 

---------------

<시스템 해킹 프로세스>
1. 기능 파악 및 분석
2. 공격 표면 조사 
3. 취약점 분석 
4. (공격 코드 작성) 개념증명
5. 평가 (취약점 코드의 임펙트)

----------------------

* 공격 표면 조사
1.  임의의 사용자가 임의의 데이터를 프로그램으로 전달 할 수 있는 부분을 조사
- 네트워크 통신을 하는가? 

: 데이터를 어떤 컴포넌트와 주고받는지

- 임의의 파일을 파싱 및 렌더링 하는가?

- 임의의 코드를 실행하는가?

 

2. 공격 난이도를 평가

- 어떠한 파일 구조 및 프로토콜을 사용하는가?

- 오픈소스 프로젝트를 사용하여 input을 처리하는가?

- input을 처리하는 과정에서 취약할 수 있는 함수/로직을 사용하는가? 

   취약할 수 있는 함수나 로직이 있다. 알고 접근하면 좋겠지요

- 임의의 input을 제대로 처리하는가?

 

3. 영향도/위협도 평가

- 어떠한 종류의 취약점이 발생할 수 있는가?

- 오류 발생 시, 프로그램의 상태는 어떠한가?

- 인증 절차가 필요한가? 

 

 

* 취약점 분석

1. 악의적인 사용자가 전달하는 임의의 입력값을 통해 

2. 프로그램이 개발자가 의도하지 않은 행위를 실행하는가

3. 또한 그 행위가 악용 될 수 있는

 

시큐어 코딩 왜 알아야할까?

방어하는 방법을 알면 방어하는 방법대로 하지않는 방법을 발견했을때 취약점인걸 추측해볼수있다

 

메모리 취약점 : 프로그램의 메모리 영역을 손상시킴으로 발생할 수 있는 취약점

- out of bounds access (길이 값 검증 미흡)

 

 

-> 우분투에서 파일 실행시 실행 권한 주기위한 코드

 

 

-> 추론하며 타입을 변경하며 읽기 좋게 복구시키기

 

 

 

* 평가

1, 공격에 실패 할 가능성이 있는가?

  - 실패 후, 다시 공격이 가능한가?★

  - 확률은 어떻게 되는가?

  - 실패 시 , 피해자가 이를 알아챌 수 있는가? ★

2. 피해자가 특정한 행동을 취해야만 공격에 성공할수있는가?

3, 공격 후 최종적으로 획득 가능한 권한은 어떠한가? 

4. 가져올 수 있는 정보는 어떠한 정보인가?

5. ...