정보처리기사 필기 준비하며 정리한 내용입니다.
SW개발 보안 설계
정보 보안
- 관리
- 기술
정보보안의 3요소
- 기밀성
- 무결성
- 가용성
AAA ⭐
- 인증 Authentication
- 신원 검증, 로그인 등
- 권한 부여 Authorization
- 계정 관리 Accounting
인증 제도
- ISMS 정보보호 관리체계 인증
- 회사의 종합적인 체계에 대한 인증제도
- PIMS 개인정보 관리체계
- 지금은 사용하지 않는다
- ISMS-P 정보보호 및 개인정보보호 관리체계 인증
Secure SDLC
SDLC 소프트웨어 생명주기
방법론 ⭐
- CLAPS
- SDLC의 초기 단계에서 보안 강화하려고 개발된 방법론
- 현재 운용 중인 시스템에 적합
- SDLC의 초기 단계에서 보안 강화하려고 개발된 방법론
- MS-SDL
- Seven Touchpoints
- 소프트웨어 보안 모범사례를 SDLC에 통합한 방법론
- 모든 산출물에 위험 분석 및 테스트 수행
시큐어 코딩
- OWASP
- 시큐어 코딩 가이드
SW 개발 보안 구현
암호 알고리즘 ⭐
용어
- 평문
- 암호문
- 암호화 Encryption
- 복호화 Decryption
- 전자서명
- 양밤향 암호화
- 평문↔암호문
- 단방향 암호화
- 해싱 이용. 평문으로 복호화 불가
암호 방식에 따른 분류 ⭐
- 양방향
- 대칭키
- 암호화키 = 복호화키
- 혼돈과 확산의 성질 이용
- 혼돈 : 암호 보고 평문 유추X
- 확산 : 알고리즘 유추 X
- 혼돈과 확산의 성질 이용
- 키를 교환해야 하는 문제.
- 키의 개수 : n(n-1)/2
- 사람이 늘어날수록 키 관리 어려워짐
- 양방향 대칭키 알고리즘 종류
- 블록 암호 알고리즘
- 깨진 것
- DES : 16라운드, Feistel 암호 방식, 암호화 키 1개
- 3-DES : 암호화 키 2개. 암→복→암호화.
- AES : 현재 많이 사용. SPN 암호 방식. 128비트.
- 국산
- SEED : DES 구조
- ARIA : AES 구조
- IDEA : Feistel과 SPN의 중간
- LEA : 경량
- 깨진 것
- 스트림 암호 알고리즘 : XOR 연산, 순차적
- LFSR
- RC4
- A5
- 블록 암호 알고리즘
- 암호화키 = 복호화키
- 비대칭키 = 공개키
- 키를 보내지 않는다. 암호화 복호화에 이용하는 키가 다르다
- 공개키
- 개인키
- 느리다. 작은 양만 가능하다
- 키 분배 관리가 용이
- 양방향 공개키 알고리즘 종류
- 소인수 분해 기반
- RSA
- Robin
- 이산대수
- 디피-헬만
- DSA
- ELGamal
- 타원 곡선
- ECC
- 소인수 분해 기반
- 키를 보내지 않는다. 암호화 복호화에 이용하는 키가 다르다
- 대칭키
- 단방향
- 해시 함수 이용
- 해시 함수 특성
- 역상 저항성
- X —암호화→ A 일 때
- 해시 결과값 A가 주어졌을 때, 그 해시 값을 생성하는 입력값 X를 알아내기가 불가능
- 제2역상 저항성 = 약한 충돌 저항성
- X —암호화→ A 이고, Y—암호화→A 인 경우
- X→A를 아는 상태에서
- Y→A라는 사실을 모르게 해야
- X —암호화→ A 이고, Y—암호화→A 인 경우
- 충돌 저항성
- X —암호화→ A 이고, Y—암호화→A 인 경우
- 전부 모르는 상태에서
- X와 Y의 해시값이 A가 나온다는 걸 모르게 해야
- X —암호화→ A 이고, Y—암호화→A 인 경우
- 역상 저항성
- 해시 함수 종류
- MD5 : 깨졌다
- SHA : 미국 국가 표준
- 해시 함수의 결점
- 무차별 대입 공격
- 보완책 : 키 스트레칭
- 해시 암호화를 여러 번 반복하는 것
- 보완책 : 키 스트레칭
- Rainbow Table 공격 : 모든 해시값 계산한 결과가 담긴 테이블
- 보완책 : 솔팅 Salting
- 데이터 앞 뒤에 임의의 값salt을 넣어서 해시값ㅇ르 만든다.
- 보완책 : 솔팅 Salting
- 무차별 대입 공격
- 해시 함수 특성
- 해시 함수 이용
코드 오류
시스템 보안 설계
📌서비스 공격 유형
Dos (Denial of Service)
- 가용성 떨어뜨림. 직접 공격.
- 목표
- 물리적으로 디스크 및 시스템 파괴
- 시스템 자원 공격
- 네트워크 자원 공격
- DoS 공격 유형
- Smurf Attack
- 여러 호스트로 다량의 ICMP Echo Request 보내개 하는 공격
- IP와 ICMP 특성 이용
- 공격 서버의 IP주소로 위장하는 것
- IP와 ICMP 특성 이용
- 여러 호스트로 다량의 ICMP Echo Request 보내개 하는 공격
- Ping Of Death
- 규정 크기 이상의 패킷으로 시스템 마비
- 조립하는 과정에서 부하
- 재조합 버퍼 오버플로우
- 조립하는 과정에서 부하
- 규정 크기 이상의 패킷으로 시스템 마비
- Land Attack
- 출발지 IP와 목적지 IP가 같은 패킷을 보내는 공격
- Teardrop Attack
- 재조합할 수 있는 fragment number 위조해서 조합 못하는 걸 보낸다
- 조합을 계속 시도하다가 안 되어서 다운됨
- 재조합할 수 있는 fragment number 위조해서 조합 못하는 걸 보낸다
- Flooding : 전부 넘치도록 많은 양을 보내는 것
- SYN Flooding
- TCP 연결과정 3way악수 취약점 이용
- SYN 신호만 전달하고 ACK 응답 안 받아서 부하 줌
- TCP 연결과정 3way악수 취약점 이용
- UDP Flooding
- 다량의 UDP 패킷 전송
- Ping Flooding
- 매우 많은 ICMP Echo 보내는 것 (패킷)
- 응답하려고 자원 다 써버리게 하기
- 매우 많은 ICMP Echo 보내는 것 (패킷)
- SYN Flooding
- Smurf Attack
DDos (Distributed Dinial of Service)
- 좀비PC를 이용하여 공격.
- 구성
- 공격자
- 명령 제어
- 좀비PC
- 공격 대상
- 공격 순서
- 루트 권한 획득 (관리자 권한)
- 취약한 서비스 서버 파악
- 실제 공격 위한 Exploit (공격자의 의도된명령/프로그램)을 작성
- Exploit을 설치하여 공격
- 공격 툴의 종류 ⭐
- 트리누 (Trinoo)
- TFN (Tribal Flood Network
- 슈타첼드리트
버퍼 오버플로우
- 입력받는 값이 버퍼 가득 채우다 못해 넘쳐흐르는 현상
- 방어기법
- 스택 가드 : 특정 값이 변경되면 오버플로우로 가정→실행 중단
- 스택 쉴드 : 특정 값 비교해서 다르면 오버플로우로 간주→실행 중단
- ASLR Address Space Layout Randomization : 주소 공간 배치 난수화
서버 인증
인증 Authentication
- 유형
- 지식 기반
- 소유 기반
- 생체 기반
- 행위 기반 : 서명 등
- 위치 기반
- 인증 방식
- 계정 정보를 요청 헤더에 넣는 방식
- 쿠키/세션 방식
- 토큰 기반 인증 방식
- SSO (Single Sign On) : 하나의 로그인 정보로 여러 앱 접근 가능. 통합 서비스 생각하기
📌접근 통제
- 네트워크 장비에서 수행하는 IP에 대한 접근 제어 종류
- 관리 인터페이스의 접근제어
- ACL (Access Control List) : 화이트 리스트
- 접근 통제 과정
- 식별
- 인증
- 인가
접근 통제 정책 ⭐
- 강제적 접근 통제 MAC = Mandatory Access Control
- 군대같은 기밀성이 강조되는 조직에서 사용
- 보안 레벨(등급)에 따른 시스템
- 종류
- BLP(벨라파듈라) 모델 ⭐
- 기밀성
- 높은 레벨 정보가 낮은 레벨로 퍼지는 걸 방지
- No Read Up, No Write Down
- Biba 모델 ⭐
- 무결성
- 효율적 업무처리&직무 분리
- No Read Down, No Write Up
- 클락-윌슨 모델
- 무결성
- 만리장성 모델 = Brewer-Nash 모델
- 충돌 야기하는 어떤 흐름도 차단해야
- 금융
- 충돌 야기하는 어떤 흐름도 차단해야
- BLP(벨라파듈라) 모델 ⭐
- 임의적 접근 통제 DAC = Discretionary Access Control
- **신원(Identity)**에 근거
- 데이터 소유자가 임의로 결정
- 유연하다
- **신원(Identity)**에 근거
- 역할 기반 접근 통제 RBAC = Role Based Access Control
- 조직 내 개인 역할에 따라
- 중앙관리자가
- 조직 내 개인 역할에 따라
시스템 보안 구현
보안관제
실제 침해사고 시 CERT Computer Emergency Response Team이 대응함
로그분석
시스템의 모든 기록을 담고있는 데이터
리눅스 로그 종류
- wtmp : 전체 로그인 기록
- utmp : 현재 로그인 사용자
- btmp : 실패한 로그인 정보
보안 솔루션
- 웹 방화벽 Web Firewall = WAF
- WAS 안에도 설치 가능
- 웹서버 특화 방화벽
- WAS 안에도 설치 가능
- 방화벽 Firewall
- 차단만
- 침입 탐지 시스템 IDS (Intrusion Detection System)
- 탐지만
- 침입 탐지 방식에 따른 분류 ⭐
- 오용탐지 : 미리 입력해 둔 공격 패턴만 탐지
- 이상탐지 : 정상이 아니면 다 탐지
- 침입 탐지 대상에 따른 분류 ⭐
- 네트워크 기반 IDS (NIDS) : 네트워크 패킷 분석
- 호스트 기반 IDS (HIDS) : 내 컴퓨터에 남은 로그 분석
- 침입 탐지 방식에 따른 분류 ⭐
- 탐지만
- 침입 방지 시스템 IPS Intrusion Prevention System
- 방화벽 + 침입 탐지 시스템
그 외 보안 솔루션
- 데이터 유출 방지 DLP
- 가상 사설 통신망 VPN
- NAC Network Access control
- ACL과 비슷. 네트워크에 접속하는 내부 PC의 고유 MAC주소를 IP 관리 시스템에 등록
- 통합 로그 분석 장비
- ESM enterprise security management
- 다양한 장비에서 발생하는 로그 등을 통합관리하는 보안 솔루션
- SIEM Security Information and Event Management
- 빅데이터
- SOAR
- ESM enterprise security management
- Sandbox
- 원래의 운영체제와 완전히 독립되어 실행되는 형태. 가상 머신 안에서 실행
- FDS
- 전자 금융 거래에서 이상 금융 거래 차단하는 시스템
- Proxy Server
- 클라이언트 대신 다른 서버에 접속하는 서버
- 방화벽, 캐시 기능 수행
보안 프로토콜
- SSH secure shell protocol
- 원격 호스트에 접속하기 위해 사용하는 보안 프로토콜
- 원래 텔넷으로 사용했는데 이게 평문이라서 암호화를 위해 사용
- 22번 포트 사용
- SSL secure socket layer
- 웹 브라우저-웹 서버 간 안전하게 데이터 주고받기 위한 표준 프로토콜
- SSL이 적용된 웹 페이지는 → URL이 HTTPS로 시작 & 443번 포트를 사용한다
- HTTP는 80번 포트
- TSL transport layer security
- 전송 계층 기반
IPSec
- IP 계층 (네트워크 계층) 보호 기법
- 패킷에 대한 보안 제공
- 동작 모드
- 전송 모드 : 헤더 제외한 페이로드만 보호. → 트래픽 경로 노출
- 터널 모드 : 패킷 전체 보호
- 프로토콜
- AH authentication header
- 메시지 인증 코드 MAC 이용
- 무결성, 인증기능 (기밀성X)
- ESP encapsulating security payload
- AH가 가진 무결성, 인증 + 기밀성 Confidentiality
- IKE internet key exchange
- 키 교환 프로토콜
- AH authentication header
- S-HTTP = Secure HTTP
- 네트워크 트래픽 암호화하는 주요 방법에는 **SSL(HTTPS)**과 S-HTTP 두가지가 있다.
- S-HTTP는 HTTP의 확장판이라 80포트 사용
- 예를 들어 ID : abcd 를 보내는 경우
- HTTPS는 [ID : abcd] 를 전부 암호화
- S-HTTP는 ID : [abcd] 를 암호화
- 예를 들어 ID : abcd 를 보내는 경우
보안 취약점 점검 분류
- 관리적 관점
- 정책. ISMS-P가 있는지 보는 것
- 기술적 관점
- 서버, 네트워크, PC 보안점검
- 물리적 관점
- 재난대비, 출입 통제 시스템