핵심개념정리
no | 개념 | 설명 |
1 | SW개발보안 | 소스 코드 등에 존재하는 보안취약점을 제거하고 보안을 고려한 기능을 설계, 구현하는 보안 활동 |
2 | 기밀성(Confidentiality) | 인가되지 않은 개인 혹은 시스템 접근에 따른 정보 공개 및 노출을 차단 |
3 | 가용성(Availability) | 권한을 가진 사용자나 app이 원하는 서비스를 지속 사용할 수 있도록 보장 |
4 | 무결성(Integrity) | 정당한 방법을 따르지 않고선 데이터가 변경될 수 없으며, 데이터의 정확성 및 완전성을 보장 |
5 | 자산(Assets) | 조직의 데이터 또는 조직의 소유자가 가치를 부여한 대상(서버의 하드웨어, 기업의 중요 데이터) |
6 | 위협(Threat) | 조직이나 기업의 자산에 악영향을 끼칠 수 있는 사건이나 행위(해킹, 삭제, 불법유출, 파손 등) |
7 | 취약점(Vulnerability) | 위협이 발생하기 위한 사전 조건에 따른 상황(평문전송, 입력값 미검증, 비밀번호 공유) |
8 | 위험(Risk) | 위협이 취약점을 이용하여 조직이 자산 손실 피해를 가져올 가능성 |
9 | 일방향 암호화 | 암호화는 가능하지만 절대로 복호화는 불가능한 알고리즘 |
10 | SSL(Secure Socket Layer) | 응용계층과 TCP/IP계층 사이에서 웹 데이터 암호화 및 전송 시 기밀성을 보장하는 공개키 기반 보안 |
11 | SHTTP | 클라이언트와 서버 간에 전송되는 메세지 암호화 |
12 | 솔트(Salt) | 일방향 해시 함수에서 다이제스트를 생성할 때 추가되는 바이트 단위의 임의의 문자열 |
13 | 세션 하이재킹 | TCP신뢰성 기반의 연결을 이용한 공격방법, 통신 내용을 엿보거나 세션을 가로채어 정상적인 인증과정을 무시하고, 불법으로 시스템에 접근할 수 있는 공격 |
14 | MS-SDL | 마이크로소프트가 안전한 SW개발을 위해 자체 수립한 SDL(Secure Development Lifecycle)방법론 |
15 | Seven Touchpoints | 소프트웨어 보안의 모범사례를 SW개발 라이프사이클에 통합, 객관적인 위험분석 및 테스트를 거쳐 안전한 소프트웨어를 만드는 방법을 정의 |
16 | CLASP | (Comprehensive, Lightweight Application Security Process)SDLC초기 단계에 보안강화를 목적으로 하는 정형화된 프로세스, 이미 운영중인 시스템 적용에 용이 |
17 | 시큐어코딩 | 설계, 구현 단계에서 해킹 등의 공격을 유발할 가능성이 있는 잠재적인 보안 취약점을 사전에 제거하고 외부 공격으로부터 안전한 SW를 개발하는 기법 |
18 | 보안 약점(Weakness) | 보안취약점의 근본 원인이 되는 SW의 결함, 실수, 버그 등의 오류로 개발단계의 보안리스크 |
19 | 직렬화 | 데이터 구조나 오브젝트 상태를 다른 컴퓨터 환경으로 저장,재구성할 수 있는 포맷으로 변환하는 과정 |
20 | JSTL | (JSP Standard Tag Library) JSP에서 제공하는 태그 지원 |
21 | SEED | 한국에서 자체 개발한 대칭키 128비트 암호화 알고리즘 |
22 | 스니핑(Sniffing) | 공격대상에게 직접 공격을 하지 않고 데이터만몰래 들여다보는 수동적 공격기법 |
23 | 세션(Session) | 클라이언트와 서버의 논리적인 연결 |
24 | 싱글톤 패턴 | 전역변수를 사용하지 않고 객체를 하나만 생성하도록 하며, 생성된 객체를 어디에서든지 참조가능 |
25 | DNS (Domain Name Service) |
도메인 이름과 IP주소를 서로 변환하는 역할을 수행하는 서비스 |
26 | CSRF(Cross-Site Request Forgery) | 사용자의 의지와 무관하게 공격자가 의도한 행위를 특정 웹사이트에 요청(csrf토큰사용하여 대처) |
27 | 해시(Hash) | 임의 길이의 입력 데이터나 메시지를 고정된 길이의 값이나 키로 변환하는 것, 데이터의 암호화, 무결정 검증을 위해 사용될 뿐만 아니라 정보보호의 다양한 분야에서 활용 |
01. 소프트웨어 개발 보안 설계
1. 개발 보안의 구성요소
▶︎ 3대 요소: 기밀성, 가용성, 무결성
▶︎ 보안 용어: 자산, 위협, 취약점, 위험
2. 보안 항목식별 : 개인정보 보호법, 정보통신망법, 신용정보법, 위치정보이용법
▶︎ 개인정보 보호법
1) 고유 식별정보의 처리제한(24조)
- 고유 식별정보(주민등록번호, 여권번호, 운전면허번호, 외국인등록번호)를 처리하는 경우
- 해당 정보가 분실, 도난,유출, 변조, 훼손되지 않도록 암호화 등 안전성 확보에 필요한 조치 필요
2) 안전조치 의무화(29조)
- 개인정보가 분실, 도난, 유출, 변조 또는 훼손되지 않도록 내부관리 계획 수립 및 기술적, 관리적, 물리적 조치 수행
3) 개인정보의 안전성 확ㅂ조치
- 개인정보를 안전하게 저장, 전송할 수 있는 암호화 기술의 적용 또는 이에 상응하는 조치 수행
▶︎ 정보통신망법
1) 개인정보의 보호조치(15조, 28조)
- 비밀번호 및 바이오정보의 일방향 암호화 저장, 주민등록번호/계좌번호/금융정보 암호화 저장
2) 개인정보의 암호화(6조)
- 주민등록번호, 신용카드번호, 계좌번호에 대해 안전한 암호화 알고리즘으로 암호화 하여 저장, 서버는 SSL 인증서로 암호화 송,수신
3. 개인정보 등급 식별
▶︎ 1등급
- 고유식별정보 : 개인을 고유하게 구별하기 위해 부여된 식별정보
- 민감정보 : 유전자 검사정보, 범죄경력정보 등 정보 주체의 사생활을 현저하게 침해할 수 있는 정보
사상, 신념, 노동조합, 정치저 견해, 병력, 신체/정신적 장애, 성적취향 등
- 인증정보 : 비밀번호, 바이오 정보
- 신용정보 : 신용정보, 신용카드번호, 계좌번호
4. 자산에 대한 보안 항목식별
▶︎ 주요 용어 : 자산, 사용자, 소유자, 관리자
▶︎ 정보 자산의 식별
- 기업이 가진 중요자산을 보호하기 위해 자산의 식별과 평가를 수행
- 위험 분석을 위해 적절한 분류기준에 따라 중복, 누락을 최소화하여 자산목록을 작성
- 송신시스템 -> 계획/분석 -> 설계 -> 구현 -> 시험/검증 -> 배포/운영 -> 대응
▶︎ 자산 분류 기준 : 소프트웨어/ 하드웨어/ 데이터/ 문서/ 시설/ 지원설비/ 인력
5. 기능에 대한 보안 항목 식별
▶︎ 입력데이터 검증 및 표현 : DBMS조회/결과 검증, XML조회/결과 검증, 웹서비스 요청/결과 검증, 허용된 범위 내 메모리 접근 검증, 보안 기능 입력값검증, 업로드/다운로드파일검증
▶︎ 보안기능 : 인증관리, 권한관리, 암호화, 중요정보 처리
▶︎ 에러처리 및 세션 통제
- 에러처리 : 오류 메시지에 중요정보가 포함된 출력방지 방법 설계
- 세션 통제 : 다른 세션 간 데이터 공유 금지, 세션 ID 노출 금지, 세션 종료 처리 등 세션을 안전하게 관리할 수 있는 방안 설계
6. 보안 적용 사례 : MS-SDL, Seven Touchpoints, CLASP
02. 소프트웨어 개발 보안 구현
▶︎ 시큐어 코딩 가이드
- 입력데이터 검증 및 구현 / 보안기능(인증, 암호호, 중요정보 처리) / 시간 및 상태 / 에러처리 / 코드오류 / 캡슐화 / API 오용
▶︎ 시스템 공격 유형
- Ping of Death (죽음의 핑) : Ping 명령을 전송할 때 패킷의 크기를 인터넷 프로토콜 허용범위 이상으로 전송하여 공격 대상의 네트워크를 마비시키는 서비스 거부 공격
- Smurfing : IP나 ICMP의 특성을 악용, 엄청난 양의 데이터를 한 사이트에 집중적으로 보내 네트워크를 불능 상태로 만드는 공격 방법.
- TearDrop : Offset 값을 변경시켜 수신 측에서 패킷을 재조립할 때 오류로 인한 과부하를 발생 시킴
- Land(20년 1회 기출) : 패킷을 전송할 때 송 수신 IP주소를 모두 공격대상 IP주소로 하여 공격대상에게 전송하는 것, 공격대상은 송신IP주소가 자신이기 때문에 자신에게 무한히 응답하게 되는 공격
해킹 공격
좀비PC : 악성코드에 감염되어 다른 프로그램 or 컴퓨터를 조종하도록 만들어진 컴퓨터
C&C서버 : 좀비PC에 명령을 내리고 악성코드를 제어하기 위한 용도의 서버
봇넷 : 악성 프로그램에 감염되어 악의적인 의도로 사용될 수 있는 네트워크 연결 형태
웜 : 연속적으로 자신을 복제하여 시스템 부하를 높임으로써 시스템을 다운시키는 바이러스
제로데이 공격 : 취약점 발견 시 취약점 존재를 알리기 전에 해당 취약점을 통해 이뤄지는 보안 공격
키로거 공격 : 컴퓨터 사용자의 움직임을 탐지 개인정보를 몰래 빼가는 공격
램섬웨어 : 내부 문서나 파일 등을 암호화해서 사용자가 열지 못하게 하는 프로그램
백도어 : 설계자가 서비스 기술자의 편의를 위해 보안을 제거하여 만들어놓은 비밀 통로
트로이 목마 : 정상적인 기능인 척하는 악성 프로그램
'Certificate > 정보처리기사' 카테고리의 다른 글
[실기]Ⅺ.응용SW 기초 기술 활용★★ (0) | 2020.11.21 |
---|---|
[실기]Ⅹ.프로그래밍 언어활용 ★ (0) | 2020.11.21 |
[실기]Ⅷ. SQL응용 ★★ (0) | 2020.11.21 |
[실기]Ⅶ.애플리케이션 테스트 관리★★ (0) | 2020.11.21 |
[실기] Ⅵ.화면설계 (0) | 2020.11.21 |