반응형
https://www.kisa.or.kr/public/laws/laws3.jsp
분석∙설계단계 SW 보안강화 - 설계보안항목 정의 및 설계 시 고려 사항 - 허용된 범위 내 메모리 접근
설명
- 허용된 범위의 메모리 버퍼에만 접근하여 저장 또는 읽기가 수행되어 버퍼오버플로우가 발생하지 않도록 처리방법을 설계해야 한다.
설계항목내용
- C나 C++ 같이 메모리를 프로그래머가 관리하는 플랫폼을 사용하는 경우 메모리 버퍼의 경곗값을 넘어서 메모리를 읽거나 저장하지 않도록 경계설정 또는 검사를 반드시 수행해야 한다.
- 개발 시, 메모리 버퍼오버플로우를 발생시킬 수 있는 취약한 API를 사용하지 않도록 통제해야 한다.
가. 취약점 개요
사례 1: 버퍼오버플로우
- 스택(Stack)이나 힙(Heap)에 할당되는 메모리에 문자열 등이 저장될 때 최초 정의된 메모리의 크기를 초과하여 문자열을 저장하는 경우 버퍼오버플로우가 발생한다.
사례 2: 포맷 스트링 삽입
- 공격자는 외부 입력값에 포맷 문자열을 삽입하여 취약한 프로세스를 공격하거나 메모리 내용을 읽거나 쓸 수 있다. 그 결과, 공격자는 취약한 프로세스의 권한을 취득하여 임의의 코드를 실행할 수 있다.
나. 설계 시 고려사항
1. C나 C++ 같이 메모리를 프로그래머가 관리하는 플랫폼을 사용하는 경우 메모리 버퍼의 경곗값을 넘어서 메모리를 읽거나 저장하지 않도록 경계설정 또는 검사를 반드시 수행해야 한다.
- 실행되는 시스템 Non-executable Stack, 랜덤 스택(ASLR), 스택 가드(StackGuard)와 같은 메모리 보호 정책이 적용되도록 해야 하며, 구현 단계에 안전한 함수 사용법에 대한 설명과 메모리 사용 시 경곗값을 검사하고 사용할 수 있도록 시큐어코딩 규칙을 정의하여 개발자들이 준수할 수 있도록 한다.
2. 개발 시, 메모리 버퍼오버플로우를 발생시킬 수 있는 취약한 API를 사용하지 않도록 통제해야 한다.
- 메모리 버퍼오버플로우 취약성을 가지고 있는 함수들을 식별하여 개발자들이 해당 함수를 사용하지 않고 안전한 함수를 사용할 수 있도록 시큐어코딩 규칙을 정의하고 개발자가 준수할 수 있도록 한다
참고자료
- CWE‐119 Improper Restriction of Operations within the Bounds of a Memory Buffer, MITRE,
http://cwe.mitre.org/data/definitions/119.html - Buffer Overflow, Wikipedia,
http://en.wikipedia.org/wiki/Buffer_overflow - WASC Threat Classification v2.0 Buffer Overflow, WASC,
http://projects.webappsec.org/w/page/13246916/Buffer%20Overflow - Smashing The Stack For Fun And Profit, Aleph One,
http://insecure.org/stf/smashstack.html - Stack BufferOverflow(스택 버퍼오버플로우), Inhack,
http://inhack.org/wordpress/?p=2932 - Stack-based Overflow Exploit: Introduction to Classical and Advanced Overflow Technique, wowhacker,
http://web.archive.org/web/20070818115455/http://www.neworder.box.sk/newsread.php?newsid=12476 - CWE-134 Uncontrolled Format String, MITRE,
http://cwe.mitre.org/data/definitions/134.html - WASC Threat Classification Format String, WASC,
http://projects.webappsec.org/w/page/13246926/Format%20String
반응형
'공부 > KISA' 카테고리의 다른 글
업로드·다운로드 파일 검증 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.10 |
---|---|
보안기능 동작에 사용되는 입력값 검증 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.10 |
HTTP 프로토콜 유효성 검증 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.10 |
웹 기반 중요기능 수행 요청 유효성 검증 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.09 |
웹 서비스 요청 및 결과 검증 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.09 |
댓글