20. 소프트웨어 개발 보안 구축
정보 보안의 3요소
기밀성 : 시스템 내에는 인가된 사용자만 접근 가능
무결성 : 시스템 내의 정보는 인가된 사용자만 수정 가능
가용성 : 인가된 사용자는 언제나 정보에 접근 가능
정보 보호 기술
인증 : 시스템을 접근하기 전에 접근 시도하는 사용자의 신원을 검증
인가 : 검증된 사용자에게 어떤 수준의 권한과 서비스를 허용
계정 : 사용자의 자원(시간, 정보, 위치 등)에 대한 사용 정보를 수집
개발 보안 방법론
MS-SDL : MS에서 자사 SW개발에 의무 적용 시김
Seven Touchpoints : 검증된 보안 모범 사례를 SDLC에 통합한 방법론
CLASP : 이미 운영 중인 시스템에 적용하기 쉬운 소프트웨어 개발 보안 방법론
CWE : 소프트웨어 취약점 및 취약점에 대한 범주 시스템. 결함을 식별, 수정 및 방지하는 데 사용가능한 자동화 도구 작성
접근통제
접근 통제 기법
식별 : 자신이 누구라고 시스템에 밝히는 행위
인증 : 주체의 신원을 검증하기 위한 활동
인가 : 인증된 주체에게 접근을 허용하는 활동
책임추적성 : 주체의 접근을 추적하고 행동을 기록하는 활동
접근통제 정책 종류
강제적 접근 통제 (MAC)
높은 보안 수준을 요구하는 정보가 낮은 보안 수준의 주체에게 노출되지 않도록 함
객체에 포함된 정보의 허용 등급과 접근 정보에 대해 주체가 갖는 접근 허가 권한에 근거하여 객체에 대한 접근을 제한
임의적 접근 통제 (DAC)
데이터에 접근하는 사용자의 신분에 따라 접근 권한을 부여
시스템 객체의 접근을 개인 또는 그룹의 식별자에 기반을 둔 방법
역할 기반 접근 통제 (RBAC)
MAC과 DAC의 단점을 보완하여 사용자 역할에 기반을 두고 접근 통제
사용자는 정적/동적으로 특정 역할을 할당 받는다.
암호화
개인키 암호화 방식
DES
64비트 평문을 64비트 암호문으로 암호화하는 대칭키 알고리즘 (현재 사용 안 함)
7비트마다 오류검출을 위한 정보 1비트를 포함하므로 실질적으로 56비트이다.
AES
DES의 보안 취약점을 대체하기 위해 고안된 표준 대칭키 암호화 기법
블록 크기는 128비트로 하며, 키 길이에 따라 128, 192, 256로 크기가 바뀐다.
SEED : 한국 인터넷 진흥원에서 개발한 블록 암호화 알고리즘
ARIA : SEED이후로 나온 대한민국 국가 암호 표준
공개키 암호화 방식
키 분배가 용이하고, 관리 키 개수가 적다.
암호와 해독에 다른 키를 사용하는 비대칭 형식의 알고리즘이다.
암호키는 공개되어 있어 누구나 사용 가능하지만 해독키를 가진 사람만이 해독 가능하다.
RSA(소인수분해), ECC(이산대수), 디피-헬만 등 다양한 방식이 존재한다.
해시 암호화 방식
임의의 길이의 입력 데이터를 받아 고정 길이의 해쉬 값으로 변환
MD5 : 프로그램이나 파일이 원본 그대로인지 확인하는 무결성 검사 등에 사용
그 외 SHA 시리즈, N-NASH, SNEFRU 등이 존재한다.
네트워크 보안 솔루션
방화벽 : 내부, 외부 트래픽을 모니터링하여 접근을 허용/차단하는 시스템
웹 방화벽 : 웹 앱에 특화되어 XSS, SQL Injection 등을 탐지하고 차단하는 시스템
NAC : 내부 네트워크에 접속을 시도할 때 통제
IDS : 비인가 사용자의 침입을 실시간으로 탐지
IPS : 공격 및 침입을 실시간으로 차단
WIPS : 비인가 무선 단말기의 접속 차단
UTM : 방화벽, IDS, IPS, VPN 등 보안장비 기능을 하나로 통합
VPN : 공중망 사용 시 마치 전용망을 사용하는 것과 같은 솔루션
ESM : 보안 솔루션에서 발생한 로그, 이벤트를 통합 관리
Secure OS
컴퓨터 운영체제의 커널에 보안 기능을 추가한 것
Secure OS 보호 방법
암호적 분리 : 내부 정보를 암호화하는 방법
논리적 분리 : 프로세스의 논리적 구역을 지정하여 구역을 벗어나는 행위를 제한하는 방법
시간적 분리 : 동일 시간에 하나의 프로세스만 수행되도록 하여 동시 실행으로 발생하는 보안 취약점 제거
물리적 분리 : 사용자별로 특정 장비만 사용하도록 제한하는 방법
참조 모니터
보호대상의 객체에 대한 접근 통제를 수행하는 추상머신
격리성 (부정 조작 불가), 검증 가능성(적절히 구현됨), 완전성(우회 불가)
Secure OS의 보안 기능
식별 및 인증, DAC, MAC, 계정 관리, 완전한 중재 및 조정 등
재해 복구 시스템
DRP (재해 복구 계획)
재해로 장기간 운영이 불가한 경우를 대비한 계획
Mirror Site : 주 센터 & 복구 센터 모두 운영 상태 ( RTO : 0 )
Hot Site : 주 센터와 동일한 수준, 자원을 대기 상태로 보유, 데이터를 최신상태로 유지 (RTO : 4시간 이내)
Warn Site : 중요한 자원만 주 센터와 동일한 수준으로 보유 (RTO : 수일 ~ 수주)
Cold Site : 최소한 데이터만 원격지에 보관하고, 재해 시 이를 근간으로 복구 (RTO : 수주 ~ 수개월)
DRS (재해 복구 시스템)
DRP를 위한 관리 체제
RTO : 복구 시간 목표 (업무 중단 시점 ~ 업무 복구 시점까지 걸린 시간)
RPO : 복구 시점 목표 (업무 중단 시점 ~ 정상 가동까지 허용하는 손실)
BIA : 장애나 재해에 따른 영향도 조사
BCP : 비상시 비즈니스 연속성을 보장하는 체계