소스코드 진단 및 시큐어코딩(feat. yasca)
- 정보보안/시큐어코딩 가이드
- 2022. 8. 13.
YASCA
■ yasca란?
Yasca는 프로그램 소스코드의 보안 취약성, 코드 품질, 성능 및 모범 사례 준수를 찾는 오픈 소스 프로그램입니다. FindBugs, PMD, JLint, 자바스크립트 린트, PPLint, Cppcheck, ClamAV, Pixy, RATS와 같은 외부 오픈 소스 프로그램을 활용하여 특정 파일 형식을 검색하고 야스카용으로 개발된 많은 맞춤형 스캐너를 포함하고 있습니다. HTML, CSV, XML, MySQL, SQLite 및 기타 형식으로 보고서를 생성하는 명령줄 도구입니다. 잘 알려진 OWASP 보안 프로젝트와 미국 국토안보부 웹 사이트의 정부 소프트웨어 보안 도구 검토에도 비활성 프로젝트로 등재되어 있습니다. 소스코드 진단 및 시큐어코딩에 활용할 수 있습니다. 소개시켜드리는 프로그램은 오픈소스로서, 상용으로 사용하기는 어려운 프로그램이지만(2011년 이후 업데이트가 이루어지지 않음), 간단한 테스트나 개인 연구 목적으로는 나쁘지 않습니다.
■ yasca를 활용할 수 있는 언어
다음과 같은 언어를 yasca로 소스코드 진단 및 시큐어코딩에 활용 가능합니다.
- .NET (VB.NET, C#, ASP.NET)
- ASP
- C/C++
- COBOL
- ColdFusion
- CSS
- HTML
- Java
- JavaScript
- Perl
- PHP
- Python
- Raw HTTP Traffic
- Visual Basic
yasca로 소스코드 진단하기
■ yasca 다운로드 및 설치
▲ 위 주소로 접속
▲ yasca-core-2.21.zip을 설치합니다
※ 다른 압축 파일들은 yasca에서 사용하는 플러그인이며, 플러그인의 종류와 기능은 다음과 같습니다.
진단에 필요한 플러그인을 다운받아줍시다!
종류 | 기능 |
findbugs | CLASS, JAR 소스코드 검사 |
PMD | JSP 소스코드 검사 |
JLint | JAVA 소스코드 검사 |
Javascript Lint | Javascript 소스코드 검사 |
PHPLint | PHP4, PHP5 소스코드 검사 |
Cppcheck | C, C++ 소스코드 검사 |
Lint4j | JAVA, CLASS 소스코드 검사 |
Grep | 소스코드의 간단한 패턴 검사 |
▲ 다운받은 yasca-core-2.21.zip을 압축해제합니다.
▲ yasca-core-2.21 폴더에 사용할 플러그인(java와 php)을 다운받고 압축 해제하여, 그대로 붙여넣기 해줍시다.
▲ yasca가 설치된 폴더 경로로 이동합시다!
▲ 위의 명령어를 입력해주면 설치가 진행됩니다(다소 시간이 좀 걸릴 수 있으니 기다려주세요!)
▲ px 명령어로 사용할 플러그인(여기서는 자바와 PHP)을 지정해주고 소스코드가 있는 폴더를 적어줍시다!
▲ 진단한 결과값은 바탕화면에 폴더가 만들어지고 html로 결과값이 떨어집니다.
▲ 위와 같이, sql 인젝션 등 관련 취약점에 관한 설명 등을 확인 가능합니다
간략한 설명을 덧붙이자면 네모(회색, 빨간색, 파란색)로 표시된 메뉴가 존재합니다.
회색 - 취약점 예외처리(검토용)
빨간색 - 취약점에 대한 간략한 설명
파란색 - 취약점이 발생한 코드 확인 가능