실무에 바로 적용하는 보안 코딩
OWASP Top 10과 같은 소프트웨어 취약점을 이해하고 완화하기 위한 보안 코딩 가이드라인을 살펴보고, 실제 앱 시뮬레이션을 통해 실습할 수 있는 가이드형 교육 미션을 시작해 보세요.
모든 미션 보기
목차

SQL 인젝션
인터넷 뱅킹 솔루션의 거래 검색 기능에서 SQL 인젝션 취약점을 악용할 수 있다는 사용자 제보를 받았습니다. 해당 사용자는 이 취약점을 통해 다른 사용자의 거래 내역을 조회할 수 있었으며, 공격자가 데이터베이스 테이블 삭제, 타 테이블 데이터 열람, 데이터 삽입 등 악의적인 행위를 수행할 수 있다고 지적했습니다. 이번 미션에서 사용자가 수행한 공격을 직접 재현해 보십시오.

Spring MvcRequestMatchers
2023년 3월, Spring은 내부적으로 발견된 취약점인 CVE-2023-20860에 대한 수정 사항을 발표했습니다. 이는 mvcRequestMatchers에서 이중 와일드카드(**)를 사용할 경우 Spring Security와 Spring MVC 간의 패턴 불일치가 발생할 수 있는 문제였습니다. 이로 인해 사용자가 특정 엔드포인트에 무단으로 접근할 수 있게 될 위험이 있었습니다. 몇 가지 엔드포인트가 포함된 매우 단순화된 뱅킹 애플리케이션을 준비했습니다. 지침에 따라 이 접근 제어 취약점의 영향을 직접 재현해 보세요.

사이킥 시그니처 - 알려진 취약 구성 요소 사용
CVE-2022-21449는 'Java의 사이킥 시그니처(Psychic Signatures)'라는 아주 흥미로운 별칭을 가진 취약점입니다. 왜 이런 이름이 붙었을까요? 이는 드라마 '닥터 후'에 등장하는 사이킥 페이퍼에서 유래했습니다. 상대방에게 보여주면 그 사람이 기대하는 내용이 적힌 것처럼 보이는 빈 종이 말이죠. Java(버전 15~18)의 ECDSA 알고리즘 구현에서도 이와 유사한 현상이 발생하며, 이는 JWT 서명 검증에 영향을 미칩니다. 즉, 유효하지 않은 서명을 제출해도 Java는 이를 유효한 것으로 인식합니다. 작동 원리가 궁금하신가요? 바로 시작해 보겠습니다.

Apache 경로 탐색 - 알려진 취약점 구성 요소 사용하기
2021년 10월 4일, Apache 팀은 Apache 2.4.48 버전의 경로 탐색 및 원격 코드 실행 취약점(CVE-2021-41773)을 해결하기 위해 2.4.49 버전을 출시했습니다. 이후 2.4.50 핫픽스의 수정 사항이 불완전함이 확인되어 2021년 10월 7일 2.4.51 버전을 추가로 출시했습니다. 이 취약점은 CVE-2021-42013으로 추적되었습니다. 이 미션을 통해 해당 취약점이 어떻게 악용될 수 있는지 직접 확인해 보세요.

Log4j - 알려진 취약점이 있는 구성 요소 사용
2021년 12월 초, 널리 사용되는 로깅 라이브러리인 Log4j에서 제로데이 취약점(CVE-2021-44228)이 발표되면서 자바 커뮤니티에 큰 충격을 주었습니다. 'Log4Shell'이라 불리는 이 취약점은 Log4j v2 버전 2.0-beta9부터 2.14.1까지 영향을 미치며, 원격 코드 실행으로 이어질 수 있습니다. 취약점의 영향을 직접 확인하실 수 있도록 모의 환경을 구축했으니 지금 바로 체험해 보세요.

트로이 목마 소스 - 신뢰할 수 없는 출처의 구성 요소 사용
Viking Bank의 한 개발자가 신용카드 관리용 관리자 권한 확인 기능을 작성하던 중, 인터넷의 신뢰할 수 없는 출처에서 취약한 구성 요소가 포함되었을 가능성이 있는 코드를 무심코 복사해 왔습니다. 관리자만 변경할 수 있어야 할 신용카드 한도를 일반 사용자들이 변경하고 있는 정황이 포착되었습니다. 해당 코드에 문제가 있다고 판단되니, 미션을 수행하여 코드를 조사해 보세요.

코드스태시빈 - 취약한 비밀번호 재설정 기능
CodeStashBin은 세계 최대 규모의 코드 버전 관리 호스팅 기업 중 하나입니다. 소문에 따르면 비밀번호 찾기 프로세스에 취약한 비밀번호 재설정 기능 결함이 있다고 합니다. 권한이 있는 사용자의 비밀번호를 변경하여 계정에 접근할 수 있을지도 모릅니다. 이 미션에 참여하여 문제를 조사해 보세요.

‘ChatterGPT’ 내 교차 사이트 스크립팅(XSS)
이 미션은 대중적인 LLM의 익숙한 인터페이스를 보여주며, 2023년 11월 말에 생성된 실제 코드 스니펫을 활용합니다. 사용자는 이 스니펫을 해석하고 의도된 목적으로 사용될 경우 발생할 수 있는 잠재적인 보안 취약점을 조사할 수 있습니다.