오탐은 잘못된 정보이기만 하고, 쓸모없는 노이즈인 걸까? (boannews.com)
오탐: 위협이 아닌 것을 위협으로 간주하면서 나오는 경고
탐지 논리가 부정확하게 설정되어 발생하는 오탐도 다수 존재
관리자와 공격자의 행동 패턴의 교집합 ->정확한 탐지규정 어렵
오탐을 줄이려면 사용자 편에서 명확 세밀한 규정 정립 필요
탐지된 이상 현상을 점검할 때 과거에 본 것 같은 느낌 받으면 오탐이라 정의하는 경향 -> 공격자들이 환경 침투를 위해
할 수 있는 행동의 가짓수 한정적
행동패턴을 분석해야-> 내부 보안 성숙 향상 기여
행동 패턴을 모니터링하면 네트워크 내부에서 발생하는 현상들에 보다 깊은 이해도가 장착: 심층적 가시성 -> 어느 지점에서 현상 발생 인지 + 현상의 맥락 이해
https://www.youtube.com/watch?v=OpoVuwxGRDI
이용하는 웹사이트마다 쿠키 제시
이용하는 웹사이트에서 혹은 개인이 직접 기록 수정 삭제
핵심->개인이 들고 다니고 웹사이트 이용 할 때마다 제시
사이트를 방문하고 이용할 때 브라우저에 저장되는 내용
브라우저 컴퓨터에 존재-> 내가 갖고 있는 정보
한계 : 내가 임의로 수정 삭제 & 타인 염탐 절도 가능
민감하거나 중요한 정보 기록 시 불안
웹사이트 측에서 보관 관리해야하는 정보 존재
ex) 로그인창 아이디 자동완성, 공지 메세지 오늘만 보지 않기, 쇼핑몰 사이트 로그인 없이 물건 장바구니에 담기 등
사용자의 편의를 위하되, 삭제 조작돼도 큰 일 없는 정보 브라우저에 저장
사용자와 웹사이트 몰래 인터넷 사용기록을 저장하고 추적한 슈퍼쿠키 존재 -> 사용자가 웹사이트 방문 기록을 삭제하더라도 어떤 사이트를 방문했는지 파악 가능 https://www.hani.co.kr/arti/economy/it/492875.html
구글이 크롬 사용자 개인정보 보호를 위해 서드파이 쿠키 지원 중단 발표
http://it.chosun.com/site/data/html_dir/2020/02/16/2020021600579.html
웹사이트 이용하는 이용자들의 중요 정보 총괄 담당
입장 시 그때그때 생성되는 바코드 쿠키에 부여
쿠키에 저장하기 곤란한 정보들 세션에서 관리
그 정보가 각각 누구의 것인지는 바코드로 구분
세션을 사용하는 사이트에 접속하면
서버에서는 사용자를 구분하기 위한 기한이 짧은 임시키
하나를 브라우저에 보내 쿠키로 저장
사용자의 중요 정보 서버의 메모리나 데이터베이스에 저장
브라우저가 이 사이트의 페이지들을 접속할 때마다
http 요청에 임시키가 담긴 쿠키를 실어서 전송
서버 그 키를 보고 개인을 인식 ->개인의 정보들을 가공해서 응답으로 제공
서버에서는 세션의 로그인 정보를 갖고 있지만 개인을 증명할 세션 아이디가 쿠키 보관함에 존재
사용자나 다른 누군가에게 노출되어서는 안되는 서비스 제공자가 직접 관리해야 할 정보들은 세션으로 서버 안에서 세션 남발 -> 접속자가 많을 시 서버에 부하
해커원 플랫폼의 직원 실수로 세션 쿠키가 외부 해커에게 전송-> 해커원 세션 쿠키의 외부 반출을 막은 보안 장치가 마련돼 있지 않았다는 문제-> 해커원 측 다른 사람이 엉뚱한 IP 주소에서 같은 세션 활용 불가능 • 시도 시 세션 종료 하는 조취
https://www.boannews.com/media/view.asp?idx=85035&kind=
유튜브 크리에이터들의 시스템에 정보 탈취형 멀웨어 감염-> 크리에이터들의 세션 쿠키들과 크리덴셜들이 다수 유출
https://www.boannews.com/media/view.asp?idx=101756&kind=
컴퓨터의 메모리 부분이나 안드로이드 등 다양한 곳에 사용
부를 때 비용이 드는 데이터를 한 번 가져온 후 임시 저장
웹 캐시는 이미지 등의 정보를 불러올 때 데이터 사용량도 발생하고 시간도 들기 때문에 사용자가 여러 번 방문할 법한 사이트에서는 한 번 받아온 데이터를 사용자의 컴퓨터 또는 중간 역할을 하는 서버에 저장
캐시 : 컴퓨터의 성능을 좋게 하게 위하여 데이터와 명령어들을 일시적으로 저장하는 기억 장소
http://www.jbnews.com/news/articleView.html?idxno=1267025
#challenge 01

첫 화면에 level ; 1 라는 문구와 함께 적혀 있는
view-source를 클릭하면 해당 페이지의 소스코드를 볼 수 있다.

소스코드를 확인해보면, 쿠키의 값은 1로 설정돼있고 만료시간은 time()+86400*30 임을 알 수 있다.
만약 쿠키 값이 4보다 크면 쿠키 값은 1로 돌아가게 되고 쿠키 값이 3보다 크면 solve(1) 이 실행된다.
->3과 4 사이의 수를 쿠키 값으로 입력해주어야 한다.

chrome 웹스토어에서 설치한 EditThisCookie를 페이지 상단 오른쪽에서 쿠키 표시를 찾아 클릭해 실행시켜주면, 값이 1 로 설정되어있는 걸 확인할 수 있다.
이를 3-4 사이 임의의 수로 변경해준다.

입력 후 새로고침을 해주면 화면 상 level 이 설정해준 수로 변경되며 문제가 풀린 걸 확인 할 수 있다.
#challenge 19

첫 화면에서 id 와 admin 제출 버튼을 볼 수 있다.

소스코드 상에서 문제 풀이에 얻을 수 있는 힌트는 발견하지 못했다. id 의 최대길이와 사이즈가 5이고 value 가 admin임을 알 수 있다.

위의 상태에서 제출을 누르면 url 에서 ?id=admin 인 id 페이지로
이동해 you are not admin 라는 문구가 뜨는 것을 확인할 수 있다.
문구를 통해 admin으로 로그인해야 함을 유추할 수 있다.

id를 admin으로 제출하기 위해 admin 사이에 공백을 넣어줬더니 hello admin 이라는 문구와 함께 문제가 풀렸다.
#다른 방식의 문제풀이

URL의 id 값에 a 를 입력해주면 다음과 같은 쿠키 값을 얻을 수 있다.
MGNjMTc1YjljMGYxYjZhODMxYzM5OWUyNjk3NzI2NjE%3D
URL 인코딩: URL에서 사용할 수 없는 문자를 변환하는 javascript 프로세스
javascript는 기본적으로 %뒤에 사용할 수 없는 문자의 문자 코드를 16진수로 변환해 연결.
URL은 공백을 포함할 수 없어 URL 인코딩은 일반적으로 + 또는 %20으로 변경 ∴%3D-> URL 인코딩 유추 가능

들어가 있는 쿠키 값을 URL 디코딩하면 MGNjMTc1YjljMGYxYjZhODMxYzM5OWUyNjk3NzI2NjE= 의 값이 나온다.
베이스 64 인코딩: 2진 데이터를 아스키 텍스트로 변환하거나 그 반대로 변환 하는 인코딩 방법. 원본 데이터가 2바이트 남으면 끝에 =를 붙이고, 1바이트 남으면 끝에 ==를 붙인다.

해당 URL 디코딩 값을 base64 디코딩하면 0cc175b9c0f1b6a831c399e269772661 값
이 나온다. 32자리수-> MD5 해시값 유추
MD5: 임의의 길이의 값을 입력받아서 128비트 길이의 해시값을 출력하는 알고리즘
d~n 까지의 문자를 MD5 해시함수로 값을 변환하면
d: 8277e0910d750195b448797616e091ad
m: 6f8f57715090da2632453988d9a1501b
i: 865c0c0b4ab0e063e5caa3387c1a8741
n: 7b8b965ad4bca0e41ab51de7b31363a1
MD5 변환 사이트: https://dencode.com/

MD5로 변환한 admin 값을 합친 후 Base64 인코딩 -> URL 인코딩을 거친다.
인코딩&디코딩 사이트: http://www.hipenpal.com/tool/url-encode-and-decode-in-korean.php

인코딩을 거친 값을 쿠키 값으로 입력해주면 문제가 풀리게 된다.
#challenge 24

첫 화면에서 client ip 값이 5.138.1078 이고 ip 값이 틀렸다는 걸 알 수 있다.

소스코드를 살펴보면 만약 ip 값이 127.0.0.1 이면 solve(24) 가 실행된다.
또 만약 $REMOTE_ADDR 값이 존재한다면 str_replace 함수에서 “..”-> “.” 로, “12”, “7.”, “0.” 는 모두 공백으로 변환하는 걸 알 수 있다.
따라서 ip 값에 127.0.0.1을 입력하려면 112277...00...00...1 와 같이 변환되는 걸 고려하며 입력해야한다.

REMOTE_ADDR 라는 이름으로 112277...00...00...1 값을 갖는 쿠키를 만들어주면 문제가 풀린다.
SameSite 는 Strict, Host only 와 세션을 체크하면 쿠키가 생성된다.
새로고침을 해주면 문제가 풀리게 되며, client ip 가 127.0.0.1 로 수정된 것을 확인할 수 있다.