[보안] Static Program Analysis란
- 정의
- 프로그램을 실행하지 않고 프로그램 분석
- 분석 대상
- 소스코드
- 오브젝트 코드
- 분석 방법: 구문 검사, 의미추론 등
- Unit level
- 프로그램 문맥과의 연결 없이 특정한 프로그램 안이나 서브루틴에서 발생하는 분석
- Technology Level
- 문제를 찾고 긍정 오류를 피하기 위해서 & 프로그램의 전체적이고 의미적인 관점을 얻기 위해 유닛 프로그램들 간의 상호작용을 고려하는 분석
- System Level
- 유닛 프로그램들 간의 상호작용들은 고려하지만 한 기술이나 한 언어에 제한되지 않는 분석
- Unit level
- 사용 기술
- Abstract Interpretation
- Data-Flow analysis
- Model Checking
- Symbolic execution
- 분석 내용
- 보안 취약성
- 코딩 표준 위반
- 사용되지 않는 변수 & 사용되지 않는 코드
- 정의 되지 않은 값의 변수 접근
- 코드와 소프트웨어 모델의 구문 규칙 위반
- 모듈과 컴포넌트 간에 일관되지 않은 인터페이스
- 도구
- Clang Static Analyzer
Leave a comment