주통기반 취약점 별 공격 시나리오 생각 해보기_2

Peroro·2023년 7월 4일
0
post-custom-banner

악성 콘텐츠

  • 파일 업로드 취약점과 비슷한 취약점이지만, 이 취약점의 경우 파일의 확장자를 검사하는 로직이 존재하는지 확인하는 항목이다.
  • .exe .avi와 같이 악성코드가 포함되어 실행될 때 문제가 될 수 있다.
  • 이러한 취약점이 존재하는 경우, 워너크라이와 같은 랜섬웨어를 업로드하고 실행해 컴퓨터 데이터를 인질로 현금을 요구하는 시나리오가 존재할 수 있다고 생각한다.

크로스사이트 스크립팅(XSS)

  • XSS의 경우 악의적인 스크립트 코드를 넣어, 피해자 컴퓨터(웹 브라우저)에서 실행되게 만드는 공격이다.
  • 사용자의 Session ID를 탈취하거나 키로거를 삽입해 원하는 데이터를 가져오는 시나리오가 가능하다.

약한 문자열 강도

  • 웹 사이트에서 취약한 패스워드로 회원가입이 가능할 경우, 공격자가 추측 및 주변 정보를 수집해 작성한 사전 파일로 대입을 시도해 사용자 계정을 탈취할 수 있는 취약점을 말한다.
  • 해당 취약점은 사람들이 자주 사용하거나 쉬운 아이디, 패스워드를 대입하거나, 일정 횟수 이상 인증 실패시 로그인이 제한되는지를 확인한다.
  • 해당 취약점은 취약한 계정이나 패스워드를 등록하지 못하도록 패스워드 규정이 반영된 체크 로직을 만든다.
  • 해당 취약점이 존재할 경우, 사람들이 많이 사용하는 아이디와 패스워드의 조합으로 로그인을 시도할 수 있다.

불충분한 인증

  • 해당 취약점은 중요 페이지 접근 시 추가 인증이 없는 경우를 말한다. 예를 들자면 개인정보 변경과 같이 계정에 큰 영향을 주는 페이지에 접근을 할 때, 재인증을 요구한다.
  • 해당 취약점이 존재하는 경우, CSRF와 같은 다른 취약점에 쉽게 공격을 받을 수 있다는 점이 있다. 재인증을 받아야 이러한 공격을 예방할 수 있다.

취약한 패스워드 복구

  • 패스워드 복구 시 패스워드가 웹 사이트 화면에 바로 출력되는 취약점을 말한다.
  • 패스워드가 노출된다면 공격자가 아이디, 이름, 이메일 주소와 같은 쉽게 찾을 수 있는 개인 정보들을 이용해 패스워드를 찾을 수 있어 문제가 될 수 있다.
  • 이를 조치하기 위해서 인증된 사용자 메일이나 SMS에서만 재설정된 패스워드를 확인할 수 있도록 조치해야 한다.

크로스사이트 리퀘스트 변조

  •  CSRF는 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위를 특정 웹 사이트에 요청하게 하는 취약점이다.
  • 이 공격의 경우 XSS 공격과 함께 사용되는데 웹페이지를 보는 것만으로도 개인정보나 비밀번호를 변경하도록 웹페이지에 요청하게 만들 수 있다.

세션 예측

  • 단순한 방법으로 생성되는 Session ID를 예측해 세션 탈취가 가능한 취약점이다.
  • 해당 취약점을 이용하면 다른 사람의 Session ID를 예측해 계정에 접속할 수 있다.
  • 해당 취약점을 막기 위해서 Session ID를 추측 불가능하도록 난수화하는 것이 필요하다.

불충분한 인가

  • 중요 페이지에 접근 권한에 대한 검증 로직이 제대로 구현되지 않은 취약점을 말한다.
  • 이 경우 비인가자가 URL에 접속해 중요페이지에 접근해 민감한 정보 열람 및 변조가 가능하다.
  • 해당 취약점은 접근 권한에 대한 검증 로직을 제대로 구현하는 것으로 막을 수 있다.

불충분한 세션 만료

  • 해당 취약점은 세션 종료 시간이 설정되지 않아 세션 재사용이 가능한 취약점을 말한다.
  • 해당 취약점은 세션 종료 시간이 설정되어 있다면 세션이 설령 탈취가 되었더라도 세션 만료를 통해 어느정도 방어가 가능하지만, 설정되어 있지 않다면 언제든 비정상적 접근이 가능하게 만들기 때문에 문제가 된다.
  • etc/php.ini 파일에서 이를 설정가능하다.
session.gc_probability = 1
  • session.gc_divisor = 1000
  • session.gc_maxlifetime = 1440

세션 고정

  • 해당 취약점은 사용자 로그인 시 항상 일정하게 고정된 Session ID 값을 발행하는 취약점이다.
  • 항상 일정하게 고정된 Session ID가 발행되는 경우 Session Id를 탈취되었을 때 비인가자의 접근 및 권한 우회가 가능해진다.
  • 이를 해결하기 위해서는 로그인할 때마다 예측 불가능한 새로운 Session ID를 발급하도록 하고 기존 Session ID를 파기해야 한다.

자동화 공격

  • 해당 취약점은 로그인 시도, 게시글 등록, SMS 발승 과 같은 특정 프로세스에 대한 반복적인 요청시 통제가 안되는 취약점이다.
  • 로그인 시도를 무차별 대입 공격으로 사용자 계정을 탈취할 수 있고, 게시글 등록, SMS 발송과 같은 방법으로 웹 애플리케이션 자원을 고갈 시킬 수도 있다.
  • 이를 해결하기 위해서 캡차와 같은 방법으로 자동화 공격을 막거나, 지연시킬 수 있다.
profile
오늘 공부한 것을 올리는 공간 / 일주일에 글 3개 / 블로그 이전 : https://perorochan321.tistory.com/
post-custom-banner

0개의 댓글