Certificate/정보처리기사

[4과목 프로그래밍 언어 활용] 서버 프로그램 구현 - 129. 보안 및 API

S_sun 2025. 11. 20. 09:48

1. 소프트웨어 개발 보안의 개요

  • 개발 과정에서 발생할 수 있는 보안 취약점을 최소화하여 보안 위협으로부터 안전한 소프트웨어를 개발하기 위한 일련의 보안 활동
  • 데이터의 기밀성, 무결성, 가용성을 유지하는 것은 목표

2. 소프트웨어 개발 보안 점검 항복

  • 세션 통제
    • 세션은 서버와 클라이언트의 연결을 말함
    • 세션 통제는 세션의 연결과 연결로 인해 발생하는 정보를 관리하는 것
    • 보안 약점 : 불충분한 세션관리, 잘못된 세션에 의한 정보노출
  • 입력 데이터 검증 및 표현
    • 입력 데이터에 대한 유효성 검증체계를 갖추고, 검증 실패 시 이를 처리할 수 있도록 코딩하는 것을 의미
    • 보안 약점 : SQL 삽입, 경로 조작 및 자원 삽입, 크로스사이트 스크립팅
  • 보안 기능
    • 인증, 접근제어, 기밀성, 암호화 등의 기능
    • 보안 약점 : 적절한 인증 없응 주요기능 허용, 부적절한 인가
  • 시간 및 상태
    • 동시 수행을 지원하는 병렬 처리 시스템이나 다수의 프로세스가 동작하는 환경에서 시간과 실행상태를 관리하여 시스템이 원할히 동작되도록 코딩하는 것
    • 보안 약점 : 검사 시점과 사용 시점(TOCTOU) 경쟁조건, 종료되지 않는 반복문 쪼는 재귀함수
  • 에러처리
    • 소프트웨어 실행 중 발생할 수 있는 오류들을 사전에 정의하여 에러로 인해 발생할 수 있는 문제들을 예방하는 것
    • 보안 약점 : 오류 메시지를 통한 정보 노축, 오류사항 대응 부재
  • 코드 오류
    • 개발자들이 코딩 중 실수하기 쉬운 형변환, 자원의 반환 등을 고려하여 코딩하는 것
    • 보안 약점 : 널 포인터 역참조, 부적절한 자원 해제
  • 캡슐화
    • 데이터와 데이터를 처리하는 함수를 하나의 객체로 묶어 코딩하는 것
    • 보안 약점 : 잘못된 세션에 의한 데이터 정보 노출, 제거되지 않고 남은 디버그 코드
  • API 오용
    • API를 잘못 사용하거나 취약한 API를 사용하지 않도록 고려하여 코딩하는 것
    • 보안 약점 : DNS lookup에 의존한 보안결정, 취약한 API 사용

3. API (Application Programming Interface)

  • 운영체제나 프로그래밍 언어 등에 있는 라이브러리를 이용할 수 있도록 규칙 등을 정의해 높은 인터페이스
  • 특정한 작업을 수행하기 위해 사용
  • 운영체제의 파일 제어, 화상 처리, 문자 제어 등의 기능을 활용하기 위해 사용
  • 개발에 필요한 여러 도구를 제공하기에 원하는 기능을 쉽고 효율적으로 구현 가능
  • Windows API, 단일 유닉스 규격(SUS), Java API, 웹 API, Open API

 

 

📖 Reference
 

2023 시나공 정보처리기사 필기 : 네이버 도서

네이버 도서 상세정보를 제공합니다.

search.shopping.naver.com

 

728x90
반응형