선릉역 1번 출구

[시스템 보안] - 클라이언트 보안 본문

Hacking & Security/자격증

[시스템 보안] - 클라이언트 보안

choideu 2023. 1. 9. 22:46

악성 소프트웨어
- 개발자가 의도적으로 사용자가 원하지 않는 기능을 프로그램에 포함시킴
- 프로그램 자체의 오류로 인해 사용자가 원하지 않는 시스템 충돌, 프로그램 중단, 개인 정보 수집, 네트워크 포트 개방의 결과 발생
- 기밀성, 가용성, 무결성 등의 보안속성 침해 -> 해당 프로그램은 유해한 프로그램으로 간주됨
- 의도적으로 컴퓨터의 보안속성을 침해할 목적으로 작성된 프로그램은 악성 프로그램

구분 컴퓨터 바이러스 트로이 목마
자기 복제 있음 없음 매우 강함
형태 파일이나 부트섹터 등 감염 대상 필요 유틸리티로 위장하거나 유틸리티 안에 코드 형태로 삽입 독자적으로 존재
전파 경로 사용자가 감염된 파일을 옮김 사용자가 내려 받음 네트워크를 통해 스스로 전파
주요 증상 해당 컴퓨터의 시스템 및 파일 손상 PC 성능 저하, 좀비 PC 네트워크 성능 저하


악성 소프트웨어 분류
1.
독립형: 호스트를 필요로 하지 않음, 자체적으로 구동될 수 있는 프로그램으로 운영체제에 의해 스케줄되어 구동될 수 있음
기생형: 호스트 프로그램을 필요로 함, 독립적으로 존재 x
2.
복제 여부
바이러스성: 웜, 바이러스
비-바이러스성: 트로이목마, 백도어
*웜은 바이러스와 달리 숙주 파일 없이 자체 실행코드를 이용해 네트워크를 통하여 자기 자신을 복제해 전파 시킴(다른 프로그램을 감염시키지 않음), 바이러스의 경우 정상적인 프로그램이나 데이터를 파괴할 목적으로 시스템 부터, 메모리, 파일 영역 등에 기생하다가 다른 프로그램을 감염시킴

바이러스(virus)

  • 컴퓨터 바이러스는 다른 프로그램을 변형시켜 "감염"시키는 프로그램 단편
  • 실제로 자신을 변형시켜 실행 가능한 형태임
  • 자신을 완벽하게 복제할 수 있는 비법을 가진 명령 코드를 가지고 있음

세대별 분류(https://www.ahnlab.com/kr/site/securityinfo/secunews/secuNewsView.do?menu_dist=3&seq=636)

  • 1세대 원시형 바이러스
    • 코드의 변형이나 변화 없이 고정된 크기를 가지며, 주로 기억장소에 상주해 부트 영역이나 파일을 감염시킴
  • 2세대 암호화 바이러스
    • 백신 프로그램이 진단할 수 없도록 바이러스 프로그램의 일부 또는 대부분을 암호화 시켜 저장
  • 3세대 은폐형 바이러스
    • 기억장소에 존재하면서 감염된 파일의 길이가 증가하지 않은 것처럼 보이게 함
    • 백신 프로그램이 감염된 부분을 읽으려 할 때, 감염되기 전의 내용을 보여줌
  • 4세대 갑옷형 바이러스
    • 백신 프로그램 제작자에게 공격의 화살을 돌려 백신 프로그램으로부터 숨기기보다 여러 단계의 암호화와 다양한 기법을 동원해 바이러스 분석을 어렵게 하고 백신 프로그램 개발을 지연시킴
  • 5세대 매크로 바이러스
    • 매크로 기능이 있는 다양한 프로그램에서 활동
    • 운영체제(OS)와 관계없이 동작하는 응용 프로그램 내부에서 동작
    • 플랫폼과 무관하게 사용
    • 문서를 감염시키고  코드의 실행부분은 감염시키지 않음
    • 쉽게 퍼지고 가장 보편적인 방법은 전자메일임
    • 실행 파일(com or exe)을 다룰 때보다 주의를 덜 하기 때문에 피해가 큼
    • adobe의 PDF문서는 자바스크립트 같은 다양한 형태의 스크립트를 포함할 수 있음

악성 매크로는 문서가 열리거나 닫힐 때 자동으로 실행되는 형태를 가짐

*매크로 언어란?: 컴퓨터 과학 분야에서 정해진 순서에 따라 어떻게 특정한 입력 시퀀스 (문자열을 가리키기도 함)가 출력 시퀀스 (이 또한 문자열을 가리키기도 함)로 매핑되어야 하는지를 정의하는 규칙이나 패턴으로 워드 프로세서와 같은 응용소프트웨어안에 심어둔 언어를 의미함

바이러스 방지책가장 좋은 해결책은 예방, 다음은 아래를 수행할 능력을 갖추는 것

  • 탐지(detection): 감염되면 바이러스가 있는지 판단하고 위치 파악
  • 식별(identification): 탐지되면 프로그램을 감염시킨 특정 바이러스 식별
  • 제거(removal): 바이러스를 모든 감염된 시스템에서 제거해 더 이상 퍼지지 않도록 함

Antivirus Filtering Method(바이러스 검출)

  • signature scanning
    • 특정 바이러스만이 가진 시그니처를 찾아내는 것
  • behavioral virus scanning
    • 바이러스가 수행 중에 어떤 행동을 보이는지 추적하는 방법

바이러스 예방

  1. 신뢰성 있는 업체에서 구입한 소프트웨어 사용
  2. 안전한 첨부파일만 열기
  3. 바이러스 스캐너 이용한 정기적 점검
  4. windows script host, activeX, vbscript, javascript 비활성화
  5. 현업의 업무를 심하게 방해하지 않는 수준에서 악성코드에 대응하는 보안 정책 수립


웜(worm)

  • 자신을 복제해 네트워크 연결을 통해 컴퓨터에서 컴퓨터로 그 복제본을 전송
  • 한 컴퓨터에 도착하게 되면 웜은 복제를 시작하고 다시 확산되기 시작
  • 웜은 다른 시스템에 직접적인 영향을 미치지 않는다는 점에서 트로이목마와 구분됨
  • 다른 프로그램에 기생하지 않는다는 점에서 바이러스와 구분됨(기억장소 내에서 자기 자신을 계속적으로 증식하는 프로그램)
https://tkdrms568.tistory.com/62

감염된 호스트 수는 지수적으로 증가하다가 시간이 경과하면서, 감염된 호스트는 이미 감염된 호스틀 공격하는데 시간을 허비하여 감염 속도가 줄어듦

웜의 실행

  • 전파된 시스템에서 시스템의 접근 권한 확보와 자신의 실행을 위해 버퍼 오버플로우, 포맷 스트링, SQL 삽입과 같은 공격 가능한 시스템의 취약점을 이용함
  • 시스템의 취약점을 이용해 관리자 몰래 시스템 접근 권한 확보에 필요한 코드를 실행한 후 접근 권한이 확보되면, 나머지 코드를 실행하여 의도된 기능을 수행함
  • ex) 시스템 접근 권한이 확보되면 웜을 백도어로 설치

웜의 대응책
바이러스의 대처 기술과 매우 유사
웜 확산이 이루어지면 네트워크 활동이 활발해지는 특성 -> 네트워크 활동과 사용을 모니터링하여 기본적인 방어형태를 갖출 수 있음

  • 네트워크 기반 웜 방어
    • 웜 모니터링 소프트웨어
      • 진입 모니터 
      • 진출 모니터


트로이목마(trojan horse)

  • 자신의 실체를 드러내지 않으면서 마치 다른 프로그램의 한 유형인 것처럼 가장하여 활동
    • 자신의 실체를 숨기고 다른 프로그램의 한 종류인 것처럼 가장
  • 유용하거나 재미있는 소프트웨어로 가장해 설치하게 함으로써 다른 시스템으로 침투하는 악성 소프트웨어
  • 자기 복제를 하지 않으며 다른 파일을 감염시키거나 변경시키지 않음
  • 트로이목마가 포함된 프로그램이 실행되면 시스템은 공격자에게 시스템을 통제할 수 있는 권한을 부여함

특징
데이터 파괴

트로이목마의 대응책

  • 신뢰하지 않는 것 설치 x
  • 취약점을 보완하는 패치를 신속하게 적용


스파이웨어(spyware)

  • 민감한 정보를 수집해 주기적으로 원격지의 특정한 서버에 보내는 프로그램


애드웨어(adware)

  • 자동으로 광고를 생성하는 소프트웨어


인터넷 활용 보안
브라우징 보안
- 사이트에 따라 서로 다른 보안 요구사항이 필요할 때가 있음
- 다양한 보안영역을 지원하고 각 영역에 대한 보안 요구사항을 사용자가 정의할 수 있게 함
- 사용 가능한 영역

인터넷 옵션의 일부분
  • 인터넷: 다른 세 가지 영역에 포함되지 않은 웹사이트를 위한 영역
  • 로컬 인트라넷: 사용자의 컴퓨터와 네트워크상에 있는 웹사이트를 위한 영역
  • 신뢰할 수 있는 사이트: 사용자가 안전한 콘텐츠를 갖고 있다고 신뢰하는 페이지를 설정하는 웹사이트를 위한 영역
  • 제한된 사이트: 어떤 이유에서든 신뢰할 수 없다고 판단되는 웹사이트를 위한 영역

쿠키(cookie)
구조

https://ychcom.tistory.com/entry/%EC%BF%A0%ED%82%A4Cookie%EB%9E%80
  • 4개의 속성과 하나의 데이터를 가지는 구조체
  • 서버는 응답에 Set-Cookie 헤더를 포함시키는 방식으로 쿠키를 설정함
  • 쿠키는 이름-값 쌍과 선택적인 속성으로 구성됨
  • 값을 추가할 때는 세미콜론(;)을 구분자로 사용
Set-Cookie: name=value; expires=[Date]; domain=[Domain]; path=[Path]; [secure]
  • 유효기간
  • 패스: 쿠키는 쿠키 데이터를 생성한 웹 페이지에서만 그 데이터를 읽을 수 있지만 Path 항목을 지정해주면 해당 Path 이하에서는 그 쿠키 데이터를 공유할 수 있음
  • 도메인: 패스 속성을 확장한 것으로 패스가 하나의 사이트에서 쿠키 데이터를 읽고 쓰는 권한이라면, 도메인은 도메인 단위에서 쿠키 데이터를 읽고 쓰는 권한을 설정함

HTTP cookie secure attribute

  1. httpOnly
    1. Set-Cookie 응답 헤더에 설정하는 속성으로 클라이언트에서 스크립트를 통해 해당 쿠키에 접근하는 것을 차단해주는 속성
    2. XSS 공격에 대응하기 위해 사용
  2. secure 
    1. Set-Cookie 응답 헤더에 설정하는 속성으로 클라이언트에서 HTTPS 통신일 경우에만 쿠키를 전송함

*쿠키는 텍스트 파일로 실행되지 않음 -> 쿠키는 단순 정보를 담고 있는 파일로 바이러스 전파가 불가능

쿠키 취약점
- XSS 공격
- 스니핑(암호화 통신이 아닐 경우 평문 노출)
- 공용 PC에서의 쿠키값 유출

세션(session)

  • 개별 클라이언트 상태정보를 서버에 저장하는 기술
  • 개별 클라이언트 세션을 식별하기 위해 세션ID를 부여하고 세션 ID는 세션 쿠키를 이용해 클라이언트와 서버 간에 주고 받음
  • 세션 ID 정보 탈취 = HTTP 세션 하이재킹

안전한 세션 ID 관리

  • 생성
    • 세션 ID는 안전한 서버에서 생성 후 사용
    • 세션 ID는 최소 128bit 길이로 생성되어야 하고, 안전한 난수 알고리즘을 적용해 예측 불가능해야함
  • 사용
    • URL rewrite 기능 사용시 세션 ID가 URL에 노출될 수 있어 사용하지 않도록 설계
  • 폐기
    • 일정 시간 주기적으로 세션 ID를 재할당 하도록 설계




참고 사이트
https://tkdrms568.tistory.com/62

기사자격증(알기사, 클라이언트 보안)

악성 소프트웨어 - 개발자가 의도적으로 사용자가 원하지 않는 기능을 컴퓨터 프로그램에 포함시키거나 프로그램 자체의 오류로 인해 사용자가 원치 않는 시스템 충돌, 프로그램 중단, 개인정

tkdrms568.tistory.com

https://interconnection.tistory.com/74

Comments