소프트웨어 개발 보안 구현

BaeBae·2022년 3월 7일
0

정보처리기사

목록 보기
17/21
post-thumbnail

< 시큐어 코딩 가이드 >

  1. 입력데이터 검증 및 표현
  • 프로그램 입력값에 대한 검증 누락 부적절한 검증 잘못된 형식 지정
  • 사용자 프로그램 입력데이터에 대한 유효성 검증체계를 수립하고 실패 시 처리 설계 및 구현
  1. 보안 기능
  • 보안 기능의 부적절한 구현
  • 인증 접근 통제 권한 관리 비밀번호 등의 정책이 적절하게 반영되도록 설계 및 구현
  1. 시간 및 상태
  • 거의 동시에 수행 지원하는 병렬 시스템 또는 하나 이상의 프로세스가 동작하는 환경에서 시간 및 상태의 부적절한 관리
  • 공유 자원의 접근 직렬화, 병렬 실행 가능 프레임워크 사용, 블록문 내에서만 재귀함수 호출
  1. 에러 처리
  • 에러 미처리, 불충분한 처리 등으로 에러 메시지에 중요정보가 포함
  • 에러 또는 오류 상황을 처리하지 않거나 불충분하게 처리되어 중요정보 유출 등 보안 약점이 발생하지 않도록 시스템 설계 및 구현
  1. 코드 오류
  • 개발자가 범할 수 있는 코딩 오류로 인해 유발
  • 코딩 규칙 도출 후 검증 가능한 스크립트 구성과 경고 순위의 최상향 조정 후 경고 메시지 코드 제거
  1. 캡슐화
  • 기능성이 불충분한 캡슐화로 인해 인가되지 않은 사용자에게 데이터 누출
  • 디버그 코드 제거와 필수 정보 외릐 클래스 내 프라이빗 접근자 지정
  1. API 오용
  • 의도된 사용에 반하는 방법으로 API를 사용하거나, 보안에 취약한 API의 사용
  • 개발 언어별 취약 API 확보 및 취약 API 검출 프로그램 사용


< 입력 데이터 검증 및 표현 >

  • 입력 데이터로 인해 발생하는 문제들을 예방하기 위해 구현 단계에서 검증해야 하는 보안 점검 항목


< 입력 데이터 검증 및 표현 취약점 >

  1. XSS (Cross Site Script)
  • 검증되지 않은 외부 입력 데이터가 포함된 웹페이지가 전송되는 경우, 사용자가 해당 웹페이지를 열람함으로써 웹페이지에 포함된 부적절한 스크립트가 실행되는 공격
  • 특수문자 등록을 방지하기 위해 특수문자 필터링
  • HTML 태그 사용 금지
  • 자바스크립트로 시작하는 문자열은 모두 문자열 반환 처리
  1. SQL 삽입 (Injection)
  • 응용 프로그램의 보안 취약점을 이용해서 악의적인 SQL 구문을 삽입, 실행시켜서 DB의 접근을 통해 정보를 탈취하거나 조작등의 행위를 하는 공격 기법
  • 바인딩 매개변수 방식 적용하여 사전에 변수 타입을 명시적으로 지정
  • 사용자로부터 입력될 수 있는 모든 값을 체크하여 필터링
  • Servlet Filter 기능 적용


< 재해 복구 시간 (RTO; Recovery Time Objective) >

  • 정보시스템 운영 중 서버가 다운되거나 자연재해나 시스템장애 등 비상사태 또는 업무 중단 시점부터 업무가 복구되어 다시 정상 가동될 때까지의 시간
profile
Data가 좋은 Web 개발자

0개의 댓글