Chapter 02. 웹 보안
보안 취약점과 정보보안의 3요소
1 정보보안의 3요소
1.1 기밀성: 특정 정보가 접근 권한이 있는 사용자에게만 열람되어야 함 <-> 개인정보 노출
1.2 무결성: 허가되지 않은 사용자가 정보를 수정할 수 없어야 함 <-> 웹사이트 변조 공격, 랜섬웨어 등
1.3 가용성: 서비스가 문제없이 운용되어 허가된 사용자는 항상 정보에 접근할 수 있어야 함 <-> DOS 등
2 해킹 과정
2.1 정보수집
2.1.1 정찰: 공격 대상에 대한 각종 정보 수집, 패시브 스캐닝이라고도 함
2.1.2 스캐닝 및 취약점 분석: 서버의 운영체제, 소프트웨어 버전, nmap과 같은 스캐닝 프로그램을 이용하여 네트워크 포트 점검, 액티브 스캐닝이라고도 함
2.2 공격(익스플로잇)
2.3 포스트 익스플로잇(익스 성공 후 공격 시도)
2.3.1 권한 상승(관리자 권한 획득)
2.3.2 퍼시스턴스: 사용자를 추가하거나 백도어를 설치하여 언제든지 공격자가 언할 때 호스트에 접속할 수 있도록 만들어놓는 것
2.3.3 흔적지우기: 포렌식(역추적)해서 자기 못찾도록 흔적 지움
웹 보안을 위한 공통 고려사항
1 인증
1.1 웹 어플리케이션에서의 인증 과정은 주로 로그인 기능을 통해 구현
1.2 브루트 포스 공격 같은 자동화 공격을 차단하고자 하는 경우에는 캡차 인증 추가
2 인가 및 접근 통제
2.1 인증: 신원을 확인
2.2 인가: 신원이 확인된 사용자의 권한을 확인
2.3 접근 통제: 인증과 인가 과정을 거친 후 리소스에 대한 접근을 허용하거나 차단하는 것
3 입력 값 검증
3.1 블랙리스트 검증: 공격자가 입력한 문자열 차단, 인코딩 등의 방법으로 우회 가능
3.2 화이트리스트 검증: 입력값이 웹 애플리케이션이 필요로 하는 데이터의 형식과 일치할 때만 허용하고 그 외의 모든 입력값을 차단하는 방법
4 암호화
4.1 전송 중인 데이터
- 로그인 과정은 반드시 https 프로토콜 사용 -> 네트워크 스니핑에 데이터 노출 방어
- OAuth나 REST API를 이용한 웹 서비스와 같이 세션 토큰을 이용하여 인증을 하는 경우에는, 세션 토큰이 전달되는 모든 구간에 암호화 적용해야 함
4.2 저장된 데이터
- md5, SHA1 알고리즘 안전하지 않음, SHA-256이나 SHA-3 계열 이상의 알고리즘 추천
4.3 로깅과 모니터링 -> APT 공격이나 자동화 공격 등을 탐지
OWASP TOP 10
- 웹 어플리케이션을 개발하는 모든 기업이 웹 보안을 위해 OWASP TOP10을 고려하여 개발 할 것을 권장 (3~4년 마다 갱신)
- OWASP TOP 2017: https://www.owasp.org/images/7/72/OWASP_Top_10-2017_%28en%29.pdf.pdf
해당 포스팅은 '화이트해커를 위한 웹 해킹의 기술' 책 내용을 바탕으로 작성되었습니다.
'보안' 카테고리의 다른 글
Chapter 05. 정보 수집 (0) | 2019.02.27 |
---|---|
Chapter 04. 버프 수트 (0) | 2019.02.26 |
Chapter 01. 웹과 HTTP 기초 (0) | 2019.02.25 |
SQL Injection 이란? - (2) (0) | 2018.04.30 |
SQL Injection 이란? - (1) (1) | 2018.04.27 |
댓글