# 민감한 데이터 노출
+ 민감한 데이터의 종류
- 각종 개인 정보
- 패스워드, 세션ID, 세션 토큰 등 로그인에 사용되는 정보
- 업무상 기밀 등 비공개로 관리되는 정보
+ 민감한 데이터가 노출되는 경우
- 데이터를 HTTP프로토콜로 전송하는 경우
- 데이터가 평문으로 저장되는 경우
- 안전하지 않은 암호화 방식을 사용할 경우
+ HTTP 프로토콜에 의한 노출
HTTP 프로토콜로 전달되는 요청과 응답 메시지는 네트워크 스니핑에 의해 도청될 수 있다.
* 네트워크 스니핑 : 네트워크에 전송되는 데이터를 모니터링하는 기술
- 네트워크 스니핑 프로그램 : tcpdump, wireshark ….
[ tcpdump를 이용한 실습 ]
이 명령어를 터미널에서 실행하여
eth1 네트워크 인터페이스를 통해 전달되는 요청메시지와 응답메시지 중
TCP 포트 80번과 관련된 내용만 표시하도록 할 수 있다.
위 명령어를 실행한 후 bWAPP로 이동
+ 웹 스토리지를 통한 노출 실습
*web storage : 웹 애플리케이션이 사용자의 웹 브라우저에 데이터를 저장할 수 있는 기능
- 더 큰 데이터를 저장할 수 있다.
- 꼭 필요한 데이터가 아니면 매번 서버로 전달하지 않아도 된다.
!! 웹 스토리지에 저장된 데이터는 자바스크립트로 읽을 수 있으므로 보안에 더 집중해야 한다.
* 웹 스토리지의 종류 : 세션 스토리지, 로컬 스토리지
- 세션 스토리지:세션이 종료될 때 데이터도 함께 삭제된다.
- 로컬 스토리지:세션이 종료되어도 데이터가 남아 있으며 삭제요청을 해야 삭제된다.
`
<script>alert(‘secret : ‘+localStorage.getItem(‘secret’))</script> 입력
+ 평문으로 된 패스워드 노출 실습
항목 A6에 있다.
+ base64 인코딩 실습
? base64 인코딩 : 이진 데이터를 아스키 텍스트 문자열로 변환하는 방법
? 방법 : 각각 8bit로 구성된 3개의 byte를 6bi씩 쪼개어 4개로 나눈다.
- base64 디코딩은 인코딩의 역이므로 쉽게 원래의 문자열을 알아낼 수 있다.
+ 대응 방안
- HTTPS 프로토콜 :
: 웹 브라우저와 웹 서버 간 보안 통신 구현한 HTTPS를 이용하여 로그인과 같은 민감한 기능
시 데이터가 암호화되어 전송되도록 구현
- 웹 스토리지 보호 대책
: 민감한 데이터를 전달받는 경우 httponly 태그를 추가한 쿠키를 이용
- 검증된 암호화 사용 : 민감한 데이터를 저장 시, 적절한 암호 기법으로 암호화하여 저장
'about Security > 웹보안과 해킹' 카테고리의 다른 글
# XXE (0) | 2020.11.29 |
---|---|
[웹해킹 실습] # 접근 통제 취약점 공격 (개념 + 실습) (0) | 2020.11.23 |
[웹해킹 실습] # 파일 업로드 공격 (0) | 2020.11.15 |
[웹해킹] # 파일 업로드 (0) | 2020.11.15 |
[웹해킹 실습] # 파일 인클루전 공격 (0) | 2020.11.12 |
댓글