반응형
109. Secure SDLC (B)
1. Secure SDLC
- SDLC에 보안 강화를 위한 프로세스를 포함한 것
- Secure SDLC의 방법론
- CLASP : SDLC의 초기 단계에서 보안을 강화하기 위해 개발된 방법론
- SDL : MS사에서 기존의 SDLC를 개선한 방법론
- Seven Touchpoints : SW보안 모범사례를 SDLC에 통합한 방법론
2. SDLC 단계별 보안 활동
- 요구사항 분석
- 설계
- 구현
- 테스트
- 유지보수
3. 소프트웨어개발 보안 요소
- 기밀성 (Confidentiality)
- 시스템 내의 정보와 자원은 인가된 사용자에게만 접근 허용
- 정보가 노출되도 읽을 수 없음
- 무결성 (Integrity)
- 시스템 내의 정보는 오직 인가된 사용자만 수정 가능
- 가용성 (Availability)
- 인가받은 사용자는 시스템 내의 정보와 자원을 언제라도 사용 가능
- 인증 (Authentication)
- 시스템 내의 정보와 자원을 사용하려는 사용자가 합법적인 사용자인지 확인하는 행위
- 비밀번호, 지문 검사 등
- 부인 방지(NonRepudiation)
- 데이터를 송수신한 자가 송수신 사실을 부인할 수 없도록 송수신 증거를 제공
4. 시큐어 코딩 (Secure Coding)
- 보안 요소들을 고려하며 코딩하는 것
110. 입력 데이터 검증 및 표현 (B)
1. 입력 데이터 검증 및 표현
보안 약점
- SQL 삽입 (Injection)
- 웹에 SQL을 삽입하여 내부 DB서버의 데이터를 유출 및 변조하고, 관리자 인증을 우회하는 보안 약점
- 동적 쿼리에 사용되는 입력 데이터에 예약어 및 특수문자가 입력되지 않게 필터링 되도록 설정하여 방지
- 경로 조작 및 자원 삽입
- 데이터 입출력 경로를 조작하여 서버 자원을 수정, 삭제할 수 있는 보안 약점
- 사용자 입력값을 식별자로 사용하는 경우, 경로 순회 공격 방지 가능
- 크로스사이트 스크립팅 (XSS)
- 웹페이지에 악의적인 스크립트를 삽입하여 해킹하는 보안약점
- HTML 태그 사용을 제한하거나, 스크립트에 삽입되지 않도록 <, >, & 등의 문자를 다른 문자로 치환하여 방지
- 운영체제 명령어 삽입
- 외부 입력값을 통해 시스템 명령어의 실행을 유도하여 권한을 탈취하거나 장애를 유발하는 보안 약점
- 웹 인터페이스를 통해 시스템 명령어가 전달되지 않도록 하고, 외부 입력값을 검증 없이 내부 명령어로 사용하지 않음으로써 방지
- 위험한 형식 파일 업로드
- 악의적인 명령어가 포함된 스크립트 파일을 업로드
- 파일 확장자 제한, 파일명 암호화, 웹사이트와 파일서버 분리 등을 통해 방지
- 신뢰되지 않은 URL 주소로 자동접속 연결
- 입력값으로 사이트 주소를 받는 경우 이를 조작하여 방문자를 피싱사이트로 유도
- 연결되는 외부 사이트의 주소를 화이트 리스트로 관리하여 방지
- 메모리 버퍼 오버플로
- 할당된 메모리 크기 이상을 사용하여 발생시킴
- 적절한 버퍼의 크기를 설정
114. 암호 알고리즘 (A)
1. 암호 알고리즘
- 중요 정보를 보호하기 위해 평문을 암호화된 문장으로 만드는 절차 또는 방법
2. 개인키 암호화 (Private Key Encryption)
- 동일한 키로 데이터를 암호화하고 복호화함
- 대칭 암호 기법, 단일키 암호화 기법이라고도 함
- 암호화/복호화 속도가 빠르지만, 관리해야할 키의 수가 많다
- 종류
- 스트림암호화 방식
- 평문과 동일한 길이의 스트림을 생성하여비트 단위로 암호화
- LFSR, RC4, TKIP
- 블록 암호화 방식
- 한 번에 하나의 데이터 블록을 암호화
- DES, SEED, AES, ARIA, IDEA, Skipjack
- 스트림암호화 방식
3. 공개키 암호화 (Public Key Encryption)
- 암호화할 때 사용하는 공개키는 공개하고, 복호화할때 비밀키는 관리자가 관리
- 비대칭 암호 기법
- 키의 수는 적지만, 속도가 느림
- RSA, ECC가 대표적
4. 양방향 알고리즘 종류
- SEED
- 1999년 한국인터넷진흥원(KISA)에서 개발한 블록 암호화 알고리즘
- 블록 크기 18비트, 키 길이에 따라 128, 256으로 분류
- ARIA(Academy, Research Institute, Agency)
- 2004년 국정원과 산학연협회가 개발한 블록 암호화 알고리즘
- DES (Data Encryption Standard)
- 1975년 미국 NBS에서 발표한 개인키 암호화 알고리즘
- 블록크기 64비트, 키 길이 56비트, 16회의 라운드 수행
- DES를 3번 적용한 3DES있음
- AES (Advanced Encryption Standard)
- 2001년 미국 표준 기술 연구소(NIST)에서 발표한 개인키 암호화 알고리즘
- DES의 한계에 개발
- 블록크기 128비트, 키 길이에 따라 AES-128, AES-192, AES-256
- RSA (Rivest Shamir Aleman)
- 1978년 MIT의 Rivest, Shamir, Adleman이 개발한 공개키 암호화 알고리즘
- 큰 숫자를 소인수분해하기 어렵다는것에서 기반
- ECC (Elliptic Curve Ctpyography)
- 1985년 RSA의 대안
- 이산대수 문제를 타원곡선으로 옮겨 기밀성과 효율성을 높인 암호화 알고리즘
- IDEA (International Data Encryption Algorithm)
- 스위스의 라이와 메시가 1990년에 개발안 PES를 개선한 알고리즘
- 블록크기 64비트, 키 길이 128비트
- Skipjack
- 국가 안전 보장국(NSA)에서 개발
- 클리퍼 칩이라는 IC칩 내장
- 블록 크기 64비트, 키 길이 80비트
- 주로 음성 통신 장비에 사용
- TKIP (Temporal Key Integrity Protocol)
- 무선랜 보안에 사용된 WEP를 보완한 데이터 보안 프로토콜, 임시 키 무결성 프로토콜이라고도 함
- WEP의 취약성을 보완하기 위해 입력 키 길이를 128비트로 늘리고 패킷당 키할당, 키값 재설정 등 키 관리 방식을 개선함
5. 해시 (Hash)
- 임의의 길이의 입력 데이터나 메시지를 고정된 길이의 값이나 키로 변환하는 것
종류
- SHA
- 1993년 NSA설계, NIST 발표
- 초기 개발된 SHA-0 이후, SHA-1, SHA-2, SHA-224, SHA-256, SHA-384, SHA-512
- MD5 (Message Digest algorithm 5)
- 1991년 Rivest가 MD4를 대체하기 위해 개발
- 블록 크기 512비트, 키 길이 128
- N-NASH
- 1989년 일본의 전신전화주식회사(NTT)에서 개발
- 블록, 키길이 128비트
- SNEFRU
- 1990년 R.C.Merkle 발표
- 32 비트 프로세서에서 구현을 용이하게 할 목적으로 개발
115. 서비스 공격 유형 (A)
1. 서비스 거부(DoS; Denial of Service) 공격
- 대량의 데이터를 한 곳의 서버에 집중적으로 전송하여, 서버의 정상적인 기능을 방해하는 것
- Ping of Death
- 스머핑
- SYN Flooding
- TearDrop
- LAND Attack
- DDOS
2. Ping of Death (죽음의 핑)
- 명령을 전송할 때 패킷의 크기를 허용 범위 이상으로 전송하여 네트워크를 마비시킴
3. SMURFING (스머핑)
- 엄청난 양의 데이터를 한 사이트에 집중적으로 보내 네트워크를 불능 상태로 만듦
- 각 네트워크 라우터에서 브로드캐스트 주소를 사용할 수 없게 미리 설정하여 방지
4. SYN Flooding
- TCP에서 3-way-handshake 과정을 의도적으로 중단시켜 서버를 대기상태로 놓음
- SYN 수신 대기 시간을 줄여 방지
5. TearDrop
- Fragment Offset 값을 변경시켜 패킷을 재조립할 때 오류로 인한 과부하를 발생시켜 시스템이 다운됨
- Fragment Offset이 잘못된 경우 패킷을 버리도록 설정하여 방지
6. LAND Attack (Local Area Network Denial Attack)
- 패킷을 전송할 때 송신 IP와 수신 IP 모두 공격대상의 IP 주소로 변경하여 자신에게 무한히 응답하도록 함
- 송신IP와 수신IP의 적절성을 검사하여 방지
7. DDOS (Distributed Denial of Service, 분산 서비스 거부) 공격
- 여러 곳에 분산된 공격 지점에서 한 곳의서버에 대해 서비스 거부 공격을 수행
8. 네트워크 침해 공격 관련 용어
- 세션 하이재킹 (Session Hijacking)
- 서버와 클라이언트 사이의 세션 정보를 가로챔
- 가로챈 세션을 이용해 원래 클라이언트인것 처럼 위장하여 정보를 취득함
- ARP 스푸핑 (ARP Spoofing)
- ARP의 취약점을 이용한 공격.
- 물리적 주소(MAC)을 공격함
- 스미싱 (Smishing)
- 문자 메시지(SMS)를 이용해 사용자의 개인 정보를 빼냄
- 최근에는 앱설치 유도 등을하여 정보를 빼감
- 사회 공학 (Social Engineering)
- 인간 상호 작용의깊은 신뢰를 바탕으로 사람들을 속여 비 기술적인 시스템 침입 수단
- 다크 데이터 (Dark Data)
- 특정 목적을갖고 데이터를 수집하였으나, 활용되지 않고 저장만 되어있는 대량의 데이터
- 타이포스쿼팅 (Typosquatting)
- 비슷한 url로 유명 도메인을 미리 등록하는 일
- URL 하이재킹이라고도 함
- 스피어 피싱 (Spear Phishing)
- 사회 공학의 한 기법
- 특정 대상에게 이메일로 위장한 메일을 지속적으로 발송하여, 발송 메일의 본문 링크나 첨부 파일을 클릭하도록 유도
- APT (Advanced Persistent Threats, 지능형 지속 위협)
- 다양한 기술과 방식으로 조직적으로 특정 기업이나 네트워크에 침투해 거점을 마련한 뒤 때를 기다리며 정보를 빼냄
- 내부자에게 악성코드가 포함된 이메일을 꾸준히 발송하여 한번만 눌러라 기도함
- 스턱스넷 같이 악성코드가 담긴 usb를 전파
- 악성코드에 감염된 p2p사이트에 접속
- 무작위 대입 공격 (Brute Force Attack)
- 암호키를 찾기위해 적용 가능한 모든 값을 대입
- 큐싱 (Qshing)
- QR코드를 통해 악성 앱 다운로드 유도
- SQL 삽입 (Injection) 공격
- 아무 웹사이트나 무차별로 공격하다가취약한 사이트가 발견되면 DB 등의 데이터를 조작하는 공격
- 크로스 사이트 스크립팅 (XSS; Cross Site Scripting)
- 웹 페이지 스크립트의 취약점을 악용한 해킹 기법
- 스니핑 (Sniffing)
- 네트워크 중간에 패킷 정보를 도청
- 수동적 공격에 해당
9. 정보 보안 침해 공격 관련 용어
- 워터링홀 (Watering Hole)
- 목표 조직이 자주 방문하는 웹사이트를 사전에 감염시켜 웹 사이트에 방문햇을 때 감염되도록함
- 좀비PC
- 감염되어 다른 프로그램이나 PC를 조종하도록 만들어진 컴퓨터
- 주로 DDoS 공격에 이용됨
- C&C 서버
- 해커가 원격지에서 좀비 PC에 명령을 내리는 용도로 사용하는 서버
- 봇넷(Botnet)
- 감염되어 악의적인 의도로 사용될 수 있는 다수의 컴퓨터들이 네트워크로 연결된 형태
- 웜(Worm)
- 네트워크를 통해 자신을 복제하여 시스템의 부하를 높여 시스템을 다운시키는 바이러스
- DDoS, 버퍼 오버플로, 슬래머 등이 웜 공격의 형태
- 제로 데이 공격 (Zero Day Attack)
- 보안 취약점이 발견되었을 때 취약점의존재 자체가 공표되기 전 해당 취약점을 통해 이루어지는 보안 공격
- 공격의 신속성을 의미함
- 키로거 공격 (Key Logger Attack)
- 컴퓨터 사용자의 움직임을 탐지해 ID, PW 등을 빼감
- 랜섬웨어 (Ransomware)
- 컴퓨터에 잠입해 내부 문서나 파일 등을 암호화해 사용자가 열지 못하게 함
- 사용자에게 돈을 요구함
- 백도어 (Back Door, Trap Door)
- 시스템 설계자가 유지보수 편의를 위해 만든 비밀 통로, 범죄에 악용되기도 함
- 탐지 방법: 무결성검사, 열린 포트 확인, 로그 분석 등
- 트로이 목마 (Trojan Horse)
- 정상적인 프로그램에 위장하여 숨어있다가 나중에 활성화되어 부작용을 일으킴
- 자기 복제능력은 없음
117. 보안 솔루션 (A)
1. 보안 솔루션
- 외부로부터 침입을 막는 기술 및 시스템
- 방화벽
- 침입 탐지 시스템(IDS)
- 침입 방지 시스템(IPS)
- 데이터 유출 방지(DLP)
- 웹 방화벽
- VPN
- NAC
- ESM
2. 방화벽(Firewall)
- 내부의 네트워크와 인터넷 간에 전송되는 정보를 선별하여 수용, 거부, 수정하는 기능을 가진 침입차단 시스템
3. 침입 탐지 시스템 (IDS; Intrusion Detection System)
- 컴퓨터 시스템의 비정상적인 사용, 오용, 남용 등을 실시간으로 탐지
- 오용 탐지(Misuse Detection) : 미리 입력해 둔 공격 패턴이 감지되면 이를 알림
- 이상 탐지 (Anomaly Detection) : 평균적인 시스템을 기준으로 비정상적인 행위나 자원 사용이 감지되면 알림
4. 침입 방지 시스템 (IPS; Intrusion Prevention System)
- 비정상적인 트래픽을 차단하고 격리
- 방화벽과 IDS를 결합
5. 데이터 유출 방지 (DLP; Data Leakage/Loss Prevention)
- 내부 정보의 외부 유출을 방지하는 보안 솔루션
- 사내 직원이 사용하는 PC와 네트워크를 모두 검사하고 탐지하여 외부 유출을 사전에 막음
6. 웹 방화벽
- 일반 방화벽이 탐지하지 못하는 SQL 인젝셔느, XSS 등의 웹 기반 공격을 방어할 목적으로 만들어진 웹서버에 특화된 방화벽
- 공격이 웹서버에 도달하기 전에 차단
7. VPN (Virtual Private Network, 가상 사설 통신망)
- 공중 네트워크와 암호화 기술을 이용하여 사용자가 자신의 전용 회선을 사용하는것 처럼 해주는 보안 솔루션
- SSL VPN : PC에 VPN 클라이언트를 설치하여 VPN서버에 접속, SSL프로토콜 사용
- IPSec VPN : VPN서버가 설치된 네트워크를 서로 연결하는 방식, IPSec 프로토콜 사용
8. NAC (Network Access Control)
- 네트워크에 접속하는 내부 PC의 MAC주소를 IP관리 시스템에 등록한 후 일관된 보안 관리 기능을 제공하는 보안 솔루션
- PC의 SW사용 현황을 관리하여 불법적인 SW설치를 방지
9. SIEM (Security Information and Evnet Management)
- 로그 및 보안 이벤트를 통합 관리
- 장기간의 로그 및 보안 이벤트를 수집 및 검색할 수 있는 빅데이터 기반의 통합 로그 수집 시스템
10. SSH (Secure SHell, 시큐어 셸)
- 다른 컴퓨터에 로그인, 명령 실행, 파일 복사등을 수행할수 있도록 기능을 지원하는 프로토콜 또는 프로그램
- 데이터 암호화와 강력한 인증 방법으로 보안성이 낮은 네트워크에서도 안전하게 통신
- key를 통한 인증방법 가능
- 22번 포트 사용
11. 템퍼 프루핑 (Tamper Proofing)
- SW의 위변조가 발생할 경우 SW를 오작동시켜 악용을 방지함
12. OAuth (Open Authorization, 공개 인증)
- 사용자 인증에 사용되는 표준 인증 방법, 공개 API로 구현
- 사용자가 비밀번호를 제공하지 않고 OAuth를 통해 권한을 받을 수 있다.
반응형
'정보처리기사 > 실기' 카테고리의 다른 글
10장 오답 (1) | 2024.07.22 |
---|---|
정보처리기사 실기 10장 - 프로그래밍 언어 활용 (0) | 2024.07.16 |
정보처리기사 실기 8장 - SQL 응용 (0) | 2024.07.13 |
정보처리기사 실기 7장 - 애플리케이션 테스트 관리 (0) | 2024.07.09 |
정보처리기사 실기 6장 - 화면 설계 (0) | 2024.07.09 |
댓글