반응형
https://www.kisa.or.kr/public/laws/laws3.jsp
구현 단계 시큐어코딩 가이드 - 코드오류 - Null Pointer 역참조
가. 개요
- 널 포인터(Null Pointer) 역참조는 '일반적으로 그 객체가 널(Null)이 될 수 없다'라고 하는 가정을 위반했을 때 발생한다. 공격자가 의도적으로 널 포인터 역참조를 발생시키는 경우, 그 결과 발생하는 예외 상황을 이용하여 추후의 공격을 계획하는 데 사용될 수 있다.
나. 보안대책
- 널이 될 수 있는 레퍼런스(Reference)는 참조하기 전에 널 값인지를 검사하여 안전한 경우에만 사용한다.
다. 코드예제
JAVA
더보기
다음의 예제의 경우 obj가 null이고, elt가 null이 아닌 경우 널(Null) 포인터 역참조가 발생한다.
obj가 null인지 검사 후 참조해야 한다.
다음 예제의 경우 request.getParameter에 의해 null이 들어오게 되면 널(Null) 포인터 역참조가 발생한다.
null을 가질 수 있는 참조 변수를 사용해 객체의 속성이나 메소드를 사용하는 경우 null 검사를 수행하고 사용한다.
C#
더보기
다음 예제의 경우 Request 객체에서 QeuryString을 사용하여 url의 파라미터 중 name에 해당하는 값을 가져오는 코드이다. url의 파라미터에 name이 없으면 QueryString[“name”]은 null을 리턴하게 되고, username은 null 값을 가지게 되어 널(Null) 포인터 역참조가 발생한다.
null을 가질 수 있는 참조 변수를 사용해 객체의 속성이나 메소드를 사용하는 경우 null 검사를 수행하고 사용한다.
C
더보기
아래 C 코드는 null 값을 반환할 수 있는 함수 IntegerAddressReturn()을 호출한다. P가 null 인 상태에서 p 값을 참조하면 널 포인터 역참조가 발생한다.
아래 C 코드는 null 값을 가질 수 있는 p를 참조하기 전에 null 검사를 진행하므로 안전한다.
참고자료
- CWE-476 NULL Pointer Dereference, MITRE,
http://cwe.mitre.org/data/definitions/476.html - Do not dereference null pointers, CERT,
http://www.securecoding.cert.org/confluence/display/c/EXP34-C.+Do+not+dereference+null+pointers Null - Dereference, OWASP,
https://www.owasp.org/index.php/Null_Dereference
반응형
'공부 > KISA' 카테고리의 다른 글
해제된 자원 사용 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.22 |
---|---|
부적절한 자원 해제 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.22 |
부적절한 예외 처리- KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.22 |
오류 상황 대응 부재 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.22 |
오류 메시지를 통한 정보노출 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.22 |
댓글