OWASP TOP 10
OWASP 는 3년에서 4년마다 웹 어플리케이션 취약점 중 가장 영향력있고 위협적인 취약점 10개를 선정하여 발표한다. 최신 업데이트 목록은 2018년에 발표되었다. 현재의 OWASP Top 10 은 다음과 같다.
- Injection
- Broken Authentication
- Sensitive Data Exposure
- XML External Entities (XXE)
- Broken Access control
- Security misconfigurations
- Cross Site Scripting (XSS)
- Insecure Deserialization
- Using Components with known vulnerabilities
- Insufficient logging and monitoring
1. Injection
인젝션은 공격자가 웹 어플리케이션으로 비정상적인 명령어, 쿼리 등을 보내 시스템에 접근할 수 있는 취약점이다. 공격자는 개발자의 의도와는 다른 접근으로 시스템의 데이터를 변조, 수정, 유출하는 악의적인 행동을 할 수 있다. 대표적으로 우리가 흔히 아는 SQL Injection 이 있다. Injection 취약점은 오래전부터 위협적인 취약점으로 알려져 많은 대응 방안이 나왔지만 여전히 이 취약점으로 인한 피해 사례가 발생하고 있다. 그 이유는 계속해서 새로운 Injection 기법이 나오기 때문도 있지만, 기존의 대응 방안을 제대로 수행하지 않고 있다는 점도 있다.
2. Broken Authentication (취약한 인증)
인증 및 세션 관리와 관련된 웹 어플리케이션의 기능이 잘못 구현되어 공격자가 암호, 키 또는 세션 토큰을 위험에 노출시키거나 일시적 또는 영구적으로 다른 사용자의 권한 획득을 위해 악용하도록 허용할 수 있는 취약점이다. 취약한 인증은 웹에서 매우 일반적으로 발견할 수 있으며 여려 유형이 존재한다. 예를 들어, brute force 공격이 허용된다거나, 약한 암호화를 사용하고 있다거나, 세션 ID 를 제대로 관리하지 않는다거나 등이 있다.
3. Sensitive Data Exposure (민감한 데이터 노출)
개인 식별 정보나 신용 정보가 대표적인 민감 데이터라고 할 수 있다. 웹 어플리케이션마다 중요한 민감 데이터를 취급하고 있을 것이며 이를 올바르게 보호하지 않는다면 공격자에게 노출될 수 있다. 민감한 데이터 노출은 저장되어 있는 데이터일 수도 있고 전송중인 데이터일 수도 있다. 데이터를 평문 전송하는 것이 그 예이다. 현재에도 많은 웹 어플리케이션의 암호화되어 있지 않는 평문 데이터들이 공격자에게 노출되어 있을 것이다.
4. XML External Entities (XXE)
취약하게 설정된 XML parser에 의해 공격자가 XML 문서에서 외부 엔티티를 이용하여 공격자가 의도하는 외부 URL 을 실행시킨 뒤, 서버의 로컬파일 정보 등을 출력하거나 DOS 공격을 수행할 수 있는 취약점이다.
5. Broken Access Control (취약한 접근 통제)
인증된 사용자가 수행할 수 있는 작업에 대한 제한이 제대로 적용되어 있지 않다면, 공격자는 이를 악용하여 다른 사용자 계정에 접근하거나 중요 파일 열람, 다른 사용자 데이터 수정, 액세스 권한 변경 등과 같은 악의적인 행위를 할 수 있다. 대표적인 타겟이 바로 관리자 페이지이다. 접근 제한이 제대로 되어 있지 않는 관리자 페이지는 공격자의 공격 루트가 된다. SSH, FTP 와 같이 서버에 액세스할 수 있는 서비스들도 접근 제한이 제대로 되어 있지 않다면 공격자에게 악용될 수 있다.
6. Security Misconfiguration (잘못된 보안 구성)
안전하지 않은 기본 구성, 불완전한 구성 또는 임시 구성, 개방된 클라우드 스토리지, 잘못 구성된 HTTP 헤더 및 민감한 정보가 포함된 자세한 에러 메시지 등으로 인한 취약점이다. 불필요한 기능 (포트, 서비스, 페이지, 계정) 등이 활성화 되어있으면 공격자의 공격루트가 된다. 그리고 자세한 오류 메시지는 Blind SQL Injection 과 같은 공격에 사용될 수 있다. 만약 시스템을 업그레이드 했다면 최신 보안 기능이 비활성화되어 있을 수도 있다.
7. Cross-Site Scripting (XSS)
XSS 는 공격자가 피해자의 브라우저에 악의적인 스크립트를 넣는 공격 기법이다. 공격자는 피해자의 브라우저에 스크립트를 실행하여 사용자 세션 탈취, 웹 사이트 변조, 악의적인 사이트로 이동할 수 있도록 허용할 수 있다.
8. Insecure Deserialization (안전하지 않은 역직렬화)
- 직렬화 : 객체를 직렬화하여 전송 가능한 형태로 만드는 것
- 역직렬화 : 저장된 파일을 읽거나 전송된 스트림 데이터를 읽어 원래 객체의 형태로 복원하는 것
데이터를 역직렬화하는 과정에서 원격코드 실행이나 권한 상승 등의 취약점이 발생할 수 있다.
9. Using Components with Known Vulnerabilities (알려진 취약점이 있는 구성 요소 사용)
라이브러리, 프레임워크 및 다른 소프트웨어 모듈 같은 컴포넌트는 어플리케이션과 같은 권한으로 실행된다. 만약에 취약한 컴포넌트가 악용된 경우, 이는 심각한 데이터 손실을 일으키거나 서버가 장악된다. 알려진 취약점이 있는 구성 요소를 사용하는 어플리케이션과 API는 어플리케이션 방어를 약화시키고 다양한 공격과 영향을 줄 수 있다.
10. Insufficient Logging & Monitoring (불충분한 로깅 및 모니터링
불충분한 로깅 및 모니터링, 사고 대응의 비효율적인 통합 또는 누락과 함께 공격자는 시스템을 추가로 공격하고 지속성을 유지하며 더 많은 시스템을 중심으로 공격할 수 있도록 만들고, 데이터를 변조, 추출 또는 파괴할 수 있다.
국정원 8대 취약점
1. 디렉토리 리스팅 취약점
- 홈페이지의 속성을 설정하는‘웹사이트 등록정보’에 특정디렉토리에 대하여 ‘디렉토리 검색’ 항목이 체크되어 있거나(IIS 웹서버), ‘httpd.conf 파일’에서‘Indexes’옵션이 ON되어 있는 경우(아파치 웹서버)
- 인터넷 사용자에게 모든 디렉토리 및 파일 목록이 보여지게 되고, 파일의 열람 및 저장도 가능하
게 되어 비공개 자료가 유출될 수 있다.
2. 파일 다운로드 취약점- OWASP 와 중복
- 게시판 등에 저장된 자료에 대해‘다운로드 스크립트’를 이용하여 다운로드 기능을 제공하면서, 대상 자료파일의 위치 지정에 제한조건을 부여하지 않았을 경우
- URL칸의 다운로드 스크립트의 인수값에‘../’문자열 등을 입력하여 시스템 디렉토리 등에 있는 /etc/passwd와 같은 비공개 자료들이 유출될 수 있다.
*특히, 리눅스 및 유닉스 계열의 웹서버에 각별한 주의가 필요하다.
3. 크로스 사이트 스크립트 취약점 - OWASP 와 중복
- 게시판에 새 게시물을 작성하여 등록할 때와 같이 사용자의 입력을 받아 처리하는 웹 응용프로그램에서 입력 내용에 대해 실행코드인 스크립트의 태그를 적절히 필터링하지 않을 경우에
- 악의적인 스크립트가 포함된 게시물을 등록할 수 있어 해당 게시물을 열람하는 일반 사용자의 PC로부터 개인정보인 쿠키를 유출할 수 있는 등의 피해를 초래할 수 있다.
4. 파일 업로드 취약점 - OWASP 와 중복
-첨부파일 업로드를 허용하는 홈페이지 게시판에서 .php, .jsp 등의 확장자 이름의 스크립트 파일의 업로드를 허용할 경우에
-해커가 악성 실행 프로그램을 업로드한 후에 홈페이지 접속 방식으로 원격에서 서버 컴퓨터의 시스템 운영 명령어를 실행시킬 수 있다.
5. WebDAV 취약점 - 원격 실행
-윈도우 서버 컴퓨터에서 기본으로 설치되는 원격관리기능인 WebDAV가 계속 사용가능하도록 설정되어 있고, WebDAV 라이브러리 파일의 속성 및 홈페이지 디렉토리에 쓰기 권한이 모두 허용되어 있는 경우
-해커가 WebDAV 도구를 사용, 원격에서 홈페이지 디렉토리에 임의의 파일을 삽입하여 화면을 변조할 수 있다.
6. 테크노트(Tech note)취약점
- 국내에서 개발되어 무료 배포중인 게시판 제작 프로그램‘테크노트’의 일부 CGI프로그램들에서 인수값 처리시에 ‘|’문자 이후에 나오는 컴퓨터 운영 명령어가 실행될 수 있는 결함이 있음
- 해커는 홈페이지 접속 방식으로 컴퓨터 명령어를 실행하여 화면을 변조하거나 컴퓨터를 조작할수 있다.
-'테크노트’는 리눅스 및 유닉스 계열의 홈페이지 서버 컴퓨터에 주로 사용되고, 윈도우 계열의 홈페이지에서도‘Perl’이 지원될 경우에 사용될 수 있다.
7. 제로보드(ZeroBoard)취약점
-국내에서 개발되어 무료 배포중인 게시판 제작 프로그램 ‘제로보드’의 일부 PHP프로그램이 원격에 있는 PHP파일을 실행할 수 있는 결함이 있어
- 해커는 홈페이지 접속 방식으로 컴퓨터 명령어를 실행하여 화면을 변조하거나 컴퓨터를 조작할수 있다.
-'제로보드’는 리눅스 및 유닉스 계열의 홈페이지 서버 컴퓨터에 주로 사용되고, 윈도우 계열의
홈페이지에서도‘PHP’가 지원될 경우에 사용될 수 있다.
8. SQL injectin 취약점 - OWASP와 중복
-웹브라우저 주소(URL)창 또는 사용자 ID 및 패스워드 입력화면 등에서 데이터베이스 SQL문에 사용되는 문자기호(‘ 및“)의 입력을 적절히 필터링 하지 않은 경우에
- 해커가 SQL문으로 해석될 수 있도록 조작한 입력으로 데이터베이스를 인증절차없이 접근, 자료
를 무단 유출하거나 변조할 수 있다.
출처: https://jennysgap.tistory.com/entry/취약점-유형-OWASP-국정원-SANS [jennysgap]
출처: https://binwalk.tistory.com/65
'CS' 카테고리의 다른 글
보안기술 4주차 (0) | 2021.07.20 |
---|---|
[보안기술 3주차] (0) | 2021.07.05 |
[1주차] 보안 기술 공격:: 크롬 개발자 모드 공부해보기 (0) | 2021.06.28 |
네트워크 보안 과제[aws] (0) | 2020.11.25 |
[네트워크 보안] google cloud platform(gcp)에서 instance 만들기 (0) | 2020.11.09 |