Article
사파리 버그, 구글 계정 정보와 사용 기록 유출시켜…주의
데일리시큐, 페소아, 2022.01.19 18:50
Resurch
▶ 크로스 사이트 스크립팅(Cross Site Scripting, XSS)
- 공격자가 상대방의 브라우저에 스크립트가 실행되도록 함
- 세션 하이재킹, 웹사이트 변조, 악의적 콘텐츠 삽입, 피싱 공격 진행
- 로그인 입력란을 감염시켜 로그인 세부 정보와 쿠키를 탈취하는 방식
- 멀웨어는 사용자의 정보를 기록해 해커에세 전송
- 스크립트 언어와 취약한 코드 대상
1 ) 반사형
- 사용자에게 입력받은 값을 서버에 되돌려주는 지점에서 발생
- 사용자가 직접 스크립트를 실행하도록 유도하므로 1회성 공격
- 링크를 클릭한 사용자의 쿠키 값을 해커에게 전성
2 ) 영구적
- 응용 프로그램이나 웹사이트의 모든 HTTP 응답을 감염시켜 지속적 피해 발생
- 웹 애플리케이션의 취약점에 악성 스크립트를 삽입하여 DB에 저장시키는 방식
- 쿠키를 탈취하거나 다른 사이트로 리디렉션
3 ) DOM 기반
- 웹 페이지를 여는 순간 생성되는 DOM 인터페이스를 악용
- DOM 기반은 웹사이트 코드를 조사하지 않고는 취약점을 발견할 수 없음
▶ 동일 출처 정책
- 어떤 출처에서 불러온 문서나 스크립트가 다른 출처에서 가져온 리소스와 상호작용하는 것을 제한하는 중요한 보안 방식
- 잠재적으로 해로울 수 있는 문서를 분리함으로써 공격받을 수 있는 경로를 줄임
- 두 페이지의 프로토콜, 포트, 호스트가 같으면 동일출처로 간주
- Internet Explorer 신뢰할 수 있는 예외상황 적용시 동일 출처 정책에서 예외
- Cross domain: 서로 다른 도메인 간의 호출
▶ Cross domain 우회 방법
1 ) documnet.domain: 서브 도메인이 서로 다를 경우에 사용
- http://A.naver.com -> http://B.naver.com : 서브 도메인이 달라서 호출 거부함.
- document.domain = 'naver.com' 으로 설정하면 가능.
2) Cross domain proxy
- 자바스크립트에서 동일한 서버의 URL 호출하고 내부적으로 다른 모데인의 URL 호출
3) Cross domain JSON
- 동적으로 script 태그를 생성하고 src부분에 호출할 서버 주소와 파라미터를 붙여서 넣기
- document.body에 dom메소드를 사용하여 append
Summary
- 사파리 웹킷 엔진 인덱스DB API 구현 문제 악용시 모든 사람에게 실시간으로 활동과 사용자 ID 유출 가능
- 인덱스DB는 용량 제한이 없는 다목적 클라이언트 측 스토리지 시스템, 브라우저 API
- 동일 출처 정책_ 크로스사이트 스크립팅 공격으로 인한 데이터 누출을 방지하기 위한 인덱스 DB의 방법
- MAC OS의 사파리 15에서는 웹킷 구현시 동일한 출처 정책을 따르지 않아 데이터 유출