시간 및 상태
시간 및 상태의 개념
- 동시 수행을 지원하는 병렬 시스템이나 여러 개의 프로세스가 동작되는 멀티 프로세스 환경에서 시간 및 상태를 부적절하게 사용하여 여러 가지 보안 약점이 발생할 수 있음
보안 약점의 종류
경쟁 조건 : 검사 시점과 사용 시점(TOCTOU)
- 자원을 검사하는 시점(TOC : Time Of Check)과 사용하는 시점(TOU : Time Of Use)이 달라서 발생하는 보안 약점
- 여러 프로세스가 공유 자원 접근 시 동기화 구문으로 한 번에 하나의 프로세스만 접근하게 함으로써 방지할 수 있음
종료되지 않는 반복문 또는 재귀함수
- 종료 조건이 없는 반복문이나 재귀 함수를 사용하여 무한 반복하며 자원 고갈이 발생하는 보안 약점
- 재귀 호출 횟수를 제한함으로써 방지할 수 있음
에러 처리
에러 처리의 개념
- 발생한 에러를 처리하지 않거나 완전하게 처리하지 않아 에러 정보에 중요 정보가 포함되어 여러 가지 보안 약점이 발생할 수 있음
보안 약점의 종류
- 에러 메시지를 통한 정보 노출 : 에러 메시지에 실행 환경이나 사용자 관련 등 민감한 정보가 포함되어 외부에 노출되는 보안 약점
- 에러 상황 대응 부재 : 에러가 발생할 수 있는 에러 상황에 대해 예외 처리를 하지 않아 프로그램이 동작하지 않거나 제대로 동작하지 않는 보안 약점
- 부적절한 예외 처리 : 프로그램 수행 중에 함수의 결과값에 대해 적절하게 처리하지 않거나 예외 상황에 대해 조건을 적절하게 검사하지 않아 발생하는 보안 약점
코드 오류
코드 오류의 개념
- 개발자가 흔히 실수하는 프로그램 오류들로 인해 여러 가지 보안 약점이 발생할 수 있음
보안 약점의 종류
- Null Pointer(널 포인터) 역참조 : 일반적으로 객체가 Null이 될 수 없다는 가정을 위합ㄴ하여 공격자가 의도적으로 Null Pointer 역참조를 발생시켜 공격에 사용하는 보안 약점
- 부적절한 자원 해제 : 오픈 파일 디스크립터, 힙 메모리, 소켓 등의 유한한 자원을 할당받아 사용한 후 프로그램 에러로 반환하지 않아 발생하는 보안 약점
- 해제된 자원 사용 : 해제된 자원을 참조하여 의도하지 않은 값이나 코드를 실행하게 됨으로써 의도하지 않은 결과가 발생하는 보안 약점
- 초기화되지 않은 변수 사용 : 초기화되지 않은 변수를 사용하면 임의의 값이 사용되어 의도하지 않은 결과가 발생하는 보안 약점
캡슐화
캡슐화의 개념
- 중요한 데이터나 기능성을 잘못 캡슐화하거나 잘못 사용하면 여러 가지 보안 약점이 발생할 수 있음
보안 약점의 종류
잘못된 세션에 의한 데이터 정보 노출
- 다중 스레드 환경에서 정보를 저장하는 멤버 변수가 포함되어 서로 다른 세션에서 데이터를 공유하여 발생하는 보안 약점
- 싱글톤(Singleton) 패턴 사용 시 변수 범위를 제한하여 방지할 수 있음
제거되지 않고 남은 디버그 코드
- 개발 완료 후에 디버그 코드가 제거되지 않은 채로 배포되어 발생하는 보안 약점
- 소프트웨어가 배포되기 전에 디버그 코드를 삭제해 방지할 수 있음
시스템 데이터 정보 노출
- 시스템, 관리자, DB 정보 등의 시스템 데이터 정보가 공개되어 발생하는 보안 약점
- 예외 상황 발생 시 시스템 메시지 등의 시스템 데이터 정보가 화면에 출력되지 않게 함으로써 방지할 수 있음
public 메소드로부터 반환된 private 배열
- private 선언된 배열을 public 선언된 메소드를 통해 반환하여 그 배열의 레퍼런스가 외부에 공개되어 발생하는 보안 약점
- private 선언된 배열을 public 선언된 메소드를 통해 반환하지 않게 함으로써 방지할 수 있음
private 배열에 public 데이터 할당
- public 선언된 메소드의 인자가 private 선언된 배열에 저장되어 극 배열을 외부에서 접근할 수 있게 되는 보안 약점
- public 선언된 메소드의 인자를 private 선언된 배열에 저장되지 않도록 함으로써 방지할 수 있음
API 오용
API 오용의 개념
- 서비스에서 제공되는 사용법에 반하는 방법으로 API를 사용하거나 보안에 취약한 API를 사용하여 여러 가지 보안 약점이 발생할 수 있음
보안 약점의 종류
DNS lookup에 의존한 보안 결정
- 도메인명에 의존하여 인증이나 접근 통제 등의 보안 결정을 하면 공격자가 DNS 엔트리를 속여 동일 도메인에 속한 서버인 것처럼 위장하는 보안 약점
- 보안 결정 시 도메인명을 이용한 DNS lookup에 의존하지 않도록 함으로써 방지할 수 있음
취약한 API 사용
- 보안 문제로 금지된 함수 또는 오용될 가능성이 있는 API 등의 취약한 API를 사용하여 발생하는 보안 약점
- 보안 문제로 금지된 함수는 안전한 대체 함수를 사용함으로써 방지할 수 있음
728x90
반응형
'정보처리기사 > 정보 시스템 구축 관리' 카테고리의 다른 글
서비스 공격 유형 (0) | 2023.08.19 |
---|---|
암호화 알고리즘 (0) | 2023.08.19 |
시큐어 코딩 가이드 1 (0) | 2023.08.19 |
소프트웨어 개발 보안 구출 및 방법론의 종류 (0) | 2023.08.19 |
소프트웨어 개발 보안 (0) | 2023.08.19 |