[정보보안기사] 애플리케이션 보안 - 인터넷 응용 보안 (4) 웹 보안
본문 바로가기

[정보보안기사] 애플리케이션 보안 - 인터넷 응용 보안 (4) 웹 보안

액트 2019. 6. 27.

웹보안


- 목차 -

1. 인터넷 응용 보안 
    (4) 웹 보안 
        ① 웹 개념 
        ② 웹 로그 보안 
        ③ 웹 서비스 공격 유형 
        ④ 웹 보안 개발 
        ⑤ 웹 방화벽 


1. 인터넷 응용 보안

    (4) 웹 보안

        ① 웹 개념 

            ▶ Wolrd Wide Web, WWW, W3은 인터넷에 연결된 컴퓨터를 통해 사람들이 정보를 공유할 수 있는 전 세계적인 정보 공간을 뜻한다

 

        ② 웹 로그 보안 

            Ⅰ. Web Server의 로그는 대표적으로 access_log와 error_log로 나누어진다

                ▶ access_log : Web Service 하면서 접속한 로그에 대한 내용

                ▶ error_log : Web Server의 요청 처리과정에서 발생하는 각종 에러에 대한 기록

                    ▷ 위험도에 따라 8가지로 분류

                        Emerg > Alert > Crit > Error > Warn > Notice > Info > Debug

                        기본값은 Warn이며, Warn이상의 에러가 로그에 남음

 

            Ⅱ. 웹로그 절대 경로: /var/log/httpd/                

 

        ③ 웹 서비스 공격 유형 

            Ⅰ. OWASP(Open Web Application Security Project)

                - 오픈소스 웹 애플리케이션 보안 프로젝트이다. OWASP처럼 애플리케이션 보안에만 전념하는 여러 커뮤니티 그룹의 조직이 상당히 커지고 있다. 가장 큰 오픈소스 웹 애플리케이션 보안 프로젝트로 주로 웹에 관한 정보 노출, 악성 파일 및 스크립트, 보안 취약점 등을 연구하며, 10대 웹 애플리케이션의 취약점(OWASP Top 10)을 발표했다

...더보기

1. Injection(인젝션)

  SQL, OS, XXE(Xml eXternal Entity), LDAP 인젝션 취약점은 신뢰할 수 없는 데이터가 명령어나 쿼리 문의 일부분이 인터프리터로 보내질 때 발생합니다. 공격자의 악의적인 데이터는 예상하지 못하는 명령을 실행하거나 적절한 권한 없이 데이터에 접근하도록 인터프리터를 속일 수 있습니다.

 

2. Broken Authentication and Session Management(인증 및 세션 관리 취약점)

  인증과 세션 관리와 관련된 애플리케이션 기능이 정확하게 구현되어 있지 않아서, 공격자가 패스워드, 키 또는 세션 토큰을 해킹하거나 다른 구현 취약점을 공격하여 다른 사용자 계정을 일시적 또는 영구적으로 탈취하는 것을 허용합니다.

 

3. Cross-Site Scripting (XSS) (크로스 사이트 스크립팅)

  XSS 취약점은 애플리케이션이 신뢰할 수 없는 데이터를 가져와 적절한 검증이나 제한 없이 웹브라우저로 보낼 때 발생합니다. XSS는 공격자가 피해자의 브라우저에 스크립트를 실행하여 사용자 세션 탈취, 웹사이트 변조, 악의적인 사이트로 이동할 수 있습니다.

 

4. Broken Access Control (취약한 접근 제어)

  취약한 접근 제어는 인증된 사용자가 수행할 수 있는 것에 대한 제한이 제대로 적용되지 않는 것을 의미합니다. 공격자는 이러한 취약점을 악용하여 사용자의 계정 액세스, 중요한 파일 보기, 사용자의 데이터 수정, 액세스 권한 변경 등과 같은 권한 없는 기능, 또는 데이터에 액세스 할 수 있습니다.

 

5. Security Misconfiguration (보안 설정 오류)

  훌륭한 보안은 애플리케이션, 프레임워크, 애플리케이션 서버, 웹 서버, 데이터베이스 서버 및 플랫폼에 대해 보안 설정이 정의되고 적용되어 있습니다. 기본으로 제공되는 값은 종종 안전하지 않기 때문에 보안 설정은 정의, 구현 및 유지되어야 합니다. 또한 소프트웨어는 최신의 상태로 유지해야 합니다.

 

6. Sensitive Data Exposure (민감 데이터 노출)

  많은 웹 애플리케이션들이 신용카드, 개인 식별 정보 및 인증 정보와 같은 중요한 데이터를 제대로 보호하지 않습니다. 공격자는 신용카드 사기, 신분 도용 또는 다른 범죄를 수행하는 등 약하게 보호된 데이터를 훔치거나 변경할 수 있습니다. 중요 데이터가 저장 또는 전송 중이거나 브라우저와 교환하는 경우 특별히 주의하여야 하며, 암호화와 같은 보호조치를 취해야 합니다.

 

7. Insufficient Attack Protection (공격 방어 취약점)

  대부분의 애플리케이션과 API는 수동 및 자동화된 공격을 모두 탐지(detect), 방지(prevent), 대응(respond)할 수 있는 기본 기능이 부족합니다. 공격 방어(protection)는 기본적인 입력 유효성 검사를 뛰어넘어 자동으로 합니다. 애플리케이션 소유자는 공격으로부터 보호하기 위해 패치를 신속하게 배포할 수 있어야 합니다.

 

8. Cross-Site Request Forgery (CSRF) (크로스 사이트 요청 변조)

  CSRF 공격은 로그온 뒤 피해자의 취약한 웹 애플리케이션에 피해자의 세션 쿠키와 기타 다른 인증정보를 자동으로 포함하여 위조된 HTTP 요청을 강제로 보내도록 하는 것입니다. 이것은 공격자가 취약한 애플리케이션이 피해자로부터의 정당한 요청이라고 오해할 수 있는 요청들을 강제로 만들 수 있습니다.

 

9. Using Components with Known Vulnerabilities (알려진 취약점이 있는 컴포넌트 사용)

  컴포넌트, 라이브러리, 프레임워크 및 다른 소프트웨어 모듈은 대부분 항상 전체 권한으로 실행됩니다. 이러한 취약한 컴포넌트를 악용하여 공격하는 경우 심각한 데이터 손실이 발생하거나 서버가 장악됩니다. 알려진 취약점이 있는 컴포넌트를 사용하는 애플리케이션은 애플리케이션 방어 체계를 손상하거나, 공격 가능한 범위를 활성화하는 등의 영향을 미칩니다.

 

10. Underprotected APIs (취약한 API)

  최신 애플리케이션 및 API에는 API(SOAP / XML, REST / JSON, RPC, GWT 등)에 연결하는 브라우저 및 모바일 애플리케이션의 자바스크립트와 같은 여러 클라이언트 애플리케이션이 포함되는 경우가 많습니다. 이러한 API는 대부분 보호되지 않으며 수많은 취약점을 포함합니다.

            Ⅱ. 주요 내용 아래에서 한번 더 언급

 

            Ⅲ.  SQL Inejction

                ▶ 공격에 사용될 수 있는 문자나 패턴을, 웹 방화벽이나 Secure Coding을 통해 필터링

                ▶ 자세한 오류 메시지를 보내주지 않음으로 DB정보를 흘리지 않기

 

            Ⅳ.  XSS(Cross Site Scripting)

                ▶ 공격자가 작성한 악성 CSS(Client Side Script)를 일반 사용자가 읽음으로써 실행되게 하는 공격

                ▶ 서버를 공격하는 게 아니라, 서버를 경유해 클라이언트를 공격하는 것

                ▶사용자로부터 입력된 데이터를 철저히 검증함( '<', '>' 이런 걸 바꿔) 이로써 검증

 

            Ⅴ.  CSRF(Cross Site Request Forgery ; 크로스 사이트 요청 변조)

                ▶ XSS와 공격 과정은 동일하지만, 공격 타깃이 서버인 게 다름

                ▶ 웹 사이트에서 제공하는 모든 기능을 대상으로, 신뢰된 사용자의 권한으로 요청하도록 하는 공격

                ▶ XSS 취약점을 없도록 해야 함 / 중요한 기능은 재인증을 요구하는 게 좋음


        ④ 웹 보안 개발 

            ▶ Secure Coding : 개발 단계에서 보안을 고려하는 것 / [정보시스템 구축/운영 지침]으로 법제화되어있음

            ▶ 행정안전부에서 정보화 표준/지침으로 발표한 홈페이지 SW(웹) 개발보안 가이드 자료

            https://mois.go.kr/cmm/fms/FileDown.do?atchFileId=FILE_000000000021844&fileSn=0

 

        ⑤ 웹 방화벽 

            Ⅰ. WebKnight : AQTRONIX에서 제공하는 공개용 윈도 IIS 웹서버용 웹 방화벽

 

           Ⅱ. mod_security : Apache 보안 모듈로써, 침입탐지 및 차단 기능을 가짐

            ▶ 기능

              ⓐ request filtering : 요청이 들어와서 웹서버나 다른 모듈에 의해 사용되기 전에 요청들을 분석               ⓑ Anti-evasion Techniques : 회피 공격에 대응하기 위해 분석 전에 경로나 파라미터 값들을 표준화

              ⓒ Understanding of the HTTP protocol : 개별적인 파라미터 값이나 쿠키 값들을 이해하는 것이 가능

              ⓓ POST payload Analsis : POST방식을 이용하여 전송되는 콘텐츠들을 가로채는 것이 가능

              ⓔ Audit Logging : 사후 사고에 대한 분석을 위해 요청의 모든 세부사항이 기록됨

              ⓕ HTTPS Filtering : 웹 서버에 모듈로 끼워지기 때문에 요청된 데이터가 복호화된 후에 접근 가 

              ⓖ Compressed Content Filtering : 요청된 데이터의 압축이 풀린 후에 접근이 가능

 

 

 


[ 출처 ]

https://12bme.tistory.com/98

https://kit2013.tistory.com/211

https://ko.wikipedia.org/wiki/%EC%9B%94%EB%93%9C_%EC%99%80%EC%9D%B4%EB%93%9C_%EC%9B%B9

을 참고하여 보완하고 수정한 글입니다.

댓글