취약한 API는 보안상 금지된(banned) 함수이거나, 부주의하게 사용될 가능성이 많은 API를 의미
한다. 금지된 API의 대표적인 예로는 스트링 자료와 관련된 strcat(), strcpy(), strncat(), strncpy(), sprintf() 등이 있다.
또한 보안상 문제가 없다 하더라도 잘못된 방식으로 함수를 사용할 때도 역시 보안 문제를 발생 시킬
수 있다.
보안 문제로 인해 금지된 함수는 이를 대체할 수 있는 안전한 함수를 사용한다. 그 예로, 위에 언급된
API 대신에 strcat_s(), strcpy_s(), strncat_s(), strncpy_s(), sprintf_s()과 같은 안전한 함수를
사용하는 것이 권장된다. 또한 금지된 API는 아니지만 취약한 API의 예시로, 문자열을 정수로 변환
할 때 사용하는 strtol()과 같은 함수는 작은 크기의 부호 있는 정수인 int, short, char와 같은 자료형
변환에 사용하면 범위 제한 없이 값을 평가할 수 있다.
취약한 API의 분류는 일반적인 것은 아니지만 개발 조직에 따라 이를 명시한 경우가 있다면1) 반드시
준수한다.
다음 예제는 J2EE 응용 프로그램에서 프레임워크 메소드 호출 대신에 소켓을 직접 사용하고 있어,
프레임워크에서 제공하는 보안기능을 제공받지 못한다.
타겟이 WAS로 작성될 경우 아래의 코드처럼 보안기능을 제공하는 프레임워크 메소드인 URL
Connection 을 이용하여야한다.
취약한 API의 리스트를 작성하고 검사하고자 하는 프로그램에서 해당 API를 사용하는지 확인한다.
해당 API를 사용하는 경우 프로그램에 예기치 않은 문제가 발생할 수 있으므로 취약한 것으로 판단한다.
만약 취약한 API를 대체할 수 있는 API가 없을 경우, 해당 API의 인자와 반환 값에 대한 검사가 이루어
지는지 확인한다.
[출처]
Design system with tokens (0) | 2022.12.08 |
---|---|
UX 사용자에게 습관을 형성해 제품의 사용률을 높이는 방법 (0) | 2022.12.08 |
[정보 접근성 컨퍼런스] 웹접근성 국가표준 개정 소개 (0) | 2021.12.23 |
[보안] 통합보안관리 솔루션 (0) | 2021.12.23 |
새롭게 떠오르고 있는 UI 트렌드 : 뉴모피즘(Neumorphism)을 지나 글래스모피즘(Glassmorphism)으로 (0) | 2021.12.16 |