OWASP Top 10 2017 RC2 Review

지난달 OWASP Top 10 2017년도 버전 RC2가 나왔습니다. RC2 버전은 기존 RC1에서 개선되어 발표되는 버전이고 몇가지 만족스러운 변화가 있었습니다. 오늘은 OWASP Top 10 2017 RC2의 변화된 사항과 개인적인 생각을 전달드리려 합니다.

OWASP Top 10 2017 RC2

OWASP github에 공개되어 있습니다.

https://github.com/OWASP/Top10/blob/master/2017/OWASP%20Top%2010%202017%20RC2%20Final.pdf

기존 2017 RC1에서 3가지 사항에 변경이 있었습니다.

요약하자면 XXE, Deserialization 관련, 로깅과 모니터링 관련 사항이 추가되었습니다. 아래에서도 이야기드리겠지만 새로 추가된 것중 2가지는 현업 종사자로써 만족스러운 부분이기도 하네요.

XXE(XML External Entity)

XXE 취약점은 XML을 파싱하는 과정에서 ENTITY 속성을 이용한 공격입니다. XML이라는 범위와 공격 형태가 정해져있지만 최근 많은 공격이 발생하고 있고 XXE 제로데이 또한 잘 올라오고 있습니다. 생각보다 많은 어플리케이션들은 XML을 사용합니다. 웹, 프로그램부터 여러가지로 사용되고 있고 대부분 검증이 잘 되지 않아 XML Injection을 통한 ENTITY 호출로 시스템 명령이나 파일 탈취되기도 합니다.

아무래도 리스크가 높고 취약 포인트를 잡았을때 결과까지 만들어가기 쉬운편이라 중요하게 보아야할 것 같습니다.

XXE에 대한 자세한 내용은 아래 문서를 참고해주세요!

Cullinan > XXE

Insecure Deserialization

두번째는 역직렬화 취약점입니다. Deserialize는 역직렬화로 파일에 쓰인 객체를 어플리케이션이 로드하여 사용할 수 있게 도와줍니다. 이 과정에서 임의로 명령실행이나 권한 상승이 가능한 객체를 생성하여 전달해주니다.

공격자는 이를 이용해서 악의적인 객체를 넘겨주고 어플리케이션이 이를 로드하는 과정에서 검증되지 않은 객체를 만들어 공격자가 의도한 행위가 실행됩니다.

최근에 Struts2 RCE 취약점이 있었는데 해당 취약점도 Deserialization으로 인한 취약점이였습니다.

Insecure Deserialization에 대한 자세한 내용은 아래 문서를 참고해주세요!

Cullinan > Insecure Deserialization

Insufficient Logging & Monitoring

서비스에 대한 로깅과 모니터링에 대한 부분입니다. 공격에 대해서 빠르게 감지하고 대응하려면 로깅과 모니터링이 잘 이루어지고 있어야하지만 지켜지지 않는 경우도 많다고 합니다. 최근부터 OWASP가 단순히 취약점 이외에 항목들, 보안성에 대한 이야기를 하기 때문에 이런 형태의 항목들도 추가가 되고 있습니다. 웹 취약점 진단 시 이런것도 체크하면 좋을 것 같네요. (테스팅이 안되면 질의서라도… 😉)

Conclusion

이번 RC2는 개인적으로 만족스럽습니다. 매번 일을 하면서 XXE와 Deserialize Vulnerability에 대한 위험성과 중요도를 많이 느꼈었고 이 친구들이 다음 OWASP에라도 올라왔으면 하는 바램이 있었습니다.

새로 추가된 3개의 항목은 굉장히 중요합니다. A4. A8과 같은 기술에 대해선 잘 숙지하고 A10 같이 조금 넓은 의미에 대한 항목 또한 어떻게 테스팅할건지, 좋은 방안으로 사용될 수 있는지 연구가 필요할 것 같네요.

지금 보니깐 CSRF가 빠졌네요? 좀 놀라운데.. 순위가 그렇다쳐도 XSS,CSRF는 아주 중요한 취약점인데 빠졌다는건 의외네요. 2017

이후에 SameSite Cookie 등으로 CSRF는 예전보다 만나기 힘든 취약점이 되었습니다. 자세한 이야기는 이 글을 참고해주세요! 2022

Reference