반응형
조선대학교 특강(2차) - KISA (POI)
일시: 2022-07-27 9:30am~2:10pm
주제: 2022 민간 SW개발보안 대학생 과정
[목차]
1. SW개발보안 관련 사고 사례 및 개발보안의 이해
2. SW개발보안 제도 소개 및 적용 효과
3. SW보안약점 기준
4. SW보안약점 기준별 보안대책 설명
5. 시큐어코딩 실습 Part 1 - 보안약점 유형별 실습
6. 공개SW를 활용한 진단 환경
7. 시큐어코딩 실습 Part 2 - 공개SW를 활용한 진단
1. SW개발보안 관련 사고 사례 및 개발보안의 이해
- 2016년 이후 취약점 발견 건수가 6,454건에서 14,714건으로 2배 이상 증가
- 전세계 17개국 524개 기업에서 발생한 데이터 침해사고 분석 결과 전세계 평균 피해액은 감소했으나 한국 기업들의 평균 피해액은 증가
[SW개발보안 관련 사고 사례]
1) Log4j 취약점
- 2021년 11월 24일 Alibaba Cloud 보안팀에 의해 처음 발견
- Java 기반 로깅 도구인 Apache Log4j 라이브러리의 원격 코드 실행 취약점
- 공격자가 로그 메시지를 제어할 수 있는 서버에서 로드된 임의의 코드 실행 가능
- Log4j 라이브러리를 사용하는 대부분의 앱이 취약한 것으로 알려짐(사상 최악의 보안 취약점)
2) 웹사이트 해킹
- 웹 사이트는 개발자 편의를 위한 프레임워크와 사용자 편의를 위한 플러그인 등이 존재하며, 많은 취약점이 발견됨
- 이로인해 많은 웹 사이트가 공격자의 타겟이 되고 있으며, 꾸준히 보안사고가 발생함
- 2010년부터 현재까지 3개 벤더에서 사용된 스프링 프레임워크에서 총 33개의 취약점 발생
- Spring4Shell로 불리는 Spring Core에서 발생하는 원격 코드 실행 취약점 발견
- 2004년부터 현재까지 워드프레스에서 총 382개의 취약점 발생
- ex) 워드프레스 플러그인 취약점, 워드프레스 XXE 취약점
3) 공급망 해킹
- 제 3자의 SW를 통해 자사의 시스템에 침투하여 악성코드 배포
- 최근 취약한 SW를 사용하는 기관, 기업 등에 피해를 주는 공급망 해킹 공격 유행
- 위즈베라 해킹
- 솔라윈즈 해킹
- 이미 115개 이상의 국가에서 5,000개 이상의 MS Exchange Server에 백도어 배포
4) IoT 해킹
- IoT 기기가 보안에 취약한 사실은 꾸준히 제기되어 왔음
- IoT 제품 및 서비스에 대해 보안 요구사항과 사이드라인 적용의 필요성이 강조되고 있음
- 2016년부터 IoT 기기에 대한 해킹 시도 및 감염 건수 꾸준히 증가, 특히 2018년에는 저년대비 약 2배 증가
- CCTV 해킹으로 인한 영상 유출 사고
- 보안설정이 어려운 경량화된 하드웨어
[SW개발보안의 이해]
안전한 SW개발이란 무엇일까?
- 사이버 보안 위협에 대응할 수 있는 안전한 SW를 개발하기 위한 일련의 보안 활동
- SW개발 생명주기(SDLC)의 각 단계별로 요구되는 보안활동 수행
- 개발자 실수, 논리적 오류 등으로 발생할 수 있는 보안 취약점, 보안 약점을 최소화하여 사이버 보안 위협에 대응
관련 법에서 정의하는 SW개발보안
- 소프트웨어 진흥법(법률 제 17348호)
- 행정기관 및 공공기관 정보시스템 구축운영 지침(행정안전부고시 제2021-3호)
SW개발보안의 의미
- 시큐어 SW는 보안관련 기능을 수행하는 SW가 아닌 신뢰성이 위협받는 상황에도 시스템이 신뢰할 수 있는 상태로 유지될 수 있도록 SW를 만드는 것
- 결국 SW개발 생명주기 전반에 걸쳐 보안 활동을 추가하는 것이 SW개발보안 바법론의 핵심
- SW개발보안 방법론 관련 사례는 CLASP, Seven-TouchPoint, MS-SDL이 존재
- 보안약점을 SW개발단계에서 사전 제거 필요
SWE(Common Weakness Enumeration)
- SW의 보안약점을 식별하기 위해 취약점을 유형별로 분류한 목록
- 국가 사이버 보안(DHS)의 지원과 MITRE에 의해 유지
- 학계, 보안 기업 그리고 정부와 연계해 CWE에 대한 표준을 정의
- 현재 600개 이상의 보안약점을 포함한 CWE 목록을 식별자를 사용해 분류
CWE Top 25 (2021년 기준)
- SW의 심각한 취약점으로 이어질 수 있는 가장 광범위하고 치명적인 보안약점들의 목록
- 보안약점과 관련된 약 32,500개의 CVE로 구성된 NVD 데이터를 기반으로 개발된 목록
- 한계점: NVD에서 공개적으로 보고되고 식별된 데이터만을 사용하기 때문에 CVE ID가 없는 수많은 취약점이 존재, 새로운 취약점에 대한 CVE ID를 부여 받아도 정보가 부족하여 적절한 CWE를 정확히 식별할 수 없는 경우도 존재
※ NVD(Nation Vulner ability Database)란?
- 미국 국립 표준 기술연구소(NIST)에서 만든 취약점 DB로, 보안 컨텐츠 자동화 프로토콜(SCAP)를 사용하여 표현되는 표준 기반 취약점 관리 데이터의 미국 정부 저장소
SW개발 생명주기의 이해
- SDLC(Sofrware Development Life Cycle)
- SW의 생성에서 소멸까지의 과정을 단계별로 나눈 것
- 개발 방법론에 따라 단계가 달라지지만 일반적으로 정의단계, 개발단계, 유지보수 단계로 나뉨
대표적인 SW개발 생명주기 모델
1) 개발 수정 모델(Build-Fix Model)
2) 폭포수 모델(Waterfall Model)
3) 프로토타입 모델(Prototyping Model)
4) 나선형 모델(Spiral Model)
SW개발방법론
- SW 공학 원리를 SW개발 생명주기에 적용한 개념
구분 | 생명주기 | 개발 방식 | 설명 |
구조적 방법론 | 폭포수 모델 | TOP-DOWN | 정형화된 분석 절차에 따라 사용자 요구사항을 파악하여 문서화하는 체계적인 방법 |
객체지향 방법론 | 반복적 개발 | BOTTOM-UP | 분석,설계 및 개발에 있어서 객체지향 기법을 활용하여 시스템을 구축하는 방법 |
CBD 방법론 | 반복적 개발 | BOTTOM-UP | 재사용이 가능한 컴포넌트의 개발 또는 사용 컴포넌트를 조합하여 애플리케이션 개발 생산성과 품질을 높이고, 시스템 유지보수 비용을 최소화할 수 있는 방법 |
SW개발 방법론 변천사
SW개발 방법론의 문제점과 해결방안
- 요구사항 분석 단계부터 안전한 SW를 만들기 위한 방법론 필요
- 보안을 고려한 다양한 개발보안 방법론 등장
- 개발 방법론이 적용된 프로젝트에서 안전한 SW를 만들기 위해 요구되는 보안 활동을 적용하는 개발 방법
- 안전한 SW개발을 위해 SW개발 생명주기(SDLC)에 걸쳐 보안활동을 추가하는 중
1) 요구사항 분석
- 구체적인 사용자의 문제 이해 및 SW의 정보영역 정의
- 요구사항 정의서로 사용자의 기능,성능,신뢰도 등에 대한 요구사항 문서화
- 요구사항 정의서는 세분화하여 업무,기술,성능,운영 요구사항 정의서로 분석 가능
- 생성 가능한 산출물: 요구사항정의서, 기능차트, 프로세스정의서, 인터페이스 정의서 등
※ 추가 보안 활동
- 요구사항 중 보안항목 요구사항 식별
- 어떤 정보들이 시스템화되어 관리되어야 하는가?
- 정보들은 얼만큼의 보안등급(기밀성,무결성,가용성)을 가져야 하는가?
- 법률적으로 관리의 중요성이 어느 정도 강조되는가?
2) 설계
- SW의 구조와 그 성분을 명확하게 밝혀 구현을 준비하는 단계
- 설계사양서 산출
- 산출물과 요구사양서를 기반으로 하여 사용자 지침서와 시험계획서 작성
- 생성 가능한 산출물: 화면설계서, ERD, 테이블목록, 테이블 정의서, 프로그램 목록, 개발표준정의서, 단위 테스트 시나리오, 통합 테스트 시나리오 등
※ 추가 보안 활동
- 개발 보안 가이드가 제시하는 작업을 기존 개발 프로세스에 추가
- 시스템을 분석해 위협들을 도축(위협 모델링), 보안통제 기준 설정 등
- 위협 모델링 작업을 통해 해당 위협들이 충분히 제거될 수 있도록 시스템이 설계되어야 함
3) 구현
- 프로그래밍을 하는 단계
- 각 모듈의 코딩과 디버깅 후, 결과 검증을 위한 단위테스트 또는 모듈 테스트 수행
- 생성 가능산 산출물: 소스코드, 단위테스트 결과서, 결함/오류 보고서, 오류코드 정의서 등
※ 추가 보안 활동
- 개발자들이 표준 코딩 정의서 또는 소프트웨어 개발보안 가이드를 준수하는 것이 중요
- 코드 리뷰, 코드 진단 작업을 통해 코드 수준의 안정성을 보장해야 함
4) 테스트
- 개발된 모듈들을 통합시키며 시험하는 통합 테스트 수행
- 완성된 시스템으로서 요구사항을 완벽하게 구현했는지 확인
- 사용자가 직접 자신의 사용현장에서 검증해 보는 인수 테스트 수행
- 생성 가능한 산출물: 통합테스트 결과서, 시스템 이행계획서 등
※ 추가 보안 활동
- 동적 분석 도구를 이용하거나, 모의 침투테스트를 통해 수행(화이트박스, 블랙박스 테스트)
5) 유지보수
- 안정적인 SW로 발전시키기 위한 작업 수행
- 직접 SW 사용 후, 나타나는 문제점 수정
- 새로운 기능 추가
※ 추가 보안 활동
- 발생할 수 있는 보안 사고에 대한 관리, 사고 대응, 패치 관리 및 교육 병행
MS-SDL
- Microsoft-Secure Development Lifecycle
- 마이크로소프트사는 보안수준이 높은 안전한 SW를 개발하기 위해 수행한 프로세스 개선
- 자체수립한 SDL 방법론을 적용
Seven Touchpoints
- 실무적으로 검증된 개발보안 방법론 중 하나
- SW보안의 모범 사례를 SW개발 라이프사이클에 통합
- 관련된 7개의 보안강화활동을 개발자에게 집중적으로 관리하도록 요구
반응형
'논문_세미나_특강' 카테고리의 다른 글
[KISA] 민간SW개발보안 대학생과정 23 (0) | 2022.07.27 |
---|---|
[AWS] AWS실습 - IAM / MFA / EC2 (0) | 2022.07.25 |
[AWS] 서비스 소개 (0) | 2022.07.25 |
[한국멀티미디어학회] 2022 MITA 국제학술대회 (0) | 2022.07.07 |
[한국스마트미디어학회] 2022 종합학술대회 (0) | 2022.06.24 |
댓글