Search

웹 공격 기술

11.1 웹 공격 기술

인터넷에서 발생하는 공격 대부분이 웹사이트를 노린 공격입니다.

11.1.1 HTTP에는 보안 기능이 없다.

HTTP에는 구조가 단순한 프로토콜로, SSH와 같은 추가 프로토콜이 필요합니다.

11.1.2 리퀘스트는 클라이언트에서 변조 가능

쿼리나 폼, HTTP 헤더, 쿠키 등을 경유해서 보내져 웹 어플리케이션에 취약성이 있을 경우 공격이 발생합니다.

11.1.3 웹 애플리케이션에 대한 공격 패턴

능동적 공격
SQL 인젝션, OS 커맨드 인젝션 등
수동적 공격
XSS(크로스 사이트 스크립팅), CSRF(크로스 사이트 리퀘스트 포저리)

11.2 출력 값의 이스케이프 미비로 인한 취약성

보안을 위해 대책을 세우는 곳으로 크게 2곳이 있다.
클라이언트에서 체크 : 변조가 가능하기 때문에 대책으로 적합하지 않다.
서버에서 체크

11.2.1 크로스 사이트 스크립팅

공격 방법이 단순하지만, 방어 조치를 해두지 않은 사이트들에겐 치명적이다.
방지 방법
1.
일반적으로 스크립트 삽입 방식을 사용하기 때문에 <,>과 같은 문자를 필터링
2.
문자를 그대로 표시하지 않고, 입력시 문자 참조(HTML entity)로 필터링 하고, 서버에서 브라우저로 전송시 문자를 인코딩
a.
HTML entity : 아스키 문자를 동일한 의미의 HTML 문자로 변경하는 과정 ex)< ⇒ &lt;
3.
라이브러리 사용 : ex)OWASP AntiSamy Project, Lucy XSS
4.
BBCode(Bulletin Board Code) 사용 : HTML과 유사하며 문법도 유사하지만 대괄호를 사용하여 태그를 나타냄
5.
innerHTML 사용 자제 ex)onerror=”alert(’123’)”
6.
쿠키에 HttpOnly 옵션 활성화
a.
비활성화시 스크립트를 통해 쿠키에 접근할 수 있음
7.
Content Security Policy 사용 : 콘텐츠 보안 정책으로 XSS공격을 막기위한 브라우저 보안 계층
사례)
2.
그누보드나 제로보드 구형버전을 사용하는 페이지들에서 해킹 사례 발생 ex) 뽐뿌 등등…

11.2.2 SQL 인젝션

11.2.3 OS 커맨드 인젝션

1.
구글 클라우드에서 테스팅 중 URL 패턴 발견
a.
“https://console.cloud.google.com/home/dashboard?project="name of the project"
2.
파라미터를 조작해 https://console.cloud.google.com/home/dashboard?project="XSS vector" (not vulnerable to XSS) 이러한 내용으로 넣었지만, 문법 오류가 발생
3.
project=; 의 delimiter를 넣었더니 오류가 발생하지 않고, cloud shell이 정상 작동 이후 명령어 인식
4.
이를 통해 공격 가능

11.2.4 HTTP 헤더 인젝션

줄바꿈이 핵심인 공격으로, 이을 추가해 헤더 속성들을 변조할 수 있도록 하는 것
대응 방법 : 헤더에 입력되는 값에 대하여 개행 제거등 유효성 검사를 하며, 헤더가 나눠지는 것을 방지

11.2.5 메일 헤더 인젝션

공격자가 메시지에 추가헤더를 삽입해 의도한 동작을 수행하도록 하는 것인데, 주로 참조표시인 cc나 숨은 참조인 Bcc를 추가해 보내는 메일에 추가적인 메일을 보낼 수 있도록 합니다.
즉 이메일을 보내는데 참조나 숨은 참조 값에 추가해 공격자에게 정보를 제공하도록 한다.

11.2.6 디렉토리 접근 공격

19년 9월 지라 서비스 데스크 데이터센터에서도 발생할 정도로 끊임없이 발전하는 공격
대응 방법 : 입력 확인하기, 모든 파일과 폴더에 엑세스 제한이 있는지 확인하기

11.2.7 리모트 파일 인클루션(RFI)

주로 PHP 어플리케이션에서 발생하는데, 웹 요청의 파라미터 대신에 자신이 관리하는 파일을 지정하도록 한다.
대응 방법 : 지정된 파일만 include 하도록 검증한다(입력값 검증, 화이트 리스트 검증)
http, https과 같은 프로토콜 관련 문자열이나, ../와 같은 디렉터리 공격을 위한 문자열 차단

11.3 웹 서버의 설정이나 설계 미비로 인한 취약성

11.3.1 강제 브라우징

웹 서버 디렉토리의 파일 중 파일이 열람되어 공격에 노출되는 것

11.3.2 부적절한 에러 메시지 처리

로그인 오류나 오류 메시지가 상세히 나타나 파훼법이 드러나 공격에 취약해진다.

11.3.3 오픈 리다이렉트

다른 URL로 강제 리다이렉트 시켜 피싱이나 악성 사이트로 이동시킴

11.4 세션 관리 미비로 인한 취약성

11.4.1 세션 하이잭

다른 사람의 세션을 별도 인증없이 강제로 가로채 통신을 계속하는 것
TCP 연결 하이 재킹
TCP연결 과정에서 해당 연결을 통해 전송되는 순서번호의 시작 순서번호를 임의 번호로 설정하는 대신 일정한 규칙을 가지고 설정. 이를 통해 공격자는 연결 시도를 통해 규칙을 알아 낸 후 순서번호를 추론
→ 대응 : 시작 순서번호를 추론할 수 없도록 만든다.

11.4.2 세션 픽세이션

로그인 시 발급받은 세션 ID가 로그인 전/후 모두 동일하게 사용되어 악의적인 사용자가 세션을 하이재킹하여 위장 접근하는 방식

11.4.3 크로스 사이트 리퀘스트 포저리

웹 페이지에 대한 요청을 위조해 정당한 사용자로 위장하는 방법

11.5 기타

11.5.1 패스워트 크래킹

무작위 대입
레인보우 데이블 : 해시값을 역으로 연산
사전 대입 : 흔히 쓰이는 모든 패스워드를 사용
충돌 : 해시함수를 통해 무작위 패스워드를 입력하여 같은 해시값이 나올 때 까지 반복잡업
혼합 “ 무작위와 사전대입을 합친 방법
사회공학적 : 상대방 실수를 통해 가져오기

11.5.2 클릭 재킹

손상된 웹사이트를 통해 민감한 정보를 수집하도록 사용자를 리다이렉팅하는 방법

11.5.3 Dos 공격

11.5.4 백도어

해킹 프로그램을 상대방 컴퓨터 등에 설치