인터넷

프로토콜

TCP/IP

RFC

HTTP

DNS

인터넷 거버넌스

웹 해킹 기초

웹 해킹 발전 배경

  1. 1990년대 중반 방화벽 및 IDS 같은 보안 장비
  2. 닷컴 열풍이 불고 웹 취약점 연구도 진행
  3. 2000년 중반 거의 모든 시스템이 방화벽으로 80번 포트(HTTP)만 열림
  4. 이에 따라 시트템과 네트워크 해킹보다 웹 해킹을 더 많이 연구

해킹 과정

  1. 공격대상선정: 주로 방문자가 많은 / 도메인을 모두 검색 후 최약한 곳
  2. 정보수집: 개발 언어, 기능, 서버 종류 확인 / 최약점이 가장 많고 영향력이 큰곳(게시판, 자료실) / 개발자 도구로 사이트 구조 파악
  3. 취약점분석
  4. 공격
  5. Report, Defacement, 흔적제거

정보수집 및 취약점 분석 툴

검색엔진을 이용한 정보 수집

OWASP Top 10

인증 기술과 접근 통제

인증기술

  1. 알고 있는것 - 패스워드, 주민등록번호, i-PIN
  2. 가지고 있는것 - 신분증, 여권, 신용카드, 인증서, Key
  3. 그 자체 - 홍채, 지문, 각막, 얼굴, 목소리, 행동, 서명
  4. 위치하는 곳 - 지역, IP 주소

패스워드 취약성

접근통제

수직적 접근 통제

수평적 접근 통제

비즈니스 로직 접근 통제

SQL 인젝션 공격

SQL

SQL 인젝션 공격

XPath 삽입 공격

XSS 공격

XSS 공격 기본 원리

  1. A가 B에게 악성 코드가 담긴 메일을 보냄
  2. B가 메일을 읽으면 B의 쿠키가 철수에게 전달됨
  3. A가 B의 쿠키로 B의 메일을 훔쳐봄

웹의 사용자 인증 방법

  1. 아이디, 패스워드 기반으로 사용자 신원 확인
  2. 신원 확인되면 사용자에게 고유한 값을 전달
  3. 사용자는 고유한 값으로 사이트 이용

쿠키

XSS

XSS 공격 유형

Stored XSS

Reflected XSS

CSRF

소스 코드 취약점 분석

취약점 종류

입력값 검증 취약점

세션 처리 및 접근 통제 취야

코드 내 중요 정보 노출 취약점

프로그래밍 언어별 주요 취약점

자바

함수 설명
getParameter URL에서 사용하는 변수값과 POST 요청에서 전달되는 값 처리
getHeader HTTP 헤더에서 전달받은 값을 처리할 때 사용
getRequestURL URL에서 전달받은 값을 처리
getCookies 쿠키 값을 받는 데 사용
setAttribute 현재 세션 내에 데이터를 저장할 때 사용
getAttribute 현재 세션 내에 저장된 데이터를 가져오는데 사용
FileInputStream 파일을 읽거나 쓰는데 사용
createStatement 데이터베이스에 접근

ASP.NET

함수 설명
Params URL에 포함된 인자값, POST 요청의 본문 등에서 전달되는 값 처리
QueryString 요청 쿼리문에 있는 변수명과 값의 집합 처리
Url, RawUrl URL에 포함된 값을 처리하는데 사용
UrlReferer 요청 HTTP Referer 헤더에 정의된 URL 정보를 가져옴
InputStream 클라이언트로부터 받은 요청을 그대로 반환하거나 다른 API에서 받아온 정보를 처리
Add 세션에 새로운 항목을 추가
Item 해당 Set에 지정한 항목의 값을 가져오거나 설정
Keys 해당 Set의 모든 항목명을 반환
FileStream 파일을 읽거나 쓰는 데 사용
SqlCommand 데이터베이스에 접근

웹 취약점 분석 도구

브라우저 개발자 도구

버프슈트

웹 스캐너들

SNS 보안

SNS

SNS 보안 위협과 대응 방안

악성 소프트웨어(Malware)

대응방안(개인)

대응방안(기업)

피싱

이블 트윈 어택

신원도용

웹 & 웹서버 보안

사용자 인증 측면에서

아파치 보안

리눅스 환경에서 사용하는 걸로 가정

취약점

dpkg --configure -a # DPKG 설정 파일 세팅(아마 안해도 될듯)
apt-get install apache2 # 아파치 설치
systemctl start apache2 # 아파치 시작
ps -ef | grep apache2 # 아파치 프로세스 보기

# localhost 접속하면 됨

vi apache2.conf # 아파치 설정파일 확인

# /etc/apache2/ports.conf 에서 포트 정보 볼수 있음
# /etc/apache2/sites-available/000-default.conf 아파치 홈 디렉토리 설정
# /etc/apache2/mods-available/dir.conf 기본문서 설정(DirectoryIndex으로)
# apache2.conf에서 Options에 Indexes가 설정되면 디렉터리 리스팅함
# 디렉토리 리스팅이란 하위 디렉토리 및 파일을 전부 볼 수 있는것 > 취약점
# /var/www/html에 test 디렉터리를 생성하여 접속하면 하위 파일을 볼수있음

systemctl restart apache2 # 설정 수정하고 재시작

ln -s /etc /var/www/html/etc # FollowSymLinks 설정 확인
# FollowSymLinks 활성화되면 url과 서버 dir 일치 > 취약점

vi /var/log/apache2/access.log # 아파치 접속 로그 확인
# /etc/apache2/sites-available/000-default.conf 에서 로그 형식 설정 가능

# setEnvIf ?????????????????
# dontlog ???????????????????

# /var/log/apache2/error.log에서 에러 로그 확인

보안 정책, 조직, 솔루션

보안 정책 (피라미드)구조

예를 들어

보안 정책 구분

보안 수준에 따라

ISO 27001

랜섬웨어

사용자의 컴퓨터를 악성코드로 감염시켜 데이터를 암호화하고 돈을 요구하는 공격 방법

랜섬웨어 진화

  1. AIDS 트로이안: 문서화된 최초의 랜섬웨어. 플로피 디스크로 감염
  2. GPCode: 이메일로 감염. 대칭 암호화 알고리즘 사용. 암호화키는 피해자 pc에 보관
  3. CryZip, Archiveus, Krotten: 비대칭 암호화 RSA 알고리즘 사용
  4. Ransome.C: 드라이브 바이 다운로드와 악성 이메일로 감염
  5. Seftad: 마스터 부트 레코드를 변경하여 부팅되지 않게
  6. Ravetom: 감염된 컴퓨터를 잠금
  7. CryptoLocker: 2048비트 RSA사용
  8. CTB Curve-Tor-Bitcoin Locker: ECC로 암호화
  9. Android Defender: 백신 앱으로 위장한 모바일 랜섬웨어. AES 대칭키 방식 사용
  10. Linux.Encoder: GNU/Linux 플랫폼 대상 랜섬웨어로 비트코인 사용
  11. KeRanger: 맥 OS 대상
  12. RaaS(Ransomware-as-a-Service, 서비스형 랜섬웨어): 언더그라운드 마켓에서 쉽게 구매가능하며 사용자 친화적이고 수정하기 쉬움
  13. WannaCry: 2017년에 등장해 전 세계에 큰 피해를 준 대표적인 랜섬웨어. 윈도우 SMB 서버 원격 코드 실행 취약점을 이용. AES를 사용해 각 파일을 다른 키로 암호화한 다음 개별 키를 2048비트 RSA로 다시 암호화.

랜섬웨어 감염 단계

  1. 감염: 공격자가 악성코드를 전달하는 단계
  2. 명령 및 제어 서버와 통신: C&C 서버에서 암호화 키를 받고 중요 정보를 서버로 가져옴
  3. 파괴: 파일을 암호화
  4. 강탈: 파일의 몸값 지불 방식을 사용자에게 보여주고, 제한시간을 표시해 위기감 조성

랜섬웨어 실습

  1. AES 키로 파일 암호화
  2. RSA Public Key로 AES 키 암호화
  3. RSA Private Key로 AES 키 복호화
  4. AES Key로 파일 복호화

사이버 안보

2007년 에스토니아에서 동시 다발적 사이버 공격받고 2008년 탈린 메뉴얼이 만들어짐

경찰청에서는 사이버 범죄를 크게 테러형 범죄와 일반 사이버 번죄로 구분

최근에는 국각 초월하여 발생하면 타크넷 및 암호화폐와 연계하여 발생

사이버 범죄 유형

사이버 테러형 범죄

일반 사이버 범죄

사이버 스파이

특정 집단의 정보를 몰래 빼내어 다른 곳으로 유츌하는 행위

Red October

중국 61398부대

사이버 전쟁

사이버 안보 동향

미국

  1. 1998년 - 주요 기반 시설에 대한 범정부적 보호 체계를 마련
  2. 2001년 - 9.11 테러를 계기로 국토 안보 차원에서 국토안전보장국과 국토안보회의 설립
  3. 2002년 - 사이버 안보를 총괄 책임지는 국토안보부(DHS) 설립
  4. 2009년 - 사이버 공간 정책 리뷰 발표 10가지 과제
  5. 2010년 - 사이버 공간을 제 5의 전장으로 인식, NICE 발표
  6. 2011년 -