정보처리기사/[수제비] 정보처리기사 실기

IX. 소프트웨어 개발 보안 구축_01. 소프트웨어 개발 보안 설계

web_seul 2023. 4. 6. 22:14
반응형

SW 개발 보안 : 소스 코드 등에 존재하는 보안 취약점을 제거하고 보안을 고려하여 기능 설계 및 구현하는 등 소프트웨어 개발과정에서 지켜야할 일련의 보안 활동, 시큐어 코딩

기밀성 인가되지 않은 개인 혹은 시스템 접근에 따른 정보공개 및 노출을 차단하는 특성 도청, 사회공학
-> 암호화, 트래픽통제
무결성 정당한 방법을 따맂 않고선 데이터가 변경될 수 없으며 데이터의 정확성 및 완전성과 고의/악의로 변경된거나 훼손 또는 파괴되지 않음을 보장하는 특성 트로이목마
-> 백신
가용성 권한을 가진 사용자나 애플리케이션이 원하는 서비스를 지속할 수 있도록 보장하는 특성 DoS, DDoS, 천재지변 등
-> 백업, 클러스터링

 

SW 개발 보안 용어

자산 조직의 데이터 또는 조지그이 소유자가 가치를 부여한 대상
ex) 서버의 하드웨어, 기업의 중요 데이터
위협 조직이나 기업의 자산에 악영향을 끼칠수 있는 사건이나 행위
ex) 해킹, 삭제, 자산의 불법적인 유출, 위변조, 파손
취약점 위협이 발생하기 위한 사전 조건으로 시스템의 정보 보증을 낮추는데 사용되는 약점
ex) 평문 전송, 입력값 미검증, 비밀번호 공유
위험 위협이 취약점을 이용하여 조직의 자산 손실 피해를 가져올 가능성

 

DoS 공격 : 시스템을 악의적으로 공격해 해당 시스템의 자원을 부족하게 하여 원래 의도된 용도로 사용하지 못하게 하는 공격

- SYN플러딩 : 서버의 동시 가용 사용자 수를 SYN패킷만 보내 점유하여 다른 사용자가 서버를 사용불가능하게 하는 공격

- UDP 플러딩 : 대량의 UDP 패킷을 만들어 임의의 포트 번호로 전송하여 응답 메시지를 생성하게 하여 지속해서 자원을 고갈시키는 공경(ICMP Destination Unreachable)

- 스머프 : ICMP 플러딩, 출발지 주소를 공격대상의 IP로 설정하여 네트워크 전체에게 ICMP Echo 패킷을 직접 브로드캐스팅(Directed Broadcasting)하여 마비시키는 공격

- 죽음의 핑(PoD) : ICMP 패킷(Ping)을 아주 크게 만들어 전송시 다수의 IP 단편화가 발생하고 재조합시 부하가 발생하여 정상적인 서비스를 하지 못하도록 하는 공격기법

- 랜드어택 : Land Attack, 출발지(Source) IP와 목적지(Destination) IP를 같은 패킷 주소로 만들어 보냄으로써 수신자가 자기자신에게 응답을 보내게하여 가용성을 침해하는 공격기법

- 티어드롭 : IP 패킷의 재조합 과정에서 잘못된 Fragment Offset 정보로 인해 수신시스템이 문제를 발생하도록 만드는 DoS 공격

 

DDoS 공격 : DoS의 또 다른 형태로 여러대의 공격자를 분산 배치하여 동시에 동작하게 함으로써 특정 사이트를 공격하는 기법

- 대역폭 소진 공격, 서비스 마비 공격

대응방안 : 차단 정책 업데이트, 좀비 PC IP 확보, 보안솔루션 운영, 홈페이지 보안관리, 시스템 패치

 

DRDoS : Distributed Reflection DoS, 공격자는 출발지 IP를 공격대상 IP로 위조하여 다수의 반사 서버로 요청정보를 전송, 공격대상자는 반사서버로부터 다량의 응답을 받아서 서비스 거부(Dos)가 되는 공격

대응방안 : ISP 직접차단, 블랙리스트 등록, IP, Port 필터링

 

세션 하이재킹 : Session Hijacking, 케빈 미트닉(국방성해킹 미국해커)이 사용했던 공격 방법 중 하나로 TCP의 세션 관리 취약점을 이용한 공격기법

대응방안 : 비동기화 상태 탐지, ACK 패킷 비율 모니터링, 특정 세션에서 패킷 유실 및 재전송이 증가되는 것 탐지, 기대하지 않은 접속의 리셋 탐지  

 

애플리케이션 공격 : DDoS를 통한 서비스 마비 공격

HTTP GET 플러링 과도한 Get메시지를 이용하여 웹 서버의 과부하를 유발시키는 공격
Slowloris HTTP GET 메서드를 사용하여 헤더의 최종 끝을 알리는 개행 문자인 \r\n\r\n(Hex: 0d 0a 0d 0a)을 전송하지 않고 \r\n(Hex: 0d 0a)만 전송하여 대상 웹 서버와 연결상태를 장시간 지속시키고 연결자원을 모두 소진시키는 서비스 거부 공격
RUDY 요청 해더의 Content-length를 비정상적으로 크게 설정하여 메시지 바디부분을 매우 소량으로 보내 계속 연결상태를 유지시키는 공격
Slow Read Attack TCP 윈도크기를 낮게 설정하여 서버로 전달하고 size기준으로 통신하면서 데이터 전송이 완료될때까지 연결을 유지하게 만들어 서버의 연결자원을 고갈시키는 공격
Hulk DoS 공격자가 웹사이트 URL을 지속적으로 변경시키면서 다량으로 GET요청을 발생시키는 서비스 거부 공격
Hash Dos 조작된 많은 수의 파라미터를 POST 방식으로 웹서버에 전달하여 다수의 해시충돌을 발생시키는 서비스 거부 공격

 

네트워크 서비스 공격

패스워드 크래킹 사전(Dictionary) 크래킹과 무차별(Brute Force) 크래킹 기법을 사용하여 네트워크 패스워드를 획득하는 공격 
IP 스푸핑 침입자가 패킷 헤더 수정을 통해 인증된 호스트의 IP 어드레스를 위조하여 서비스에 대한 인증되지 않은 액세스 권한을 입수하는데 사용된 기법
ARP 스푸핑 공격자가 의도대로 희생자의 특정 호스트의 MAC 정보를 공격자의 MAC 정보로 변경하여 특정 호스트로 나가는 패킷을 스니핑하는 기법
ICMP 리다이렉트 3계층에서 스니핑 시스템을 네트워크에 존재하는 또 다른 라우터라고 알림으로써 패킷의 흐름을 바꾸는 공격

* 스니핑 : 염탐, 도청   스푸핑 : 위조   스머핑 : ICMP 플러딩

 

네트워크 서비스 공격

 

버퍼 오버플로우 공격 : 메모리에 할당된 버퍼크기를 초과하는 양의 데이터를 입력하여 이로인해 프로세스의 흐름을 변경시켜서 악성코드를 실행시키는 공격기법

대응방안 : 스택가드, 스택쉴드, ASLR, 안전한 함수 활용

 

스피어 피싱 사회 공학의 한 기법으로 특정 대상에게 일반메일로 위장한 악성메일을 지속적으로 발송하여 클릭하도록 유도하여 사용자의 개인정보를 탈취하는 공격기법
스미싱 문자메시지를 이용하여 신뢰할 수 있는 사람 또는 기업이 보낸것처럼 가장하여 개인 비밀번호를 요구하거나 휴태폰 소액 결제를 유도하는 피싱 공격
큐싱 스마트폰을 이용하여 금융업무를 처리하는 사용자에게 인증이 필요한것처럼 속여 QR코드를 통해 악성앱을 내려받도록 유도, 금융정보 등을 빼내는 피싱 공격
APT 공격 Advanced Persistent Threat, 특정 타깃을 목표로 하여 다양한 수단을 지속적이고 지능적인 맞춤형 공격기법
공급망 공격 소프트웨어 개발사 배포 서버에 접근하여 설치파일을 악의적인 파일로 변경하여 설치시 자동 감염되도록 하는 공격
제로데이 공격 보안 취약점이 발견되어 널리 공표되기 전에 해당 취약점을 악용하여 이루어지는 보안 공격
ex) MS 취약점
스스로를 복제하여 네트워크 등의 연결을 통하여 전파하는 악성 소프트웨어 컴퓨터 프로그램
악성 봇 스스로 실행되지 못하고 해커의 명령에 의해 원격에서 제어 또는 실행이 가능한 프로그램 혹은 코드
사이버 킬체인 록히드 마틴의 공격형 방위 시스템으로 지속적 사이버 공격에 대해 7단계 프로세스별 공격분석 및 대응을 체계화한 APT공격 방어분석 모델
랜섬웨어 악성 코드의 한 종류로 감염된 시스템의 파일들을 암호화하여 복호화할 수 없도록 하고 피해자에게 암호화된 파일로 몸값을 요구하는 악성 소프트웨어
이블 트윈 무선 wifi 피싱 기법으로 공격자는 합법적인 wifi 제공자처럼 행세하여 노트북이나 휴대전화로 핫스팟에 연결한 무선 사용자드르이 정보를 탈취하는 무선 네트워크 공격기법
사회공학
Social Engineering
사람들의 심리와 행동양식을 교모하게 이용해서 원하는 정보를 얻는 공격기법
트러스트 존
Trust Zone
프로세스 안에 독립적인 보안구역을 따로 두어 중요한 정보를 보호하는 ARM사에서 개발한 보안기술
타이포 스쿼팅
Typo Squatting
네트즌들이 사이트에 접속할 때 주소를 잘못 입력하거나 철자를 빠뜨리는 실수를 이용하기 위해 이와 유사한 유명 도메인을 미리 정복하는 일로 URL하이재킹이라고도 부름

 

서버인증 : 다중 사용자 시스템과 망 운영 시스템에서 접속자의 로그인 정보를 확인하는 보안절차

인증기술 유형 : 지식기반, 소지기반, 생체기반, 특징기반

 

서버접근통제 : 사람 또는 프로세스가 서버내 파일에 읽기, 쓰기, 실행 등의 접근 여부를 허가하거나 거부하는 기능

DAC 임의적 접근통제, ACL 식별자 기반, 시스템에 대한 접근을 사용자 그룹의 신분 기반으로 제한하는 방법
MAC 강제적 접근통제, 관리자-일반사용자, 시스템 정보의 허용등급을 기준으로 사용자가 갖는 접근허가 권한에 근거하여 시스템에 대한 접근을 제한하는 방법
RBAC 중앙관리자가 사용자와 시스템의 상호관계를 통제하여 조직내 맡은 역할에 기초하여 자원에 대한 접근을 제한하는 방법

 

접근통제 보호 모델 

벨-라파둘라 모델 : BLP, 미국방부 지원 보안모델로 보안 요소 중 기밀성을 강조하며 강제적 정책에 의해 접근 통제하는 모델

비바모델 : 벨-라파둘라 모델의 단점을 보완한 무결성을 보장하는 최초의 모델

 

3A

인증
Authentication
접근을 시도하는 가입자 또는 단말에 대한 식별 및 신분 검증
권한
Authorization
검증된 가입자나 단말에게 어떤 수준의 권한과 서비스 허용
계정관리
Accounting
리소스 사용에 대한 정보를 수집하고 관리하는 서비스

 

SSO : Single Sign On, 커버로스에서 사용되는 기술로 한번의 인증과정으로 여러 컴퓨터상의 자원을 이용할수 있도록 해주는 인증기술

* 커버로스 : 1980년대 중반 MIT의 Athena 프로젝트의 일환으로 개발되었으며 클라이언트/서버 모델에서 동작하고 대칭키 암호기법에 바탕을 둔 티켓 기반의 포르토콜

 

암호 알고리즘 : 데이터의 무결성 및 기밀성 확보를 위해 정보를 쉽게 해독할 수 없는 형태로 변환하는 기법

암호 알고리즘 양방향 대칭키 DES, SEED
비대칭키 RSA, Elgamal, ECC
일방향 해시 MAC
MDC

 

양방향 암호방식

  대칭 키 암호 방식 비대칭 키 암호 방식
  암호화와 복호화가 같은 키를 쓰는 알고리즘 사전에 개인키를 나눠가지지 않은 사용자들이 안전하게 통신하는 방식
대칭키 (비밀키) 비대칭키(공개키, 사설키)
키의 관계 암호화키 = 복호화 키 암호화키 =/= 복호화키
암호 알고리즘 공개 공개
장점 계산 속도가 빠름 암호화키 사전 공유 불필요, 관리할 키 개수가 적음
단점 키 분배 및 관리의 어려움, 기밀성만 보장 계산 속도 느림
알고리즘 DES, AES, SEED 디피-헬만, RSA
  블록 암호방식 스트림 암호방식  
  긴 평문을 암호화하기 위해 고정 길이의 블록을 암호화하는 블록 암호 알고리즘을 반복하는 방법
ex) DES, AES, SEED
매우 긴 주기의 난수열을 발생시켜 평문과 더불어 암호문을 생성하는 방식
ex) RC4
 

 

일방향 암호방식 : 임의 길이의 정보를 입력받아 고정된 길이의 암호문(해시값)을 출력하는 암호 방식

MAC MDC
키를 사용하는 메시지 인증코드(Message Authentication Code)로 메시지의 무결성과 송신자의 인증보장 키를 사용하지 않는 변경감지코드(Modification Detection Code)로 메시지의 무결성 보장
HMAC, NMAC MD5, SHA

 

대칭키 암호화 알고리즘 종류

DES 1975년 미국의 연방 표준국(NIST)에서 발표한 대칭키 기반의 블록 암호화 알고리즘, IBM개발
블록 크기는 64bit, 키 길이는 56bit 인 페이스텔(Feistel)구조
SEED 1999년 국내 한국인터넷진흥원(KISA)이 개발한 블록 암호화 알고리즘
블록크기는 128비트, 키 길이에 따라 128비트, 256비트로 분류
AES 2001년 미국 표준 기술 연구소(NIST)에서 발표한 블록 암호화 알고리즘
AES의 라운드 수는 10, 12, 14라운드로 분류되며 한 라운드는 SubBytes, ShiftRows, MixColumns, AddRoundKey의 4가지 계층으로 구성
ARIA 2004년 국가정보원과 산학연구협회가 개발한 블록 암호화 알고리즘
학계(Academy), 연구기관(Research Institute), 정부(Agency)의 영문 앞글자로 구성
IDEA DES를 대체하기 위해 스위스 연방기술기관에서 개발한 블록 암호화 알고리즘
128bit의 키를 사용하여 64bit의 평문을 8라운드에 거쳐 64bit의 암호문을 만듦
LFSR 시프트 레지스터의 일종으로 레지스터에 입력되는 값이 이전 상태값들의 선형함수로 계싼되는 구조로 되어 있는 스트림 암호화 알고리즘
LFSR에서 사용되는 선형함수는 주로 배타적 논리합(XOR)
Skip Jack 미 국가안보국(NSA, National Security Agency)에서 개발한 Clipper 칩에서 내장된 블록 알고리즘
전화기와 같이 음성을 암호화하는데 주로 사용되고 64비트의 입출력, 80비트의 키, 32라운드를 가짐

 

비대칭키 암호화 알고리즘 종류

디피 헬만 공개키 암호 방식의 개념을 이용하여 두 사용자 간에 공통의 암호화 키를 안전하게 공유할 방법을 제시하였으며 많은 키 분배 방식에 관한 연구의 기본이 됨, 최초의 비밀키 교환 프로토콜
RSA 1977년 3명의 MIT 교수(Rivest, Shamir, Adleman)가 고안한 큰 인수의 곱을 소인수 분해하는 수학적 알고리즘을 이용하는 공개키 암호화 알고리즘
ECC 타원 곡선 암호(ECC)는 유한체 위에서 정의된 타원곡선 군에서의 이산대수의 문제에 기초한 공개키 암호화 알고리즘
엘가멜 이산대수의 계산이 어려운 문제를 기본 원리로 하고 있으며 RSA와 유사하게 전자서명과 데이터 암-복호화에 함께 사용 가능
MD5 1991년 R.rivest 가 MD4를 개선한 암호화 알고리즘으로 프로그램이나 파일의 무결성 검사에 사용
SHA-1 1993년 NSA에서 미 정부 표준으로 지정되었고 DSA(Digital Signature Algorithm)에서 사용
SHA-256, 384, 512 AES(Advanced Encryption Standard, 미연방 표준 알고리즘)의 키 길이인 128, 192, 256비트에 대응하도록 출력 길이를 늘인 해시 알고리즘
HAS-160 국내 표준 서명 알고리즘 KCDSA(Korean Certificate-based Digital Signature Algorithm)를 위하여 개발된 해시함수

 

IPSec : IP계층(3계층)에서 무결성과 인증을 보장하는 인증헤더(AH)와 기밀성을 보장하는 암호화(ESP)를 이용한 IP보안 프로토콜, 터널링 기법으로 두 내트워크간 연결하는 전용회선

 

SSL/TLS : 전송계층(4계층)과 응용계층(7계층) 사이에서 클라이언트와 서버 간의 웹 데이터 암호화(기밀성), 상호 인증 및 전송시 데이터 무결성을 보장하는 프로토콜

SecureSDLC 모델/방법론

Seven touch Points 실무적으로 검증된 개발 보안 방법론 중 하나로써 SW 보안의 모범 사례를 SDLC(Software Development Life Cycle)에 통합한 소프트웨어 개발 보안 생명주기 방법론
MS-SDL 마이크로소프트사가 2004년 이후 자사의 소프트웨어 개발에 의무적으로 적용하도록 고안한 보안 강화 프레임워크
OWASP CLASD 개념 관점, 역할 기반 관점, 활동평가 관점, 활동구현 관점, 취약성 관점 등의 활동중심, 역할기반의 프로세스로 구성된 보안 프레임워크로 이미 운영중인 시스템에 적용하기 쉬운 보안 개발방법론

 

반응형