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 | 개념 관점, 역할 기반 관점, 활동평가 관점, 활동구현 관점, 취약성 관점 등의 활동중심, 역할기반의 프로세스로 구성된 보안 프레임워크로 이미 운영중인 시스템에 적용하기 쉬운 보안 개발방법론 |
'정보처리기사 > [수제비] 정보처리기사 실기' 카테고리의 다른 글
X. 애플리케이션 테스트 관리_01. 애플리케이션 테스트 케이스 설계 (0) | 2023.04.11 |
---|---|
IX. 소프트웨어 개발 보안 구축_02. 소프트웨어 개발 보안 구현 (0) | 2023.04.10 |
VIII. 서버프로그램 구현 (0) | 2023.04.05 |
V. 인터페이스 구현 (0) | 2023.04.05 |
I. 요구사항 확인_03. 요구사항 확인 (0) | 2023.04.04 |