개발 인원 : 3명 (PM)
기여도 : 30%
프로젝트 목적 : Fuzzing 테스트 기법을 사용하는 취약점 탐지 기술 개발
수상 : 2021 하반기 프로젝트 경진대회 우수상
개요
baekseoheon은 Fuzzing(무작위 변조 값 대입) 테스트 기법을 포함한 취약점 탐지 솔루션으로 Python으로 개발되었으며 사용자가 인수 값을 넘겨주었을 때 총 3가지 방식(Directory Fuzzer, XSS Scan, SQL Injection Fuzzer)의 탐지 기능을 제공해줍니다.
담당 역할
•
Python을 사용한 SQL Injection Fuzzer 개발
•
argparse를 사용한 인자 파싱 기능 개발
•
treelib을 사용한 공격 트리 시뮬레이션 검증 기능 개발
•
Git/Github, Zira를 이용한 프로젝트 및 팀 관리
기술 스택
•
OS : Kali Linux
•
언어 : Python
•
DevOps : JIRA, Git/Github
정량적 성과
•
배열 탐색 알고리즘을 이진 탐색 트리 알고리즘으로 교체하여 기존 시간복잡도 에서 으로 단축
•
반복되는 문자열이 있는지 제거하는 로직을 리스트 연산에서 set으로 교체하여 기존 시간복잡도 에서 로 단축
•
2021 하반기 심화 프로젝트 경진대회 우수상
정성적 성과
•
프로젝트의 효율적 업무 일정 관리 경험
•
산출물 문서화 및 보고서 작성 경험
•
SQL Injection과 같은 보안 취약점 탐지 방법에 대한 기술 지식 습득
•
Python의 주요 라이브러리(bs4, argparse, treelib, selenium, numpy) 사용법 습득
•
Fuzzing 기술에 대한 이해 및 구현 경험
피드백
•
오류 해결 과정을 따로 기록해놓지 않아 프로젝트가 끝난 후 당시 발생한 오류 및 해결 과정이 떠오르지 않았다.
→ 오류 기록에 대한 필요를 느꼈다.
•
파일 구조가 모듈별로 패키징이 안 되어 있어서 응집도가 낮았고 파일이 헷갈렸다.
→ 모듈별로 패키징을 진행하여 응집도를 높히고 결합도를 낮추는 방향으로 진행해야 한다.