보안 분석 도구
SAST (Static Application Security Testing) 정적 코드 분석 DAST (Dynamic Application Security Testing) 동적 애플리케이션 보안 테스트 IAST (Interactive Application Security Testing) 인터랙티브 보안 테스트 RASP (Runtime Application Self Protection)
SAST (Static Application Security Testing) 정적 코드 분석 DAST (Dynamic Application Security Testing) 동적 애플리케이션 보안 테스트 IAST (Interactive Application Security Testing) 인터랙티브 보안 테스트 RASP (Runtime Application Self Protection)
출력 함수(예: printf)에서 포맷 문자열(format string)을 잘못 처리하면, 공격자가 원하는 메모리 주소에 접근하거나 값을 조작할 수 있는 취약점 즉, printf(user_input) 같이 입력값을 포맷 없이 바로 출력하면 공격자가 %x, %n, %s 같은 포맷을 직접 입력해서 메모리 읽기/쓰기가 가능해 진다. 가능 공격 Java – 포맷 스트링 취약점 메모리 조작 기반의 취약점은 거의 없음 Java는 C/C++과 달리 따라서 … Read more
정의 프로그래밍에서 정해진 버퍼(메모리 공간)의 범위를 초과하는 데이터를 집어넣어서, 다른 메모리 영역을 침범하고 프로그램의 흐름을 변경하는 공격 발생 조건 설명 테스트 방법
사용자가 클릭하는 버튼, 링크 등이 실제로는 공격자가 숨겨놓은 악성 요소를 클릭하게끔 속이는 공격. 웹사이트의 UI 요소를 투명하거나 보이지 않게 겹쳐 놓고, 사용자가 정상적인 버튼을 클릭했다고 생각하게 만들지만, 실제로는 공격자가 의도한 다른 기능을 실행하게 하는 방식 동작 예시
용도 상용급 정적 코드 보안 스캐너 지원 Java, C#, Python, PHP, JS 등 거의 모든 주요 언어 특징 단점
용도 코드 → 데이터베이스로 변환, **쿼리(SQL 비슷)**로 보안 탐색 지원 Java, C/C++, Python, JS 등 특징 단점
용도 Java 보안 취약점 전용 특징 FindBugs의 보안 확장 플러그인 장점 단점
용도 정규표현식 기반 코드 패턴 검색 & 취약점 탐지 지원 Python, Java, JS, Go, Ruby, C, C#, PHP 등 장점 단점
용도 코드 품질 + 보안 (정적 분석) 지원 Java, JS, Python, C#, Kotlin, PHP 등 거의 모든 언어 장점 사용처 기업, 공공기관, 스타트업 등 폭넓음
설명 다양한 스캐너의 결과를 통합해주는 오픈소스 도구 지원 Java, C#, PHP, JavaScript 등 여러 언어 장점 한계