● 소프트웨어의 특성
- 비가시성 : 구조가 외부에 노출되지 않고 코드에 내재되어 있음 (무형)
- 복잡성 : 정형적 구조가 없이 복잡하고 비규칙적, 비정규적임
- 비마모성 : 소프트웨어는 외부의 환경에 의해서 마모되는 것이 아니라, 품질이 나빠지는 것
- 복제성 : 소프트웨어는 간단하고 쉬운 방법으로 복제 가능
- 변경성 : 필요에 따라 항상 수정이 가능한 진화성 (evolution)
- 순응성 : 요구 및 환경의 변화에 적응하는 유연성
- 무형성 : 실체적 형체가 없는 무형성 때문에 FP(Function Point)등으로 유형화 하고자 함
● 소프트웨어 위험의 대표적 특성
- 연쇄작용 : 한 반응이 일어나면 여러 반응이 가지를 쳐서 일어나는 현상
- 확실성 : 의심의 여지가 없는 상태 또는 오류로부터 완전한 보증을 가지고 있는 상태
- 불확실성 : 위험이 발생할 수도 있고 발생하지 않을수도 있음
- 손실 : 위험이 실제로 발생하면 반드시 손실이나 원하지 않은 결과가 발생
● 공학적으로 잘 작성된 소프트웨어의 특성
- 사용자가 요구하는대로 동작
- 하드웨어 자원을 효율적으로 이용
- 일정 시간 내에 주어진 조건하에서 원하는 기능 실행
- 처리 절차에 맞게 수행되어 정확하게 결과를 산출
- 소프트웨어의 개발, 유지보수 등이 초기 예상 비용 이내에 수행
- 적당한 사용자 인터페이스를 제공해 사용하기가 편리해야 함
- 유지보수가 용이하고 신뢰성이 높아야 함
- 에러 최소화
- 소프트웨어 사용법, 구조의 설명, 성능, 기능이 이해하기 쉬워야 함
- 실행 속도가 빠르고, 기억 용량을 적게 차지
- 투입된 비용, 노력에 대한 생산량을 의미하고 이러한 생산성을 최대한 확보 해야함
● 소프트웨어 위기 (Software crisis)
- 소프트웨어 공학 초기에 사용되던 용어. 이 용어는 급격한 컴퓨터 계산 용량과 문제의 복잡성이 급격히 증가함에 따라 발생한 충격을 서술하기 위하여 사용됨. 본질적으로, 이는 정확하고 이해할 수 있고, 검증 가능한 컴퓨터 프로그램을 작성하는것이 얼마나 어려운가를 뜻함. 소프트웨어 위기의 뿌리는 복잡성, 기대 그리고 변화이다.
소프트웨어 위기 발생 요인
- 소프트웨어 특징에 대한 이해 부족 : 논리적인 소프트웨어 특징을 이해하지 못함
- 소프트웨어 관리 부재 : 소프트웨어 관리를 소홀히 하여 효율적인 자원 통제가 이루어지지 못함
- 프로그래밍에만 치중 : 소프트웨어 품질이나 유지보수는 고려하지 않고, 프로그래밍만 하려해서 다양하고 복잡해지는 소프트웨어의 요구사항을 처리하지 못함
● 소프트웨어 재사용의 이점
- 소프트웨어 위기 극복 : 소프트웨어 개발 생산성 향상
- 유지보수 비용의 절감 : 소프트웨어 변경 요구사항의 신속한 대응
- 소프트웨어 품질 향상 : 개발 시간과 비용을 단축
● 역공학 (Reverse Engineering)
- 물리적 수준의 소프트웨어 정보를 논리적인 소프트웨어 정보로 추출하는 프로세스
- 역공학을 통해서 얻을 수 있는 정보에는 분석 정보, 설계 정보, 아키텍처, 프로그램과 데이터의 구조 정보가 있음
역공학의 장점
- 재문서화를 통하여 현존하는 시스템의 지식을 재획득함
- 현존 시스템의 데이터와 논리에 효율적인 분석을 통하여 유지보수를 신속히 수행
- 현존하는 시스템의 정보를 Repository에 펼칠 수 있음
- 시스템 개발과 유지보수를 자동화
- 현존 시스템 설계를 재사용함
- 구현 독립적인 논리적 레벨에서 작업
역공학의 종류
- 논리 역공학 : 원시코드로부터 정보를 뽑아내 물리적이고 논리적인 설계정보를 획득하는 Repository를 정의함 (원시코드, 정보추출, 물리적 설계정보)
- 자료 역공학 : 물리적인 데이터 서술로부터 개념적, 논리적인 정보를 추출, 기존 파일시스템에서 데이터베이스의 전이 또는 기존 데이터베이스에서 신규 데이터베이스로 전이 수행
● 3R
- Repository를 기반으로 역공학(Reverse Engineering), 재공학(Reengineering), 재사용(Reuse)을 통해 소프트웨어 생산성을 극대화하는 기법
- Repository(정보저장소)는 3R을 구현하는 수단으로 사용됨
역공학 (Reverse Engineering) |
자동화된 도구의 도움으로 물리적 수준의 소프트웨어 정보를 논리적인 소프트웨어 정보의 서술로 추출하는 프로세스 |
재공학 (Reengineering) |
자동화된 도구로 현존하는 시스템을 점검 또는 수정하는 프로세스 |
재사용 (Reuse) |
이미 개발되어 그 기능, 성능 및 품질을 인정받았던 소프트웨어의 전체 또는 일부분을 다시 사용 |
3R의 필요성
- 소프트웨어 위기 극복
- 소프트웨어 개발 생산성 향상
- 유지보수 비용의 절감
- 소프트웨어 변경 요구사항의 신속한 대처
● 폭포수 모델 (Waterfall Model)
- Boehm이 제시한 고전적 생명주기 모형으로서 선형 순차적 모델이라고도 함.
- 타당성 검토, 계획, 요구사항 분석, 구현, 테스트, 유지보수 단계를 통해 소프트웨어를 개발하는 모형
- 검토/승인을 거쳐 순차적으로 하향식으로 개발이 진행되는 생명주기 모델
- 이해하기 쉽고 다음단계 진행 전에 결과 검증 가능하고 관리가 용이하지만 요구 도출이 어렵고 문제발견시 프로젝트가 지연이 가능하다는 단점이 있음
● 프로토타입 모델 (Prototype Model)
- 핵심적인 기능을 먼저 만들어 평가한 후 구현하는 점진적 개발 방법
- 사용자의 요구사항을 충분히 분석할 목적으로 시스템의 일부분 또는 시제품을 일시적으로 간결하게 구현한 다음 다시 요구사항을 반영하는 과정을 반복
- 요구사항 도출에 용이하고 고객과 의사소통이 향상되지만 단점으로는 사용자의 오해(완제품)나 폐기되는 프로토타입이 존재할 수 있음
● 나선형 모델 (Spiral Model)
- 폭포수와 프로토타입 모델 장점에 위험분석을 추가한 모델
- 나선형 모델의 장점은 점증적인 개발로 실패할 위험이 감소하고 테스트가 용이하고 고객 피드백을 개선할 수 있는 반면 관리가 복잡하다는 단점이 있음
● 반복 점증적 모델
- 사용자의 요구사항 일부분 혹은 제품의 일부분을 반복적으로 개발하여 최종 시스템으로 완성하는 모델
- 장점으로는 위험의 조기 발견 및 최소화 전략 구현이 가능하고 변경 관리가 용이하지만 관리가 어렵다는 단점이 있음
- 한번에 모든것을 만들어서 오픈하는 것이 아닌 핵심을 먼저 만들고, 나머지를 점진적으로 업데이트 하여 최종 시스템을 완성하는 모델
반복 점증적 모델의 유형
구분 | 증분형 모델(Incremental) | 진화형 모델(Iterative) |
정의 | 폭포수 모형에 반복적 수행 개념을 결합하여 증분을 반복하여 최종시스템을 구현하는 개발 모형 | 핵심 요구사항을 중심으로 개발한 후 추가적인 요구사항에 대한 기능을 추가하여 발전시켜 나가는 방식의 모형 |
특징 | 병렬개발 가능 요구사항이 명확할 경우 적합 |
요구사항이 개발 초기에 불명확할 경우 적합 전체 진화과정에 대한 Release 계획 필요 |
장점 | 새로운 시스템에 대한 충격 완화 후반 통합의 충격 완화 |
시스템의 완성도를 점진적으로 향상 불완전한 요구사항에 대응 가능 |
단점 | 다수의 빌드 관리 부담 변경되는 요구사항에 효과적인 대응 어려움 |
프로젝트 비용 및 일정 증가 다수의 버전이 존재하여 Release 버전 관리가 부담 |
● RAD (Rapid Application Development) 모델
- 짧은 개발주기(60~90일)동안 소프트웨어를 개발하기 위한 순차적 프로세스 모델
- 요구사항 이해와 범위의 명확한 설정시 신속하고 완전한 기능 구현이 가능한 장점이 있지만, 기술적 위험이 높을 경우 부적합하고 책임감 있는 구성원이 필요하다는 단점이 있음
RAD 모델의 개발 절차
JRP → JAD → 구축/운영 → Cutover 절차로 개발이 진행됨
- JRP (분석, Joint Requirement Planning) : 고객과 비즈니스 모델 작성/검토 반복을 통한 분석
- JAD (설계, Joint Application Design) : 고객과 원형모델개발/수정/보완 반복 통한 시스템 설계
- 구축/운영 : 관련 기술을 이용하여 시스템 구축/운영, CASE 사용
- Cutover(이전) : 운용에 필요한 지침서 작성, 현행 부서 이전
● 상향식 비용 산정 기법
원시 코드 라인 수 (LOC, Line of Code) |
각 기능의 원시 코드 라인 수의 비관치(가장 많은 라인 수), 낙관치(가장 적은 라인 수), 중간치(기대치, 평균 라인 수)를 측정하여 예측치를 구해 비용을 산정하는 방식 |
개발 단계별 노력 (Effort per task) |
생명주기의 각 단계별로 노력(인/월수, M/M(Man/Month))을 산정하는 방식 |
Putnam 방법 | 소프트웨어 생명주기인 전 과정에 사용될 노력의 분포를 가정해주는 방식 Putnam이 제안하였으며, 생명주기 예측 모형이라고도 함 시간에 따른 함수로 표현되는 Rayleigh-Nordan 곡선의 노력 분포도를 기초로 함 |
기능 점수법 (FP, Function Point) |
기능 점수를 구한 후 이를 이용해 비용을 산정하는 방식 기능 점수의 기준이 되는 소프트웨어 기능은 크게 데이터 기능과 트랜잭션 기능으로 구분 |
● 기능점수 산정 기법
기능점수 유형 |
내부논리 파일 (ILF) |
사용자가 식별 가능한 논리적으로 연관된 데이터 그룹이나 제어정보로 애플리케이션 경계 내에서 유지관리 되어짐 |
외부연계 파일 (EIF) |
사용자가 식별 가능한 논리적으로 연관된 데이터 그룹이나 제어정보로 애플리케이션에 의해 참조 | |
외부 입력 (EI) |
애플리케이션 경계 밖으로부터 들어온 데이터나 제어정보를 처리하는 단위 프로세스 | |
외부 출력 (EO) |
애플리케이션 경계 밖으로 데이터나 제어정보를 내보내는 단위 프로세스 (수학식/계산) | |
외부 조회 (EQ) |
애플리케이션 경계 밖으로 데이터나 제어정보를 내보내는 단위 프로세스 |
데이터 복잡도 평가 요소
- 데이터 요소 유형(DET) : 사용자가 인식 가능하고 중복되지 않는 유일한 데이터 필드 또는 속성
- 레코드 요소 유형(RET) : 내부논리 파일이나 외부 참조 파일에서 사용자가 식별 가능한 데이터 요소의 서브 그룹으로 필수 서브그룹과 선택 서브그룹이 있음
트랜잭션 복잡도 평가 요소
- 데이터 요소 유형(DET) : 사용자가 인식 가능하고 중복되지 않는 유일한 데이터 필드 또는 속성
- 참조파일 유형(FTR) : 트랜잭션 기능에 의해 읽혀지거나 유지 관리되는 내부논리파일 또는 트랜잭션 기능에 의해 읽혀지기만 하는 외부 참조파일 단위 프로세스에서 사용되는 내부 논리파일 또는 외부 연계파일을 의미함
● 유지보수 유형
수정적 (Corrective) |
발견된 오류나 잠재적인 오류의 원인을 찾아 문제 해결 | 하자 유지보수, 처리 오류, 수행 오류, 구현 오류 |
완전적 (Perfective) |
새로운 기능을 추가하여 개선 | 신규 비즈니스 프로세스 발생, 수행력 향상 |
예방적 (Preventive) |
유지보수성, 신뢰성 향상 위한 구조 변경 | 노후화된 SW의 Refactoring |
적응적 (Adaptive) |
새로운 자료나 운영체제, 하드웨어 환경으로 이식 | SW 환경 변경으로 porting, HW, SW 변화 |
● 소프트웨어 개발 표준
- ISO/IEC 12207 : 체계적인 소프트웨어 획득, 공급, 개발, 운영/유지보수를 위한 소프트웨어 생명주기 공정(SDLC Process) 표준
- SPICE : 소프트웨어 프로세스 평가를 위한 프레임워크를 제공하며, 정보 시스템 분야에 특화된 품질 표준이자 인증 규격
- CMMI : 조직의 프로세스에 대한 가이드이자 기준이며 '능력'과 '성숙도'로 조직의 프로세스를 측정하고 평가하는 모델의 통합 버전인 프로세스 개선 성숙도 모델
- GS인증 : 국내 소프트웨어 품질 인증 규격. 소프트웨어 제품의 품질 확보를 위해 소프트웨어 산업 진흥법 및 과학기술정보통신부 고시에 따라 시험/평가하는 소프트웨어 품질 인증 규격
● SPICE 프로세스 수행 능력 단계
불완전 단계 | 미구현 또는 미달성 |
수행 단계 | 프로세스 수행 및 목적 달성 |
관리 단계 | 프로세스 수행 계획 및 관리 |
확립 단계 | 정의된 표준 프로세스 사용 |
예측 단계 | 프로세스의 정량적 이해 및 통제 |
최적화 단계 | 프로세스를 지속적으로 개선 |
SPICE 프로세스
기초 프로세스 | 고객-공급(Customer-supplier) 프로세스 | 소프트웨어를 개발하여 고객에게 전달하는 것을 지원, 소프트웨어를 정확하게 운용하고 사용하는 프로세스로 구성 (프로세스 10개) |
공학(Engineering) 프로세스 | 시스템과 소프트웨어 제품의 명세화, 구현, 유지보수 프로세스로 구성 (프로세스 9개) | |
지원 프로세스 | 지원(Support) 프로세스 | 소프트웨어 생명주기에서 다른 프로세스에 의해 이용되는 프로세스로 구성 (프로세스 8개) |
조직 프로세스 | 관리(Management) 프로세스 | 소프트웨어 생명주기에서 프로젝트 관리자에 의해 사용되는 프로세스로 구성 (프로세스 4개) |
조직(Organization) 프로세스 | 조직의 업무 목적을 수립하고, 조직이 업무 목표를 달성하는데 도움을 주는 프로세스로 구성 (프로세스 9개) |
● 테일러링
- 프로젝트 진행시 표준 방법론이나 표준 산출물을 활용하여, 개별 과제의 특성에 딱 맞도록 방법론과 산출물을 적용하는 프로세스
- 프로젝트 상황에 맞도록 하기 위해, 개발방법론의 절차/기법/산출물 등을 수정하여 적용하는 것
- 품질을 높이고 납기일을 준수하여 고객의 만족도를 높이기위한 효율적인 개발 방법
- 테일러링 적용시 납기, 비용, 기술 환경, 구성원 능력, 고객 요구사항 등의 내부적 요소와 법적 제약사항, 국제표준 품질 기준 등의 외부적 요소를 고려해야 함
규모와 복잡도에 따른 테일러링 |
프로젝트 기간, 작업범위, 참여인원 규모가 대/중/소, 복잡도가 상/중/하 구분 |
프로젝트 구성원에 따른 테일러링 | 구성원의 기술적 성숙도 방법론에 대한 이해정도 파악 및 수준결정 |
팀내 방법론 지원에 따른 테일러링 | 각 팀별로 방법론 및 모델링 지원 인력 선정하여 개별 교육 |
자동화에 따른 테일러링 | 중간 산출물 자동화 도구 사용 자동화는 보조적인 역할도 활용 |
● 전자정부 표준 프레임워크
- 공공사업에 적용되는 개발 프레임워크의 표준 정립으로 응용 소프트웨어 표준화, 품질 및 재사용성 향상을 목표로 함
- 전자정부 서비스의 품질향상 및 정보화 투자 효율성 향상을 달성하고, 대/중소기업이 동일한 개발기반 위에서 공정 경쟁이 가능하게 됨
스트럿츠 프레임워크 | 자바기반의 JSP만을 위한 프레임워크 다양한 운영체제에서 활용 오픈소스이기 때문에 개발에 필요한 부분을 수정하여 사용 UI기반의 프레임워크 |
앵귤러 JS (Angular JS) |
자바스크립트 기반의 프레임워크 앵귤러 JS의 데이터 모델은 단순 자바스크립트 객체로 재사용이 쉬운 정적인 UI 컴포넌트로 구성 코드의 길이를 더욱 단순화 HTML, CSS 개발자와 자바스크립트 개발자를 명확하게 분리 |
스프링 프레임워크 | 엔터프라이즈급 애플리케이션 개발에 필요로 하는 경량형 프레임워크 J2EE에서 제공하는 대부분의 기능을 지원 DB 처리를 위한 JDBC, iBatis, 하이퍼네이트, JPA 등 라이브러리와 연동을 지원 전자정부 표준프레임워크의 기반이 되는 기술 |
● IP 전환 방법
Dual stack : IP 계층에 IPv4와 IPv6 기능 공용 사용 (DNS 지원 필요, 인프라구축 과다비용)
Tunneling : IPv6망 간의 IPv4를 사용한 터널링 연결
주소변환(Gateway) : IPv4망과 IPv6망 사이 G/W(라우터)를 통해 주소형식 변환
● ICMP 개념
- IP 패킷 처리시 통신상황, 진단 결과를 통보하는 인터넷 계층 프로토콜
- 메시지는 오류 메시지와 질의/응답 메시지로 구분
ICMP 메시지 유형
1) 오류 보고 메시지 (Error Reporting Message)
- IP 패킷 전달 오류의 보고
- ICMPv4 : 목적지 도달불가(3), 리다이렉트(5), 시간초과(11), 매개변수 문제(12)
- ICMPv6 : 목적지 도달불가(1), 패킷길이초과(2), 시간초과(3), 매개변수 문제(4)
2) 정보성 메시지 (Informational Message) / 질의 메시지 (Query Message)
- 네트워크 상태조사를 위한 질의 요청 및 응답
- ICMPv4 : 에코요청(8), 에코 응답(0), 라우터 광고(9), 라우터 간청(10) 등
- ICMPv6 : 에코 요청(128), 에코 응답(129), 라우터 광고(134), 라우터 간청(133)
ICMP 프로토콜 구성
● L4 스위치
- 스위치에서 패킷의 목적지 주소를 기준으로 보내는 곳과 받는 곳을 계산하여 해당 포트로 연결하는 장비
L4 스위치 동작방식 유형
Round Robin | 서버 IP 주소를 순차적으로 맺어주는 방식 | 일반 서비스 |
Least Connection | 세션 수가 가장 적은 노드 선택 | FTP, SSH |
Response Time | 응답시간이 짧은 노드로 전달 | MSA, SOA |
Hash | IP 조합에 대해 해시값을 계산후 노드 선택 | 웹 서비스 (세션 유지) |
Bandwidth based | 대역폭이 적은 연결로 패킷 전달 | 파일 서버 |
Random | 임의의 난수를 이용하여 무작위로 서버 선택 | 클러스터링 구성 |
- L4 스위치의 부하 최소화와 세션 유지를 위하여 주로 Hash 방식을 사용
- 웹 캐싱(Web caching)은 주로 웹 서버에서 수행. L4 스위치는 부하를 분산시키거나 특정 응용프로그램의 트래픽 전송을 차단하거나 Port 정보를 활용해 트래픽 분류를 할 수 있음
● 스위치 유형
L2 스위치 | MAC 주소를 읽어 스위칭을 하고 이것을 어떤 포트로 보낼 것인지 컨트롤하는 장비 |
L3 스위치 | IP또는 IPX 주소를 읽어서 목적지 IP 주소를 보고 적절한 포트로 패킷을 전송하는 라우팅 장비 |
L4 스위치 | TCP와 UDP의 포트를 보고 적절한 서버로 패킷을 전송하는 장비 요청받은 작업을 여러개의 서버로 분산시키는 로드밸런싱기능 지원 서비스가 중단되면 자동적으로 다른 서버가 같은 역할을 수행하는 Failover 기능 지원 |
L7 스위치 | L2, L3, L4가 갖고 있는 기능들을 모두 수용하면서 불필요한 트래픽에 대한 차단이나 네트워크에 대한 공격을 완화시키는 장비 |
● NAT (Network Address Translation)
- NAT는 하나의 공인 IP주소를 다량의 가상 사설 IP 주소로 할당 및 매핑하는 주소 변환 기술
NAT 핵심 기능
IP Masquerading | One-to-many 변환 (1 public IP : N private IP 매핑) Outbound traffic의 Source IP와 Port 대상 변환 |
Port forwarding | Inbound traffic의 Destination port 중심 동작 Destination port 정보로 내부사설 IP(호스트) 식별 |
Load balancing | Inbound traffic의 Destination port 중심 동작 사설망 내 특정 서버로의 부하 집중 방지 Server farm의 High performance를 위해 적용 |
● LAN (Local Area Network, 근거리 통신망)
- 광대역 통신망과는 달리 학교, 회사, 연구소 등 한 건물이나 일정 지역 내에서 컴퓨터나 단말기들을 고속전송 회선으로 연결하여 프로그램 파일 또는 주변장치를 공유할 수 있도록 한 네트워크 형태
- 대표적인 기술로 이더넷, 토큰링, FDDI, ATM, 무선랜 기술이 있음
- 다양한 통신장치와 연결이 가능
- 높은 신뢰도, 확장 및 재배치의 용이
- Data, voice, video와 같은 다양한 데이터 처리가 가능
- 데이터의 전송 속도 및 공유에 유리
- 네트워크 토폴로지는 버스형 토폴로지를 주로 사용
● WAN (Wide Area Network, 광역 통신망)
- 넓은 지리적 거리/장소를 넘나드는 통신 네트워크 또는 컴퓨터 네트워크
- WAN 프로토콜은 HDLC(Highlevel Datalink Control)과 PPP(Point to Point Protocol)가 있음
● Hierarchical 3 Layer
- 코어 계층(Core layer), 디스트리뷰신 계층(Distribution layer), 액세스 계층(Access layer)로 구성되어 있음
- 대부분 코어계층은 백본SW(스위치), 디스트리뷰션 계층은 R(라우터), 액세스 계층은 SW(스위치)를 배치함
코어 계층 (Core layer) |
백본 스위치 | 디스트리뷰션 계층 장치들이 연결되는 계층 액세스 계층과는 반대로 포트수는 적어도 되지만 성능은 좋은 장비를 배치해야 함 최대한 빠른 서비스를 지원 |
디스트리뷰신 계층 (Distribution layer) |
라우터 | 액세스 계층 장치들이 연결되는 계층 브로드캐스트 도메인을 구분하는 라우터를 배치해야함 적절한 라우팅 보안정책 보안 및 필터링 서비스 제공 |
액세스 계층 (Access layer) |
스위치 | 엔드 시스템(ES : End System)들이 네트워크에 최초로 연결되는 계층 성능은 낮아도 되지만 포트수는 유저수만큼 있어야 함 최종 사용자가 네트워크로 연결되는 지점 |
● 라우팅 프로토콜의 유형
RIP (Routing Information Protocol) |
인접해있는 라우터와 라우팅 정보를 교환하는 거리벡터 라우팅 소규모 동종의 네트워크 내에서 효율적인 방법 최대 홉(Hop)수를 15로 제한 |
OSPF (Open Shortest Path First) |
홉 수에 제한이 없어 대규모 네트워크에서 많이 사용되는 프로토콜 라우팅 정보에 변화가 있을때 변화된 정도만 네트워크 내의 모든 라우터에게 알리는 링크상태 라우터 |
BGP (Border Gateway Protocol) |
AS(Autonomous System) number가 서로 다른 네트워크 간에 라우팅 정보를 주고받을때, 이용될 수 있는 Exterior Gateway Protocol |
● RIP
- 내부 라우팅 프로토콜로 현재 가장 널리 사용하는 프로토콜 중 하나
- 네트워크 구성상 계층은 없고 평면적
- 여러 경로중 Hot Count가 가장 적은 경로를 최적의 경로라고 판단
- 각각의 라우터가 인접하고 있는 라우터와 라우팅 정보를 30초마다 주기적으로 교환하여 라우팅하도록 하는 방법
- RIP는 소규모 동종의 네트워크 내에서 효율적인 방법이며 최대 홉 수를 15로 제한하기 때문에 상대방 네트워크까지의 홉수가 16을 초과할때는 통신할 수 없음
- 홉은 데이터가 목적지까지 전달되는 과정에서 거치는 네트워크의 수를 의미함. 예를 들어 어떤 목적지까지의 홉이 3이라면, 그 목적지까지 가기 위해서 세개의 네트워크(라우터나 스위치 장비)를 경유함을 의미함
● 라우터 IOS 모드
사용자 모드 (User mode) |
제한된 라우터 검사, 원격 접속 | Router> |
관리자 모드 (Privileged mode) |
자세한 라우터 검사, 디버깅과 시험, 파일 조작, 원격 접속 | Router# |
전역 설정 모드 (Global configuration mode) |
전역 설정 명령어 | Router(config)# |
● BGP (Border Gateway Protocol)
- 외부 라우팅 프로토콜에서 AS(Autonomous system) 간의 라우팅 테이블을 전달하는데 주로 이용
- AS 내부에서는 RIP, OSPF, EIGRP 라우팅 프로토콜이 사용되고 AS와 AS 간에는 BGP가 사용됨
BGP의 유형
- eBGP : 서로 다른 AS간의 BGP session에서 사용 (External BGP)
- iBGP : 동일 AS 내의 BGP router간의 BGP session (Internal BGP)
● OSPF(Open Shortest Path First)
- 내부 라우팅 프로토콜이며 링크 상태 알고리즘을 사용하는 대규모 네트워크에 적합함
- IGP의 한계를 극복하기 위해 IETF에서 고안한 것으로 네트워크의 변화가 있을 때만 갱신하므로 대역을 효과적으로 사용할 수 있음
- 자치시스템 내부의 라우터들 간의 라우팅 정보를 교환하는 링크상태 라우팅 프로토콜
- 경로 설정시 hop count만 고려한 RIP에 비해서 대역폭 및 이용도를 계산해서 최적 경로를 계산
OSPF 라우팅 프로토콜의 장점
컨버전스 타임 | 컨버전스 타임이란 라우터 간에 서로 변경된 정보를 주고받는데 걸리는 시간 RIP의 경우 30초마다 업데이트가 발생하므로 컨버전스에 많은 시간이 걸리지만 OSPF는 변화가 생길때 바로 전달하기 때문에 훨씬 빠름 |
Area(영역) 사용 | 전체 네트워크를 작은 영역으로 나누어 관리 작은 영역으로 나누어진 부분에서 변화가 일어나더라도 ABR 라우터를 통해 다른 영역과 연결이 가능하다면 다른 영역이 그 변화를 알 필요가 없음 |
VLSM 지원 | VLSM을 지원해 IP 주소를 효과적으로 사용할 수 있음 |
네트워크 크기 | RIP는 홉카운트가 15로 제한되어 있기 때문에 네트워크 크기가 제한적이지만 OSPF는 이런 제한이 없음 |
경로 설정 | RIP의 경우 홉 카운트만 따지기 때문에 속도나 딜레이 지연등의 요소와 상관없이 홉 카운트가 적은 것을 선호 OSPF는 속도나 딜레이를 감안해 경로를 선택하기 때문에 정확한 경로 선택이 가능 |
OSPF 라우팅 프로토콜 구성 요소
Backbone Area | 각 Area에서 라우팅 정보 전달받아 다른 Area로 전달 |
Leaf Area | Backbone Area를 제외한 나머지 Area 반드시 Backbone Area에 연결되어야함 |
Internal Router (IR) | Area 내부에 있는 라우터 |
Area Border Router (ABR) | 두개 이상의 Area에 속한 경계 라우터 |
AS Boundary Router (ASBR) | 다른 라우팅 프로토콜이 구동되는 네트워크와 연결되는 라우터 |
Designate Router/Backup DR (DR/BDR) | Ethernet등 Multi-access Broadcast Network 환경에서 Segment 내의 라우팅 정보를 중계하는 라우터 |
Link State Advertisements (LSA) |
Link State에 변화가 있을 경우 이것을 모든 라우터에게 즉시 전달하는데 이러한 Link State를 전달하는 Message |
● VLSM (Variable Length Subnet Mask)
- 네트워크 주소와 서브넷 마스크를 통한 네트워크 표현 방식으로 서브넷 마스크를 이용하여 IP 분할 가능
- 만약 Class C 주소를 할당시 256개 호스트 주소가 가능하나, 이보다 작은 수의 주소만이 필요할 때, 적은 수의 주소를 할당 가능하여 주소의 낭비를 막음
● 전송 계층
- 양 끝단(End to end)의 사용자들이 신뢰성 있는 데이터를 주고받을 수 있도록 서비스를 제공하는 계층이며 상위 계층들이 데이터 전달의 유효성이나 효율성을 보장해주는 계층
전송계층 주요기능
서비스 지점 주소 지정 | 전송층 헤더는 서비스 지점 주소(포트번호)를 포함 |
분할 및 재조립 | 송신시 세그먼트 단위로 나누고 목적지에서는 세그먼트를 재조립하여 메시지 형성 |
연결 제어 | 비연결지향 : 각 세그먼트를 독립된 패킷으로 나누어 전송 연결지향 : 패킷을 전달하기 전 먼저 목적지 시스템의 전송층과 연결 설정 |
흐름 제어 | 단일 링크가 아닌 종단간 흐름제어 |
혼잡 제어 | 종단간 오류제어, 재전송을 통한 오류 정정 |
● TCP 기반 서비스
FTP : TCP/IP 프로토콜을 가지고 서버와 클라이언트 사이의 파일 전송을 하기위한 프로토콜
HTTP : WWW 상에서 정보를 주고받을수 있는 프로토콜이며 주로 HTML 문서를 주고받는데에 사용
Telnet : 인터넷이나 로컬 영역 네트워크 연결에 쓰이는 네트워크 프로토콜
● TCP/IP 프로토콜 개념
1) Network Access Layer
① OSI 7 계층에서 물리계층과 데이터링크 계층에 해당
② OS의 네트워크 카드와 디바이스 드라이버 등과 같이 하드웨어적인 요소와 관련되는 모든 것을 지원하는 계층
③ 송신측 컴퓨터의 경우 상위 계층으로부터 전달받은 패킷에 물리적인 주소는 MAC 주소 정보를 가지고있는 헤더를 추가하여 프레임을 만들고, 프레임을 하위계층인 물리 계층으로 전달함
④ 수신측 컴퓨터의 경우 데이터링크 계층에서 추가된 헤더를 제거하여 상위 계층인 네트워크 계층으로 전달함
2) Internet Layer
① OSI 7 계층의 네트워크 계층에 해당
② 인터넷 계층의 주요 기능은 상위 트랜스포트 계층으로부터 받은 데이터에 IP 패킷 헤더를 붙여 IP 패킷을 만들고 이를 전송하는 것
3) Transport Layer
① OSI 7 계층에서 전송 계층에 해당
② 네트워크 양단의 송수신 호스트 사이에서 신뢰성 있는 전송기능 제공
③ 시스템의 논리주소와 포트를 가지고 있어서 각 상위 계층의 프로세스를 연결해서 통신을 수행함
④ 정확한 패킷의 전송을 보장하는 TCP와 정확한 전송을 보장하지 않는 UDP 프로토콜을 이용함
⑤ 데이터의 정확한 전송보다 빠른 속도의 전송이 필요한 멀티미디어 통신에서 UDP를 사용하면 TCP보다 유용
4) Application Layer
① OSI 7 계층에서 세션계층, 프레젠테이션 계층, 애플리케이션 계층에 해당
② 응용 프로그램들이 네트워크 서비스, 메일 서비스, 웹 서비스 등을 할 수 있도록 표준적인 인터페이스를 제공
● 데이터링크 계층
- Point to Point 간 신뢰성있는 전송을 보장하기 위한 계층
데이터링크 주요 기능
정보 전달 | 인접 노드 간 데이터 전송 | 기법 없음 |
회선 제어 | 신호 간 충돌이 발생하지 않도록 제어 | ENQ/ACK 기법, 폴링 기법 |
흐름 제어 | 송신자와 수신자간의 속도차 보장 | Stop and Wait, Sliding Window |
오류 제어 | 물리 전송 특성상 발생하는 오류와 잡음에 대한 보정 | FEC, BEC, ARQ |
주소 지정 | 송신자와 수신자의 물리주소 삽입 | MAC |
접근 제어 | 여러 시스템 연결시, 링크 점유시 사용 | CSMA/CD, CSMA/CA |
● 세션 계층
- 양 끝단의 응용 프로세스간의 논리적 연결을 확립하고 관리하는 계층
세션 계층 주요 기능
- 동시 송/수신 방식(Duplex), 반이중 방식(Half-duplex), 전이중 방식(Full duplex)의 통신 수행
- TCP/IP 세션을 만들고 없애는 역할 수행
- 통신하는 사용자들을 동기화하고 오류복구 명령들을 일괄적으로 다룸
● 소프트웨어 개발 보안
- SW 개발 보안 관련 활동 주체에 해당하지 않는 기관은 전자정부사업을 추진하는 행정기관은 전자정부법 제45조 제3항에 따라 「행정기관 및 공공기관 정보시스템 구축/운영 지침」을 준수해야 하며, 해당 지침 제 6장의 소프트웨어 개발보안은 감리대상사업에 의무 적용하는 것으로 정하고 있다.
● 스토리지
DAS (Direct attached storage) |
서버 장비에 직접 연결하여 운용하는 방식의 저장 장치로 구성이 용이함 |
Nas (Network attached storage) |
서버와 저장장치를 네트워크로 연결하는 방식으로, 구성 설정이 간편하며 별도의 운영체제를 가진 서버 한 곳에서 파일을 관리하기 때문에 서버간에 스토리지 및 파일 공유가 용이함 |
SAN (Storage area network) |
DAS의 빠른 처리와 NAS의 스토리지 공유 장점을 합친 방식으로, 광케이블과 광 채널 스위치를 통해 근거리 네트워크 환경을 구성하여 빠른 속도로 데이터를 처리할 수 있으며, 저장 장치 연결로 스토리지 공유가 가능함 |
● 참조 모니터 (Reference Monitor)
- 승인되지 않은 접근으로부터 객체를 보호하기 위해 객체에 대한 모든 주체의 접근을 통제하는 방법
참조 모니터 3가지 규칙
- 격리성(Isolation) : 반드시 부정조작이 없어야함
- 완전성(Completeness) : 우회불가능, 항상 무시되지 않고 호출되어야함
- 검증가능성(Verifiability) : 분석하고 테스트 할 정도로 충분히 작아야함
● 고가용성 (HA)
- 두대 이상의 시스템을 하나의 클러스터로 묶어 한 시스템의 장애시 다른 시스템으로 신속하게 서비스를 연결하는 메커니즘
고가용성 유형
Hot Standby | 가장 단순하면서 많이 사용되는 방식으로 평상시 백업시스템을 구성하여 대기상태를 유지하다가 장애 발생시 자원을 Take-over함 |
Mutual Takeover | 2개 시스템이 각각의 고유한 가동 업무 서비스를 수행하다가 한 서버에 장애가 발생하면 상대 시스템의 자원을 Failover하여 동시에 2개의 업무를 수행하는 방식 장애 발생시 Failover에 대비해 각 시스템 2개의 업무를 동시에 서비스 할수 있는 시스템 용량을 갖추도록 고려해야 함 외장 디스크는 해당 시스템에서만 접근 가능함 |
Concurrent Access | 여러개의 시스템이 동시에 업무를 나누어 병렬 처리하는 방식으로 HA에 참여하는 시스템 전체가 Active 한 상태로 업무를 수행함 한 시스템에 장애가 발생하여도 다른 시스템으로 Failover하지 않고 가용성을 보장함 |
● 분석 데이터베이스
- 변경된 데이터를 이용하는 것이 아닌 원장데이터를 사용하는 것
- 전용 OLAP모델링 없는 조인으로 접근하는 것
- DW 데이터베이스가 큐브 생성후 사용하고 집합 및 통계 테이블을 별도로 생성한다면 분석 데이터베이스는 애플리케이션에서 SQL을 통한 최소 변경으로 분석업무절차를 수행함
- ETL을 이용하지 않음 (ETL = 조직 내외부의 복수 데이터 소스들로부터 분석을 위한 저장소로 데이터를 이동시키는 프로세스)
● 데이터베이스 구축 공정 프로세스
준비/계획 | 현황 조사 | 구축 대상 및 범위 설정, 자료 기초 조사, DB 구축 방안 정의 |
구축 대상 선정 | 선정 기준 정의, 선정 대상 자료 세부 조사, 저작권 확인, DB 구축 대상 선정 | |
계획 수립 | DB 구축 요건 정의, DB 구축 공정 설계, 솔루션/툴 선정, 시범 DB 구축 시행, 최종 일정 및 예산 계획 수립 | |
실행 계획 | 이송 계획 수립, 복사/이송 지침서 수립, 유형별 작업 지침서 마련 | |
자료 준비 | 목록 작성, 데이터 훼손 및 무결성 확인 | |
자료 반입 | 원시 데이터 반입 확인, 반입 추가 작업 | |
구축 | 구축 준비, 1차 변환/제작, 점검/보정, 속성/메타 입력, 입력/저장, 2차 변환/저장, 교정, 목차/색인, 구축 마무리 | |
HTML/XML 변환 | 산출물에 대한 웹 활용성을 높이기 위해 HTML/XML로 변환하는 단계 입력 준비, 마크업, HTML/XML 자동 변환, 변환/검증 작업 수행 |
|
검수 | 구축된 데이터베이스에 대한 최종 검수 단계로 사업자 검사, 납품, 데이터 업로드, 주관 기관 검수, 자료 반납의 순으로 구성 | |
품질 | 준비/계획 단계부터 검수단계까지 공정 전 단계에 걸쳐 데이터 품질 수준 확보를 위해 수행하는 품질 활동의 단계 |
● 데이터베이스 표준화 유형
1) 데이터 명칭 : 해당 기업 내에서 데이터를 유일하게 구별해주는 이름. 따라서 데이터 명칭에 대한 표준화는 동음이의어 및 이음동의어의 조정을 필요로함. 데이터 명칭은 일반적으로 유일성, 업무적 관점의 보편성, 의미 전달의 충분성의 원칙에 부합되어야 함
2) 데이터 정의 : 해당 데이터가 의미하는 범위 및 자격 요견을 규정함. 사용자가 데이터의 의미를 가장 잘 이해할 수 있도록 업무 관점에서 범위와 자격요건을 명시해야 하고, 데이터 명칭만으로는 사용자에게 전달하기 어려운 기타 사항들을 전달하는 역할을 함. 또한 데이터 정의는 데이터 소유자를 결정하는 기준이 됨.
> 데이터 정의를 기술할 경우 고려할 점
- 데이터 사용자가 데이터의 의미를 잘 이해할 수 있도록 관련 업무를 모르는 제 3자의 입장에서 기술함
- 서술식 정의만으로 데이터의 의미 전달이 어려울 경우에 실제 발생할 수 있는 데이터의 값도 같이 기술함
- 데이터 명칭을 그대로 서술하거나 약어 또는 전문 용어를 이용한 정의 기술은 가급적 사용하지 않음
3) 데이터 형식 : 데이터 표현 형태의 정의를 통해 데이터 입력 오류와 통제 위험을 최소화하는 역할을 함. 데이터 형식은 업무 규칙 및 사용 목적과 일관되도록 정의함
4) 데이터 규칙 : 발생 가능한 데이터 값을 사전에 정의함으로써 데이터의 입력 오류와 통제 위험을 최소화하는 역할을 함. 데이터 규칙을 통해 데이터의 정합성 및 완전성을 향상할 수 있음. 데이터 규칙의 유형은 기본 값, 허용 값, 허용 범위가 있음
● 동시성 제어 기능
- 데이터베이스 일관성 유지, 갱신 손실, 무효 갱신, 취소 연산으로부터 보호하는 기능
- 여러 명의 고객이 DBMS에 접근하여 데이터 처리를 수행하나 하나의 데이터를 수정하려고 할 때는 한순간에 한명의 사용자만이 데이터를 수정할 수 있다는 의미 (병렬 트랜잭션에 직렬성을 보장)
동시성 제어 기능 유형
Locking (2PL) | 모든 트랜잭션들이 lock과 unlock 연산을 확장단계와 수축단계로 구분하여 수행함으로써 동시성 제어를 수행하는 기법 데이터 오류 가능성 사전 예방 Lock 대기시간 발생 Deadlock 발생 |
Timestamp | 트랜잭션 식별 위해 Timestamp를 지정, 트랜잭션간의 순서를 미리 선택하여 수행하는 동시성 제어 기법 Deadlock 발생 없음 Rollback 발생 확률 높음 |
낙관적 검증 (Validation) |
트랜잭션 수행동안 어떠한 검사도 하지 않고 트랜잭션 종료시 확인단계를 거쳐 직렬 가능성에 위반되지 않으면 실행, 위반되면 복귀하는 기법 작업 속도 빠름 트랜잭션 철회 비용이 큼 |
● Bell-LaPadula 모델
- 미국방부에서 개발한 정책으로 군사 보안 요구사항에 만족시키기 위해 만들어짐. 정보의 불법적이 유출을 막기위해 개발된 최초의 수학적 모델. 특정 객체에 대한 접근은 특정 직무가 접근을 요구하는 경우에만 분류된 수준에 대하여 허가되는 정책
- 사용자는 주어진 보안 등급보다 높은 등급의 데이터는 읽을 수 없음(No read up)
- 사용자는 주어진 보안 등급보다 낮은 등급의 데이터에 기록할 수 없음(No write down)
● 공통평가기준 (Common Criteria, CC)
- ISO 15408 표준으로 채택된 정보 보호 제품 평가기준과 정보화의 순기능 역할을 보장하기위해 정보보호 기술 기준으로 정보화 제품의 정보 보호 기능과 이에 대한 사용 환경 등급을 정한 표준 및 인증체계
- 국가마다 서로 다른 정보보호시스템 평가기준을 연동하고 평가결과를 상호인증하기 위해 제정된 국제표준 평가기준
- 평가수행지침으로 CEM(Common Evaluation Methodology) 문서가 있으며 인증서는 CCRA(CC Recognition Arrangement)에 가입되어 있어야함
- 공통평가기준 인증을 취득하면 국제상호인정협정에 따라서 평가/인증 결과를 회원국 간에 상호 인정함
공통평가기준 구성
- 1부 소개 및 일반모델 : 용어정의, 보안성 평가개념 정의, PP/ST 구조정의
- 2부 보안기능 요구사항(SFR) : 보안기능 요구사항 정의 및 해석
- 3부 보증요구사항(SAR) : 보증요구사항 및 평가보증등급 정의
● 소프트웨어 개발 관련 법
- 개인정보 보호법 : 개인정보의 수집/유출/오용/남용으로부터 사생활의 비밀 등을 보호함으로써 국민의 권리와 이익을 증진하고, 나아가 개인의 존엄과 가치를 구현하기 위하여 개인정보 처리에 관한 사항을 규정함을 목적으로 하는 법률
- 정보통신망 법 : 정보통신망의 이용을 촉진하고 정보통신서비스를 이용하는 자의 개인정보를 보호함과 아울러 정보통신망을 건전하고 안전하게 이용할 수 있는 환경을 조성하기 위한 법률
- 개인정보 영향평가에 관한 기준 : 개인정보 보호법 제 33조와 개인정보 보호법 시행령 제 38조에 따른 평가기관의 지정 및 영향평가의 절차 등에 관한 세부기준
- 위치정보의 보호 및 이용들에 관한 법률 : 위치정보의 유출/오용 및 남용으로부터 사생활의 비밀 등을 보호하고 위치정보의 안전한 이용환경을 조성하여 위치정보의 이용을 활성화함으로써 국민생활의 향상과 공공복리의 증진에 이바지함을 목적으로 하는 법률
● 코드오류 보안 약점
- Null Pointer 역참조 : Null로 설정된 변수의 주소값을 참조했을때 발생하는 보안 약점
- 부적절한 자원 해제 : 사용된 자원을 적절히 해제하지 않으면 자원 누수 등이 발생하고, 자원이 부족하여 새로운 입력을 처리할 수 없게 되는 보안약점
- 해제된 자원 사용 : 메모리 등 해제된 자원을 참조하여 예기치 않은 오류가 발생될 수 있는 보안약점
- 초기화되지 않은 변수 사용 : 변수를 초기화하지 않고 사용하여 오류가 발생될 수 있는 보안 약점
- 민감한 데이터를 가진 내부 클래스 사용 : 권한이 없는 클래스를 사용하고자 할때 발생하는 취약점
- 제거되지 않고 남은 디버거 코드 : 디버깅 목적으로 삽입된 코드가 제거되지 않음으로 인해 공격자에게 의도하지 않은 정보와 제어정보가 누출될 수 있는 보안 취약점
● 소프트웨어 개발 보안 생명주기 (Secure SDLC)
요구사항 분석단계 | 요구사항 중 보안 항목 식별 요구사항 명세서 |
설계 | 위협원 도출을 위한 위협 모델링 보안설계 검토 및 보안설계서 작성 보안통제 수립 |
구현 | 표준코딩정의서 및 SW개발보안 가이드를 준수해 개발 소스코드 보안약점 진단 및 개선 |
테스트 | 모의침투 테스트 동적 분석을 통한 보안취약점 진단 및 개선 |
유지보수 | 지속적인 개선 보안패치 |
● Seven Touchpoints
- 실무적으로 검증된 개발보안 방법론 중 하나로써 SW 보안의 모범 사례를 SDLC에 통합한 방법론
- MS-SDL과 동일하게 7개의 보안강화 활동을 정의
Seven Touchpoints 주요 활동
요구사항과 Use Cases (악용사례/보안 요구사항/위험분석) → 구조설계 (위험분석) → 테스트 계획 (위험 기반 보안 테스트) → 코드 (코드 검토) → 테스트 결과 (위험분석/침투 테스트) → 현장과의 피드백 (침투 테스트/보안운영) → 요구사항과 Use Cases
● CWE (Common Weakness Enumeration) 보안 약점
- 입력데이터검증 및 표현 : XSS, SQL 삽입, 버퍼 오버플로우 등
- 보안기능 : 중요정보 평문저장, 하드코딩된 패스워드
- 시간 및 상태 : Deadlock 자원에 대한 경쟁조건, 세션고착
- 에러처리 : 처리루틴 누착, 정보 노출
- 코드품질 : 널 포인터 역참조, 부적절한 자원해제
- 캡슐화 : 디버거 코드, 시스템 데이터 정보
- API 악용 : DNS Lookup에 의존한 보안 결정
● 공격 기법
SQL-Injection | 데이터베이스로 전달되는 SQL Query를 변경시키기 위해 Web Application에서 입력받은 파라미터를 변조 후 삽입하여 비정상적인 데이터베이스 접근을 시도하거나 쿼리를 재구성하여 원하는 정보를 열람하는 해킹 기법 |
XSS (Cross-Site Scripting) |
타 사용자의 정보를 추출하기 위해 사용되는 공격기법으로 게시판에 악성 스크립트를 작성하여 다른 사람이 그 글을 보았을때 그 사람의 쿠키 정보를 빼내가는 해킹 기법 |
CSRF (Cross-Site Request Forgery) |
공격자가 사용자의 Cookie값이나 Session 정보를 의도한 사이트로 보내거나 특정한 동작을 유발하는 스크립트를 글에 삽입하여 사용자가 게시물 등을 클릭할 경우 공격자가 원하는 동작이 실행되는 해킹 기법 |
LAND Attack | 패킷을 전송할때 출발지 IP주소와 목적지 IP주소를 똑같이 만들어서 공격 대상에게 보내는 공격 |
- CSRF와 XSS의 차이점은 CSRF는 피해자의 권한을 이용하여 피해자가 조작된 패킷을 전송하여 이 결과로 공격자가 이득을 얻는 형태의 공격(홈페이지 자동가입 등)으로 XSS는 악성 스크립트가 실행되어 클라이언트를 공격하는 것(악성코드 실행 등)에 차이가 있음
● CSRF (크로스 사이트 요청 위조)
- 로그인된 피해자의 취약한 웹 애플리케이션에 피해자의 세션 쿠키와 기타 인증정보를 포함해 위조된 HTTP 요청을 강제로 보내도록 만들어 정당한 요청으로 애플리케이션을 공격하는 해킹 기술
① CSRF 공격 코드 등록
② CSRF 공격 코드 포함된 페이지 요청
③ 자동화된 요청이 포함된 응답이 희생자에게 전달
④ 자동화된 요청에 의해 희생자의 권한으로 서비스를 요청
SQL 삽입
- 데이터베이스와 연동된 웹 에플리케이션에서 입력된 데이터의 유효성 검증을 하지 않은 경우 발생
- 공격자가 입력 폼 및 URL 입력란에 SQL문을 삽입하여 DB로부터 정보를 열람하거나 조작할 수 있는 약점을 말함
● 공개키(Public Key) System
- 공개키 암호화 기법은 공개키로 암호화한 평문을 개인키로 복호화하는 비대칭키 구조
- 암호화 키와 복호화 키가 다르므로 키 분배가 용이함
- 부인방지, 인증, 무결성, 기밀성 제공이 가능하여 전자서명, 전자봉투 등에 활용
- 인증서는 x.509 표준에따라 인증서 저장소(Certificate repository)에 저장하여 공개
- 디피/헬만, RSA, ECC는 대표적인 비대칭키 암호화 알고리즘
- 송신자는 공개키를 수신받은 후 공개키로 암호화하여 메시지를 전송하고 수신자는 자신만 가지고 있는 개인키로 복호화하는 방법.
- 공개키 암호화 기법은 대칭키 암호화 기법의 키 공유 문제를 해결한 방법이지만 암호화 키의 길이가 길어서 암호화 및 복호화 성능이 대칭키 암호화 기법보다 성능이 떨어짐
PKI (Public Key Infrastructure)
- 인증기관(CA)에서 공개키와 개인키를 포함하는 인증서를 받아 네트워크상에서 안전하게 비밀통신을 가능하게 하는 기반구조
1) PKI의 구성 요소
- 사용자 : 인증서를 신청하고 인증서를 사용하는 주체
- 등록기관(RA) : 사용자 요청시, 신원을 확인하고 CA에 인증서 발급요청
- 인증기관(CA) : 인증서 등록, 발급 등의 관리총괄, 인증서 폐기목록(CRL) 생성
- Certificate Repository : 인증서 및 CRL 보관
- Directory : 인증서 관련 서비스, LDAP
2) PKI의 관리 대상
- 인증서(X.509) 구조 : 버전/일련번호/서명알고리즘/유효기간시작_종료/주체/공개키/다이제스트알고리즘/데이터다이제스트/이름/키
- 인증서 검증방식(CRL, OCSP, SCVP)
- 인증서 취소목록(CRL) : Certificate Revocation List
- 유효성(OCSP) : Online Certificate Status Protocol
- 인증서 체인(SCVP) : Simple Certificate Validation Protocol
● 암호화 알고리즘
- 평문(Plain text)를 암호문(Cipher text)로 만드는 과정
- 암호화의 원리로는 치환, 전치, 혼합, 블록화, 확장, 압축 등의 기법을 활용
- 양방향 암호화 기법에는 암호화키와 복호화키의 상호관계에 따라 대칭키와 비대칭키 가능
구분 | 대칭키 알고리즘 | 비대칭키 알고리즘 |
키의 상호관계 | 암호화키 = 복호화키 | 암호화키 != 복호화키 |
암호화 키 | 비밀키(Secret key) | 공개키(Public key) |
복호화 키 | 비밀키(Secret key) | 개인키(Private key) |
비밀키 전송여부 | 필요 | 불필요 |
키 관리 | 복잡 (모든 전송 당사자간 암/복호화키 공유) | 단순 (인증기관을 통해 전송 당사자별 개인키 발급) |
안전한 인증 | 곤란 | 용이 |
암호화 속도 | 고속 | 저속 |
경제성 | 높음 | 낮음 |
부인방지여부 | 불가능 (대칭키로 인하여) | 가능 (키의 2원화) |
속도 | 빠름 | 느림 |
구현방식 | 블록, 스트림 암호화 | 소인수분해, 이산대수 |
적용알고리즘 | DES, 3DES, SEED, AES, IDEA | RSA, ECC |
장점 | 구현용이, 변형가능 | 암호해독이 어려움, 전자서명 |
단점 | 쉽게 해독, 키관리의 어려움 | 해독시간이 많이 걸림 |
● 양방향 대칭키 알고리즘
AES | Advanced Encryption Standard 1998년 미국의 표준기술 연구소(NIST)에 의해서 수행된 암호화 알고리즘 공모전에 선정된 암호화 기술 |
WPA2 무선 인증 등 |
ARIA | ARIA : Academy, Research Institute, Agency 합작 경량 환경 및 하드웨어 구현을 위해 최적화된, Involutional SPN 구조를 갖는 범용 블록 암호화 알고리즘 |
국내 공공기관 |
IDEA | International Data Encryption Algorithm 128비트의 키를 사용해 64비트의 평문을 8라운드에 거쳐 64비트의 암호문으로만 구성됨 모든 연산이 16비트 단위로 이루어지도록 하여 16비트 프로세서에서 구현이 용이하며 주로 키 교환에 사용함 |
PGP 메일 암호 등 |
RC5 | RC5(Ron's Code 5) 알고리즘은 1994년 미국 RSA 연구소의 리베스트(Rivest)가 개발 비교적 간단한 연산으로 빠른 암호화와 복호화 기능을 제공하여 모든 하드웨어에 적합함 입출력, Key, 라운드 수가 가변인 블록 알고리즘 32/64/128비트의 키를 사용함 |
RC4 개선 |
● 해시(Hash) 함수
- 하나의 문자열을, 이를 상징하는 더 짧은 길이의 값이나 키로 변환하는 함수
- 해시는 정보의 위변조를 확인. 즉, 정보의 무결성을 확인하기 위한 방법
- 전자서명, 부인방지, 전자봉투 등에 활용
SHA-1 | 160비트 암호화 해시함수 1993년 미국 NIST에서 개발 보안강도가 약해 SHA-256이나 SHA-512로 대체되고 있음 |
전자서명 |
MD5 | 128비트 기반 암호화 해시함수 결과 값이 16개 문자열임 설계상 결함으로 사용이 줄어드는 추세 |
메시지 무결성 검사 |
HAVAL | MD5를 변형하여 만든 해시함수 128비트에서 256비트까지 다양한 크기가 가능 |
MD5 단점 보완 |
Tiger | 64비트 CPU에 최적화됨 32비트 CPU에서도 빠르게 동작 |
64비트 CPU의 해시 |
해시 함수의 보안 요구사항
- 일방향성 : 결과값부터 입력 값을 계산하는것은 불가능
- 약한 충돌 저항성 : 입력값과 해쉬값을 알고 있을때 H(x')=H(x)인 x'(!=x)을 찾는것은 불가능
- 강한 충돌 저항성 : 동일한 해쉬값을 가지는 서로 다른 메시지 쌍을 찾는 것은 불가능해야 함
● DoS(Denial of Service) 대표적 공격기법
Bonk | 처음 패킷의 시퀀스 번호를 1로 보내고 다음에 보내는 패킷의 시퀀스 번호도 1로 조작해서 보내는 공격 | 대응 방안 - 패치 적용 - 반복적인 패킷 차단 |
Boink | Bonk를 조작한 방법으로 처음에는 순서대로 시퀀스 번호를 보내다가 중간부터 반복되는 시퀀스 번호를 보내는 공격 | |
TearDrop | UDP를 이용하여 Bonk, Boink보다 복잡하게 시퀀스 번호를 조작 | |
LAND | 패킷을 전송할때 출발지 IP 주소와 목적지 IP 주소를 똑같이 만들어서 공격 대상에게 보내는 공격 | 대응방안 - 운영체제 패치 - 방화벽, IPS 등 이용 차단 |
- 공격자가 공격 대상 컴퓨터나 네트워크에 과도한 패킷 트래픽을 발생시켜 중요 네트워크와 시스템의 자원을 고갈시켜서 정상적인 사용자의 접속을 방해하는 공격 기법
스머프(Smurf) 공격 | 위조된 시작 IP 주소로 ICMP Request ICMP Reply를 다시 받게 하여, 공격대상을 과부하 상태로 만드는 공격 기법 |
SYN Flooding 공격 | 대상 시스템에 연속적인 SYN을 보내서 대기 큐를 넘치게하여 시스템을 사용하지 못하도록 하는 공격 기법 |
Ping of Death | Ping은 최고 65535byte로 제한되어 있으나 공격자가 이를 초과하는 큰 크기의 패킷을 보내 시스템 교착상태 유발 |
HTTP Cache Control 공격 | HTTP의 Cache Control 메시지를 이용하여 Cache 서버를 거치지않고 직접 웹서버에 HTTP 요청하여 웹 서비스의 부하 증가 유발 |
● DRDos (분산반사 서비스 거부공격, Distributed Reflection Denial of Service)
- 정상적인 서비스를 작동중인 서버를 reflection으로 트래픽을 증폭시켜 공격하는 기법
- DDos 공격의 에이전트 설치상의 어려움을 보완하여 TCP 프로토콜 및 라우팅 테이블 운영상의 취약성을 이용
- 정상 서버를 에이전트화하여 공격하는 기법
DRDoS의 공격원리 및 대응방안
- TCP 취약성(3-Way Handshake), BGP 취약성, Reflection 서버(다수 라우터, 대용량 대역폭 서비스)
- 서버보호, 클라이언트 보호, ISP 업체를 통한 통제
DRDos의 대표적 공격 루틴
① 악의를 가진 해커가 타겟을 찾은 뒤에, 해당 타겟으로 자신을 위조
② 위조된 신분으로 인터넷 서비스를 정상적으로 사용중인 서버나 웹서비스를 요청
③ 웹서비스를 요청받은 서버, 라우터 등은 위조된 목적지로 응답
④ 실제 타겟은 아무것도 모른채 엄청난 양의 응답을 받고 서비스 거부
● 사회 공학적 해킹 기법
- 인간 상호작용의 깊은 신뢰를 바탕으로 사람들을 속여 정상 보안 절차를 깨뜨리고 정보를 얻기위한 침입 수단
피싱 | 개인정보(Private data)와 낚시(Fishing)의 합성어로 위장 사이트를 만든후, 인터넷 이용자들에게 전자우편, SMS 등을 통해 보내 개인의 인증번호나 신용카드 번호, 계좌 정보 등을 획득하여 이를 불법적으로 이용하는 범죄 행위 |
파밍 | 다른 사용자의 도메인을 탈취하거나 도메인 네임 시스템의 이름을 속여 인터넷 사용자들이 진짜 사이트로 오인하도록 유도하여 개인정보를 탈취하는 해킹 기법 |
랜섬웨어 | Ransom(몸값) ware(제품)의 합성어로 시스템을 잠그거나 데이터를 암호화해 사용할 수 없도록 하고 이를 인질로 금전을 요구하는 악성 프로그램 |
랜섬웹 | 웹 서버에 저장된 DB를 암호화하고, 백업 데이터 역시 암호화함 |
사람 기반(비기술적) 해킹 기법
직접적인 접근 (Direct approach) |
권력, 동정심, 가장된 인간관계 이용하여 신뢰감 형성 |
도청 (Eavesdropping) |
도청장치 설치 혹은 유선 전화선의 중간을 따서 도청하거나 유리나 벽의 진동을 레이저로 탐지하여 이를 음성으로 바꾸어 도청 |
어깨너머로 훔쳐보기 (Shoulder surfing) |
공격 대상의 주위에서 직접적인 관찰을 통하여 그가 기업 내에서 수행하는 업무 내역과 전화 통화 내역등을 어깨 너머로 훔쳐보면서 공격 대상과 관련된 정보들을 수집 |
휴지통 뒤지기 (Dumpster diving) |
가정 또는 직장에서 무심코 버리는 메모지, 영수증 또는 업무 중 발생된 자료 등 공격 대상과 관련된 문서들을 휴지통에서 수거하여 유용한 정보들을 수집 |
설문조사 (Mail-outs) |
공격 대상의 관심을 끌만한 사항을 설문한 후, 공격 대상의 개인적인 취미, 가족사항 등의 개인 정보들과 함께 사회적인 활동과 관련된 다양한 정보를 수집 |
Piggybacking (Tailgating) |
출입 통제 시스템에서 신원이 확인된 앞 사람을 따라 출입 |
● 악성코드
- 바이러스(Virus) : 숙주 프로그램(다른 프로그램에 기생), 실행 가능 파일에 감염, 복제/변형/전이
- 웜(Worm) : 자기 복제성, 숙주 프로그램 없이 독자 실행, 시스템 간 전이
- 랜섬웨어(Ransomware) : 사용자의 문서와 사진 등을 암호화시켜 일정 시간 안에 일정 금액을 지불하면 암호를 풀어주는 방식으로 사용자에게 금전적인 요구를 하는 악성코드
- 트로이목마(Trojan horse) : 정상적인 소프트웨어의 형태를 띄지만 악의적인 행위를 포함하고 있는 악성코드
● APT (Advanced Persistent Threat)
- 특수목적을 가진 조직이 기간 사설망 또는 핵심 보안 업체등을 표적으로 삼고 지속적으로 정보를 수집하고 취약점을 파악하여 이를 바탕으로 피해를 끼치는 공격
- 특징 : 명확한 타겟 목표, 우회 공격, 지능화, 지속적
APT 공격 절차
① 침투 : 훔친 인증정보, SQL 인젝션, 악성코드 등을 사용하여 오랜 시간에 걸쳐 공격대상 시스템에 활동 거점을 구축
② 탐색 : APT 공격자는 한번 시스템에 침입하면 목표로 하는 기관의 시스템에 대한 정보를 수집하고 기밀 데이터를 자동으로 검색
③ 수집 : 보호되지 않은 시스템의 데이터는 공격자에게 노출
④ 제어 : APT 공격자는 표적시스템의 제어권한을 장악하여 각종 기밀 데이터를 유출하며 SW 및 HW에 손상을 입힘
● 스니핑 (Sniffing)
- 네트워크 상의 패킷을 도청하여 공격대상의 네트워크 패킷을 수집하고 분석하는 행위
- ARP Redirect 공격은 공격자 호스트가 라우터로 가장하여 ARP reply(자신의 MAC 주소가 라우터의 MAC 주소라고)를 네트워크에 주기적으로 보냄으로써 모든 호스트는 공격자에게 패킷을 전송함 (랜의 모든 호스트 : 라우터)
● 스푸핑 (Spoofing)
- 자기 자신의 식별정보를 속여서 서로 다른 대상 시스템을 공격하는 기법
스푸핑 종류
- IP Spoofing : IP 주소를 속여서 다른 시스템을 공격
- ARP Spoofing : ARP 테이블 상의 정보를 위조하여 공격대상 컴퓨터와 서버 사이의 정보 우회 (MAC Address 위조)
- DNS Spoofing : Local host 파일 또는 DNS 서버를 장악하여 사용자가 요청하는 DNS 쿼리를 공격자가 원하는 주소로 안내하도록 위조
● VPN (Virtual Private Network)
- 네트워크 패킷의 헤더를 조작하는 터널링(Tunneling) 기법을 사용해 인터넷과 같은 공중망(Public N/W)에서 전용회선(Private N/W)을 구성한 것과 같은 효과를 내는 가상 네트워크
- 터널링 기술 : 공중망에서 전용선과 같은 보안 효과를 얻기 위한 기술
- 인증 기술 : 접속 요청자의 적합성을 판단하기 위한 인증기술
- 암호 기술 : 데이터에 대한 기밀성과 무결성을 제공하기 위해 사용되는 암호 알고리즘 적용 기술
● IDS (Intrusion Detect System)
- 비인가된 사용자가 자원의 기밀성, 무결성, 가용성을 저해하는 일련의 행동들과 보안 정책을 위반하는 행위, 즉 침입(Intrusion)을 실시간으로 탐지하는 시스템
● IPS (Intrusion Protection System)
- 정보관리 시스템 네트워크의 침입탐지와 동시에 실시간 방어가 가능한 보안 솔루션
- 침입탐지 시스템의 오판(False positive)와 탐지실패(True negative) 문제를 해결하기 위해 등장함
IPS(침입 방지 시스템) 유형
구성 형태 | NIPS | 네트워크 상에 인라인 모드로 설치, 세션 기반 탐지(시그니처, Protocol anomaly, Action을 통해 악의적인 세션 차단) |
HIPS | 기존 호스트 운영 서버상에 탑재되는 SW 기반 IPS (서버의 커널 이벤트 분석) | |
공격 패턴 인지 방식 | Signature Based IPS | 침입탐지 패턴 DB를 기반으로 알려진 공격에 대한 탐지 및 차단 수행, IDS와 동일한 형태의 인지 방식 |
Heuristic Based IPS | 알려지지 않은 공격에도 계속 정보 수집, 축적되는 정보를 이용하여 오탐을 줄이고 능동적으로 대처하는 방식 |
● WIPS (Wireless Intrusion Protection System)
- 회사 내 무선랜 사용자와 단말기를 자동으로 탐지, 분류하여 보안정책에 따라 관리하고 침입시도 공격자의 위치 감지 등의 사전 위험요소를 제거하는 솔루션
● PPTP
- 2계층(데이터링크 계층)에서 동작하며 PPP(Point-to-Point Protocol)에 기초하여 두대의 컴퓨터가 직렬 인터페이스를 이용하여 통신할때 사용
- 전화선을 통해 서버에 연결하는 PC에서 자주 사용하는 MS가 제안한 VPN 프로토콜
● L2TP
- 2계층에서 동작하며 L2F(Layer 2 Forwarding)와 PPTP가 결합된 시스코가 제안한 프로토콜
- 사용자 인증(PAP, CHAP, MS-CHAP, EAP)이나 데이터 암호화/압축(CCP, ECP) 등의 보안 기능을 사용
● IPSec
- 3계층(네트워크 계층)의 암호화 프로토콜로 IP를 기반으로 한 네트워크에서 동작
- AH(인증), ESP(기밀성), IKE(비밀키 교환)으로 구성됨
● SSL (Secure Socket Layer)
- 4계층(트랜스포트 계층) 40비트와 128비트의 키를 가진 암호화 통신으로 서버 인증, 클라이언트 인증, 암호화 세션 기능을 담당
- TCP/IP 상 웹브라우저와 웹서버 간 데이터를 안전하게 주고받기 위한 표준 보안 전송 프로토콜
SSL의 특징
- 공개키 기반 인증방식 : 서버에서 클라이언트로 공개키 기반 인증서를 사용해 인증 수행
- 3가지 인증방식 : 익명인증모드(An, Anonymous), 서버인증모드(SA, Server Authentication), 클라이언트-서버 인증모드 (MA, Mutual Authentication)
- 연결주소 : 'https'로 시작하는 URL을 사용
- 지정포트 : 443 port 사용
SSL의 Protocol 구조
1) 제어 계층
- SSL cipher change protocol : 암호 알고리즘, 보안 정책 조율
- SSL Handshake protocol : 키 교환, CS 인증
- Alert Protocol : 경고 메시지, 경고 상세
2) 레코드 계층
- Record Protocol : 데이터 무결성 위한 인증, 데이터 압축, 암호화
● 사용자 인증기법 유형
지식기반 인증 :
- Something you know
- 아이디/비밀번호/PIN 등 사용자가 지정한 암호 또는 핀 번호, 별도의 장비가 필요 없음
- 사용자가 기억력에 의존하며 접속장비가 많을 경우 기억력의 한계, 주기적인 비밀번호/PIN의 변경이 발생
- 인증 기법중 가장 보안에 취약함
소유기반 인증 :
- Something you have
- OTP토큰/스마트카드/보안카드/휴대폰
- 인식오류 비율이 낮으며 경제적, 신뢰성 높음
- 실사용자 식별이 가능하며 사용자 별로 별도의 장비가 필요
- 분실 및 도용의 위험이 존재함
생체기반 인증 :
- Something you are
- 지문/홍채/정맥/손 모양
- 분실/고장 및 도용의 위험이 없으며 빌려줄 수 없음
- 하드웨어가 복잡하고 고가의 장비 필요
- 인식 오류 비율이 높으며 사용자의 거부감이 높음
행위기반 인증 :
- Something you do
- 서명, 음성인식, 걸음걸이 등 행동상의 특징
- 연구단계의 기술로 실용화 시기 알수 없음
- 인식 오류 비율이 높으며 고가의 장비 필요 예상
● 네트워크 보안솔루션의 유형
방화벽 | 내부 네트워크와 인터넷 간에 전송되는 정보를 선별하여 수용, 거부, 수정하는 기능을 수행하는 보안 시스템 |
UTM (Unified Threat Management) |
다중 위협에 대해 보호 기능을 제공할 수 있는 포괄적 보안시스템 방화벽, Anti-virus, 콘텐츠 필터링 등 하나의 패키지로 통합되어 있는 형태가 많음 |
Anti - DDos (Distributed Denial of service) |
서비스에 대한 정당한 접근을 방해하거나 차단하고자 네트워크에 분산되어 있는 많은 에이전트를 이용하여 공격 대상 서버에 동시에 과도한 서비스 요청을 발생시키는 공격을 차단하기 위한 보안 솔루션을 말함 |
VPN (Virtual Private Network) |
인터넷망에 사설망을 구축하여 이용자가 전용망 같이 사용할 수 있게 하는 보안 솔루션을 말함 |
NAC (Network Access Control) |
사용자 PC가 내부 네트워크에 접근하기 전에 보안 정책을 준수했는지 검사하여 네트워크 접속을 통제하는 기술 |
IDS (Intrusion Detection System) |
네트워크에서 송수신되는 데이터의 비정상적인 사용, 오남용을 실시간으로 탐지하는 보안 솔루션을 말함 |
IPS (Intrusion Prevention System) |
네트워크에서 공격 서명을 찾아내어 자동으로 조치를 취함으로써 비정상적인 트래픽을 중단시키는 보안 솔루션을 말함 수동적인 방어 개념의 침입 차단 시스템(방화벽)이나 침입 탐지 시스템(IDS)과 달리 침입경고 이전에 공격을 중단시키는데 중점을 둔, 침입 유도 기능과 자동 대응 기능이 합쳐진 솔루션 |
● UTM (Unified Threat Management)
- 서비스에 대한 정당한 접근을 방해하거나 차단하고자 네트워크에 분산되어 있는 많은 에이전트를 이용하여 공격 대상 서버에 동시에 과도한 서비스 요청을 발생시키는 공격을 차단하기 위한 보안 솔루션
- 방화벽, IPS, VPN, Anti-Virus, Anti-Spam, URL Filtering 등의 기능이 추가되어, 각 모듈이 복합적이고 유기적으로 기능을 제공할 수 있는 통합 보안 관리
UTM 기반 기술
1) 네트워크 인터페이스 기술 : 스위치, 라우터와 연관된 Secondary IP, VLAN, Link Aggregation 등 기본적인 인터페이스 기능제공
2) UTM 동작모드 관련 기술 : Route(+NAT), Transparent(or Bridge) 모드로 동작
3) 이중화 및 망 관리기술 : 라우터 이중화 기술 VRRP(Virtual Router Redundancy Protocol)을 지원, SNMP 통한 관리
UTM의 보안 기능
- Anti-Virus, Anti-Spyware, Anti-Spam, 유해 사이트필터링, 콘텐츠 필터링, Web Application Security 기능
● 네트워크 접근 제어(NAC)
- 사용자 PC가 내부 네트워크에 접근하기 전에 보안 정책을 준수했는지 검사하여 네트워크 접속을 통제하는 기술
- 접속 단말에 대한 보안평가, 문제, 정책준수, 네트워크 접근허용에 대한 지속적인 모니터링 및 대응하는 시스템
- 네트워크 접근시 인증을 위해 Active Directory, Kerberos, LDAP 등 사용
NAC의 구성요소
- 인증 : IEEE802.1x, DHCP, 허가된 시스템 및 사용자 접근허용
- 정책점검 : OS 보안패치, Anti-Virus, 취약점 및 정책 컴플라이언스 점검
- 격리 : 연동서버 Zone 이동, 정책 미준수 사용자 접근제한
- 치료 : 패치, Update 백신, 정책 위반 사용자 SW 삭제 및 설치
- 강제 : Agent, 네트워크 인프라 연동, 정책 적용 우회 경로 차단
NAC의 구현 방식
1) In-Line 방식 : 게이트웨이 형태로 일부 물리적 네트워크에 NAC를 추가
2) 802.1x 방식 : 802.1x RADIUS 서버와 802.1x를 지원하는 스위치 필요
3) VLAN 방식 : 인가받은 사용자와 인가되지 않은 사용자를 각각 통신 가/불가한 VLAN 망에 할당하는 방식
4) ARP 방식 : ARP 스푸핑 패킷을 보내 N/W의 정상적인 접근을 차단하는 단순 구조
5) SW Agent 설치 방식 : N/W에 접속하려는 모든 클라이언트에 에이전트를 설치하는 방식
● WAF (Web Application Firewall)
- 일반적인 네트워크 방화벽(Firewall)과는 달리 웹 애플리케이션 보안에 특화되어 개발된 솔루션
- SQL Injection, Cross-Site Scripting(XSS)등과 같은 웹 공격을 탐지하고 차단하는 기능 수행
WAF 주요 기능
1) Request validation : 사용자 요청 검증
- 어플리케이션 접근제어, 과다 요청 제어(Web Dos)
- 버퍼 오버플로우 차단, SQL/스크립트 차단
- 업로드 파일/요청형식 검사
2) Content protection : 컨텐츠 보호
- 신용카드 정보 유출 차단, 주민등록번호 유출 차단
- 웹 변조 방지, 응답형식 검사, 코드노출 차단
3) Cloaking(위장) : 서버존 가상화, URL 변환, 부하 분산
- URL 정보 위장, 서버 정보 위장
- 사용자에게 제공되는 정보 중 일부를 위장
WAF의 유형
1) 설계방식에 따른 유형
- N/W 기반 : 네트워크 구간에 인라인 트랜스 페런트 및 프록시 방식으로 구성되며 전송되는 웹 트래픽에 대한 분석 및 차단 기능 수행
- Host 기반 : 각 웹 서버에 설치된 보안 에이전트와 마스터 서버, 관리용 콘솔환경으로 구성
2) 처리방식에 따른 유형
- Proxy 방식 : 웹서버 앞 단에서 웹 방화벽이 클라이언트 요청을 받아 필터링 처리 후, 다시 웹 서버와 재접속을 맺는 방식
- Filtering 방식 : 웹 방화벽이 웹 서버의 플러그인 모듈처럼 동작하는 방식
● 접근 통제
- 보안 정책에 따라 접근 객체(시스템 자원, 통신 자원 등)에 대한 접근 주체(사용자, 프로세스 등)의 접근 권한 확인 및 이를 기반으로 한 접근 제어를 통해 자원에 대한 비인가된 사용을 방지하는 기능을 말함
임의 접근 통제 (DAC, Discretionary Access Control) |
시스템 객체에 대한 접근을 사용자 개인 또는 그룹의 식별자를 기반으로 제한하는 방법 주체와 객체의 신분 및 임의적 접근 통제 규칙에 기초하여 객체에 대한 주체의 접근을 통제하는 기능 |
통제 권한이 주체에 있음 주체가 임의적으로 접근통제 권한을 배분하여 제어할 수 있음 |
강제 접근 통제 (MAC, Mandatory Access Control) |
정보시스템 내에서 어떤 주체가 특정 객체에 접근하려 할때 양쪽의 보안 레이블(Security Label)에 기초하여 높은 보안 수준을 요구하는 정보가 낮은 보안 수준의 주체에게 노출되지 않도록 접근을 제한하는 통제 방법 | 통제 권한이 제3자에게 있음 주체는 접근 통제 권한과 무관 |
역할 기반 접근 통제 (RBAC, Role Based Access Control) |
사용자가 주어진 역할에 대한 접근 권한을 부여받는 방식 사용자가 바뀌어도 역할에는 변함없음 |
DB 작업 권한 통제 운영체제 작업 권한 통제 |
● Lehman(리먼)의 소프트웨어 변화와 원리
- 소프트웨어 유지보수는 1969년 매니 리먼에 의해 처음 주장됨
Continuing change (계속적 변경) |
소프트웨어는 지속적으로 변경의 요청을 받음. 이때 새로 개발하는 것보다는 수정하는것이 경제적이라고 판단되는 동안은 변경을 가함 |
Increasing complexity (복잡성 증가) |
소프트웨어는 변경이 가해질수록 그 구조는 복잡해짐 |
Program evolution (프로그램 진화) |
프로그램 별 변경되는 고유 패턴/추세가 있음 |
Organizational stability (조직적 안정) |
개발 생산성이 변화에 민감하지 않고 안정적임. 즉 작업량에 큰 변화가 없음 |
Conservation of familiarity (친근성 유지) |
소프트웨어 각 버전의 변화는 일정 소프트웨어는 규칙적인 수행 결과와 추이 보여주기 때문에 예측 가능 |
Continuing growth (지속적 성장) |
SW 생명 주기동안, 사용자 만족 유지위해 기능의 지속적 성장 |
Declining quality (품질 감소) |
변화 지속시 기능 증가, 품질 저하 엄격하게 관리/운영되지 않거나, 환경 변화에 미적응시 품질 감소 |
Feedback system (피드백 시스템) |
진화 프로세스는 다중레벨, 다중루프, Multi-Agent 피드백 시스템 수용 중요 개선 달성 위해 피드백 필수 |
● 정보시스템 유지보수의 분류
시점에 의한 유지보수
- 계획 유지보수 : 주기적인 유지보수
- 예방 유지보수 : 미리 예방 차원에서의 유지보수
- 응급 유지보수 : 긴급한 경우의 유지보수, 후 승인
- 지연 유지보수 : 시스템에 대해 변경 부분 추후 지원
대상에 의한 유지보수
- 데이터 유지보수 : 데이터의 conversion 등 필요시 처리
- 프로그램 유지보수 : 프로그램의 변경, 오류 처리
- 문서 유지보수 : 문서 표준 변경 및 기타 필요시
- 시스템 유지보수 : 시스템의 변경 및 장애 처리
원인에 의한 유지보수
- 수정 유지보수 : 오류와 결함의 수정(corrective)
- 완전 유지보수 : 불완전 부분의 표준화 적용(perfective)
- 예방 유지보수 : 정기적인 유지보수(preventive)
- 적응 유지보수 : 변화, 갱신의 적용(adaptive, porting)
거리에 의한 유지보수
- 상주 유지보수 : 현장에 상주하며 실시간 유지보수
- 방문 유지보수 : 정기 방문에 의한 유지보수
- 원격 유지보수 : 원격 상담에 의한 원격지 유지보수
- 비정기 유지보수 : 대상 발생시 비정기 방문 유지보수
역할에 의한 유지보수
- 모니터링 유지보수 : 단순 모니터링만을 전담하는 유지보수
- 보고 유지보수 : 보고 체계에 의해 표준 절차 수행
- 평가 유지보수 : 유지보수의 발생률, 험도 등 평가
- 전담 유지보수 : 업무, 능력 별 전담 담당자 지정
● 효과적인 프로젝트 관리를 위한 3대 요소 (3P)
- 사람(People) : 프로젝트 관리에서 가장 기본이 되는 인적자원
- 문제(Problem) : 사용자 입장에서 문제를 분석하여 인식
- 프로세스(Process) : 소프트웨어 개발에 필요한 전체적인 작업 계획 및 구조
● WBS (Work Breakdown Structure, 업무 분류 구조)
- 프로젝트 목표를 달성하고 필요한 인도물을 산출하기 위하여 프로젝트 팀이 실행할 작업을 인도물(deliverables) 중심으로 분할한 계층구조
- 일정 계획의 첫 단계에서 작업을 분할할때 사용되는 방법이며 계획 관리 단계에서 일정 계획과 인력 계획, 비용산정의 기준이 됨
- 프로젝트 진행중에 발생하는 모든 작업을 알 수 있고 제품의 계층 구조 또는 프로세스의 계층 구조로 나타남
● 프로젝트 일정단축 기법
크래싱(Crashing) 기법 | SW 개발 프로젝트에 투입되는 인적 및 물적 자원과 비용을 더 투입하여 일정을 단축시키는 기법 프로젝트 전체 구간 중 CP(Critical path) 구간에 자원을 먼저 할당하여 프로젝트 전체 일정을 줄일 수 있음 단 이 기법은 프로젝트 원가뿐만 아니라 의사소통 채널이 증가하여 프로젝트 일정이 획기적으로 단축되는 것은 아님 |
중첩 실행(Fast tracking) 기법 | 순차적으로 진행하는 작업 활동의 연관 관계를 동시에 병렬로 작업을 진행함으로써 일정을 단축시키는 기법 일반적인 소프트웨어 개발 프로젝트에 많이 활용되는 기법이나 이는 프로젝트의 리스크가 증가할 수 있으며, 재작업해야 할 수도 있는 단점이 있음 |
● ISMS - P 인증제도 (정보보호 및 개인정보보호 관리체계 인증)
- 정보보호 및 개인정보보호를 위한 일련의 조치와 활동이 인증기준에 적합함을 인터넷 진흥원 또는 인증기관이 증명하는 제도
- 기존에 개별적으로 운영되던 과학기술부정통부 소관의 '정보보호 관리체계 인증제도(ISMS)'와 방송통신위원회, 행정안전부 소관의 '개인정보보호 관리체계 인증제도(PIMS)'를 통합하여 인증제도를 일원화해 '정보보호 및 개인정보보호 관리체계 인증 등에 관한 고시(ISMS-P)'로 통합함
- 정책협의체(과학기술정보통신부, 방송통신위원회, 행정안전부) 주관으로 이루어지며, 정책협의체는 정보보호 관리체계 관련 정책 및 법제도 결정, 심사기관 지정의 역할을 수행함. 그리고 정보보호 관리체계 및 개인정보보호 관리체계 인증은 한국인터넷진흥원이 주관함. 한국인터넷진흥원은 인증위원회를 개최하여 최종 인증을 부여하고 심사원 양성을 추진함. 심사기관은 한국정보통신진흥협회, 한국정보통신기술협회가 심사를 수행함
- 최초 심사를 통해 인증을 취득하면 3년의 유효기간이 부여됨
ISMS-P 인증심사 기준
1) 관리체계 수립 및 운영
1.1 관리체계 기반 마련
1.2 위험 관리
1.3 관리체계 운영
1.4 관리체계 점검 및 개선
2) 보호대책 요구사항
2.1 정책, 조직, 자산관리
2.2 인적 보안
2.3 외부자 보안
2.4 물리 보안
2.5 인증 및 권한관리
2.6 접근통제
2.7 암호화 적용
2.8 정보시스템 도입 및 개발보안
2.9 시스템 및 서비스 운영관리
2.10 시스템 및 서비스 보안관리
2.11 사고 예방 및 대응
2.12 재해 복구
3) 개인정보 처리단계별 요구사항
3.1 개인정보 수집시 보호 조치
3.2 개인정보 보유 및 이용시 보호조치
3.3 개인정보 제공시 보호조치
3.4 개인정보 파기시 보호조치
3.5 정보주체 권리보호
● CLASP (Comprehensive, Lightweight Application Security Process)
- 소프트웨어 개발 생명주기 초기단계에 보안강화를 목적으로 하는 정형화된 프로세스로써, 활동중심/역할기반의 프로세스로 구성된 집합체
- 이미 운영중인 시스템에 적용하기 좋음
- 개념, 역할 기반, 활동 평가, 활동 구현, 취약성의 5가지 관점에 따라 개발 보안 프로세스를 수행할 것을 제안
● 백도어 (Backdoor)
- 프로그램이나 손상된 시스템에 허가되지 않는 접근을 할 수 있도록 정상적인 보안 절차를 우회하는 악성 소프트웨어. 서비스 기술자나 유지보수 프로그래머들이 액세스 편의를 위해 만든 보안이 제거된 비밀 통로로 원래는 관리자가 외부에서도 시스템을 점검할 수 있도록 만들어 두었으나 해킹에 취약한 부분이 될 수도 있는 곳을 의미함
백도어 탐지 방법
현재 동작 중인 프로세스 및 열린 포트 확인 | 해커가 접근을 위해 실행시켜둔 프로세스가 있는지, 열어둔 포트가 있는지 확인 |
SetUID 파일 검사 | 해킹시 SetUID 권한의 파일을 많이 사용하므로 SetUID 권한이 있는 파일들을 검사 |
툴 사용 | 바이러스 및 백도어 탐지 툴 사용 tripwire : 파일시스템 무결성 점검을 하는 서버보안도구로서 파일들의 변동사항 유무를 체크할 수 있는 대표적인 보안 유틸리티 |
무결성 검사 | 침입자에 의해 변경된 파일이 있는지 검사 |
로그 분석 | 침입자의 기록을 분석해 보면 누가 어떠한 공격을 했는지 알 수 있음 |
● DevOps
- 개발(Dev)과 운영(Ops)의 합성어인 DevOps는 고객에게 지속적으로 가치를 제공하도록 지원하는 사람, 프로세스 및 기술의 합집합
- DevOps는 개발, IT 운영, 품질 엔지니어링, 보안 등 이제껏 서로 단절되었던 역할들이 서로 조율하고 협업하여 더욱 안정적이고 뛰어난 제품을 생산할 수 있도록 지원함
- DevOps 방식과 도구를 비롯한 DevOps 문화를 도입하는 팀은 고객 요구 사항에 보다 효과적으로 대응하고, 더욱 안심하고 애플리케이션을 빌드하며, 비즈니스 목표를 더 빨리 달성할 수 있음
● CI/CD
- CI/CD는 애플리케이션 개발 단계를 자동화하여 애플리케이션을 보다 짧은 주기로 고객에게 제공하는 방법
- 지속적인 통합(CI, Continuous Integration), 지속적인 서비스 제공(CD, Continuous Delivery), 지속적인 배포(CD, Continuous Deployment)를 가능하게 함
- 새로운 코드의 통합으로 인하여 개발 및 운영팀에 발생하는 문제를 해결하는 솔루션
● CoAP (Constrained Application Protocol)
- 리소스 제약이 있는 기기들이 인터넷 상에서 TCP 대신 UDP를 사용해 커뮤니케이션 할 수 있도록 개발됨
- 개발자들은 전통적인 방식의 REST 기반 API를 사용하는 여느 기기와 마찬가지로 CoAP 기기를 다룰 수 있음
- 특히 인터넷을 통해 컨트롤 해야하는 저출력 센서 및 기기와 커뮤니케이션 하는데 유용함
- 단순한 request/response 프로토콜로 전통적인 클라이언트/서버 모델을 따르고 있음
- REST 아키텍처를 기반으로 Resource Discovery, 멀티캐스트 지원, 비동기 트랜잭션 요청 및 응답 등을 지원하는 프로토콜로 최근 IoT 환경에서 자주 사용됨
● 클라우드
- 클라우드 컴퓨팅이란 인터넷 기반의 컴퓨팅을 말함
- 인터넷 상의 가상화된 서버에 프로그램을 두고 필요할때마다 컴퓨터나 스마트폰 등에 불러와 사용하는 서비스
- Cloud라는 단어가 말해주듯, 인터넷 통신망 어딘가에서 구름에 싸여 보이지 않는 컴퓨팅 자원(CPU, 메모리, 디스크 등)을 원하는 대로 가져다 쓸수 있음. 구름에 싸여있다는 것은 그 내부를 보려고 하거나 알지 않아도 얼마든지 내가 원하는 것을 꺼내어 사용할 수 있다는 것이며, 인터넷이 연결된 어느 곳에서든 이것을 보장 받을수 있다는 뜻
클라우드 유형
IaaS (Infrastructure as a Service) |
시스템 인프라 클라우드 서비스라고 불리우며 인프라까지의 클라우드 서비스 Infrastructure 부분을 클라우드 서비스로 이용하면서 서버의 구매 및 유지비용, 네트워크 구성 및 트래픽, 하드웨어의 장애 등에 대한 모든 부분에 대해 사용자가 신경쓸 필요가 없음 |
Paas (Platform as a Service) |
개발 및 서비스 플랫폼을 위한 클라우드 서비스라고 불리우며 Iaas에 O/S, Middleware, Runtime이 포함되어 있는 구조 |
SaaS (Software as a Service) |
서비스를 위한 클라우드 서비스라 불리우며 Application까지의 모든 영역을 클라우드 서비스로 제공 |
● 메모리 버퍼 오버플로우
- 메모리 버퍼 오버플로우 보안 약점은 연속된 메모리 공간을 사용하는 프로그램에서 할당된 메모리의 범위를 넘어선 위치에 자료를 읽거나 쓰려고 할때 발생함
- 메모리 버퍼 오버플로우는 프로그램의 오동작을 유발시키거나, 악의적인 코드를 실행시킴으로써 공격자 프로그램을 통제할 수 있는 권한을 획득하게 됨
메모리 버퍼 오버플로우 보안 대책
스택 가드 (Stackguard) |
Canary라고 불리는 무결성 체크용 값을 복귀주소와 변수 사이에 삽입해 둔다 버퍼 오버플로우시 카나리 값이 변하게 되는데, 이 경우 복귀주소를 호출하지 않는다 gcc등 각종 컴파일러에 이 기법이 반영되어 업데이트 됨 |
스택 쉴드 (Stack Shield) |
함수 시작시 복귀주소를 Global RET라는 특수 스택에 저장해 둔다 함수 종료시 저장된 값과 스택의 RET값을 비교해 다를 경우 오버플로우로 간주하고 프로그램 실행을 중단 |
ASLR (Address Space Layout Randomization) |
메모리 공격을 방어하기 위해 주소 공간 배치를 난수화 함 실행시마다 메모리 주소를 변경시켜 버퍼 오버플로우를 통한 특정주소 호출을 차단함 |
안전한 함수 사용 | 프로그램 개발시 입력값에 대한 크기 검증을 적절히 수행하거나 취약하지 않은 함수만을 사용한다면 어느정도 방지 가능 strncat(), strncpy(), fgets(), fscanf(), vfscanf(), snprintf(), vsnprintf() |
● 허니팟 (Honeypot)
- 비정상적인 접근을 탐지하기위해 의도적으로 설치해둔 시스템. 이를통해 공격자를 추적하고 정보를 수집하는 역할을 함
- 공격자를 속이기 위해 마치 정상 시스템에 침투한 것처럼 속여야함
- victim의 침입 및 침해를 소극적으로 유도하지 않고 보안 위협이 존재하는 시스템을 지능형 Agent를 통해 능동적으로 검색하여 공격 유형의 분석 및 악성코드를 사전 수집하는 시스템
- 쉽게 해킹히 가능한 것처럼 취약해 보여야 하고 해커에게 쉽게 노출되어야 함
- 시스템의 모든 구성요소를 갖추고 있어야 함
- 시스템을 통과하는 모든 패킷을 감시해야 함
댓글