[정보처리기사 실기] Ⅸ. 기사실기 요약 / 정리 / 단답 / Tip / 알고가기!

Ⅸ. 소프트웨어 개발 보안 구축 - 알고가기!!


  • SW 개발 보안의 3대 요소 ( Tip. 기무가 )
    밀성(Confidentiality) / 결성(Integrity) / 용성(Availability)
  • SW 개발 보안 용어 ( Tip. 자위취위 )
    산(Assets) / 협(Threat) / 약점(Vulnerability) / 험(Risk)
  • DDos 공격 구성요소 ( Tip. HAMAD(하마드) )
    핸들러(Handler) / 에이전트(Agent) / 마스터(Master) / 공격자(Attacker) / 데몬(Daemon) 프로그램
  • DoS와 DDoS의 차이점
    DoS는 직접 공격하고, DDoS는 공격하도록 지시한다 / DoS는 한 사람에 의해 공격을 감행하는 반면, DDoS는 수많은 감염 호스트를 통해 공격을 감행.
  • SYN 플러딩 대응 방안
    ① TCP연결 타임아웃을 짧게 가져가서 연결 요청 대기 시간을 줄인다.
    ② Backlog Queue를 늘려준다.
    ③ Syncookie 기능을 활성화 시켜 준다.
    ④ Anti-DDoS, 방화벽, 침입 차단시스템 등 보안 장비를 통해 침입 탐지 및 차단을 수행 한다.
    ⑤ 최신 시스템 및 애플리케이션 패치 및 업데이트를 수행한다.
  • 스머프 대응 방안
    ① 다른 네트워크로부터 자신의 네트워크로 들어오는 직접 브로드캐스트(Directed Broadcast) 패킷을 허용하지 않도록 라우터를 설정.
    ② 브로드캐스트 주소로 전송된 ICMP Echo Request 메시지에 대해 응답하지 않도록 시스템을 설정.
  • PoD 대응 방안
    ① 보통 ICMP 패킷은 분할하지 않으므로 패킷 중 분할이 일어난 패킷을 공격으로 의심하여 탐지하도록 설정.
    ② 현재 시스템 대부분은 반복적으로 들어오는 일정 수 이상의 ICMP 패킷을 무시하도록 설정되어 있지만, 취약점을 가지고 있다면 패치가 필요.
  • 애플리케이션 공격 대응 방안
    ① 동시연결에 대한 임계치(Threshold) 설정을 통해 차단.
    ② 연결 타임아웃 설정을 통해 차단.
    ③ 읽기 타임아웃 설정을 통해 차단.
  • 네트워크 서비스 공격 대응 방안
    ① 방화벽, 침입 차단 시스템 등 네트워크 보안 장비를 통해 방어.
    ② 네트워크 접속 차단 시스템을 통해 방어.
    ③ 내부 호스트 및 시스템의 악성 코드 감염방지를 위한 백신 설치 등을 통해 방어.
  • 랜드어택 대응 방안
    수신되는 패킷 중 출발지 주소와 목적지 주소가 동일한 패킷들을 차단.
  • 봉크 / 보잉크 / 티어드롭 대응 방안
    과부하가 걸리거나 반복되는 패킷 재정송 요구를 하지 않고 버린다.
  • DES [Data Encryption Standard]
    56bit의 키를 이용, 64bit의 평문블록을 64bit의 암호문 블록으로 만드는 블록 암호 방식의 미국표준(NIST) 암호화 알고리즘.
  • AES [Advanced Encryption Standard]
    DES를 대체한 암호 알고리즘이며, 암호화와 복호화 과정에서 동일한 키를 사용하는 대칭 키 암호화 알고리즘.
  • SEED
    KISA, ETRI에서 개발하고 TTA에서 인증한 안전성, 신뢰성이 우수(3DES보다)한 고속 블록단위의 128bit 대칭키 암호화 알고리즘.
  • 디피-헬만(Diffie-Hellman)
    암호 키를 교환하는 방법으로서 두사람이 암호화 되지 않은 통신망을 통해 공통의 비밀 키를 공유할 수 있도록 하는 방식.
  • RSA(Rivest Shamir Adleman)
    현재 비대칭키 암호 방식 중에서 가장 널리 쓰이고 있는 방식 / 소인수 분해의 어려움을 이용한 방식.
  • SHA(Secure Hash Algorithm)
    미국 국가 표준으로 지정된 해시 암호 알고리즘 / SHA-224, SHA-256, SHA-384, SHA-512등을 통칭해 SHA-2로 부름.
  • MD5(Message-Digest Algorithm 5)
    RFC 1321로 지정되어 있으며, MD4를 대체하기 위해 고안한 128bit 해시암호화 알고리즘.
  • 개인정보보보 관련 법령 ( Tip. 개망신 )
    인정보 보호법 / 정보통신법 / 용정보법
  • 고유 식별정보의 종류 ( Tip. 주여운외 )
    민등록번호 / 권번호 / 전면허번호 / 국인 등록번호
  • 개인정보보호 법령 내 정보사고 ( Tip. 분도유변훼 )
    실 / 난 / 출 / 조 /
  • 일방향 암호화
    암호화는 수행하지만 절대로 복호화가 불가능한 알고리즘.
  • 암호화 알고리즘
    국내 및 미국, 일본, 유럽 등의 국외 암호 연구 관련 기관에서 권고하는 암호 알고리즘을 의미.
  • SSL (Secure Socket Layer)
    응용계층과 TCP/IP 계층 사이에서 웹 데이터 암호화 및 전송시 기밀성을 보장하는 공개키 기반의 보안 프로토콜.
  • 프로시저
    절차형 SQL을 활용하여 특정 기능을 수행할 수 있는 트랜잭션 언어.
  • LDAP [Lightweight Directory Access Protocol]
    TCP/IP 위에서 조직화되고 비슷한 특성을 가진 객체들의 모임인 디렉터리 서비스를 조회하고 수정하는 응용 프로토콜.
  • 솔트(Salt)
    일방향 해시 함수에서 다이제스트를 생성할 때 추가되는 바이트 단위의 임의의 문자열.
  • 세션 하이재킹(Session Hijacking)
    TCP신뢰성 기반의 연결을 이용한 공격 방법으로, 통신 내용을 엿보거나, 세션을 가로채어 정상적인 인증과정을 무시하고 불법으로 시스템에 접근할 수 있는 공격.
  • SW 개발 보안 방법론 ( Tip. MS 7 CLA )
    MS-SDL / Seven Touchpoints / CLASP
  • 소프트웨어 개발 보안 설명
    소스코드 등에 존재하는 보안 취약점을 제거하고, 보안을 고려하여 기능을 설계 및 구현하는 등 소프트웨어 개발 과정에서 지켜야 할 일련의 보안활동.
  • 정보자산 주요 용어
    자산(Asset) : 조직에서 보유한 가치 있는 모든 것.
    사용자(User) : 정보처리 기기 및 시스템을 활용해 자산을 사용하는 사람과 기관.
    소유자(Owner) : 자산의 소유 권한 및 관리에 대한 최종 책임자 / 자산의 취득, 사용, 폐기 등 관리 권한 보유.
    관리자(Admin) : 자산의 소유자로부터 관리위임을 받은 자 / 자산의 보관 및 운영 책임을 짐.
  • 정보자산 분류 기준
    소프트웨어 : 상용 또는 자체 개발된 소프트웨어 자산.
    하드웨어 : 대외 서비스를 위해 사용되거나 개인이 사용하는 자산.
    데이터 : 전자적 형태로 저장되는 데이터.
    문서 : 종이 매체로 된 정보자산 업무 목적 문서, 기록물.
  • 정보자산 식별을 위한 자산목록표 주요항목
    자산번호 / 자산명 / OS / 위치 / 담당자(관리자) / IP / PORT / 중요 등급.
  • 고유식별정보의 개념
    개인을 고유하게 구별하기 위하여 부여된 식별정보로 주민번호, 여권번호, 외국인 등록번호, 운전면허번호 등이 있다.
  • 일방향 암호화의 개념
    암호화는 가능하지만 복호화가 불가능한 알고리즘 / MD5, SHA, SHA2 알고리즘이 있다.
  • 랜드어택(Land Attack) - 서비스 거부(Dos) 공격기법
    공격자가 출발지(Source) IP와 목적지(Destination) IP를 같은 패킷 주소로 만들어 보냄으로써 수신자가 자기 자신에게 응답을 보내게 하여 시스템의 가용성을 침해하는 공격 기법.
  • MD5
    128비트 암호화 해시 함수이다. RFC 1321로 지정되어 있으며, 주로 프로그램이나 파일이 원본 그대로인지를 확인하는 무결성 검사 등에 사용된다. 1991년에 로널드 라이베스트가 예전에 쓰이던 MD4를 대체하기 위해 고안.
  • SHA (Secure Hash Algorithm)
    미국 국가안보국이 1993년 처음 설계했으며 미국 국가표준으로 지정된 해시 암호화 알고리즘.
  • 스머프 공격(Smurf Attack) 또는 스머핑 (Smurfing)
    희생자의 스푸핑된 출발지 IP를 가진 수많은 ICMP 패킷들이 IP 주소를 사용해 네트워크 전체에 브로드캐스트하는 분산 서비스 거부 공격.
    출발지 주소를 공격 대상의 IP로 설정하여 네트워크 전체에게 ICMP Echo 패킷을 직접 브로드캐스팅하여 마비시키는 공격.
    바운스(Bounce)사이트라고 불리는 제3의 사이트를 이용해 공격한다.
  • 보안 취약점(Vulnerability)
    해킹 등 외부 공격으로 시스템의 보안정책을 침해하느 ㄴ보안사고의 실제 원인이 되는 시스템상의 보안 허점.
  • 보안 약점(Weakness)
    보안 취약점의 근본적인 원인이 되는 SW의 결함, 실수, 버그 등의 오류.
  • 시큐어 코딩 가이드 적용 대상 ( Tip. 입보시 에코캡아 )
    력데이터 검증 및 표현 / 안 기능 / 간 및 상태 / 러 처리 / 드 오류 / 슐화 / API 오용
  • 직렬화 (serialization)
    직렬화는 데이터 구조나 오브젝트 상태를 다른 컴퓨터 환경으로 저장하고 재구성할 수 있는 포맷으로 변환하는 과정.
  • 사용자 정의함수
    절차형 SQL을 활용하여 일련의 SQL 처리를 수행하고, 수행 결과를 단일 값으로 반환할 수 있는 절차형 SQL.
  • 트리거
    특정 테이블에 삽입, 수정, 삭제 등의 데이터 변경 이벤트가 발생하면 DBMS에서 자동적으로 실행되도록 구현한 프로그램.
  • 트리거 종류
    행트리거 / 문장트리거
  • PreparedStatement
    MySQL, Oracle, SQL Server 등 에서 지원하는 쿼리 객체로 동일하거나 비슷한 데이터베이스문을 높은 효율성으로 반복적으로 실행하기위해 사용되는 기능.
  • JSTL [JSP Standard Tag Library]
    JSP 표준 태그 라이브러리의 약어로, JSP에서 제공하는 태그등을 지원.
  • 무차별 공격(Brute Force Attack)
    특정 패스워드를 풀기위해 임의의 문자 조합을 하나씩 대입해 보는 공격기법.
    반복된 인증시도 제한이 없을때 취약.
  • 스니핑(Sniffing)
    공격대상에게 직접공격을 하지 않고 데이터만 몰래 들여다보는 수동적 공격 기법.
  • 경쟁조건(Race Condition)
    메모리가 공유되는 하나의 객체에 두개 이상의 스레드가 동시에 값을 변경하려고 할때에 발생되는 성능 저하의 문제점.
  • Mutex [Mutual exclusion; 상호배제]
    임계영역(프로그램상에서 동시에 실행될 경우 문제를 일으킬 수 있는 부분)을 가진 스레드들의 실행시간이 서로 겹치지 않게 각각 단독으로 실행되게 하는 기술.
  • 집계함수
    여러 행 또는 테이블 전체 행으로부터 하나의 결과값을 반환하는 함수.
  • 그룹함수
    테이블의 전체 행을 하나 이상의 컬럼을 기준으로 컬럼 값에 따라 그룹화 하여 그룹별로 결과를 출력하는 함수.
  • ROLLUP
    지정된 컬럼은 소계 등 중간 집계값을 산출하기 위해 사용.
  • GROUPING SETS
    집계대상 컬럼들에 대한 개별 집계를 구할 수 있으며, ROLLUP이나 CUBE와는 달리 컬럼간 순서와 무관한 결과를 얻을 수 있다.
  • 윈도함수
    데이터베이스를 사용한 온라인 분석 처리 용도.
  • 순위함수
    레코드의 순위를 계산하는 함수로 RANK, DENSE_RANK, ROW_NUMBER 함수가 존재.
  • 행순서함수
    레코드에서 가장 먼저 나오거나 가장 뒤에 나오는 값.
    이전/이후의 값들을 출력하는 함수로 FIRST_VALUE, LAST_VALUE, LAG, LEAD 함수가 존재.
  • ROW_NUMBER
    레코드의 순위를 계산하는 함수로 동일순위의 값이 존재해도 이와 무관하게 연속번호를 부여하는 함수.
  • LAST_VALUE
    파티션별 윈도에서 가장늦게 나오는 값을 찾는 함수로 집계 함수의 MAX와 동일한 결과 출력을 가지는 함수.
  • LEAD
    파티션별 윈도에서 이후 로우의 값을 반환하는 함수.
  • RATIO_TO_REPORT
    주어진 그룹에 대해 합을 기준으로 각 로우의 상대적 비율을 반환하는 함수 / 결과값은 0 ~ 1의 범위.
  • DCL
    데이터베이스 관리자가 데이터보안, 무결성 유지, 병행제어, 회복을 위해 관리자(DBA)가 사용하는 제어용 언어.
  • GRANT
    관리자(DBA)가 사용자에게 권한을 부여하기 위한 명령어.
  • 세션(Session)
    클라이언트와 서버의 논리적 연결.
  • 싱클톤 패턴(Singleton Pattern)
    전역변수를 사용하지 않고 객체를 하나만 생성하도록 하며, 생성된 객체를 어디에서든지 참조 할 수 있도록 하는 패턴.
  • 그룹내 비율 함수
    백분율을 보여주거나 행의 순서별 백분율 등 비율과 관련된 통계를 보여주는 함수.
    RATIO_TO_REPORT, PERCENT_RANK 함수가 존재.
  • DENSE_RANK
    레코드의 순위를 계산하는 함수로 동일 순위의 레코드 존재시에도 후순위를 넘어가지 않는 함수.
  • DNS (Domain Name Service)
    DNS는 도메인 이름과 IP 주소를 서로 변환하는 역할을 수행하는 서비스.
  • API (Application Programming Interface)
    프로그램을 작성하기 위한 일련의 서브프로그램, 프로토콜 등을 정의하여 상호작용을 하기위한 인터페이스 사양을 뜻한다.
  • 화이트박스 테스트
    프로그램 내부 로직을 보면서 수행하는 테스트(구조테스트).
  • 블랙박스 테스트
    프로그램 외부 사용자의 요구사항명세를 보면서 수행하는 테스트(기능테스트).
  • 모델 체킹(Model Checking) 도구
    정형언어로 명세된 모델을 검증하고자 하는 특성을 만족하는지 입증하는 기법.
    정형언어 : 소프트웨어와 하드웨어 시스템의 검증을 위한 수학적 기반 기술.
  • 입력데이터 검증 및 표현
    프로그램 입력값에 대한 검증 누락, 부적절한 검증, 잘못된 형식 지정.
  • 보안 기능
    보안기능(인증, 접근제어, 기밀성, 암호화, 권한관리 등)의 부적절한 구현.
  • 시간 및 상태
    거의 동시에 수행 지원하는 병렬 시스템.
    하나이상의 프로세스가 동작하는 환경에서 시간 및 상태의 부적절한 관리.
  • SQL 삽입(Injection)
    사용자의 입력값 등 외부 입력값이 SQL 쿼리에 삽입되어 공격.
    웹 애플리케이션에서 입력데이터에대한 유효성 검증을 하지 않을 경우 공격자가 입력창 및 URL에 SQL문을 삽입하여 DB로부터 정보를 열람∙조작 할 수 있는 공격 기법.
  • 크로스 사이트 스크립트(XSS)
    검증되지 않은 외부 입력값에 의해 브라우저에서 악의적인 코드가 실행.
    웹페이지에 악의적인 스크립트를 포함해 사용자 측에서 실행되게 유도할 수 있는 공격 기법.
  • 암호화 보안약점 유형
    취약 암호화 알고리즘 사용
    부적절한 난수 사용
    솔트(Salt)없는 일방향 해시함수 사용
    하드코딩된 비밀번호
    충분하지 않은 키 길이 사용
  • 보안테스트 절차 ( Tip. 준실개관종 )
    비 단계 : 대상선정, 일정 수립
    행 단계 : 테스트 수행
    선 단계 : 보고서 발행, 지적사항 해결
    리 단계 : 결함 해결 사항 보고, 점검된 소스코드 관리
    료 단계 : 보안 상황 보고
  • 정보보안의 3요소
    기밀성 : 인가되지 않은 개인 혹은 시스템 접근에 따른 정보 공개 및 노출을 차단하는 특성.
    가용성 : 권한을 가진 사용자나 애플리케이션이 원하는 서비스를 지속 사용할 수 있도록 보장하는 특성.
    무결성 : 정당한 방법에 의하지 않고선 데이터가 변경될 수 없으며, 데이터의 정확성 및 완전성과 고의/악의로 변경되거나 훼손 또는 파괴되지 않음을 보장하는 특성.
  • SW 개발 보안 방법론 ( Tip. MS 7 CLA )
    • MS-SDL
      • 마이크로 소프트는 안전한 소프트웨어를 개발하기 위해 자체 수립한 SDL(Secure Development Lifecycle) 방법론을 적용.
      • 적용 이후 이전 버전보다 50% 이상 취약점 감소.
    • Seven Touchpoints
      • 소프트웨어 보안의 모범사례를 소프트웨어 개발 라이프사이클에 통합.
      • 객관적인 위험 분석 및 테스트를 거쳐 안전한 소프트웨어를 만드는 방법을 정의.
      • 수행되는 소프트웨어 위험 요소에 대해 추적하고 모니터링.
    • CLASP
      • Comprehensive, Lightweight Application Security Process 의 약자.
      • SDLC 초기 단계에 보안 강화를 목적으로 하는 정형화된 프로세스.
      • 이미 운영중인 시스템에 적용하기가 용이.
  • 정보자산의 분류 기준
    소프트웨어 : 상용 또는 자체 개발된 소프트웨어 자산 / 애플리케이션, 개발도구, 유틸리티.
    하드웨어 : 대외서비스를 위해 사용되거나 개인이 사용하는 자산 / 서버, PC, 노트북, 스위치.
    데이터 : 전자적 형태로 저장되는 데이터 / 데이터베이스, 데이터 파일.
    문서 : 종이매체로된 정보자산, 업무목적문서∙기록물 / 결재문서, 계약서, 합의서.
    시설 : 시스템 설치, 운영 장소 등 물리적 공간 및 시설 / 사무실, 전산실, 통신실.
    지원설비 : 정보시스템 운영을 지원하기 위한 설비 / UPS, 항온항습기, 발전기.
    인력 : 시스템 운영 업무 수행 중인 인력 / 내부직원, 협력업체.
  • 시큐어 코딩 개념
    설계 및 구현 단계에서 해킹등의 공격을 유발할 수 있는 잠재적 보안취약점을 사전에 제거하고, 외부 공격으로부터 안전한 소프트웨어를 개발하는 기법.
  • 널포인트 역참조
    널값을 고려하지 않은 코드에서 발생하는 보안 약점.
    의도적으로 널 값을 유발해 예외 상황을 확인하고 추후 공격에 활용.
  • 정보통신망법 6조 주요내용
    비밀번호, 바이오정보는 복호화 되지 않도록 일방향 암호화하여 저장.
    주민등록번호, 신용카드번호, 계좌번호에 대해 안전한 암호화 알고리즘으로 암호화 하여 저장.
    서버는 SSL 인증서를 통해 암호화 하여 송∙수신.
  • 개인정보 보호법 24조 주요내용
    고유식별번호(주민등록번호, 여권번호, 운전면허번호, 외국인등록번호)를 처리하는 경우.
    해당 정보가 분실, 도난, 유출, 변조, 훼손되지 않도록 암호화 등 안전성 확보에 필요한 조치 필요.
  • 민감 정보의 개념
    유전자 검사정보, 범죄경력정보 등 정보주체의 사생활을 현저하게 침해할 수 있는 정보.






  • 정보처리기사 필기 합격 후 실기대비 정리 및 책없이 간단히 보기위해 작성하였습니다.
  • 2020년 수제비 정보처리기사 책 기반으로 정리 하였습니다.
  • 저작권 관련 문제가 있다면 hojunbbaek@gmail.com 으로 메일 주시면 바로 삭제 조치 하도록 하겠습니다.