정보보호 - 9(websecurity)

박승현·2023년 11월 30일
0

정보보호

목록 보기
9/11
post-thumbnail

Websecurity(1)


http, web

  • web : TCP에서 동작
    • HTTP로 동작한다
    • HTTP는 stateless 프로토콜임
      • http로 페이지를 하나보고 다른 페이지로 갈때 하이퍼링크를 누르면 새로운 http를 읽어들어야 함(행동행동이 연관이 없어서 stateless)
    • stateless는 웹 쇼핑 같은 기능을 구현이 불가능해서 http에 쿠키가 세션을 붙여서 사용하는데 공격자가 이 쿠키, 세션을 훔치는 공격이 존재함

Web shell

  • MITRE : 전세계의 취약점을 공통된 이름으로 정리하는 단체
    CWE-434로 web shell을 구분지음
  • web shell은 웹 서버의 exe파일을 클라이언트가 접속할때 발생
    • 공격자가 올린 파일(지원서로 위장한 exe 파일 등)을 서버가 지원서로 착각해 디렉토리에 저장하고 공격자가 서버의 디렉토리에 접속해서 실행시키는 공격
    • exe파일을 보통 shell실행 코드로 보내서 web shell공격이라고 부름(shell이 실행되면 취약하기 떄문)
  • countermeasure
    • 파일을 업로드 하지 못하게 하면 차단되지만 업로드를 해야만 하는 경우 확장자명이나 파일 크기의 제한을 두는 방법으로 방어
    • 디렉토리의 실행권한을 제거

  • stateless인 http를 state를 유지하고 싶어서 만듬(보안을 고려하지 않았음)
  • 보안을 고려한 쿠키 생성방법
    • 쿠키에 integrity체크를 위한 T(태그)를 붙임
    • 서버에서 쿠키를 생성할때 키 k와 원래 쿠키의 내용인 value를 concat후 해쉬, 이걸 T로 사용

Session management

  • 이것도 http의 state를 부여하고 싶어서 만듬
  • 세션을 만들고 페킷을 주고 받을때 위에서 referer는 클라이언트가 서버로 GET명령을 실행할때 이전에 접속했던 사이트 주소를 같이 보내질수 있다(보안측면에서 안좋을 수 있음)
  • referer필드로 해커가 클라이언트인척 하는지 체크할 수도 있다는 측면도 있음

  • Session hijecking
    • http레벨에서의 하이제킹
    • 공격자가 정상적인 클라이언트와 서버의 통신 과정에서 쿠키값이나 세션정보를 빼와 클라이언트인척 서버에 명령어를 내리고 서버가 응답해주는 것
  • SID를 만들때 규칙적으로 하지말고, 서버만아는 k로 해쉬 만들기, http는 application단계인데 ip주소도 사용해서 보안을 강화할수도 있음

XSS(Cross-Site-Scripting)

  • 피해자가 클라이언트
  • CEW-79라고 이름 지어져있음
  • 어떤 입력이 들어왔을때 입력내용중 공격내용이 들어오면 무시해줘야함 -> 이게 Newtralization
  • 데이터는 보통 data와 control로 나누는데 100+100을 실행한다고 하면 100,100을 data +를 control로 보는 것, write,read등의 명령어도 control임
  • user의 인풋중 control 부분을 잘 처리하지(newtralization)하지 못하게 하는것이 XSS
  • code injection이라고도 볼 수 있음


  • 정상적이면 클라이언트가 웹 서버에 접속하면 alert등의 control명령어가 실행됨
  • Persistent XSS
    • 공격자가 웹 서버에 악의적인 control 명령어(쿠키 정보를 어디로 보내라 등의)가 들어간 글을 작성함
    • 유저가 게시글을 읽으면 명령어가 실행됨
  • 게시글이 서버에 저장되어있다해서 Persistent라고 함

  • Non-persistent XSS(reflected xss)
    • 주로 URL 파라미터(특히 GET 방식)에 스크립트를 넣어 서버에 저장하지 않고 그 즉시 스크립트를 만드는 방식 공격자가 HTTP 요청에 악성 콘텐츠를 주입하면 그 결과가 사용자에게 반사되는 형태

  • sanitization
    • 입력부분에서 유해한 부분을 거부하거나 미리 지정한 문자로 치환하는 방법
  • 그냥 script를 전부 사용하지 못하게 할수도있음(서비스보단 아주 강한 보안이 필요할경우)

Websecurity(2)


CSRF(Cross-Site Request Forgery)

  • one-click attack or sessin riding이라고도 부름
  • 피해자가 서버임
  • 공격자가 서버가 신뢰하는 유저가 명령어를 서버에게 실행하도록 함

  • 클라이언트가 비밀번호를 바꾸는 명령어를 활용한 공격
    • 이전 비밀번호를 입력하지 않는 경우 -> CSRF에 취약
    • 공격자가 일단 쿠키나 세션정보를 탈취했다고 가정(그래서 일반적으로 CSRF 이전에 XSS로 이것을 달성함)
      • 이 쿠키를 사용해서 공격해도되고 그냥 XSS로 바로 실행하게도 함
    • 공격자가 클라이언트가 악성 명령어를 서버에게 실행하게 하면 서버는 이것을 믿어 실행해주면서 문제가 발생
    • 이때 명령어를 비밀번호 변경 명령어를 실행하는 것
      • 위와같은 멸령어에 기존 명령어의 입력이 들어가지 않으면 위같은 쿼리를 예측당하기 쉬워 취약한거임
    • 클라이언트가 서버 관리자라고 가정하면 매우 치명적이게 됨 그 비밀번호를 공격자가 알게되기 때문

SQL Injection

  • SQL 쿼리에 입력되는 데이터의 Sanitize를 실패한 것
  • 이것도 code injection
  • Injection : 데이터가 아닌 어떤 control명령어를 강제로 주입하는 형태

  • SQL명령어
  • 웹에서 빈칸에 입력하는 내용이 sql쿼리문에 들어가서 실행됨
  • 저 칸에 다른 어떤 명령어가 실행되도록 입력하면 sql쿼리에서 변수 대신 명령어 값이 들어가고 이상한 명령어가 실행되게됨
  • id또는 password에 or '1=1' --를 입력한 경우?
    • sql에서 --는 주석임
    • 저러면 id,password에 상관없이 모든 id,password를 가져오게됨
  • select말고 다른 명령어를 사용하면 더 치명적일 수 있음
  • Countermeasure
    • ','',/,; 등의 특수문자를 사용 못하게
    • 에러 메시지를 보여주지 말기
    • 권한부여를 제한적으로

Insecure Direct Object Reference

  • 링크를 눌러서 정상적으로 접근해야 하는데 url을 찍어서 맞추는것
  • 이런식으로 많이 시도함
  • 그래서 admin, manager권한을 접속할때 잘 관리해야함
    • 특정 ip에서 접근 가능하게 하는식으로

Vulnerability Scanner

  • 웹의 취약점을 파악해주는 도구
  • 취약한 공격방법을 알려줌

OWSAP


단어

  • SBOM
    • 개발자들은 소프트웨어의 각 부분에 대한 목록을 작성하여 소프트웨어 부품 목록을 구성하고, 이를 통해 보안 취약점을 식별하고 관리할 수 있습니다.
  • Dark Web, Tor, Onion Routing
    • onion routing -> Dark web으로 가기위한 페킷에 p2p를 계속 이어 목적지 ip를 계속 쌓는 것 이를 위해 특별한 브라우저가 필요한데 이게 Tor
  • FDS
    • 신용카드 정보등이 엉뚱한 곳에서 결제가 되는 등을 추적하는것
  • IT,ICT vs OT CPS
    • OT CPS : 인터넷 환경을 끊고 물리적 프로세스로 제어
    • 인터넷이 끊어서 보안이 완벽하다 생각했지만 이란 핵발전소가 USB로 악성코드 감염이 된 사례가 있음
  • APT
    • 긴 시간을 가지고 집요하게 공격하는 방식
  • 사회공학적 기법
    • 사회적으로 사람을 이용하는 것
  • spear phising
    • 피싱 공격, 이메일이나 문자등
  • MITRE
    • 공격의 단계를 체계를 만들어 테이블로 만듬, 보안 대첵을 개발할때 사용
  • BCP
    • 백업 센터
  • 제로데이 취약점
    • 아직 대첵이 발견되지 않은 취약점
  • 제로트러스트
    • 서버에서 접근제어 정책을 두는것
  • SOAR(Security Orchestration, Automation and Response)
    • 보안 사건이 발생하면 기록을 해두고 이를 활용해 대응 프로세스를 자동으로 실행하도록 하는 것
profile
KMU SW

0개의 댓글