
Chapter 02. 웹 보안
보안 취약점과 정보보안의 3요소
1 . 정보보안의 3요소
-
1.1 기밀성 : 특정 정보가 접근 권한이 있는
사용자에게만 열람되어야 함<->개인정보 노출 -
1.2 무결성 : 허가되지 않은 사용자가 정보를
수정할 수 없어야 함<->웹사이트 변조 공격,랜섬웨어 등 -
1.3 가용성 : 서비스가 문제없이 운용되어 허가된 사용자는
향상 정보에 접근할 수 있어야함<->DOS등
2 . 해킹 과정
-
2.1 정보 수집
- 2.2.1 정찰 : 공격 타켓에 각종 정보 수집,
패시브 스캐닝이라고도 함 - 2.2.2 스캐닝 및 취약점 분석 : 서버의 운영체제,
소프트웨어 버전, nmap과 같은 스캐닝 프로그램을
이용하여 네트워크 포트 점검, 엑티브 스캐닝이라고도 함
- 2.2.1 정찰 : 공격 타켓에 각종 정보 수집,
-
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 전송 중인 데이터
-
로그인 과정은 반드시 http 프로토콜 사용 -> 네트워크 스닝핑에 데이터 노출 방어
-
OAuth나 REST API를 이용한 웹 서비스와 같이 세션
토큰이 전달되는 모든 구간에 암호화 적용해야 함
-
-
4.2 저장된 데이터
- md5, SHA1알고리즘 안전하지 않음, SHA-256이나 SHA-3계열 이상의 알고리즘 추천
-
4.3 로깅과 모니터링 -> PAT 공격이나 자동화 공격 등을 탐지
-웹 어플리케이션을 개발하는 모든 기업이 웹보안을 위해
OWASP TOP10을 고려하여 개발 할 것을 권장(3-4년 마다 최신화)
-OWASP TOP10 2017 : https://www.owasp.org/images7/72/OWASP_Top_10-2017_%28en%29.pdf.pdf
