일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 컨디션 변수
- 파일시스템 구현
- I/O장치
- 그리디알고리즘
- 프로그래머스
- OS
- 락
- 그리디 알고리즘
- 병행성
- 알고리즘
- DirectX12
- 다이나믹 프로그래밍
- codility
- 멀티프로세서
- 멀티쓰레드
- 영속성
- 병행성 관련 오류
- 디자인패턴
- 쓰레드
- 다이나믹프로그래밍
- 렌더링 파이프라인
- 백준
- directx
- 동적계획법
- Direct12
- 운영체제
- DirectX 12
- 타입 객체
- 자료구조
- 스케줄링
- Today
- Total
기록공간
4-1-3장. 보안 및 API - C 본문
소프트웨어 개발 보안의 개요
소프트웨어 개발 보안은 소프트웨어 개발 과정에서 발생할 수 있는 보안 취약점을 최소화하여 보안 위협으로부터 안전한 소프트웨어를 개발하기 위한 일련의 보안 활동을 의미한다.
-
소프트웨어 개발 보안은 데이터의 기밀성, 무결성, 가용성을 유지하는 것을 목표로 함
-
정부에서 제공하는 소프트웨어 개발 보안 가이드를 참고하여 소프트웨어 개발 과정에서 점검해야 할 보안 항목들을 점검
소프트웨어 개발 보안 점검 항목
소프트웨어 개발 보안 점검 항목은 소프트웨어 개발의 각 단계에서 점검되어야 할 보안 항목들을 말한다.
-
세션 통제
-
세션은 서버와 클라이언트의 연결을 말하며, 세션 통제는 세션의 연결과 연결로 인해 발생하는 정보를 관리하는 것을 의미
-
보안 약점에는 불충분한 세션 관리, 잘못된 세션에 의한 정보 노출 등이 있음
-
-
입력 데이터 검증 및 표현
-
입력 데이터에 대한 유효성 검증체계를 갖추고, 검증 실패 시 이를 처리할 수 있도록 코딩하는 것을 의미
-
보안 약점에는 SQL 삽입, 경로 조작 및 자원 삽입, 크로스사이트 스크립팅(XSS) 등이 있음
-
-
보안 기능
-
인증, 접근제어, 기밀성, 암호화 등의 기능을 의미
-
보안 약점에는 적절한 인증 없는 중요기능 허용, 부적절한 인가 등이 있음
-
-
시간 및 상태
-
동시 수행을 지원하는 병렬 처리 시스템이나 다수의 프로세스가 동작하는 환경에서 시간과 실행 상태를 관리하여 시스템이 원활히 작동되도록 코딩하는 것을 의미
-
보안 약점에는 검사 시점과 사용 시점(TOCTOU) 경쟁조건, 종료되지 않는 반분문 또는 재귀함수 등이 있음
-
-
에러처리
-
소프트웨어 실행 중 발생할 수 있는 오류들을 사전에 정의하여 에러로 인해 발생할 수 있는 문제들을 예방하는 것을 의미
-
보안 약점에는 오류 메시지를 통한 정보 노출, 오류 상황 대응 부재 등이 있음
-
-
코드 오류
-
개발자들이 코딩 중 실수하기 쉬운 형(Type) 변환, 자원의 반환 등을 고려하여 코딩하는 것을 의미
-
보안 약점에는 널 포인터 역참조, 부적절한 자원 해제 등이 있음
-
-
캡슐화
-
데이터(속성)와 데이터를 처리하는 함수를 하나의 객체로 묶어 코딩하는 것을 의미
-
보안 약점에는 잘못된 세션에 의한 데이터 정보 노출, 제거되지 않고 남은 디버그 코드 등이 있음
-
-
API 오용
-
API를 잘못 사용하거나 보안에 취약한 API를 사용하지 않도록 고려하여 코딩하는 것을 의미
-
보안 약점에는 DNS lookup에 의존한 보안결정, 취약한 API 사용이 있다.
-
API(Application Programming Interface)
API는 응용 프로그램 개발 시 운영체제나 프로그래밍 언어 등에 있는 라이브러리를 이용할 수 있도록 규칙 등을 정의해 놓은 인터페이스를 의미한다.
-
API는 프로그래밍 언어에서 특정한 작업을 수행하기 위해 사용되거나, 운영체제의 파일 제어, 화상 처리, 문자 제어 등의 기능을 활용하기 위해 사용
-
API는 개발에 필요한 여러 도구를 제공하기 때문에 이를 이용하면 원하는 기능을 쉽고 효율적으로 구현할 수 있음
-
API의 종류에는 Windows API, 단일 유닉스 규격(SUS), Java API, 웹 API 등이 있으며, 누구나 무료로 사용할 수 있게 공개된 API를 Open API라고 함
'자격증공부 > 정보처리기사_필기' 카테고리의 다른 글
4-1-5장. 패키지 소프트웨어 - C (0) | 2020.09.17 |
---|---|
4-1-4장. 배치 프로그램 - B (0) | 2020.09.17 |
4-1-2장. 서버 개발 - C (0) | 2020.09.17 |
4-1-1장. 개발 환경 구축 - B (0) | 2020.09.17 |
3-4-7장. 쿼리 성능 최적화 - C (0) | 2020.09.16 |