구현(8)
-
정보처리기사 실기 공부 - 서버 프로그램 구현 보완
개발 환경 구축 응용 소프트웨어 개발을 위해 개발 프로젝트를 이해하고 소프트웨어 및 하드웨어 장비를 구축하는 것 하드웨어 환경 사용자와의 인터페이스 역할을 하는 클라이언트 + 클라이언트와 통신하여 서비스를 제공하는 서버 웹서버, 웹 애플리케이션 서버, 데이터베이스 서버, 파일 서버 소프트웨어 환경 클라이언트와 서버 운영을 위한 시스템 소프트웨어 + 개발에 사용되는 개발 소프트웨어 시스템 소프트웨어 OS, 웹 서버나 WAS 운영을 위한 서버 프로그램, DBMS 개발 소프트웨어 요구사항 관리 도구 : 요구사항의 수집과 분석, 추적 등을 편리하게 도와주는 소프트웨어 설계/모델링 도구 : UML을 지원하며, 개발의 전 과정에서 설계 및 모델링을 도와주는 소프트웨어 구현 도구 : 개발 언어를 통해 애플리케이션의 ..
2020.10.12 -
정보처리기사 실기 공부 - 통합구현 보완
통합 구현 사용자의 요구사항에 맞춰 송수신 모듈과 중계 모듈 간의 연계를 구현하는 것 송신 시스템과 모듈, 수신 시스템과 모듈, 중계 시스템, 연계 데이터, 네트워크로 구성 연계 요구사항 분석 통합 구현을 위해 사용자 요구사항을 분석하고 연계 데이터를 식별 및 표준화하여 연계 데이터를 정의하는 것 연계 요구사항 분석 시 확인하거나 작성하는 문서 시스템 구성도 : 송수신 시스템의 하드웨어, 소프트웨어, 네트워크 구성 등을 정의한 문서 응용 애플리케이션 구성 : 메뉴 구조, 화면 설계, 데이터의 발생 시점, 발생 유형, 발생 주기 등을 정의한 문서 테이블 정의서 : 테이블에서 관리되는 컬럼들의 특징, 인덱스, 업무 규칙 등을 정의한 문서 코드 정의서 : 데이터베이스에서 코드성 속성을 정의한 문서 연계 요구사..
2020.10.12 -
🔐 소프트웨어 개발 보안 구축 #10 - 시간 및 상태
👍 시간 및 상태란? 시간 및 상태는 동시 수행을 지원하는 병렬처리 시스템이나 다수의 프로세스가 동작하는 환경에서, 시간과 실행 상태를 관리하여 시스템이 원활하게 동작되도록 하기 위한 보안검증항목을 말한다. 다음은 시간 및 상태의 점검 미비로 발생할 수 있는 보안약점이다. TOCTOU 경쟁조건 (Time Of Check, Time Of Use) ❗️ 검사시점과 사용시점의 격차를 고려하지 않고 코딩한다면, 사용이 가능했던 자원이 사용할 수 없게 되거나, 프로세스가 가진 자원 정보가 실제 자원 상태와 일치하지 않는 동기화 오류, 교착상태 등이 발생하는 현상 ✅ 코드 내에 동기화 구문을 사용하여 해당 자원에는 한 번에 하나의 프로세스만 접근 가능하도록 구성함으로써 방지. 단, 동기화 구문은 성능감소를 동반하기..
2020.07.14 -
🔐 소프트웨어 개발 보안 구축 #9 - API 오용
👍 API 오용이란? API : 프로그래머가 라이브러리가 제공하는 여러 함수를 이용하여 프로그램을 작성할 때, 해당 함수의 내부 구조는 알 필요없이, 단순히 API 명세서에 정의된 값을 입력하면 반환되는 결과를 이용할 수 있도록 만든 매개체 API 오용이란, 소프트웨어 "구현" 단계에서 API를 잘못 사용하거나 보안에 취약한 API를 사용하는 것을 말하며, 이를 방지하기 위한 보안검증항목 역시 같은 이름으로 사용한다. 다음은 API 오용으로 인한 보안약점이다. DNS Lookup에 의존한 보안 결정 ❗️ 도메인명에 의존하여 인증이나 접근통제 등 보안결정을 내린다면, 공격자는 DNS 엔트리를 속여 동일한 도메인에 속한 서버인 것처럼 위장하거나, 사용자와 서버 간 네트워크 트래픽을 유도하여 악성 사이트를 경..
2020.07.14 -
🔐 소프트웨어 개발 보안 구축 #8 - 캡슐화
👍 캡슐화란? 정보은닉이 필요한 중요한 데이터와 기능을 불충분하게 캡슐화하거나 잘못 사용함으로써 발생할 수 있는 문제를 예방하기 위한 보안점검항목 데이터(속성)와 데이터를 처리하는 함수를 하나로 묶는 것을 의미한다. 다음은 잘못된 캡슐화로 인해 발생할 수 있는 보안약점이다. 잘못된 세션에 의한 정보 노출 *분석/설계단계에서는 세션통제, 구현단계에서는 캡슐화에 해당 ❗️ 다중스레드 환경에서 멤버변수에 정보를 저장할 때 발생함. ❗️ 싱글톤패턴에서 발생하는 레이스컨디션으로 인해 동기화 오류가 발생하거나 멤버변수의 정보가 노출될 수 있음. ✅ 멤버변수(클래스가 생성되면 계속 메모리에 적재)보다 지역변수(함수의 종료를 함께 메모리에서 해제가능)활용하여 변수의 범위를 제한함으로써 방지 제거되지 않고 남은 디버그 ..
2020.07.14 -
🔐 소프트웨어 개발 보안 구축 #7 - 코드오류
👍 코드오류란? 소프트웨어 "구현"단계에서 개발자들이 코딩 중 실수하기 쉬운 형(Type)변환, 자원반환 등의 오류를 예방하기 위한 보안점검 항목 다음은 코드오류로 발생할 수 있는 보안약점이다. 👊 널포인터(포인터에 Null이 저장되어 어떠한 곳도 가라키지 못하는 상태의 요소) 역참조 보통 많은 라이브러리 함수들은 오류가 발생할 경우 Null을 반환하는데, 이를 포인터로 참조하는 경우 발생하는 오류다. 대부분의 운영체제에서 널포인터는 메모리의 첫주소를 가리키는데, 이는 소프트웨어의 비정상적인 종료를 유발할 수 있다. 공격자는 널포인터 역참조로 발생하는 예외상황을 기억한 후, 추후에 이를 악용할 수 있다. 따라서 널이 될 수 있는 포인터를 이용하기 전에, 해당 포인터가 널을 갖고 있는지 검사함으로서 방지할..
2020.07.14