시큐어 코딩 가이드

조예빈·2024년 7월 21일
0
post-custom-banner

시큐어 코딩 가이드

  • 설계 및 구현 단계에서 해킹 등의 공격을 유발할 가능겅이 있는 잠재적인 보안 취약점을 사전에 제거하고, 외부 공격으로부터 안전한 소프트웨어를 개발하는 기법
  • 보안 약점을 방지하기 위한 시큐어 코딩 가이드에 따른 개발 수행이 필요함

1. 입력 데이터 검증 및 표현

  • 시스템이 받은 입력 데이터를 확인하여 예상된 형식과 값의 범위 내에 있는지 확인하는 과정
  • 보안 강화, 오류 감소 및 데이터 무결성을 보장하기 위해 필수적

ex) 사용자 이메일 주소를 입력 받을 때, 이메일 주소 형식이 맞는지 확인

2. 보안 기능

  • 시스템을 악의적인 공격으로부터 보호하기 위한 매커니즘
  • 인증, 접근 제어, 기밀성, 암호화, 권한 관리 등

ex) 비밀번호를 암호화 한 후 저장

3. 시간 및 상태

  • 시스템의 현재 상태와 시간을 추적하는 것
  • 거의 동시에 실행하는 병렬 시스템, 하나 이상의 프로세스가 동작하는 환경에서 시간 및 상태의 부적절한 관리
  • 시스템 동작, 로그 기록, 이벤트 스케줄링 등

ex) 현재 시간과 상태를 로그 파일에 기록

4. 에러 처리

  • 에러 미처리, 불충분한 처리 등으로 에러 메세지에 중요정보가 포함 되는 것 관리

ex) 상세한 오류 정보는 로그 파일에 기록하고 사용자에게는 일반적인 에러 메세지 출력

5. 코드 오류

  • 개발자가 범할 수 있는 코딩 오류
  • 프로그램에서 발견된 버그 또는 예기치 않은 동작

ex)코딩 규칙 도출 후 검증 가능한 스크립트 구성

6. 캡슐화

  • 객체의 속성과 메소드를 하나로 묶고, 외부로부터 접근을 제한하는 기법
  • 데이터 무결성을 유지하고 코드의 복잡성을 줄일 수 있음

ex) 디버그 코드 제거와 private 접근자 지정

7. API 오용

  • 의도된 사용에 반하는 방법으로 API 사용
  • 보안에 취약한 API 사용
  • 성능 저하, 보안 문제 또는 오류 초래

ex)개별 언어별 취약 API 확보 및 취약 API 검출 프로그램 사용

profile
컴퓨터가 이해하는 코드는 바보도 작성할 수 있다. 사람이 이해하도록 작성하는 프로그래머가 진정한 실력자다. -마틴 파울러
post-custom-banner

0개의 댓글