티스토리 뷰

리눅스.초보.비밀번호.무차별대입공격(Brute Force Attack)과 OWASP TOP10 취약점 대응내용
OWASP Top 10 (출처: owasp.org)

2021년 9월 24일에 발표한 ‘OWASP 오와삽 Top 10 2021’에서 2017년도와 비교했을 때의 큰 변화는 아래와 같다.
 Injection이 최상위에서 내려와서 3위가 되었으며, 최상위 취약점은 Broken Access Control이 되었음. 
 XSS가 단일항목에서 Injection 하위로 포함되었음. 
 XXE가 단일항목에서 Security Misconfiguration 하위로 포함되었음. 
 Insecure Deserialization이 단일항목에서 Software and Data Integrity Failure 하위로 포함되었음. 

‘OWASP 오와삽 Top 10 2021’에 대해 2번째로 A05부터 A10까지 살펴보도록 하자. 

 

 

[A5 : Security Misconfiguration (보안 설정 오류)]

보안 설정 오류(Security Misconfiguration)는 애플리케이션을 최초 설치하거나 업데이트할 때 보안성을 고려하지 않은 설정으로 인해 취약점이 발생하는 경우로, 설정과 관련된 모든 부분을 포함하고 있다. XXE(XML External Entity) 항목은 애플리케이션의 잘못된 보안 설정으로 인해 발생하는 취약점으로, 이번 개정으로 보안 설정 오류 항목에 병합되었음. 

취약점 예시

  • 불필요한 기능을 활성화했거나 설치함(예: 불필요 포트, 불필요 페이지, 불필요 계정/권한 등)
  • 벤더사에서 기본으로 제공하는 관리자 계정(ID/Password)을 변경하지 않고 사용
  • 에러 페이지를 통한 애플리케이션 에러 정보 노출
  • 보안 헤더 설정 누락
  • 서버 OS, 프레임워크, 라이브러리, 데이터베이스 등의 보안 설정 누락

예방 방법

  • 애플리케이션 설치 시 불필요한 기능, 구성요소, 샘플, 문서 등은 제거
  • 보안 헤더 설정
  • 모든 환경에서 애플리케이션 보안 설정을 검증하고 자동화된 프로세스 구현

 

[A5에 대한 공격 시나리오]

애플리케이션 설치 시 기본으로 제공하는 관리자 페이지를 보안 설정 없이 그대로 사용하며 서버를 제어하도록 허용한 경우, 공격자가 쉽게 접근해 침투할 수 있다

-  기본으로 제공하는 관리자 페이지를 그대로 노출

리눅스.초보.비밀번호.무차별대입공격(Brute Force Attack)과 OWASP TOP10 취약점 대응내용
무차별대입공격(Brute Force Attack)과 OWASP TOP10 취약점 대응

 

 

[A6: Vulnerable and Outdated Components(취약하고 지원이 종료된 구성 요소)]

취약하고 지원이 종료된 구성 요소(Vulnerable and Outdated Components)는 취약한 버전 또는 EOS/EOL/EOD(소프트웨어 기술 지원 중단) 상태인 소프트웨어를 계속 사용하는 경우를 뜻하며, 그로 인해 발생할 수 있는 모든 보안 위협을 포함하고 있다. 서비스를 구성하는 모든 요소(OS, WEB/WAS, 데이터베이스, 애플리케이션, API, 라이브러리, 프레임워크 등)가 여기에 해당된다.


취약점 예시

  • 지원 종료된 OS 사용(Windows XP, Windows server 2000 등)
  • 알려진 취약점이 존재하는 버전의 애플리케이션 사용(nginx, apache tomcat, 오픈소스 웹 에디터, WordPress 등)
  • 알려진 취약점이 존재하는 버전의 프레임워크 사용(Apache Struts 2, Spring 등)
  • 알려진 취약점이 존재하는 버전의 라이브러리 사용(OpenSSL 등)

 

예방 방법

  • 불필요한 소프트웨어는 제거
  • 형상 관리를 통해 사용하는 모든 소프트웨어 버전 체크
  • 패치 관리 프로세스를 수립해 소프트웨어 최신 버전 유지
  • 알려진 취약점을 지속적으로 모니터링해 취약한 소프트웨어 사용 확인

 

 

[A6에 대한 공격 시나리오]

사용자가 취약한 버전의 아파치 스트럿츠 2(Apache struts 2)를 사용하고 있다면, 공격자가 서버를 공격해 원격코드를 실행할 수 있다.

 - 그림 취약한 버전의 소프트웨어 사용

리눅스.초보.비밀번호.무차별대입공격(Brute Force Attack)과 OWASP TOP10 취약점 대응내용
무차별대입공격(Brute Force Attack)과 OWASP TOP10 취약점 대응

 

 

[A7: Identification and Authentication Failures(식별 및 인증 실패) ]

2021년 개정으로 기존 취약한 인증(Broken Authentication) 항목에 식별 실패(Identification failures)를 포함시켜, 조금 더 넓은 의미인 식별 및 인증 실패(Identification and Authentication Failures) 항목으로 변경되었다. 사용자 신원 확인과 인증 및 세션 관리에 해당하는 항목으로 2017년 대비 5단계가 낮아져 7번째 항목으로 선정되었지만, 여전히 많이 발견되는 취약점이다.

 

취약점 예시

  • Multi-factor 인증이나 2차 인증 부재로 Credential Stuffing, Brute forcing 공격 등에 노출되는 경우
  • 인증 실패에 대한 제한이 없어 Brute forcing 공격에 노출되는 경우
  • 안전한 비밀번호 생성 정책이 없어, 취약한 비밀번호 생성을 허용하는 경우
  • URL에 인증 세션 ID가 노출되는 경우(GET Method)
  • 로그인 후 새로운 세션 ID로 발급하지 않고 기존 세션 ID를 재사용하는 경우
  • 세션 타임아웃이 없거나 로그아웃 후 세션 파기를 하지 않는 경우

 

예방 방법

  • Multi-factor 인증이나 2차 인증 구현
  • 안전한 비밀번호 생성 정책 및 인증 실패 횟수 제한 적용
  • 로그인 시 새로운 세션 ID를 생성하고 인증 세션은 암호화된 채널에서 헤더를 통해 전송
  • 세션 파기 및 만료 정책 수립

 

 

 

 

[A8: Software and Data Integrity Failures(소프트웨어 및 데이터 무결성 오류) ]

소프트웨어 및 데이터 무결성 오류(Software and Data Integrity Failures)는 이번에 신설된 항목으로, 안전하지 않은 역직렬화(Insecure deserialization) 항목이 병합되었다. 소프트웨어 및 데이터 무결성 오류는 애플리케이션이 신뢰할 수 없는 소스, 저장소 및 CDN, 플러그인, 라이브러리, 모듈에 의존하는 경우에 발생하게 된다. 
안전하지 않은 CI/CD 파이프라인은 개발 및 배포 과정에서 애플리케이션이 변조되면 무결성이 훼손될 가능성이 있으므로, 애플리케이션이 사용하는 코드에 대한 무결성 검증 절차를 추가해야 한다. 

 

취약점 예시

  • 애플리케이션이 사용하는 라이브러리나 모듈에 대한 무결성 검증이 없어 변조가 가능한 경우
  • 업데이트 공급망에 대한 검증이 없는 경우
  • CI/CD 파이프라인에 대한 적절한 보안성 검토가 없는 경우
  • 직렬화된 데이터에 대한 무결성 검증이 없는 경우

 

예방 방법

  • 전자서명, 해시 알고리즘 등을 사용해 애플리케이션 무결성을 검증
  • 사용하고 있는 라이브러리가 신뢰할 수 있는 저장소를 사용하고 있는지 확인하고, 중요한 서비스라면 내부 저장소를 별도로 지정해 사용
  • CI/CD 파이프라인에 대한 정기적인 보안성 검토 수행
  • 직렬화/역직렬화 라이브러리를 사용하는 경우, 직렬화된 데이터에 대해 무결성 검증을 수행

 

 

[A9: Security Logging and Monitoring Failures(보안 로깅 및 모니터링 오류) ]

기존에는 불충분한 로깅 및 모니터링(Insufficient Logging & Monitoring) 항목이었으나, 이번 개정에서 보안 로깅 및 모니터링 실패(Security Logging and Monitoring Failures) 항목으로 변경되었다. 적절한 로깅과 모니터링이 없다면 공격을 감지하고 대응할 수가 없기 때문에, 취약점 공격 예방뿐 아니라 공격 발생 감지 및 대응까지 포함하는 것으로 개정되었다.

취약점 예시

  • 로그인, 인증 실패, 권한 설정 등 중요 기능 수행에 대한 로깅이 없는 경우
  • 일정 주기로 로그에 대한 백업 절차가 없는 경우
  • 로깅 및 모니터링이 필요한 부분을 명확하게 구분해서 로깅하지 않아, 불명확한 로깅 및 모니터링을 하는 경우

 

 

예방 방법

  • 모든 로그인, 접근 제어, 인증 실패에 대해 로깅을 하고 정기적인 백업을 통해 보관
  • 로그 관리 솔루션 등을 활용하기 위해 적절한 형식으로 로깅이 생성되는지 확인
  • 의심스러운 활동을 감지하고 신속하게 대응할 수 있도록 임계치를 설정하고 모니터링
  • 침해 사고 대응 및 복구 계획 수립

 

 

[A10: Server-Side Request Forgery(SSRF, 서버 측 요청 변조) ]

서버 측 요청 변조(Server-Side Request Forgery, SSRF)는 2021년에 신설된 항목이다. 애플리케이션이 사용자 제공 데이터를 적절한 검증 없이 로컬 및 원격 리소스를 가져와 취약점을 발생시키는 상황을 의미합니다. 공격자는 SSRF 취약점이 존재하는 애플리케이션에서 서버 권한과 신뢰 관계를 이용해, 서버가 조작된 요청을 수행하도록 강제할 수 있다.

취약점 예시

  • 서버가 적절한 검증 절차 없이 사용자 요청을 로컬 혹은 원격 리소스에 접근하도록 하는 경우

 

예방 방법

  • 서버가 속한 내부 네트워크끼리 통신할 때에도 방화벽을 통해 접근제어 규칙을 적용
  • 모든 사용자 제공 데이터에 대한 검증
  • 사용자 요청에 대한 서버 측 수행 결과 검증

 

[A10에 대한 공격 시나리오]

 - 그림 로컬 서버에 대한 공격

리눅스.초보.비밀번호.무차별대입공격(Brute Force Attack)과 OWASP TOP10 취약점 대응내용
무차별대입공격(Brute Force Attack)과 OWASP TOP10 취약점 대응


 - 원격지에 대한 공격

리눅스.초보.비밀번호.무차별대입공격(Brute Force Attack)과 OWASP TOP10 취약점 대응내용
무차별대입공격(Brute Force Attack)과 OWASP TOP10 취약점 대응

 

 

 

 

 

 - 다음 : 비밀번호 작성규칙  - 

 

 

[리눅스][초보][보안][비밀번호 작성 규칙 : 안전한 패스워드 생성TIP]

요즘 같은 정보화시대에서 "해킹" 처럼 무서운 단어들이 많이 들리고 있다. 따라서 개인의 정보를 보호하는 것이 기본에 필수인 시대가 되어 버렸다. 다양한 해킹 예방방법이 있겠지만, 개인이

modu4you.com