computer security
Security requirement triad (CIA Triad)
Confidentiality (기밀성)
- data confidentiality
- privacy
Integrity (무결성, 변조되지 않았다)
- data integrity
- system integrity
availability (가용성, 서비스가 중단되지 않는다)
Security Problem
- 모든 시스템은 구멍을 가지고 있으며, protection은 문제를 예방할 수 없다.
four Bs
- Burglary: steal it (절도)
- Bribery: find whoever has access to what you want and bribe them (뇌물)
- Blackmail: or photograph them in a compromising position (협박)
- Bludgeoning: or just beat them until they tell you (공격)
Terminology
- Vulnerability : loss of CIA (Confidentiality, Integrity, Availability) (취약점)
- Threat : capable of exploiting vulnerabilities (취약점 위협)
- Attack : threats carried out (취약점 공격)
- Adversary : an entity that attacks a system (공격자, 크래커)
- Countermeasure : means to deal with attacks (대응 방안)
Security services
- Confidentiality
- Integrity
- Availability
- Authentication(적합성 인증)
- Access control(권한 관리)
- Nonrepudiation (부인 방지, 증거 제시)
Cracker’s Basic Steps
- as much information about your site as possible
Use port scanner
- to gather information about what services are running on hosts
- Search for weak security services
Get a login account
- Doesn’t matter whose account
Get root privilege
- Bugs in programs or badly configured systems
Keep root privilege
- Leave some sort of backdoor for future access
Physical Security
Hardware security
- Restrict access to equipments
- Smart card (ID card)
- Bio-metric access control(지문, 홍채 인식 등)
- BIOS(UEFI) security
- Set a boot password (firmware level password)
- Prevent booting from CD-ROM or floppy drives
- Session security
- Some shells (e.g. tcsh) provide the automatic logout facility if there is no activity during the specified time period
- vlock (for locking a virtual terminal) / xlock / Screen savers
Account Security
Authentication
- Password
- 보안에 가장 많이 사용되며 큰 취약점이 있다.
- 사용자는 password를 모두가 볼 수 있는 종이에 기록할 수 있다.
- Password 입력이 느리고, 모두가 볼 수 있다.
- 알아내기 쉬운 password를 사용한다.
- 길고 명확하지 않은 password는 보안을 높여주지만, 쉽게 까먹거나 다른 곳에 기재된다.
- CHAP (Challenge Handshake Authentication Protocol)
- Password를 양쪽이 가지고 있으며, password를 기반으로 한 계산식을 주고 받음으로써 password가 직접적으로 전달되지 않는 방식으로 보안을 높여준다.
- Authentication alternatives
- Bruteforce 방식으로도 계정에 접근할 수 없도록 새로운 방식 개발
- Physical keys : Badges, smart cards etc.
- Biometric keys : 지문, 홍채 인식, 얼굴 프로필, 음성 인식, 사인 분석
- 이미지를 이용한 패스워드, 대/소문자 조합 등
Authorization (Access control lists, 권한 관리)
Access control lists(ACLs)
- 각각의 객체마다 접근 가능한 권한을 설정한다.
- 간단하며 대부분의 파일 시스템에서 사용된다.
Capabilities
- 각각의 사용자마다 접근 가능한 자원과 방법에 대해 정의한다.
- 높은 보안 수준을 요구하는 시스템에서 사용된다.
File system security
Setuid/setgid programs (UNIX/LINUX)
Search paths
- 대부분의 사용자는 search path에 현재의 디렉토리를 포함하여 사용하며 cracker가 표준 명령어의 이름과 같은 프로그램으로 공격할 수 있다.
- Root user는 현재의 디렉토리 주소를 path에 포함하면 안된다.
Network security
Secure protocol을 사용해야 한다.
- Secure shell(ssh) 제품군은 많은 통신들을 암호화한다.
- 안전한 연결을 위해 https를 사용한다.
- Secure socket layer(SSL)은 클라이언트와 서버 간에 주고 받는 데이터를 암호화한다.
- IPsec protocol : 모든 IP 패킷을 암호화한다. (IPv6 : 필수 IPv4 : 선택)
TCP wrappers
- 특정 IP나 포트만을 허용한다.
- 클라이언트를 연결하기 전에 활동을 기록하고 접근이 허용되었는지 확인한다.
- Log의 활동을 검토함으로써 공격 의도를 탐지해낼 수 있다.
Firewall
- 그룹 내의 internal network와 외부의 network에 filter나 protective layer를 생성한다.
- DMZ에 웹서비스 등을 설치해서 고객이 그룹 내부의 네트워크에 접근하지 않고 서비스를 사용할 수 있게 한다.
- Packet을 drop하거나 경로를 설정한다.
Intrusion detection system (IDS)
- Intrusion을 탐지하는 시스템
- Host-based IDS (H-IDS) / Network-based IDS (N-IDS)
Intrusion prevention system (IPS)
- 침입을 방지하는 시스템 E.g.)Wireless IPS(WIPS) : 특정 지역에서 모바일 네트워크가 끊어지는 서비스
Attacks vs. Countermeasures
Security threats
Physical threats
- Acts of nature: floods, fire, earthquake, explosion, etc.
- Intruder takes computers, dig up network cable, or access system consoles
Logical threats
- Caused by problems with computer software
- Misuse by people (e.g. easy-to-guess passwords)
- Bugs in programs or in their interaction with each other
Operational threats
- No security policy, incomplete enforcement
Denial of service
- Prevent computer from providing services through
- flooding services on your system, thus preventing them from providing service to legitimate clients
attacks
- virus(다른 프로그램에 기생해서 번식한다)
- Worm(독자적인 프로그램으로 번식한다)
- Trojan horses
- Logic bomb(일정 시간 입력이 없으면 시스템 다운) trap door (back door)
- dictionary attacks (brute force하게 보안을 공격)Login spoofing (로그인 창으로 꾸며 계정 정보를 받아간다)
- Malware
- Spyware
- Ransomware
- Keystroke logger(사용자가 입력하는 모든 내용을 전달)
- Code injection
- packet sniffing
- replay attack
- Man-In-The-Middle(MITM)
- IP spoofing
- DOS, DDOS
The Morris Internet Worm (최초의 악성코드)
로그인한 사용자 정보를 담는 finger system에 buffer overflow를 일으키는 code injection 후 worm 양산
Buffer overflow
취약점이 없도록 secure coding을 해야 한다
- secure coding guideline이 있다.
IP spoofing
Host A를 무력화하여 Host B에게 Host A인 것처럼 속인다.
Denial of service: internal attacks
Internal attacks
- 프로세스, 디스크, 메모리 등을 무한히 사용하여 내부적으로 시스템을 다운시킨다.
External attacks
- Application level
- Mail bombing / buffer overflow / java applet attack
- Protocol level
- TCP SYN flooding / UDP Storming
- Network level
- Distributed DOS (DDOS)
- 여러 개의 머신을 사용하기 때문에 IDS에서 감지하기 어렵게 만든다.
Basic concept of Cryptography
What is cryptography
- The science of obfuscating data
- Can provide authentication, confidentiality, data integrity and etc.
- Cryptography algorithm is open, but key MUST be confidential
Two kinds of cryptography
- Shared key cryptography (symmetric cryptography)
- Public key cryptography (asymmetric cryptography)
Shared key cryptography
- 같은 키를 가진 사람만 복호화를 통하여 데이터를 볼 수 있다.
- 어떻게 shared key를 조심히, 또 같은 걸 공유할지가 중요하다.
Shared key cryptography 알고리즘
- DES(Data Encryption Standard) / AES(Advanced Encryption Standard) : 장문의 데이터도 암호화 가능
Public key cryptography
개인 별로 private키를 가지고 있다.
- 해당 암호 데이터에 맞는 private key를 가진 사용자만 볼 수 있도록 하여 confidentiality 보장
- Private key로 암호문을 만들어 해당 사용자가 만들었다는 것을 증명하는 authentication 보장
알고리즘
- RSA : 오버헤드가 매우 크다. 작은 데이터 대상으로 사용 / ECC
Applied Cryptography for Network (TLS/SSL)
Applied Cryptography for Network
Digital Signature
- minimize encryption processing
- for authentication & integrity (not confidentiality)
Virtual Private Network (VPN)
- 물리적인 전용선은 비용이 많이 들기 때문에, Software적으로 가상으로 전용선을 설치한다.
Virtual
- No physical infrastructure dedicated to the private network
Private
- Keep data confidential so that it can be received by an intended receiver