쿠키는 사용자가 사이트에 다시 접속했을 때 저장되어 있던 정보를 근거로 사용자를 인식하고 별도의 절차 없이 사이트에 빠르게 연결할 수 있도록 편의를 돕는 역할을 한다. 하지만, 쿠키에는 지워져도 되고, 조작되거나 가로채이더라도 큰 지장이 없는 수준의 정보들만을 보관하도록 되어 있다. 즉, 쿠키에는 보안정보를 저장하면 안된다. 쿠키는 어떻게 정보를 유출할 수 있을까?
서버 측에서 제공되는 Script가 아닌 권한이 없는 사용자(해커)가 웹사이트에 Script를 삽입하여 의도치 않은 동작을 일으키는 공격을 말한다.
해커가 XSS 공격에 취약한 웹사이트에 악의적인 Script를 삽입하고, 그 Script가 있는 게시글을 열람한 사용자는 악성스크립트로 인해 본인의 쿠키가 해커에게 전송되게 된다. 세션ID가 포함된 쿠키를 탈취한 해커는 탈취한 사용자의 계정으로 로그인 할 수 있게 되는 것이다.
→ 기본적으로 cookie는 JavaScript를 통해 조회가 가능하기 때문에, 클라이언트에 저장되있는 cookie 데이터가 XSS공격을 통해 탈취가 가능한 것이다.
HttpOnly 속성을 통해 JavaScript로 Cookie에 접근하지 못하게 할 수 있다
스니핑은 말그대로 도청의 기법으로, 네트워크 상에서 자신이 아닌 다른 상대방들의 패킷 교환을 엿듣는 것을 의미한다.
스니핑은 주어진 네트워크를 통과하는 모든 데이터 패킷을 모니터링하고 캡처하여 암호, 계정 정보 등과 같은 민감한 정보가 포함된 데이터 패킷을 얻을 수 있게 된다. 네트워크를 통해 전송되는 쿠키값을 암호화하지 않고 전송하는 경우, 네트워크 스니핑 공격을 통해 쿠키값을 탈취할 수 있다.
즉, 수동적 공격으로 패킷을 캡처하여 중간에서 확인하는 공격 기법이다.
영속성 쿠키는 하드디스크에 저장되며, 간단한 방법으로 접근 가능하기 때문에 공용PC 사용시 PC에 저장된 사용자 정보가 유출될 수 있다.