• Secure SDLC
    • Secure SDLC란?
      • 보안상 안전한 소프트웨어 개발을 위해 SDLC (소프트웨어 개발 생명 주기)에 보안 활동들을 적용하여 개발하는 것
      • Secure SDLC 요구사항 분석, 설계, 구현, 테스트, 유지 보수 등의 단계에서 수행할 보안 활동을 제시하며 대표적으로 CLASP, SDL이 있음
    • Secure SDLC 단계별 보안 활동
      • 요구사항 분석 단계의 보안 활동
        • 요구사항 분석 단계에서 보안 항목에 해당하는 요구사항을 식별하여 보안 활동을 수행
        • 전산화된 정보들이 보안 등급 별로 분류되어 관리
      • 설계 단계의 보안 활동
        • 요구사항 분석 단계에서 식별된 보안 요구사항 부분들을 소프트웨어 설계 단계에 반영
        • 시스템에서 발생할 수 있는 위협들을 식별하여 위협 모델링 검토, 보안 대책, 사고 발생 시 영향 범위와 대응책, 보안 통제 기준 설정 등을 프로세스 설계에 반영
      • 구현 단계의 보안 활동
        • 표준 코딩 정의서나 소프트웨어 개발 보안 가이드를 준수하고 설계 단계에 따라 보안 요구사항을 구현
        • 단위 테스트 과정에서 발생할 수 있는 보안 취약점을 제거
      • 테스트 단계의 보안 활동 
        • 보안 요구사항이나 설계 단계에서의 위협과 취약점들을 점검하여 정확히 반영되고 동작되는지를 확인
        • 동적 분석 도구나 모의 침투 테스트를 통해 설계 단계에서 식별된 위협들의 해결여부를 검증하고 추가로 제시된 위협들과 취약점을 테스트 계획을 수립하고 시행
      • 유지 보수 단계의 보안 활동
        • 개발된 소프트웨어를 수행하고 새로운 기능을 추가하거나 발생할 수 있는 보안 문제를 해결
        • 운영체제 상의 문제점이나 소프트웨어 상의 오류 및 버그 등에서 발생할 수 있는 보안 사고에 대한 관리 및 사고 대응, 패치 관리 및 교육이 병행
  • 입력 데이터 검증 및 표현
    • 입력 데이터 검증 및 표현이란?
      • 입력 데이터로 인해 발생하는 문제들을 예방하기 위해 소프트웨어 구현 단계에서 검증해야 하는 보안 점검 항목
    • 보안 약점
      • SQL 삽입
        • 검증되지 않은 외부 입력값이 입력란에 SQL 쿼리문이 삽입되어 악의적인 쿼리가 실행되는 보안 약점
      • 경로 조작 및 자원 삽입
        • 사용자 입력값이 시스템 자원 접근 경로를 조작하여 서버 자원을 수정, 삭제 할 수 있는 보안 약점
      • 크로스사이트 스크립팅 (XSS)
        • 웹페이지 (게시판 등)에 악의적인 스크립트를 삽입하여 접속자들의 정보를 탈취하거나 비정상적인 기능 수행을 유발하는 보안 약점
      • 운영체제 명령어 삽입
        • 검증되지 않은 외부 입력 값이 시스템 명령어의 실행을 유도함으로써 권한을 탈취하거나 시스템 장애를 유발하는 보안 약점
      • 위험한 형식 파일 업로드
        • 파일 형식에 대한 검증 없이 악의적인 명령어가 포함된 스크립트 파일의 업로드를 허용하여 시스템에 손상을 주거나 시스템 제어로 발생할 수 있는 보안 약점
      • 신뢰되지 않는 URL 주소로 자동접속 연결
        • 검증되지 않은 입력값으로 사이트 주소를 받아 방문자를 피싱 사이트로 유도하는 보안 약점
      • XML 삽입
        • 검증되지 않은 외부 입력값이 XQuery 쿼리문 생성에 사용되어 악의적인 쿼리가 실행될 수 있는 보안 약점
      • XPath 삽입
        • 검증되지 않은 외부 입력값이 XPath 쿼리문 생성에 사용되어 악의적인 쿼리가 실행될 수 있는 보안 약점
      • LDAP (디렉토리 서비스 조회) 삽입
        • 검증되지 않은 외부 입력값이 LDAP 명령문 생성에 사용되어 악의적인 쿼리가 실행될 수 있는 보안 약점
      • 크로스사이트 요청 위조
        • 검증되지 않은 외부 입력값에 의해 브라우저에서 악의적인 스크립트가 실행되어 공격자가 원하는 요청이 다른 사용자의 권한으로 서버에 전송되는 보안 약점
  • 보안 기능
    • 보안 기능이란?
      • 소프트웨어 구현 단계에서 코딩하는 기능인 인증, 접근제어, 기밀성, 암호화 등을 올바르게 구현하기 위한 보안 점검 항목
    • 보안 약점
      • 적절한 인증 없는 중요 기능 허용
        • 적절한 인증 없이 중요 정보인 금융정보, 개인정보, 인증정보 등을 열람할 수 있게 하는 보안 약점
      • 부적절한 인가
        • 적절한 접근 제어 없이 외부 입력값을 포함한 문자열로 중요자원에 접근할 수 있는 보안 약점
      • 중요한 자원에 대한 잘못된 권한 설정
        • 프로그램 설정, 민감한 사용자 데이터 등의 중요자원에 대한 적절한 접근 권한을 부여하지 않아, 인가되지 않은 사용자 등에 의해 중요정보가 노출, 수정되는 보안 약점
      • 취약한 암호화 알고리즘 사용
        • 금융정보, 개인정보, 인증정보 등의 중요 정보의 기밀성을 보장할 수 없는 취약한 암호화 알고리즘을 사용하여 정보가 노출될 수 있는 보안 약점
      • 중요정보 평문저장 및 전송
        • 비밀번호, 개인정보 등 중요 정보를 암호화하여 저장하지 않아 정보가 노출될 수 있는 보안 약점
      • 하드코드된 비밀번호
        • 소스코드 내에 비밀번호가 하드코딩되어 소스 코드 유출시 노출 우려 및 주기적 변경 등 수정이 용이하지 않는 보안 약점
      • 충분하지 않은 키 길이 사용
        • 데이터의 기밀성, 무결성 보장을 위해 사용되는 키의 길이가 충분하지 않아 기밀정보 누출, 무결성이 깨지는 보안 약점
      • 적절하지 않은 난수 값 사용
        • 예측 가능한 난수 사용으로 공격자로 하여금 다음 숫자 등을 예상하여 시스템 공격이 가능한 보안 약점
      • 하드코드된 암호화 키
        • 소스 코드 내에 암호화키가 하드코딩되어 소스코드 유출 시 노출 우려 및 키 변경이 용이하지 않은 보안 약점
      • 취약한 비밀번호 허용
        • 비밀번호 조합 규칙(영문, 숫자, 특수문자 등) 미흡 및 길이가 충분하지 않아 노출될 수 있는 보안 약점
      • 사용자 하드디스크에 저장되는 쿠키를 통한 정보 노출
      • 주석문 안에 포함된 시스템 주요 정보
      • 솔트 없이 일방향 해시함수 사용
      • 무결성 검사 없는 코드 다운로드
      • 반복된 인증시도 제한 기능 부재
  • 세션 통제
    • 세션 통제란?
      • 클라이언트와 서버가 서로 연결된 후 연결이 종료된 클라이언트의 정보가 삭제되지 않고 사용 가능한 상태로 방치되면 허가되지 않은 사용자에 의해 시스템의 기능이 사용되거나 다른 개인의 중요정보에 접근하는 침해사고가 발생
    • 세션 통제 취약점
      • 불충분한 세션 관리
        • 사용자가 로그인 할 경우 일정한 규칙이 존재하는 세셔ID가 발급되거나 세션 타임아웃을 너무 길게 설정한 경우 공격자에 의해 사용자 권한이 도용될 수 있는 취약점
      • 잘못된 세션에 의한 정보노출
        • 다중 스레드 환경에서는 싱글톤 객체 필드에 경쟁조건이 발생할 수 있는 보안 약점
  • 암호 알고리즘
    • 암호 알고리즘이란?
      • 중요 정보 즉 패스워드, 주민번호, 은행계좌 등과 같은 정보를 보호하기 위해 평문을 암호화된 문장으로 만드는 절차 및 방법
    • 비밀키 암호화 (Secret Key Encryption) 기법
      • 대칭키 암호화 기법, 단일키 암호화 기법
      • 암호화 키와 복호화 키가 동일: 송신 측에서 평문을 암호화하기 위해 사용하는 암호화 키와 수신 측에서 수신된 암호문을 평문으로 해독하기 위한 복호화 키가 같은 암호화 시스템
      • 장점: 암호화 및 복호화 속도는 빠르고 단순한 알고리즘, 암호문 크기가 작음
      • 단점: 키를 분배하고 관리하는 방법이 어려움
      • 알고리즘
        • 블록 암호화 방식
          • 한번에 하나의 데이터 블록을 암호화
          • 종류: DES, SEED, AES, ARIA
        • 스트림 암호화 방식
          • 평문과 동일한 길이의 스트림을 생성하여 비트 단위로 암호화
          • 종류: LFSR, RC4
    • 공개키 암호화 (Public Key Encryption) 기법
      • 비대칭키 암호화 기법, 이중키 암호화 기법
      • 암호화 키와 복호화 키가 서로 다르며 암호화 키는 공개하고 복호화 키는 비공개
      • 장점: 키의 생성 및 분배가 용이하고 관리해야 할 키의 개수가 적음
      • 단점: 암호화 / 복호화 속도가 느리며 알고리즘이 복잡하고 암호문의 크기가 큼
      • 알고리즘: RSA, Elgamal
    • 해시 (Hash)
      • 임의의 길이의 메시지를 선택하여 고정된 길이의 값으로 변환하는 것
      • 해시 함수에 의해 얻어지는 값은 해시 값이라고 하며 해시 값은 계산하기 쉬우나 원래의 메시지로 돌아가는 것은 불가능함
      • 데이터 암호화, 무결성 검증을 위해 사용, 정보보호의 다양한 분야에서 활용
      • 해시 알고리즘에는 대표적으로 SHA, MD5, RMD160 등
  • 에러 처리
    • 에러 처리
      • 에러 처리란?
        • 소프트웨어 실행 중 발생할 수 있는 오류들을 사전에 정의하여 오류로 인해 발생할 수 있는 문제들을 예방하기 위한 보안 점검 항목
      • 보안 약점
        • 오류 메시지를 통한 정보 노출
          • 개발자가 생성한 오류 메시지에 시스템 내부구조, 실행 환경, 사용자 정보, 디버깅 정보 등이 포함되어 민감한 정보가 노출될 수 있는 보안 약점
        • 오류 상황 대응 부재
          • 시스템에서 발생하는 오류 상황을 처리하지 않아 프로그램 실행정지 등 의도하지 않은 상화이 발생할 수 있는 보안 약점
    • 코드 오류
      • 코드 오류란?
        • 소프트웨어 개발자가 코딩 시 형 변환 오류, 부적절한 자원 반환 등과 같은 실수를 범할 수 있는 오류에 대한 보안 점검 항목
      • 보안 약점
        • 널(NULL)로 설정된 변수의 주소 값을 참조했을 때 발생하는 보안 약점
      • 부적절한 자원 해제
        • 사용된 자원을 적절히 해제하지 않으면 자원 누수 등이 발생하고, 자원이 부족하여 새로운 입력을 처리할 수 없게 되는 보안 약점
      • 해제된 자원 사용
        • 메모리 등 해제된 자원을 참조하여 예기치 않은 오류가 발생될 수 있는 보안 약점
      • 초기화되지 않은 변수 사용
        • 변수를 초기화하지 않고 사용하여 예기치 않은 오류가 발생될 수 있는 보안 약점
    • 시간 및 상태
      • 시간 및 상태란?
        • 동시 수행을 지원하는 병렬 처리 시스템이나 다수의 프로세스가 동작하는 환경에서 시간과 실행 상태를 관리하여 시스템이 원활하게 동작되도록 하기 위한 보안 검증 항목
      • 보안 약점
        • TOCTOU 경쟁조건
          • 멀티 프로세스 상에서 자원을 검사하는 시점(Time Of Check)과 사용하는 시점(Time Of Use)이 달라서 발생하는 보안 약점
        • 종료되지 않는 반복문 또는 재귀함수
          • 종료 조건 없는 제어문 사용으로 반복문 또는 재귀함수가 무한히 반복되어 발생할 수 있는 보안 약점
  • 캡슐화
    • 캡슐화란?
      • 외부에 은닉이 필요한 중요한 데이터와 기능을 충분하지 못하게 캡슐화하였을 때 인가되지 않은 사용자에게 데이터 유출, 권한 문제 등이 발생할 수 있는 문제를 예방하기 위한 보안 점검 항목
    • 보안 약점
      • 잘못된 세션에 의한 정보 노출
        • 잘못된 세션에 의해 인가되지 않은 사용자에게 중요정보가 노출될 수 있는 보안 약점
      • 제거되지 않고 남은 디버그 코드
        • 디버깅을 위해 작성된 코드를 통해 인가되지 않은 사용자에게 중요정보가 노출될 수 있는 보안 약점
      • 시스템 데이터 정보 노출
        • 사용자가 볼 수 있는 오류 메시지나 스택 정보에 시스템 내부 데이터나 디버깅 관련 정보가 공개되는 보안 약점
      • Public 메서드로부터 반환된 Private 배열
        • Private 로 선언된 배열을 Public 으로 선언된 메서드를 통해 반환(return)하면, 그 배열의 레퍼런스가 외부에 공개되어 외부에서 배열이 수정될 수 있는 보안 약점
      • Private 배열에 Public 데이터 할당
        • Public 으로 선언된 데이터 또는 메서드의 파라미터가 Private로 선언된 배열에 저장되면, Private 배열을 외부에서 접근할 수 있게 되는 보안 약점
  • API 오용
    • API 오용이란?
      • API 를 잘못 이용하거나 보안에 취약한 API를 이용하지 않도록 하기 위한 보안 검증 항목
    • 보안 약점
      • DNS Lookup에 의존한 보안 결정
        • DNS는 공격자에 의해 DNS 스누핑 공격 등이 가능하므로 보안 결정을 DNS 이름에 의존할 경우, 보안 결정 등이 노출되는 보안 약점
      • 취약한 API 사용
        • 취약하다고 알려진 함수를 사용함으로써 예기치 않은 보안 위협에 노출될 수 있는 보안 약점
        • 보안 문제로 금지된 함수는 C언어의 두 개의 문자열을 합치는 strcat()함수와 문자열을 복사하는 strcpy()함수, 문자열에 서식지정자를 적용하는 sprintf()함수
        • 안전한 함수인 strcat_s(), strcpy_s(), sprint_s()로 대체

WRITTEN BY
ppdha82

,
  • IT 신기술 및 네트워크 장비 트렌드 정보
    • IoT (Internet of Things, 사물 인터넷)
      • 다양한 사물에 센서와 무선 통신 기능을 내장하고 인터넷에 연결하여 서비스를 제공하기 위한 서비스 기반 기술
    • 클라우드 컴퓨팅 (Cloud Computing)
      • 인터넷 상의 중앙 서버에 소프트웨어, 저장 공간 등의 가상화된 정보 기술(IT) 자원을 저장해 두고 인터넷 기능이 있는 모든 IT 기기를 사용하여 언제 어디서나 정보를 이용할 수 있다는 기술
    • 메시 네트워크 (Mesh Network)
      • 유선망의 메시(Mesh) 형태의 네트워크 구조를 무선망에 적용한 형태로 라우터들이 무선 통신 기지국처럼 메시 노드가 망의 각 구간을 연결해 가는 방식
    •  NFC (Near Field Communication, 근거리 무선 통신)
      • 고주파 (HF)를 이용한 근거리 무선 통신 기술이며 아주 가까운 거리에서 양방향 통신을 지원하는 RFID 기술의 일종
    • 저전력 블루투스 기술 (Bluetooth Low Energy)
      • 약 10m 내외의 초단거리에서 2.4GHz 주파수를 이용해 저전력, 저용량 데이터 송수신이 가능한 블루투스 기술
    • USN (Ubiquitous Sensor Network, 유비쿼터스 센서 네트워크)
      • 필요한 모든 사물에 전자태그를 부착해 사물과 환경을 인식하고 네트워크를 통해 실시간 정보를 구축, 활용하는 통신망
    • SON (Self Organizing Network, 자동 구성 네트워크)
      • 주변 상황에 자동적으로 적용하여 스스로 망을 구성하는 네트워크
    • SDN (Software Defined Network, 소프트웨어 정의 네트워킹)
      • SW를 통해 네트워크 경로 설정과 제어 및 복잡한 운용관리를 편리하게 처리할 수 있는 차세대 네트워킹 기술
    • NGN (Network Generation Network, 차세대 통신망)
      • 인터넷, 전화망, ATM, 무선망 등의 서로 다른 망을 하나의 공통된 망으로 구조를 단순화해 음성과 데이터를 통합한 다양한 멀티미디어 서비스를 통합적으로 제공할 수 있는 차세대 통신
    • WBAN (Wireless Body Area Network, 무선 인체 통신망)
      • 사람의 몸을 케이르 대신 사용하여 데이터 통신을 실현하는 기술
    • Wi-SUN (와이선)
      • 사물 인터넷 (IoT) 서비스를 제공하기 위한 와이파이 기반의 저전력 장거리 (LPWA: Low-Power Wide Area) 통신 기술
    • PICONET (피코넷)
      • 여러 개의 독립된 통신 장치가 블루투스 기술이나 초광대역 무선(UWB) 통신기술을 사용하여 통신망을 형성하는 무선 네트워크 기술
  • 네트워크 장비
    • 네트워크 구축 구조 (토폴로지, topology)
      • 성형 (Star, 중앙 집중형)
        • 각 단말 노드가 허브라는 네트워크 장비에 점 대 점(Point-to-Point)으로 연결되어 있는 구성 형태
        • 소규모의 네트워크 설치 및 재구성이 간편하며 가장 일반적인 온라인 시스템의 전형적 방법
      • 링형 (Ring, 루프형)
        • 이웃한 단말 노드가 링처럼 서로 연결된 형태로, 각 노드가 공평한 서비스를 받게 되며 병목 현상이 덜한 구조
        • 전송 매체와 노드의 고장 발견이 쉽고, 새로운 노드를 추가할 경우 통신 회선을 절단해야 함
      • 버스 (Bus) 형
        • 하나의 통신 회선에 여러 대의 컴퓨터가 멀티 포인트로 연결되어 있는 구조 형태
        • 구조가 간단하기 때문에 설치가 용이하고 비용이 적게 들고 통신 회선에 컴퓨터를 추가하고 삭제하기가 용이
      • 계층형 (Tree, 분산형)
        • 각 컴퓨터가 계층적으로 연결되어 있는 구성 형태로 나뭇가지가 사방으로 뻗어 있는 것과 유사한 모양의 구조 형태
        • 허브가 준비되어 있다면 많은 단말 노드를 쉽게 연결이 가능
      • 망형 (Mesh)
        • 많은 단말기로부터 많은 양의 통신을 필요로 하는 경우에 유리한 네트워크 형태
        • 각 네트워크 장비가 여러 개의 인터페이스를 갖추고 상호간 연결하는 방식
    • 네트워크 구축 장비
      • 스위치
        • 여러 대의 Bridge의 집합으로 랜과 랜을 연결하여 큰 랜을 만드는 장치
        • L2 스위치(2계층)은 일반적으로 부르는 스위치이고 MAC 주소 기반 프레임을 전송, 동일 네트워크 간의 연결만 가능
        • L3 스위칭(3계층)은 라우팅 기능이 추가된 L2 스위치이며 서로 다른 네트워크 간의 연결이 가능하고 IP주소 기반 패킷 전송
        • L4 스위치(4계층)은 트래픽을 분산시켜 주는 장비인 로드 밸런서가 달린 L3 스위치로 IP주소 및 TCP/UDP 기반으로 서버의 부하가 적은 곳에 분배하는 로드 밸런싱 기능을 제공
        • L7 스위치(7계층)은 IP주소 및 TCP/UDP 포트 정보에 패킷 내용까지 참조하여 세밀하게 로드 밸런싱하며 연결 제어 및 콘텐츠를 로드 밸런싱
        • 스위치 방식
          • Store and Forwarding: 데이터를 모두 받은 후 스위칭하는 방식
          • Cut-through: 데이터의 목적지 주소만을 확인한 후 바로 스위칭하는 방식
          • Fragment Free: Store and Forwarding과 Cut-through 방식의 장점을 결합한 방식
      • 라우터
        • 라우팅의 개요
          • 송수신 측간의 전송 경로 중에서 최적 패킷 교환 경로를 결정하는 기능
          • 최적 패킷 교환 경로란 어느 한 경로에 데이터의 양이 집중하는 것을 피하면서 최저의 비용으로 최단 시간에 송신할 수 있는 경로
        • 라우팅 프로토콜
          • 효율적인 경로 제어를 위해 네트워크 정보를 생성, 교환, 제어하는 프로토콜을 총칭
          • RIP: 최대 홉 수를 15로 제한, 라우팅 정보를 30초마다 네트워크 내 모든 라우터에 알리며 180초 이내에 새로운 라우팅 정보가 수신되지 않으면 해당 경로를 이상 상태로 간주
          • OSPF: 대규모 네트워크에서 많이 사용, 라우팅 저보에 변화 생길 시 변화된 정보만 네트워크 내 모든 라우터에게 알림
          • GRP: 시스코사가 개발한 자율 시스템 내의 경로 지정 정보 프로토콜, RIP보아 대규모로 복잡한 통신망에서 운용
  • IT 신기술 및 SW 개발 트렌드 정보
    • 인공지능 (AI: Artificail Intelligence)
      • 인간의 두뇌와 같이 컴퓨터 스스로 추론, 학습, 판단 등 인간 지능적인 작업을 수행하는 시스템
    • 증강 현실 (AR: Augmented Reality)
      • 현실 세계의 배경에 3D의 가상 이미지를 중첩하여 영상으로 보여 주는 기술
    • 블록체인 (Block-chain)
      • '블록'이라고 하는 소규모 데이터들이 P2P 방식을 기반으로 생성된 체인 형태의 연결고리 기반 분산 데이터 저장환경에 저장되어 온라인 금융 거래 정보를 온라인 네트워크 참여자의 디지털 장비에 분산 저장하는 기술
    • 딥 러닝 (DL: Deep Learning)
      • 인간의 두뇌를 모델로 만들어진 인공 신경망을 기반으로 하는 기계 학습 기술
    • 가상현실 (VR: Virtual Reality)
      • 공간과 사물을 컴퓨터에 가상으로 만들어 인간 오감을 활용한 작용으로 현실 세계에서는 직접 경험하지 못하는 상황을 간접으로 체험할 수 있도록 하는 기술
    • 리치 인터넷 애플리케이션 (RIA, Rich Internet Application)
      • 데스크톱 환경처럼 응답 속도가 빠르고 사용하기 쉬운 기능과 특징을 제공하는 웹 제작 기술
    • 서비스 지향 아키텍처 (SOA: Service Oriented Architecture)
      • 기업의 소프트웨어 인프라인 정보 시스템을 공유와 재상이 가능한 서비스 단위나 컴포넌트 중심으로 구축하는 정보 기술 아키텍처
    • 그레이웨어 (Grayware)
      • 정상 소프트웨어와 바이러스 소프트웨어의 중간에 해당하는 일종의 악성 소프트웨어
    • 분산 원장 기술
      • 수많은 사적 거래 정보를 개별적 데이터 블록으로 만들고, 이를 체인처럼 연결하는 블록체인 기술
    • 뉴럴링크
      • 사람의 뇌와 컴퓨터를 결합하는 기술을 개발하기 위해 테슬라 CEO 일론 머스크가 설립한 뇌 연구 회사
    • 디지털 트윈
      • 소프트웨어로 가상화한 모델을 만들고 시뮬레이션함으로써 실제 모델의 특성 즉 모델 상태, 생산성, 동작 시나리오에 대한 정보를 얻을 수 있는 것
    • 시멘틱 웹
      • 차세대 지능형 웹이라고 하며 정보들 사이의 연관성을 컴퓨터가 이해하고 처리할 수 있는 에이전트 프로그램을 통해 사용자가 원하는 정보를 찾아 제공
  • SW 개발 보안 정책
    • SW 개발 보안 관련 기관
      • 행정안전부 / 한국 인터넷 진흥원 (KISA) / 발주 기관 / 사업자 / 감리 법인
    • SW 개발 직무별 보안 활동
      • 프로젝트 관리자 (Project Manager) 조직 구성원들에게 응용 프로그램 보안 영향을 이해시키고 조직의 상태를 모니터링
      • 요구사항 분석가 (Requirement Specifier) 보안 관련 비즈니스 요구사항을 설명
      • 아키텍트 (Architect) 보안 오류가 발생하지 않도록 보안 기술 문제를 충분히 이해
      • 설계자 (Designer) 특정 기술에 대해 보안 요구 사항의 만족성 여부를 확인, 문제 발생 시 최선의 문제 해결 방법을 결정
      • 구현 개발자 (Implementer) 구조화된 소프트웨어 개발 환경에서 프로그램을 원활히 구현할 수 있도록 시큐어 코딩 표준을 준수하여 개발
      • 테스트 분석가 (Test Analyst) 소프트웨어 개발 요구사항과 구현 결과를 반복적으로 확인
      • 보안 감사자 (Security Auditor) 소프트웨어 개발 프로젝트의 현재 상태의 보안을 보장, 요구사항 검토 시 요구 사항의 적합성과 완전성을 확인
    • SW 개발 보안 관련 법령과 규정
      • 개인정보 보호 관련 법령
        • 개인정보 보호법
        • 정보통신망 이용 촉진 및 정보 보호 등에 관한 법률
        • 신용정보의 이용 및 보호에 관한 법률
        • 위치정보의 보호 및 이용 등에 관한 법률
        • 표준 개인정보 보호 지침
        • 개인정보의 안전성 확보 조치 기준
        • 개인정보 영향평가에 관한 고시
      • IT 기술 관련 규정
        • RFID 프라이버시 보호 가이드라인
        • 위치정보의 관리적, 기술적 보호조치 권고 해설서
        • 바이오정보 보호 가이드 라인
        • 뉴미디어 서비스 개인정보 보호 가이드라인
  • IT 신기술 및 서버 장비 트렌드 정보
    • RAID
      • 여러 개의 하드디스크를 마치 하나의 하드디스크처럼 사용하는 것으로 입출력 속도 및 안정성을 개선시킨 기술
    • 3D 프린팅
      • 프린터로 평면으로 된 문자나 그림을 인쇄하는 것이 아니라 손으로 만질 수 있는 입체도형을 찍어내는 것
    • 4D 프린팅
      • 미리 설계된 시간이나 임의 환경 조건이 충족되면 스스로 모야응ㄹ 변경 또는 제조하여 새로운 형태로 바뀌는 제품을 3D 프린팅하는 기술
    • 고가용성
      • 오랜 시간 지속하여 사용할 수 있는 시스템으로 안정적인 서비스 운영을 위하여 장애 발생 시 즉시 다른 시스템으로 대체 가능한 환경을 구축하는 메커니즘을 의미
    • 패블릿
      • 테블릿과 폰의 합성어로 태블릿 기능이 있는 5인치 이상의 대화면 스마트 폰
    • 맴리스터 (Memristor)
      • 메모리와 레지스터의 합성어로 전류의 방향과 크기 등 기존의 경험을 모두 기억하는 소자
    • N-Screen
      • 하나의 콘텐츠를 TV나 PC, 태블릿 PC, 스마트 폰 등 다양한 기기에서도 끊김 없이 이용할 수 있게 해주는 서비스
    • 멤스 (MEMS: Micro-Electro-Mechanical Systems)
      • 소형 기계 구조물에 반도체, 기계, 광 등 초정밀 반도체 제조 기술을 융합하고 미세 가공하여 전기기계적 동작할 수 있도록 한 마이크로 단위의 작은 부품 및 시스템
    • GPU
      • 컴퓨터에서 그래픽 처리를 전문적으로 다루는 하드웨어
    • RFID
      • 전자 태그가 부착된 IC칩과 무선 통신 기술을 이용하여 다양한 개체들의 정보를 관리할 수 있는 센서 기술
  • 서버 장비 운영
    • 서버 장비 운영 요소
      • 정보 시스템 운영의 시작부터 끝까지 필요한 모든 것
      • 서버, 데이터 저장 장치인 스토리지, 운영 체제, 고가용성 장비, 보안 솔루션 등
    • IP 스토리지
      • IP 네트워킹을 이용하여 서버 / 클라이언트와 데이터를 전송하는 저장장치로 인터넷 디스크라는 용어로 사용
      • DAS (Direct Attached Storage): 서버 장비에 직접 연결하여 운용하는 방식의 저장 장치
      • NAS (Network Attahced Storage): 서버와 저장 장치를 네트워크로 연결하는 방식
      • SAN (Storage Area Network): DAS의 빠른 처리와 NAS 의 스토리지 공유 장점을 합친 방식
    • Secure-OS
      • Secure-OS란?
        • 보안 기능을 갖춘 커널을 이식하여 외부의 침입으로부터 시스템 자원을 보호하는 운영체제
      • Secure-OS의 보호 방법
        • 암호적 분리 / 논리적 분리 / 시간적 분리 / 물리적 분리
      • Secure-OS의 보안 기능
        • 식별 및 인식 / 임의적 접근 통제 / 강제적 접근 통제 / 완전한 조정 / 신뢰 경로 / 감사 및 감사 기록 축소
  • IT 신기술 및 데이터베이스 기술 트렌드 저옵
    • 빅 데이터 (Big Data)
      • 빅 데이터는 기존의 관리 방법이나 분석 체계로는 처리하기 어려운 방대한 양의 데이터 집합
    • 메타 데이터 (Meta Data)
      • 데이터에 대한 데이터로 정의되며, 기능적인 측면에서 데이터에 대한 구조화된 데이터로 정의
    • 브로드 데이터 (Broad Data)
      • 기업 마케팅에 보다 효율적인 다양한 정보
    • 스마트 데이터 (Smart Data)
      • 실제로 가치를 창출할 수 있는 검증된 고품질의 데이터
    • 타조 (Tajo)
      • 하둡을 위한 강력한 빅 데이터 관계형 및 분산 데이터 웨어하우스 시스템
    • 하둡 (Hadoop)
      • 오픈 소스를 기반으로 한 분산 처리를 돕는 컴퓨팅 플랫폼
    • 데이터 다이어트 (Data Diet)
      • 데이터를 삭제하는 것이 아니라 압축하고, 겹친 정보는 중복을 배제하고, 새로운 기준에 따라 나누어 저장하는 작업
    • 디지털 아카이빙 (Digital Archiving)
      • 디지털 정보 자원을 장기적으로 보존하기 위한 작업
  • 데이터베이스 관리 기능과 표준화
    • 데이터베이스 관리 기능
      • 데이터가 기업의 전략적 의사결정의 핵심 요소로 대두됨에 따라 데이터 통합 및 데이터 품질 확보의 필요성
      • 회복 (Recovery) 기능
        • 트랜잭션들을 수행하는 도중 장애가 발생하여 데이터베이스가 손상되었을 때 손상되기 이전의 정상 상태로 복구하는 작업
      • 병행제어 (Concurrency Control) 기능
        • 여러 개의 트랜잭션을 병행 수행할 때, 동시에 실행되는 트랜잭션들이 데이터베이스의 일관성을 파괴하지 않도록 트랜잭션 간의 상호 작용을 제어하는 것
    • 데이터 표준화
      • 데이터 표준화의 정의
        • 시스템별로 데이터 정보 요소에 대한 명칭, 정의 형식, 규칙에 대한 원칙을 수립하여 이를 적용하는 것을 의미
      • 데이터 표준
        • 데이터 모델이나 DB에서 정의할 수 있는 모든 오브젝트를 대상으로 수행
      • 데이터 표준 관리 조직
        • 데이터 관리자는 하나의 기업 또는 조직 내에서 데이터에 대한 정의, 체계화, 감독 및 보안 업무를 담당하는 역할
      • 데이터 표준화 절차
        • 데이터 표준화 요구 사항 수집 -> 데이터 표준 정의 -> 데이터 표준 확정 -> 데이터 표준 관리

WRITTEN BY
ppdha82

,
  • 소프트웨어 개발 방법론
    • 소프트웨어 개발 방법론의 개념
      • 소프트웨어 개발 과정들을 정의하고 표준화하여 형상화 한 것으로 지속적으로 적용할 수 있는 방법, 절차, 기법을 설정하는 것
      • 프로그래밍 개발과정에서 일관성을 유지하고 프로그램들 간의 효과적인 협업이 이루어질 수 있도록 돕기 위한 방법론으로 소프트웨어의 생산성과 품질 향상을 목적으로 등장
    • 소프트웨어 개발 방법론의 종류
      • 구조적 방법론
        • 1970년대까지 가장 많이 적용된 구조화 프로그래밍 방법
        • 개발 순서: 타당성 검토 -> 계획 -> 요구사항 -> 설계 -> 구현 -> 테스트 -> 운용 및 유지보수
        • 쉽게 이해할 수 있고 검증 가능한 프로그램 코드를 생성
      • 정보공학 방법론
        • 정보 시스템 개발에 필요한 관리 절차와 작업 기법을 체계화한 방법론
        • 개발순서: 정보 전략 계획 수립 -> 업무 영역 분석 -> 업무 시스템 설계 -> 기술 설계 -> 업무 시스템 구축 -> 업무 시스템 실행
        • 정보공학 방법론은 자료 (Data) 중심의 방법론으로 업무 활동들을 상호 연관성 있게 통합하고 적용
      • 객체지향 방법론
        • 소프트웨어를 개발할 때 기계의 부품을 조립하듯이 객체 형태로 만들어진, 객체들을 조립해서 필요한 소프트웨어를 구현하는 방법론
        • 개발 순서: 요구 분석 -> 설계 -> 구현 -> 테스트 -> 인수
        • 구조적 기법의 문제점으로 인한 소프트웨어 위기의 해결책으로 채택
      • 컴포넌트 기반 (CBD) 개발 방법론
        • 기존의 시스템이나 소프트웨어를 구성하는 컴포넌트를 조합하여 하나의 새로운 애플리케이션을 만드는 방법론
        • 개발 순서: 개발 준비(팀 구성) -> 분석(요구 사항) -> 설계(아키텍처) -> 구현(개발) -> 테스트 및 검증 -> 전개(리허설) -> 인수
        • 컴포넌트의 재상용이 가능하여 시간과 노력을 절감, 유지 보수비용을 최소화하고 생산성 및 품질을 향상
      • 애자일(Agile) 방법론
        • 절차보다는 사람이 중심이 되어 변화에 유연하고 신속하게 적응하면서 효율적으로 시스템을 개발할 수 있는 방법론
        • 개발 순서: 전략수립 단계 (유저 스토리) -> 스파이크 솔루션 반복 (주기 계획 -> 주기 개발 -> 승인 테스트)
        • 스프린트(Sprint)라는 짧은 개발 주기를 반복하며 고객의 평가와 요구 사항을 수용
        • 스크럼 (Scrum)
          • 매일 정해진 시간에 정해진 장소에서 짧은 시간의 개발을 하는 팀을 위한 프로젝트 관리 중심의 방법론
          • 스크럼 개발 프로세스 제품 백로그 (Product Backlog) -> 스프린트 계획 회의 (Sprint Backlog) -> 스프린트 수행 -> 일일 스크럼 회의 -> 스프린트 검토 회의 -> 스프린트 회고
        • XP (eXtreme Programming)
          • 수시로 발생하는 고객의 요구사항에 유연하게 대응하기 위해 고객의 참여와 개발 과정의 반복을 극대화하여 개발 생산성을 향상시키는 방법
          • XP 개발 프로세스 사용자 스토리 -> 릴리즈 계획 수립 -> 스파이크 -> 이터레이션 -> 승인 검사 -> 소규모 릴리즈
    • 소프트웨어 개발 방법론 선정
      • 소프트웨어 개발 방법론의 개념
        • 소프트웨어를 개발하는 데 투입 자원, 비용, 시간, 위험 관리 등을 확인하고 어떤 개발 방법론을 선택하여 개발할 것인가를 결정하는 것
      • 소프트웨어 개발 방법론의 특징
        • 프로젝트 관리
          • 일정 관리, 비용 관리, 인력 관리, 위험 관리, 품질 관리
        • 소프트웨어 개발 방법론 선정 절차
          • 반영, 수립비용 관리, 매뉴얼 작성
  • 소프트웨어 비용 산정
    • 소프트웨어 비용 산정의 개념
      • 소프트웨어 개발에 필요한 개발 규모를 기반으로 개발에 필요한 비용을 예측하는 것
      • 소프트웨어 비용은 개발하는 소프트웨어 크기, 소프트웨어 개발에 투입되는 자원, 소프트웨어 생산성에 따라 결정
    • 소프트웨어 비용 결정 요소
      • 프로젝트 요소: 제품 복잡도, 시스템 크기, 요구되는 신뢰도
      • 자원 요소: 인적 자원, 하드웨어 자원, 소프트웨어 자원
      • 생산성 요소: 개발자 능력, 개발 기간
  • 하향식 비용 산정 기법
    • 하향식 비용 산정 기법의 개념
      • 전문 지식이 많은 개발자들이 과거의 유사한 경험을 바탕으로 회의를 통해 비용을 산정하는 방법
    • 하향식 비용 산정 기법의 종류
      • 전문가 판단 기법: 조직 내에 경험이 많은 두 명 이상의 전문가에게 비용 산정을 의뢰하는 기법
      • 델파이 기법: 전문가 판단 기법의 단점을 보완하기 위한 것으로 한명의 조정자와 다수 전문가를 두는 방법
  • 상향식 비용 산정 기법
    • 상향식 비용 산정 기법의 개념
      • 개발하려는 프로젝트의 세부 작업 단위별로 비용을 산정한 후 집계하여 전체 비용을 산정하는 방법
    • 상향식 비용 산정 기법의 종류
      • 원시코드 라인 수(LOC) 기법: 소프트웨어 각 기능별 원시 코드 라인 수의 예측치를 이용하여 생산성, 노력, 개발 기간 등의 비용을 산정하는 기법
      • 개발 단계별 인 월수(Effort Per Task) 기법: 각 기능을 구현시키는 데 필요한 개발 노력 (인 / 월수)을 생명 주기의 각 단계별로 산정
  • 수학적 산정 기법
    • 수학적 산정 기법의 개념
      • 경험적 추정 모형 또는 실험적 추정 모형이라고 하는 상향식 비용 산정 기법
    • COCOMO 모형
      • COCOMO 모형(COnstructive COst MOdel): 시스템의 비용을 산정하기 위해 시스템을 구성하고 있는 모듈과 서브시스템의 각 유형에 대한 총 인원 수와 개발 기간을 계산하는 방식
      • COCOMO 모형의 프로젝트 유형: 조직형, 반분리형, 임베디드형
      • COCOMO 모형의 종류: 기본형 COCOMO, 중간형 COCOMO, 발전형 COCOMO
  • 소프트웨어 개발 표준
    • 소프트웨어 개발 표준의 개념
      • 사용자의 요구를 소프트웨어 제품으로 만드는데 사용되는 국제 표준
    • 소프트웨어 개발 표준의 종류
      • ISO/IEC 12207 표준: 소프트웨어 개발을 수행하기 위한 절차, 활동, 획득, 설정에 대한 소프트웨어 생명주기 단계별로 필요한 프로세스와 각 프로세서에서 나오는 산출물까지 포함
      • CMMI: 소프트웨어 개발 조직의 업무 능력 및 조직의 성숙도를 평가하기 위한 모델
      • CMMI 의 역량 성숙도 5단계: 초기 단계, 관리 단계, 정의 단계, 정량적 관리 단계, 최적화 단계
      • SPICE: 소프트웨어 처리 개선 및 능력 평가 기준
  • 소프트웨어 개발 방법론 테일러링
    • 소프트웨어 개발 방법론 테일러링의 개념
      • 시스템 개발에서 프로젝트 진행 상황 및 특성에 맞는 방법론과 산출물을 찾아 수정 및 보완하여 최적화된 결과를 얻어내는 작업
    • 소프트웨어 개발 방법론 테일러링 수행 절차
      • 프로젝트 특징 정의 -> 표준 프로세스 선정 및 검증 -> 상위 수준의 커스터마이징 -> 세부 커스터마이징 -> 테일러링 문서화
    • 테일러링의 고려 사항
      • 목표 환경, 요구사항, 프로젝트 규모 보유기술 (내부적 요건)
    • 테일러링 기법
      • 규모와 복잡도에 따른 테일러링, 구성원에 따른 테일러링, 팀내 방법론 지원에 따른 테일러링, 자동화에 따른 테일러링
  • 소프트웨어 개발 프레임워크
    • 소프트웨어 개발 프레임워크의 개념
      • 비슷한 유형의 소프트웨어 개발에 있어 공통적인 부분에 해당하는 설계와 구현을 손쉽게 할 수 있도록 제공하는 소프트웨어 시스템
    • 소프트웨어 개발 프레임워크의 종류
      • 스프링 프레임워크: 자바 엔터프라이즈 애플리케이션 (Java Enterprise Application) 개발에 사용되는 프레임워크이며 대한민국 전자정부 표준 프레임워크의 기반 기술
      • 전자정부 프레임워크: 우리나라 공공부문의 정보화 사업 부분에서 효율적인 정보 시스템의 구축을 지원하기 위해 필요한 기능 및 아키텍처를 제공하는 프레임워크
      • 닷넷 프레임워크: 윈도우 프로그램의 개발 및 실행 환경에서 제공하는 프레임워크

WRITTEN BY
ppdha82

,