시큐어 코딩 가이드 · · 1 min read

7. API 오용

7.1. DNS lookup에 의존한 보안결정

정의

공격자가 DNS 엔트리를 속일 수 있으므로 도메인명에 의존해서 보안결정(인증 및 접근 통제 등)을 하지 않아야 한다.

로컬 DNS 서버의 캐시가 공격자에 의해 오염된 상황이라면, 사용자와 특정 서버 간의 네트워크 트래픽이 공격자를 경유하도록 할 수도 있다.

공격자가 마치 동일 도메인에 속한 서버인 것처럼 위장할 수도 있다.

안전한 코딩 기법

  • 보안 결정에 도메인명을 이용한 DNS lookup을 하지 않도록 한다.

7.2. 취약한 API 사용

정의

취약한 API는 보안상 금지된 함수이거나, 부주의하게 사용될 가능성이 많은 API를 의미한다.

이들 범주의 API에 대해 확인하지 않고 사용할 때 보안 문제를 발생시킬 수 있다.

금지된 API의 대표적인 예로는 스트링 자료와 관련된 sprintf() 등이 있으며, 보안상 문제가 없다 하더라도 잘못된 방식으로 함수를 사용할 때도 역시 보안 문제를 발생시킬 수 있다.

안전한 코딩 기법

  • 보안 문제로 인해 금지된 함수는 이를 대체할 수 있는 안전한 함수를 사용한다.