Code::Security/비박스(BWAPP)

비박스(bWAPP) A9 Using Known Vulnerable Components (알려진 취약점이 있는 구성 요소 사용)

태군 코드 2022. 10. 19. 15:13
반응형

이 도구를 이용하여 허용받지 않은 서비스 대상으로 해킹을 시도하는 행위는 범죄 행위입니다. 해킹을 시도할 때에 발생하는 법적인 책임은 그것을 행한 사용자에게 있다는 것을 명심하시기 바랍니다.

 

A9 - Using Known Vulnerable Components (알려진 취약점이 있는 구성 요소 사용)

 

Using Known Vulnerable Components

웹 서비스를 운영하는데 각 영역별로 다양한 모듈과 라이브러리를 사용합니다. 예를 들어 아파치 톰캣, 워드프레스 등 오픈소스 프로젝트들이 많은 서비스에서 활용되고 있습니다. 이렇게 사용된 기능들이 보안상 안전하려면 정기적인 보안 패치 및 업데이트가 필요하지만, 수많은 기능을 완벽하게 대응하기는 어려운 게 현실입니다.

 

OWASP TOP 10

OWASP TOP 10 에서는 A06:2021-취약점 및 오래된 구성 요소로 2017년도에는 알려진 취약성이 있는 구성 요소 사용이라는 제목이었으며 상위 10개 커뮤니티 설문 조사에서 2위를 차지했지만 데이터 분석을 통해 상위 10위 안에 들 수 있을 만큼 충분한 데이터를 보유하고 있다고 설명하고 있습니다. 이 범주는 2017년 9위에서 한 단계 올라갔으며 위험을 테스트하고 평가하는 데 어려움을 겪고 있는 알려진 문제입니다. CWE(Common Vulnerability and Exposures)가 포함된 CWE에 매핑되지 않은 유일한 카테고리이므로 기본 익스플로잇 및 영향 가중치 5.0이 점수에 반영됩니다.

 

설명
- 사용하는 모든 구성 요소(클라이언트 측 및 서버 측 모두)의 버전을 모르는 경우. 여기에는 직접 사용하는 구성 요소와 중첩된 종속성이 포함됩니다.

- 소프트웨어가 취약하거나 지원되지 않거나 오래된 경우. 여기에는 OS, 웹/애플리케이션 서버, 데이터베이스 관리 시스템(DBMS), 애플리케이션, API 및 모든 구성 요소, 런타임 환경 및 라이브러리가 포함됩니다.

- 취약점을 정기적으로 스캔하지 않고 사용하는 구성 요소와 관련된 보안 게시판을 구독하지 않는 경우.

- 위험 기반의 적시에 기본 플랫폼, 프레임워크 및 종속성을 수정하거나 업그레이드하지 않는 경우. 이는 패치가 변경 통제 하에 있는 월별 또는 분기별 작업인 환경에서 일반적으로 발생하여 조직이 수정된 취약성에 며칠 또는 몇 달 동안 불필요하게 노출될 수 있습니다.

- 소프트웨어 개발자가 업데이트, 업그레이드 또는 패치된 라이브러리의 호환성을 테스트하지 않는 경우.

- 구성 요소의 구성을 보호하지 않는 경우( A05:2021-Security Misconfiguration 참조)

 

예방하는 방법
- 사용하지 않는 종속성, 불필요한 기능, 구성 요소, 파일 및 문서를 제거합니다.

- 클라이언트 측 및 서버 측 구성 요소(예: 프레임워크, 라이브러리) 및 버전, OWASP 종속성 검사, 퇴직자.js 등과 같은 도구를 사용하여 해당 종속성의 버전을 지속적으로 인벤토리화합니다. CVE(Common Vulnerability and Exposures)와 같은 소스를 지속적으로 모니터링합니다. 구성 요소의 취약성에 대한 국가 취약성 데이터베이스(NVD). 소프트웨어 구성 분석 도구를 사용하여 프로세스를 자동화합니다.


- 보안 링크를 통해 공식 소스에서만 구성 요소를 얻으십시오. 수정된 악성 구성 요소를 포함할 가능성을 줄이기 위해 서명된 패키지를 선호합니다 (A08:2021-소프트웨어 및 데이터 무결성 오류 참조).

- 유지 관리되지 않거나 이전 버전에 대한 보안 패치를 생성하지 않는 라이브러리 및 구성 요소를 모니터링합니다. 패치를 적용할 수 없는 경우 가상 패치를 배포하여 발견된 문제를 모니터링, 감지 또는 보호하는 것을 고려하십시오.

- 모든 조직은 애플리케이션 또는 포트폴리오의 수명 주기 동안 업데이트 또는 구성 변경을 모니터링, 분류 및 적용하기 위한 지속적인 계획을 수립해야 합니다.

 

공격 시나리오의 예
시나리오 #1: 구성 요소는 일반적으로 응용 프로그램 자체와 동일한 권한으로 실행되므로 구성 요소의 결함이 심각한 영향을 미칠 수 있습니다. 이러한 결함은 우발적(예: 코딩 오류)이거나 의도적(예: 구성 요소의 백도어) 일 수 있습니다. 발견된 악용 가능한 구성 요소 취약점의 예는 다음과 같습니다.

서버에서 임의의 코드를 실행할 수 있게 하는 Struts 2 원격 코드 실행 취약점인 CVE-2017-5638이 심각한 침해의 원인으로 지목되었습니다.

사물 인터넷(IoT)은 종종 패치가 어렵거나 불가능하지만 패치의 중요성은 클 수 있습니다(예: 생체 의료 기기).

공격자가 패치되지 않았거나 잘못 구성된 시스템을 찾는 데 도움이 되는 자동화된 도구가 있습니다. 예를 들어, Shodan IoT 검색 엔진은 2014년 4월에 패치된 Heartbleed 취약점으로 여전히 고통받는 장치를 찾는 데 도움이 될 수 있습니다.

 

참고

https://owasp.org/Top10/A06_2021-Vulnerable_and_Outdated_Components/

https://owasp.org/Top10/A06_2021-Vulnerable_and_Outdated_Components/

반응형