익수의 비밀공간
/
Guita
/
정보처리기사 정리
/
소프트웨어 개발 보안 구축
Search
Share
🎎
소프트웨어 개발 보안 구축
Secure SDLC(Secure Software Development Life Cycle) : SDLC에 보안 강화를 위한 프로세스를 포함한 것
방법론
소프트웨어 개발 보안 요소 : 기무가부인
보안의 3대 요소 : 기밀성, 무결성, 가용성
기밀성 : 시스템 내의 정보와 자원은 인가된 사용자에게만 접근이 허용된다.
무결성 : 시스템 내의 정보는 인가된 사용자만 수정할 수 있다.
가용성 : 인가받은 사용자는 시스템 내의 정보와 자원을 언제라도 사용할 수 있다.
인증 : 시스템 내의 정보와 자원을 사용하려는 사용자가 합법적인 사용자인지를 확인하는 모든 행위이다.
부인 방지 : 데이터를 송수신한자가 송수신 사실을 부인할 수 없도록 송수신 증거를 제공한다.
시큐어 코딩 : 보안 요소들을 고려하며 코딩하는 것
SQL 삽입(Injection) : SQL을 삽입하여 내부 데이터베이스 서버의 데이터를 유출 및 변조하고 관리자 인증을 우회하는 보안 약점
크로스사이트 스크립팅(XSS) : 웹페이지에 악의적인 스크립트를 삽입하여 방문자들의 정보를 탈취하거나 비정상적인 기능 수행을 유발하는 보안 약점
메모리 버퍼 오버플로 : 할당된 메모리의 범위를 넘어서는 위치에서 자료를 읽거나 쓰려고 할 때 발생하는 보안 약점
보안 기능 관련 용어 : HTTP, SSL, 하드코딩
접근 제어자 : Public, Protected, Default, Private
개인키 암호화 기법(대칭 암호 기법) : 스트림(LFSR, RC4, TKIP), 블록(DES, SEED, AES, ARIA, IDEA, Skipjack)
IDEA : 라이와 메시가 1990년에 개발한 PES를 개선한 알고리즘
Skipjack : 국가 안전 보장국에서 개발한 암호화 알고리즘
DES : NBS에서 발표한 개인키 암호화 알고리즘
AES : NIST에서 발표한 개인키 암호화 알고리즘
공개키 암호화 기법(비대칭 암호 기법) : RSA, ECC
RSA : 큰 숫자를 소인수분해 하기 어렵다는 것을 기반으로 만들어짐
TKIP : WEP의 취약성을 보완한 데이터 보안 프로토콜
해시 : 입력 데이터나 메시지를 고정된 길이의 값이나 키로 변환하는 것
MD5 : MD4를 대체하기 위해 고안한 암호화 해시 함수
인증
지식 기반 인증 : 패스워드, 패스 프레이즈, 아이핀
소유 기반 인증 : 신분증, 메모리 카드, 스마트 카드, OTP
생체 기반 인증 : 지문, 홍채, 얼굴, 음성, 정맥
위치 기반 인증 : GPS, IP, 콜백
행위 기반 인증 : 서명, 동작
템퍼 프루핑 : 소프트웨어의 위변조가 발생한 경우, 소프트웨어를 오작동하게 만들어 악용을 방지하는 기술
OAuth : 인터넷 애플리케이션에서 사용자 인증에 사용되는 표준 인증 방법
VPN : 공중 네트워크와 암호화 기술을 이용하여 사용자가 마치 자신의 전용 회선을 사용하는 것처럼 해주는 보안 솔루션
SSL VPN : PC에 VPN Client 프로그램을 설치하여 VPN 서버에 접속하는 방식
IPSec VPN : VPN 서버가 설치된 각각의 네트워크를 서로 연결하는 방식
SIEM : 로그 및 보안 이벤트를 통합하여 관리하는 빅 데이터 기반 보안 솔루션
SSH : 다른 컴퓨터에 원격으로 접속하여 작업을 수행할 수 있도록 다양한 기능을 지원하는 프로토콜
AAA(3A) : 인증, 인가, 과금
정보보호 관리 체계 : 정보 자산을 안전하게 보호하기 위한 보호 절차와 대책
서비스 거부 공격 : DoS
Ping of Death : 패킷의 크기를 프로토콜 허용 범위 이상으로 전송하여 공격 대상의 네트워크를 마비시키는 공격 방법
SMURFING : IP나 ICMP의 특성을 악용하여 엄청난 양의 데이터를 한 사이트에 집중적으로 보냄으로써 네트워크를 불능 상태로 만드는 공격 방법
SYN Flooding : 3-way-handshake 과정을 의도적으로 중단시킴으로써 서버가 정상적인 서비스를 수행하지 못하게 하는 공격 방법
TearDrop : Offset 값을 변경시켜 수신 측에서 패킷을 재조립할 때 오류로 인한 과부하를 발생시켜 시스템이 다운되도록하는 공격 방법
LAND Attack : 송신 IP 주소와 수신 IP 주소를 모두 공격 대상의 IP 주소로 하여 무한히 자신에 대해 응답하게 만드는 공격 방법
DDos : 여러 곳에 분산된 공격 지점에서 한 곳의 서버에 대해 서비스 거부 공격을 가하는 것
세션 하이재킹 : 상호 인증 과정을 거친 후 접속해 있는 서버와 서로 접속되어 클라이언트 사이의 세션 정보를 가로채는 공격 기법
사회 공학 : 인간 상호 작용의 깊은 신뢰를 바탕으로 사람들을 속이는 비기술적 시스템 침입 수단
ARP 스푸핑 : 자신의 물리적 주소를 공격 대상의 것으로 변조하여 공격 대상에 도달해야 하는 데이터 패킷을 가로채거나 방해하는 기법
다크 데이터 : 특정 목적을 가지고 수집한 후 활용되지 않고 저장만 되어 있는 대량의 데이터
타이포스쿼팅 : 주소를 잘못 입력하는 등의 실수를 이용하기 위해 이와 유사한 도메인을 미리 등록하는 것
스니핑 : 네트워크의 중간에서 남의 패킷 정보를 도청하느 해킹 유형의 하나
워터링 홀 : 웹 사이트를 사전에 감염시켜 대상이 해당 사이트에 방문 시 악성 코드에 감염되게 하는 웹 기반 공격
키로거 공격 : 컴퓨터 사용자의 키보드 움직임을 탐지하여 정보를 몰래 빼가는 해킹 방법
랜섬웨어 : 내부 문서나 파일등을 암호화하여 사용자가 열지 못하게 하는 프로그램
백도어 : 시스템 설계자가 액세스 편의를 위해 만들어놓은 비밀 통로로 컴퓨터 범죄에 악용되기도 함
기타 정보 보안 관련 용어
APT : 지능형 지속 위협
Rootkit : 불법적인 해킹에 사용되는 기능들을 제공하는 프로그램들의 모음
스미싱 : 문자 메시지를 이용해 사용자의 개인 신용 정보를 배내는 수법
스피어 피싱 : 특정 대상 선정 후, 그 대상에게 일반적인 메일로 위장한 메일을 발송한 후, 클릭을 유도하여 개인 정보를 탈취하는 방법
무작위 대입 공격 : 암호화된 문서의 암호키를 찾아내기 위해 적용 가능한 모든 값을 대입하여 공격하는 방식
큐싱 : QR 코드를 통해 악성 앱 다운로드를 유도하거나 프로그램을 설치하도록 하는 금융사기 기법
EDR : 엔드포이늩 영역에 대한 지속적인 모니터링을 통해 행위 기반 위협 탐지 및 분석, 대응 기능을 제공하는 솔루션
TMS : 전사적 IT 인프라에 대한 위협정보들을 수집, 분석, 경보, 관리하는 정보보호 통합관리 시스템
크리덴셜 스터핑 : 공격자가 미리 확보해놓은 자격 증명을 다른 게정에 무작위로 대입해 사용자 계정을 탈취하는 공격 방식
POODLE : TLS 연결을 SSL 3.0으로 낮춰 해당 버전의 취약점을 이용해 암호문을 해독하는 기법
DDE : 마이크로소프트 오피스와 애플리케이션 사이의 데이터를 전달하는 프로토콜
Zombie PC : 악성 코드에 감염되어 다른 프로그램이나 컴퓨터를 조종하도록 만들어진 컴퓨터
C&C 서버 : 해커가 원격지에서 감염된 좀비 PC에 명령을 내리고 악성코드를 제어하기 위한 용도로 사용하는 서버
봇넷 : 악성 프로그램에 감염되어 악의적인 의도로 사용될 수 있는 다수의 컴퓨터들이 네트워크로 연결된 형태
제로 데이 공격 : 공격의 신속성을 의미하며 취약점이 알려진 후 대응되기 전 빠르게 공격하는 형태
트로이 목마 : 정상적인 기능을 하는 프로그램으로 위장하여 프로그램 내에 숨어 있다 부작용을 일으킴
CC 인증 : 국가마다 서로 다른 정보보호시스템 평가 기준을 연동하고 평가결과를 상호 인증하기 위해 제정된 정보보안 평가기준
멀버타이징 : 악성 소프트웨어를 뜻하는 멀웨어와 광고의 합성어
Secure SDLC(Secure Software Development Life Cycle) : SDLC에 보안 강화를 위한 프로세스를 포함한 것
방법론
•
CLASP : SDLC의 초기 단계에서 보안을 강화하기 위해 개발된 방법론
•
SDL : 마이크로소프트 사에서 안전한 소프트웨어 개발을 위해 기존의 SDLC를 개선한 방법론
•
Seven Touchpoints : 소프트웨어 보안의 모범 사례를 SDLC에 통합한 방법론
소프트웨어 개발 보안 요소 : 기무가부인
보안의 3대 요소 : 기밀성, 무결성, 가용성
기밀성 : 시스템 내의 정보와 자원은 인가된 사용자에게만 접근이 허용된다.
무결성 : 시스템 내의 정보는 인가된 사용자만 수정할 수 있다.
가용성 : 인가받은 사용자는 시스템 내의 정보와 자원을 언제라도 사용할 수 있다.
인증 : 시스템 내의 정보와 자원을 사용하려는 사용자가 합법적인 사용자인지를 확인하는 모든 행위이다.
부인 방지 : 데이터를 송수신한자가 송수신 사실을 부인할 수 없도록 송수신 증거를 제공한다.
시큐어 코딩 : 보안 요소들을 고려하며 코딩하는 것
SQL 삽입(Injection) : SQL을 삽입하여 내부 데이터베이스 서버의 데이터를 유출 및 변조하고 관리자 인증을 우회하는 보안 약점
크로스사이트 스크립팅(XSS) : 웹페이지에 악의적인 스크립트를 삽입하여 방문자들의 정보를 탈취하거나 비정상적인 기능 수행을 유발하는 보안 약점
메모리 버퍼 오버플로 : 할당된 메모리의 범위를 넘어서는 위치에서 자료를 읽거나 쓰려고 할 때 발생하는 보안 약점
보안 기능 관련 용어 : HTTP, SSL, 하드코딩
접근 제어자 : Public, Protected, Default, Private
개인키 암호화 기법(대칭 암호 기법) : 스트림(LFSR, RC4, TKIP), 블록(DES, SEED, AES, ARIA, IDEA, Skipjack)
IDEA : 라이와 메시가 1990년에 개발한 PES를 개선한 알고리즘
Skipjack : 국가 안전 보장국에서 개발한 암호화 알고리즘
DES : NBS에서 발표한 개인키 암호화 알고리즘
AES : NIST에서 발표한 개인키 암호화 알고리즘
공개키 암호화 기법(비대칭 암호 기법) : RSA, ECC
RSA : 큰 숫자를 소인수분해 하기 어렵다는 것을 기반으로 만들어짐
TKIP : WEP의 취약성을 보완한 데이터 보안 프로토콜
해시 : 입력 데이터나 메시지를 고정된 길이의 값이나 키로 변환하는 것
MD5 : MD4를 대체하기 위해 고안한 암호화 해시 함수
인증
지식 기반 인증 : 패스워드, 패스 프레이즈, 아이핀
소유 기반 인증 : 신분증, 메모리 카드, 스마트 카드, OTP
생체 기반 인증 : 지문, 홍채, 얼굴, 음성, 정맥
위치 기반 인증 : GPS, IP, 콜백
행위 기반 인증 : 서명, 동작
템퍼 프루핑 : 소프트웨어의 위변조가 발생한 경우, 소프트웨어를 오작동하게 만들어 악용을 방지하는 기술
OAuth : 인터넷 애플리케이션에서 사용자 인증에 사용되는 표준 인증 방법
VPN : 공중 네트워크와 암호화 기술을 이용하여 사용자가 마치 자신의 전용 회선을 사용하는 것처럼 해주는 보안 솔루션
SSL VPN : PC에 VPN Client 프로그램을 설치하여 VPN 서버에 접속하는 방식
IPSec VPN : VPN 서버가 설치된 각각의 네트워크를 서로 연결하는 방식
SIEM : 로그 및 보안 이벤트를 통합하여 관리하는 빅 데이터 기반 보안 솔루션
SSH : 다른 컴퓨터에 원격으로 접속하여 작업을 수행할 수 있도록 다양한 기능을 지원하는 프로토콜
AAA(3A) : 인증, 인가, 과금
정보보호 관리 체계 : 정보 자산을 안전하게 보호하기 위한 보호 절차와 대책
서비스 거부 공격 : DoS
Ping of Death : 패킷의 크기를 프로토콜 허용 범위 이상으로 전송하여 공격 대상의 네트워크를 마비시키는 공격 방법
SMURFING : IP나 ICMP의 특성을 악용하여 엄청난 양의 데이터를 한 사이트에 집중적으로 보냄으로써 네트워크를 불능 상태로 만드는 공격 방법
SYN Flooding : 3-way-handshake 과정을 의도적으로 중단시킴으로써 서버가 정상적인 서비스를 수행하지 못하게 하는 공격 방법
TearDrop : Offset 값을 변경시켜 수신 측에서 패킷을 재조립할 때 오류로 인한 과부하를 발생시켜 시스템이 다운되도록하는 공격 방법
LAND Attack : 송신 IP 주소와 수신 IP 주소를 모두 공격 대상의 IP 주소로 하여 무한히 자신에 대해 응답하게 만드는 공격 방법
DDos : 여러 곳에 분산된 공격 지점에서 한 곳의 서버에 대해 서비스 거부 공격을 가하는 것
세션 하이재킹 : 상호 인증 과정을 거친 후 접속해 있는 서버와 서로 접속되어 클라이언트 사이의 세션 정보를 가로채는 공격 기법
사회 공학 : 인간 상호 작용의 깊은 신뢰를 바탕으로 사람들을 속이는 비기술적 시스템 침입 수단
ARP 스푸핑 : 자신의 물리적 주소를 공격 대상의 것으로 변조하여 공격 대상에 도달해야 하는 데이터 패킷을 가로채거나 방해하는 기법
다크 데이터 : 특정 목적을 가지고 수집한 후 활용되지 않고 저장만 되어 있는 대량의 데이터
타이포스쿼팅 : 주소를 잘못 입력하는 등의 실수를 이용하기 위해 이와 유사한 도메인을 미리 등록하는 것
스니핑 : 네트워크의 중간에서 남의 패킷 정보를 도청하느 해킹 유형의 하나
워터링 홀 : 웹 사이트를 사전에 감염시켜 대상이 해당 사이트에 방문 시 악성 코드에 감염되게 하는 웹 기반 공격
키로거 공격 : 컴퓨터 사용자의 키보드 움직임을 탐지하여 정보를 몰래 빼가는 해킹 방법
랜섬웨어 : 내부 문서나 파일등을 암호화하여 사용자가 열지 못하게 하는 프로그램
백도어 : 시스템 설계자가 액세스 편의를 위해 만들어놓은 비밀 통로로 컴퓨터 범죄에 악용되기도 함
기타 정보 보안 관련 용어
APT : 지능형 지속 위협
Rootkit : 불법적인 해킹에 사용되는 기능들을 제공하는 프로그램들의 모음
스미싱 : 문자 메시지를 이용해 사용자의 개인 신용 정보를 배내는 수법
스피어 피싱 : 특정 대상 선정 후, 그 대상에게 일반적인 메일로 위장한 메일을 발송한 후, 클릭을 유도하여 개인 정보를 탈취하는 방법
무작위 대입 공격 : 암호화된 문서의 암호키를 찾아내기 위해 적용 가능한 모든 값을 대입하여 공격하는 방식
큐싱 : QR 코드를 통해 악성 앱 다운로드를 유도하거나 프로그램을 설치하도록 하는 금융사기 기법
EDR : 엔드포이늩 영역에 대한 지속적인 모니터링을 통해 행위 기반 위협 탐지 및 분석, 대응 기능을 제공하는 솔루션
TMS : 전사적 IT 인프라에 대한 위협정보들을 수집, 분석, 경보, 관리하는 정보보호 통합관리 시스템
크리덴셜 스터핑 : 공격자가 미리 확보해놓은 자격 증명을 다른 게정에 무작위로 대입해 사용자 계정을 탈취하는 공격 방식
POODLE : TLS 연결을 SSL 3.0으로 낮춰 해당 버전의 취약점을 이용해 암호문을 해독하는 기법
DDE : 마이크로소프트 오피스와 애플리케이션 사이의 데이터를 전달하는 프로토콜
Zombie PC : 악성 코드에 감염되어 다른 프로그램이나 컴퓨터를 조종하도록 만들어진 컴퓨터
C&C 서버 : 해커가 원격지에서 감염된 좀비 PC에 명령을 내리고 악성코드를 제어하기 위한 용도로 사용하는 서버
봇넷 : 악성 프로그램에 감염되어 악의적인 의도로 사용될 수 있는 다수의 컴퓨터들이 네트워크로 연결된 형태
제로 데이 공격 : 공격의 신속성을 의미하며 취약점이 알려진 후 대응되기 전 빠르게 공격하는 형태
트로이 목마 : 정상적인 기능을 하는 프로그램으로 위장하여 프로그램 내에 숨어 있다 부작용을 일으킴
CC 인증 : 국가마다 서로 다른 정보보호시스템 평가 기준을 연동하고 평가결과를 상호 인증하기 위해 제정된 정보보안 평가기준
멀버타이징 : 악성 소프트웨어를 뜻하는 멀웨어와 광고의 합성어