Secure SDLC
- SDLC에 보안 강화를 위한 프로세스를 포함한 것을 의미
- 소프트웨어개발생명주기(SDLC; Software Development Life Cycle) : 소프트웨어를 개발하기 위해 정의하고, 운용, 유지보수 등의 전과정을 각 단계별로 나눈 것
- 요구사항 분석, 설계, 구현, 테스트, 유지보수 등
- 소프트웨어개발생명주기(SDLC; Software Development Life Cycle) : 소프트웨어를 개발하기 위해 정의하고, 운용, 유지보수 등의 전과정을 각 단계별로 나눈 것
- Secure SDLC의 방법론
- CLASP : SDLC의 초기 단계에서 보안을 강화하기 위해 개발된 방법론
- SDL : SDLC를 개선한 방법론으로 마이크로소프트 사에서 개발
- Seven Touchpoints : 소프트웨어 보안의 모범사례를 SDLC에 통합한 방법론
소프트웨어 개발 보안 요소
- 개발에 있어 충족시켜야할 요소 및 요건
- 기밀성, 무결성, 가용성을 보안의 3대요소라고 함
- 기밀성(Confidentiality) : 정보와 자원은 인가된 사용자에게만 접근이 허용
- 무결성(Integrity) : 정보는 오직 인가된 사용자만 수정할 수 있다.
- 가용성(Availability) : 인가받은 사용자는 시스템 내의 정보와 자원을 언제라도 사용할 수 있다.
- 인증(Authentication) : 정보와 자원을 사용하려는 사용자가 합법적인 사용자인지를 확인하는 행위
- 부인 방지(NonRepudiation) : 송수신한 자가 송수신한 사실을 부인할 수 없도록 송수신 증거를 제공
시큐어 코딩
- 보안 요소들을 고려하며 코딩하는 것
- 보안 취약점을 사전 대응하여 안정성과 신뢰성을 확보
세션 통제 관련 용어
- 세선(Session) : 서버와 클라이언트 연결을 의미
- 세션 통제 : 세션의 연결과 연결로 인해 발생하는 정보를 관리하는 것
- 세션ID : 서버가 클라이언트들을 구분하기 위해 부여하는 키
- 스레드 : 프로세스 내 작업 단위
- 다중 스레드 : 두 개 이상의 스레드가 생성되어 동시 처리되는 다중 작업을 다중 스레드라고 함
세션통제
- 세션의 연결과 연결로 인해 발생하는 정보를 관리하는 것
- 요구사항 분석 및 설계 단계에서 진단해야 하는 보안 점검 내용
- 세션 ID 관리 방법
- 세션 ID는 최소 128비트의 길이, 난수알고리즘 적용, URL Rewrite 기능을 사용하지 않는 방향으로 설계
- URL Rewrite : 쿠키를 사용할 수 없는 환경에서 세션 id 전달을 위해 URL에 세션 id를 포함시키는 것
- 세션 ID는 최소 128비트의 길이, 난수알고리즘 적용, URL Rewrite 기능을 사용하지 않는 방향으로 설계
입력 데이터 검증 및 표현 관련 용어
- 입력 데이터로 인해 발생하는 문제들을 예방하기 위해 구현단계에서 검증해야 하는 보안 점검 항목들
- 경로 순회(Directory Traversal) : 경로 탐색 시 사용하는 기호를 악용하여 허가되지 않은 파일에 접근하는 방식( '/', '..', '\' )
- 스크립트(Script) : 소프트웨어 수행 처리 절차가 기록된 텍스트(asp, jsp, php)
보안약점
- SQL 삽입(Injectioin) : SQL을 삽입하여 데이터를 유출 및 변조하고 관리자 인증을 우회하는 보안 약점
- 크로스사이트 스크립팅(XSS) : 악의적인 스크립트를 삽입하여 정보를 탈취하거나, 비정상적인 기능 수행을 유발하는 보안 약점
- 메모리 버퍼 오버플로 : 할당된 메모리의 범위를 넘어선 위치에서 자료를 읽거나 쓰려고 할 때 발생하는 보안 약점
보안 기능 관련 용어
- HTTPS : HTTP와 암호 통신 규약을 결합한 것
- SSL : TCP/IP계층과 애플리케이션 계층 사이에 위치하여 인증, 암호화, 무결성을 보장하는 업계 표준 프로토콜
- 하드코드 : 데이터를 코드 내부에 직접 입력하여 프로그래밍 하는 방식
하드코드된 암호화 키
- 하드코드된 경우 유출 시 역계산 또는 무차별 대입 공격에 의해 탈취될 수 있다.
- 무차별대입공격 : 암호화된 문서의 암호화키를 찾아내기 위해 적용 가능한 모든 값을 대입하여 공격하는 방식
TOCTOU 경쟁 조건
- 검사 시점과 사용 시점을 고려하지 않고 코딩하는 경우 발생하는 보안 약점
- EX) 프로세스 a가 자원 x를 사용하기 위해 검사한 결과 x는 사용 가능한 자원임을 확인했지만 막상 사용하려니 다른 프로세스가 가로채어 사용할 수 없는 상태인 것
널 포인터 역참조
- 널 포인터가 가리키는 메모리의 위치에 값을 저장할 때 발생하는 보안 약점
- "메모리 0x00000000을 참조하였습니다." 라는 오류 메시지가 발생
스택 가드
- 주소가 저장되는 스택에서 발생하는 보안 약점을 막는 기술 중 하나
- 메모리상에서 프로그램의 복귀 주소와 변수 사이에 특정 값을 저장한 후 그 값이 변경되었을 경우 오버플로우 상태로 판단하여 프로그램 실행을 중단함으로써 잘못된 복귀 주소의 호출을 막는다
접근 제어자
- 외부로부터의 접근을 제한하기 위해 사용되는 예약어
- 종류
접근제어자 | 클래스내부 | 패키지내부 | 하위 클래스 | 패키지 외부 |
Public | O | O | O | O |
Protected | O | O | O | X |
Default | O | O | X | X |
Private | O | X | X | X |
DNS
- DOmain Name System : 숫자로 된 IP주소를 사람이 이해하기 쉬운 문자 형태로 표현한 것을 도메인 네임이라고 하며, 이러한 도메인 네임을 IP주소로 바꾸어주는 역할을 하는 것
개인키 암호화 기법
- 동일한 키로 데이터를 암호화하고 복호화하는 암호화 기법
- 대칭 암호 기법, 단일키 암호 기법
- 암호화의 복호와 속도가 빠르다
- 스트림 암호화 방식 : 평문과 동일한 길이 스트림을 생성하여 비트 단위로 암호화(LFSR, RC4)
- 블록 암호화 방식 : 한 번에 하나의 데이터 블록을 암호화하는 방식(DES, SEED, AES, ARIA)
공개키 암호화 기법
- 암호화할때 사용하는 공개키는 사용자에게 공개하고, 복호화할 때의 비밀키는 관리자가 비밀리에 관리하는 암호화 기법
- 비대칭 암호화 기법
- 암호화, 복호화 속도가 느리다
- RSA 기법
양방향 알고리즘의 종류
- SEED
- 한국 인터넷 진흥원(KISA)에서 개발한 블록 암호화 알고리즘
- 128비트 블록 크기, 키 길이에 따라 128,256으로 분류
- ARIA
- 국가정보원과 산학연협회가 개발한 블록 암호화 알고리즘
- AES암호화 알고리즘의 규격을 따름
- 학계(Academy), 연구소(Research Institute), 정부 기관(Agency)의 머리글자를 따서 만듬
- DES
- 미국 NBS에서 발표한 개인키 암호화 알고리즘
- 블록 크기는 64비트, 키 길이는 56비트이며 16회의 라운드를 수행
- DES를 3번적용하여 보안을 강화한 3DES가 있음
- AES
- 미국 표준 기술 연구소(NIST)에서 발표한 개인키 암호화 알고리즘
- DES의 한계를 느낀 NIST에서 공모한 후 발표
- 블록 크기는 128비트
해시
- 입력 데이터나 메시지를 고정된 길이의 값이나 키로 변환하는 것을 의미
- 종류 : SHA, MD4, MD5, N-NASH, SNEFRU
- SHA 시리즈 : 미국 국가안보국(NSA)이 설계, 미국 국립표준기술연구소(NIST)에 의해 발표됨
- MD5 : R.Rivest가 MD4를 대체하기 위해 고안한 암호화 해시 함수, 블록크기 512비트 키길이 128비트
- N-NASH : 일본의 전신전화주식회사(NTT)에서 발표한 암호화 해시 함수, 블록크기 키길이 모두 128비트
- SNEFRU : R.C.Merkel가 발표한 해시 함수, 32비트 프로세서에서 구현을 용이하게 할 목적으로 개발
서비스 거부 공격(DOS; Denial of Service)
- 대량의 데이터를 한 곳의 서버에 집중적으로 전송하여 서버의 정상적인 기능을 방해하는 것
- 주요 서비스 거부 공격의 유형
- Ping of Death
- 패킷의 크기를 허용 범위 이상으로 전송하여 네트워크를 마비시키는 서비스 거부 공격 방법
- 공격에 사용되는 큰 패킷은 수백 개의 패킷으로 분할되어 전송되는데 대상은 분할된 대상의 패킷을 수신함으로써 부담 때문에 응답을 처리하느라 시스템이 다운되게 된다.
- SMURFING
- IP나 ICMP의 특성을 악용하여 엄청난 양의 데이터를 한 사이트에 집중적으로 보냄으로서 네트워크를 불능 상태로 만드는 공격 방법
- 해결책 : 네트워크 라우터에서 브로드캐스트 주소를 사용할 수 없게 미리 설정
- SYN Flooding
- TCP의 3-way-handshake 과정을 의도적으로 중단시켜 정상적인 서비스를 수행하지 못하게 하는 공격 방법
- TearDrop
- Fragment의 Offset 값을 변경시켜 수신 측 과부하를 발생시킴으로써 시스템이 다운되도록 하는 공격 방법
- LAND Attack
- 패킷을 전송할 때 송신 IP 주소와 수신 IP 주소를 모두 공격 대상의 IP주소로 하여 자신에 대해 무한히 응답하게 하는 공격 방법
- DDoS 공격(분산 서비스 거부)
- 여러곳에 분산된 공격 지점에서 한 곳의 서버에 대해 서비스 공격을 수행하는 것
- 분산 서비스 공격용 툴
- Trin00 : 가장 초기 형태, 주로 UDP Flooding 공격을 수행
- TFN : UDP Flooding 뿐만 아니라 TCP SYN Flood 공격, ICMP 응답 요청, 스머핑 공격 등을 수행
- TFN2K : TFN의 확장판
- Stacheldraht : 이전 툴들의 기능을 유지하면서 암호화된 통신을 수행
- Ping of Death
인증(Authentication)
- 로그인을 요청한 사용자의 정보를 확인하고 접근 권한을 검증하는 보안 절차
- 종류
- 지식기반인증(Something You Know) : 사용자가 기억하고 있는 정보를 기반으로 인증을 수행
- 고정된 패스워드, 패스 프레이즈, 아이핀 등
- 소유기반인증(Something You Have) : 사용자가 소유하고 있는 것을 기반으로 인증 수행
- 신분증, 메모리 카드(토큰), 스마트 카드, OTP(One Time Password)
- 생체기반인증(Something You Are) : 사용자의 고유한 생체 정보를 기반으로 인증을 수행
- 지문, 홍채/망막, 얼굴, 음성, 정맥 등
- 위치기반인증(Something You Are) : 인증을 시도하는 위치의 적절성 확인
- 콜백, gps나 ip주소를 이용한 위치 기반 인증
- 행위기반인증(Something You Do) : 사용자의 행동 정보를 이용해 인증 수행
- 서명, 동작
- 지식기반인증(Something You Know) : 사용자가 기억하고 있는 정보를 기반으로 인증을 수행
보안 아키텍처
- 보안 요소 및 보안 체계를 식별하고 이들 간의 관계를 정의한 구조
- 관리적, 물리적 , 기술적 보안 개념의 수립, 보안 관리 능력의 향상, 일관된 보안 수준의 유지를 기대할 수 있다
보안 프레임 워크
- 안전한 정보 시스템 환경을 유지하고 보안 수준을 향상시키기 위한 체계
- ISO 27001
- 정보 보안 관리를 위한 국제 표준, 영국의 BSI가 제정한 BS7799를 기반으로 ㄱ쉉
방화벽
- 내부의 네트워크와 인터넷 간 전송되는 정보를 선별하여 수용,거부,수정하는 기능을 가진 침입 차단 시스템
- 내부 네트워크에서 외부로 나가는 패킷은 그대로 통과
- 외부에서 내부 네트워크로 들어오는 패킷은 엄밀히 체크하여 인증된 패킷만 통과
침입 탐지 시스템(IDS)
- 컴퓨터 시스템의 비정상적인 사용, 오용, 남용 등을 실시간으로 탐지하는 시스템
- 오용탐지(Misuse Detection) : 미리 입력해둔 공격패턴이 감지되면 이를 알려줌
- 이상탐지(Anomaly Detectioin) : 시스템 상태를 기준으로 비정상적인 행위나 자원의 사용이 감지되면 이를 알려줌
침입 방지 시스템(IPS)
- 비정상적인 트래픽을 능동적으로 차단하고 격리하는 보안 솔루션
- 방화벽 + 침입 탐지 시스템
- 침입 탐지로 패킷을 하나씩 검사한 후 비정상적인 패킷 탐지되면 방화벽 기능으로 해당 패킷을 차단
데이터 유출 방지(DLP)
- 내부 정보와 외부 유출을 방지하는 보안 솔루션
- 사내 직원이 사용하는 PC와 네트워크 상의 모든 정보를 검색하고, 사용자 행위를 탐지 및 통제하여 외부로 유출을 막는다.
웹 방화벽
- 웹 기반 공격을 방어할 목적으로 만들어진 웹 서버에 특화된 방화벽
- 웹 관련 공격을 감시하고 공격이 웹 서버에 도달하기 전에 이를 차단해준다.
VPN
- 공중 네트워크와 암호화 기술을 이용하여 사용자가 마치 자신의 전용 회선을 사용하는 것처럼 해주는 보안 솔루션
- 비용 부담을 줄일 수 있다.
NAC
- 네트워크에 접속하는 내부 PC의 일관된 보안 관리 기능을 제공하는 보안 솔루션
- 내부 PC의 소프트웨어 사용 현황을 관리하여 불법적인 소프트웨어 설치를 방지
ESM
- 다양한 장비에서 발생하는 로그 및 보안 이벤트를 통합하여 관리하는 보안 솔루션
- 방화벽, IDS, IPS, 웹 방화벽 등에서 발생한 로그 및 보안 이벤트를 통합 관리함으로써 비용 및 자원을 관리할 수 있다.
AAA
- 인증(Authentication) : 접근하는 사용자의 신원을 검증하는 기능
- 인가(Authorization) : 신원이 검증된 사용자에게 특정된 권한과 서비스를 허용하는 기능
- 과금(Accounting) : 어떤 종류의 서비스를 이용했고, 얼마만큼 자원을 사용했는지 기록 및 보관하는 기능
정보보호 관리 체계(ISMS)
- 정보 자산을 안전하게 보호하기 위한 보호 절차와 대책을 의미
- 우리나라에서는 한국인터넷진흥원(KISA)에서 운영
- 조직에 맞는 정보보호 정책을 수립하고 위험에 항시 대응하는 여러 보안 대책을 통합 관리하고 운용한다.
세션 하이재킹
- 상호 인증 과정을 거친 후 접속해 있는 서버와 클라이언트 사이의 세션 정보를 가로채는 공격기법
- 공격자가 원래 클라이언트인 것처럼 위장하여 서버의 자원이나 데이터를 무단으로 사용
ARP 스푸핑
- ARP의 취약점을 이용한 공격기법으로, 자신의 물리적 주소(MAC)를 공격대상의 것으로 변조하여 데이터 패킷을 가로채거나 방해하는 기법
- ARP : 호스트의 IP주소를 호스트와 연결된 네트워크 접속 장치의 물리적 주소(MAC Address)로 변환해주는 포로토콜
스니핑
- 네트워크 중간에서 남의 패킷 정보를 도청하는 해킹 유형, 수동적 공격
워터링홀
- 웹 사이트를 감염시켜 사이트에 방문했을 떄 악성코드에 감염되게 하는 공격
- 감염 pc를 기반으로 대상이 속한 조직의 중요 시스템에 접근하거나 불능으로 만드는 영향력을 행사할 수 있음
키로거 공격
- 컴퓨터 사용자의 키보드 움직임을 탐지해, 정보를 몰래 빼가는 해킹 공격
랜섬웨어
- 내부 문서나 파일 등을 암호화해 사용자가 열지 못하게 하는 프로그램
백도어(Back door)
- 시스템 설계자가 액세스 편의를 위해 시스템 보안을 제거해 만들어 놓은 비밀 통로
- 탐지 방법 : 열린 포트 확인, 무결성 검사, 로그 분석, setUID 파일 검사
기타
- 스미싱 : 문자 메시지를 이용해 사용자의 개인 신용 정보를 빼내는 수법
- 스미어 피싱 : 특정 대상을 선정한 후 그 대상에게 일반적인 이메일로 위장한 메일을 지속적으로 발송하여 첨부 파일을 클릭하도록 유도해 사용자의 개인정보를 탈취하는 공격
- APT(지능형 지속 위협) : 특정 기업이나 조직 네트워크에 침투해 활동 거점을 마련한 뒤 보안을 무력화 시키고 정보를 수집한 다음 외부로 빼돌리는 형태의 공격
- 무작위 대입 공격(Brute Force Attack) : 적용 가능한 모든 값을 대입하여 문서의 암호키를 찾아내기 위한 공격 방식
- 큐싱(Qshing) : QR코드를 통해 악성 앱의 다운로드를 유도하여 개인정보 및 금융정보를 낚음
- WEP(유선급 프라이버시) : 유선 랜(LAN)에서 기대할 수 있는 것과 같은 보안과 프라이버시 수준의 무선 랜의 보안 프로토콜
- WPA 2 : WEP의 취약성에 대한 대안으로 발표된 무선랜 보안 기술 규격. WPA를 개선한 버전
- EDR(Endpoint Detection & Response) : 앤드포인트 영역에 대한 지속적인 모니터링을 통해 행위 기반 위협 탐지 및 분석, 대응 기능을 제공하는 솔루션
- 앤드 포인트 : 요청을 보내는 시작점이 사용자의 pc, 스마트폰이나 서비스의 종착점인 서버등을 의미
- TMS : 실시간으로 공신력 있는 대외 정보보호기관의 위협정보들을 수집 분석하여 정보보호관리자에게 제공
- DTLS : UDP기반으로 통신을 수행하는 경우 SSL/TLS와 유사한 보안 기능을 제공하는 프로토콜
- 크리덴셜 스터핑 : 무차별 대입 공격의 일종, 공격자가 미리 확보해 놓은 로그인 자격 증명을 다른 계정에 무작위로 대입해 사용자 계정을 탈취하는 공격 방식
- POODLE: TLS연결을 SSL 3.0으로 낮춰 SSL 3.O의 취약점을 이용하여 암호문을 해독하는 공격 기법
- DDE : 마이크로소프트 오피스와 애플리케이션 사이에서 데이터를 전달하는 프로토콜, 엑셀 등 오피스 프로그램에서 DOE가 활성화될 시 일반문서로 위장한 악성 코드가 전파될 수 있음
- 좀비PC: 악성 코드에 감염되어 다른 프로그램이나 컴퓨터를 조종하도록 만들어진 컴퓨터로 주로 DDoS공격에 이용
- C&C 서버 : 감염된 좀비 PC에 명령을 내리고 악성 코드를 제어하기 위한 용도로 사용하는 서버
- 봇넷 : 악성 프로그램에 감염되어 악의적인 의도로 사용될 수 있는 다수의 컴퓨터들이 네트워크로 연결된 형태
- 웜(Worm) : 자신을 연속적으로 복사하여 시스템의 부하를 높여 시스템을 다운시키는 바이러스
- 제로데이공격 : 발견된 취약점의 존재 자체가 널리 공표되기도 전에 해당 취약점을 통해 이루어지는 보안 공격으로 공격의 신속성을 의미
- 트로이 목마 : 정상 기능을 하는 프로그램으로 위장하여 프로그램 내에 숨어 있다가 프로그램이 동작할 때 활성화 되어부작용을 일으키지만 자기 복제 능력은 없다.
- CC(Common Criteria)인증 : 국가마다 다른 정보보호시스템 평가 기준을 연동하고 평가 결과를 상호 인증하기 위해 제정된 정보보안 평가 기준으로 ISO/IEC 15408에 등록된 국제 표준
- 멀버타이징 : 멀웨어와 광고의 합성어로 온라인 광고를 통해 악성 코드를 유포시키는 행위
- 정보공유분석센터(ISAC) : 취약점 및 침해요인과 그 대응방안에 관한 정보를 제공하며, 침해사고가 발생하는 경우 실시간 정보 분석체계를 운영하고 금융, 통신 등 분야별 정보통신기반시설을 보호하기 위한 업무를 수행하는 곳
- 업무연속성계획(BCP) : 각종 재해, 재난으로부터 위기 관리를 기반으로 재해복구, 업무 복구 및 재개등의 비즈니스 연속성을 보장하기 위한 계획으로 RTO, RPO, 우선순위를 설정하기 위해 업무 영향 분석(BIA)을 수행
- 데이터 디들링 : 처리할 자료를 다른 자료와 바꿔 처리하는 것으로 입력값이나 출력값을 부정한 의도로 수정하여 잘못된 결과가 나오도록 유도하는 방식
- 비트로커 : Windows전용 볼륨 암호화 기능으로, TPM과 AES-128알고리즘을 사용
- 공급망 공격(Supply Chain Attack) : 소프트웨어 공급망에 침투하여 악성코드를 배포하는 공격으로 SW 빌드 및 배포 과정에 악성 코드를 삽입하여 이용자들을 공격한다.
출처 : https://starrykss.tistory.com/1640
https://zero-zae.tistory.com/91
'정보처리기사 > 실기' 카테고리의 다른 글
정보처리기사 - 11. 응용 SW기초 기술 활용 (1) | 2023.04.19 |
---|---|
정보처리기사 - 10.프로그래밍 언어 활용 (0) | 2023.04.18 |
정보처리기사 - 8. SQL응용 (1) | 2023.04.18 |
정보처리기사 정리본(1,2,4) (0) | 2023.04.17 |
정보처리기사 - 7. 애플리케이션 테스트 관리 (1) | 2023.04.16 |