이 문서는 2022년 12월 9일에 @sumin-dev에 의해서 작성되었습니다.
1. 운영체제의 보안
1.1. 보안과 보호
1.2. 보안의 목표
1.3. 보안 공격(Security attack)의 종류
2. 웹 해킹 기법
2.1. SQL Injection
2.2. Cross-Site Scription (XSS)
2.3. CSRF Attack
2.4. DDoS
2.5. Dictionary Attack
Security
* ensures the authentication of users to protect
* the integrity of the information, both data and code.
* the physical resources on the computer system.
- 보안은 원거리에서 접근하는 사용자들에 대해
- 인증 및 암호화 메커니즘을 통해 합법적인 처리만이 이루어지도록 하여,
- 시스템 내의 자료가 결함이 없도록 유지시키고 신뢰도를 유지하는 기법
Protection
* ensures that only processes
* that have gained proper authorization from the operating system
- can operate on memory segments, the CPU, and other resources.
* controls access to a system
- by limiting the types of access permitted to users.
- 보호는 사용자에게 허용된 파일 액세스 유형을 조정하여 시스템에 대한 액세스를 제어
- 권한이 부여(인가) 된 사용자 또는 프로세스는 CPU, 메모리 세그먼트 등에서 작동할 수 있음
- 기밀성 (Confidentiality)
- 오직 인가된 사람, 프로세스, 시스템만이 접근해야 한다
- 비인가된 접근으로부터 안전해야 한다
- 접근 제어, 암호화
- 무결성 (Integrity)
- 네트워크를 통하여 송수신 되는 정보의 내용이 불법적으로 생성 또는 변경 되거나 삭제 되지 않도록 보호되어야 한다
- 비인가된 변경으로 부터 보호되어야 한다
- 접근 제어, 메시지 인증, 침입 탐지, 백업
- 가용성 (Availability)
- 시스템에 지체 없이 동작하도록 하고, 합법적 사용자가 서비스 사용을 거절 당하지 않아야 한다
- 필요할 때 권한이 있는 사용자가 이용할 수 있어야 한다
- 데이터의 백업, 물리적 위협요소로부터의 보호
- 소극적 공격(수동적 공격, Passive Attack): 공격자의 목표는 정보를 획득하는 것으로, 시스템의 데이터를 변경하거나 해를 끼치 않는 공격 형태. 탐지보다 예방이 중요.
- 적극적 공격(능동적 공격, Active Attack): 공격자는 데이터를 바꾸거나 시스템에 해를 입힐 수 있음.
- 스누핑(Snooping):
- 데이터에 대한 비인가 접근 또는 탈취.
- 비인가자는 전송하는 메시지를 가로채 자신의 이익을 위해 사용.
- 스누핑을 방지하기 위해서는 암호화 기법을 사용하여 도청자가 데이터를 이해할 수 없도록 만듦.
- 트래픽 분석(Traffic Analysis):
- 암호화 기법을 사용하여 도청자가 데이터를 이해할 수 없도록 만들어도 온라인 트래픽을 분석함으로써 다른 형태의 정보를 얻을 수 있음.
- 예를 들어, 전자 주소를 알아내 전송 성향을 추측하는데 도움이 되는 질의와 응답의 쌍을 수집
- 변경(메시지 수정, Modification):
- 메시지의 일부를 불법으로 수정하거나 메시지 전송을 지연시키거나 순서를 뒤바꾸어 인가되지 않은 효과를 노리는 것
- 가장(Masquerading):
- 한 개체가 다른 개체처럼 행동하는 것
- 재연(재전송, Replaying):
- 획득한 데이터 단위를 보관하고 있다가 시간이 경과한 후에 재전송함으로써 인가되지 않은 사항에 접근하는 효과를 노리는 것
- 부인(Requdiation):
- 메시지를 보냈다는 것을 부인할 수 있고, 메시지를 받았다는 것도 부인할 수 있음
- 서비스 거부(Denial of Service, DoS):
- 시스템의 서비스를 느리게 하거나 완전히 차단
- 웹 사이트의 취약점을 공격하는 기술적 위협
- 웹 페이지를 통하여 권한이 없는 시스템에 접근하거나 데이터 유출 및 파괴
- 악의적인 사용자가 보안상의 취약점을 이용하여, 임의의 SQL 문을 주입하고 실행되게 하여 데이터베이스가 비정상적인 동작을 하도록 조작하는 행위
- 공격이 비교적 쉬운 편이고, 공격에 성공할 경우 큰 피해를 입힐 수 있음
‘ OR 1=1 --
을 주입하여 WHERE 절에 있는 싱글쿼터를 닫아주고 OR 1=1 구문을 이용해 WHERE 절을 모두 참으로 만들고, --를 넣어서 뒤의 구문을 모두 주석 처리- Users 테이블에 있는 모든 정보를 조회하게 됨으로써 가장 먼저 만들어진 계정으로 로그인에 성공(보편적으로 관리자 계정이므로 관리자의 권한을 이용한 2차 피해 발생)
- SQL Injection의 종류와 대응 방안
- 관리자가 아닌 권한이 없는 사용자가 웹 사이트에 스크립트를 삽입하는 공격 기법
- 해커가 XSS 공격에 취약한 웹 사이트에 악의적인 스크립트를 삽입하고, 그 스크립트가 있는 게시글을 열람한 사용자는 악성스크립트로 인해 본인의 쿠키가 해커에게 전송.
- 세션ID가 포함된 쿠키를 탈취한 해커는 탈취한 사용자의 계정으로 로그인
- XSS공격의 종류와 대응 방안