반응형
소스코드의 취약점
Black Box Testing 방식
- 소스코드를 보지 않고 웹 애플리케이션의 외부 인터페이스나 구조를 분석하여 취약점을 발견
- White Box Testing에 비해 취약점을 찾는 속도가 빠르며 다양한 취약점 찾기 시도 가능
- 인터페이스 간의 상관관계를 분석하여 취약점이 발생하는 부분 식별 가능(내부가 보이지 않음)
- 블랙박스 검사는 소프트웨어 검사 방법 줌 하나로 어떤 소프트웨어를 내부 구조나 작동 원리를 모르는 상태에서 소프트웨어의 동작을 검사하는 방법을 이르는 말임
- 주로 올바를 입력과 올바르지 않은 입력을 일일이 다 동원하여 올바른 출력을 판별하는 방식으로 검사가 이루어지기 때문에 검사의 진행에 있어 대상이 되는 소프트웨어의 코드나 내부 구조 및 개발 노하우에 대한 정보는 기본적으로 필요로 하지 않음(fuzzing test)
- 필요한 것은 특징, 요구 사항, 검사를 위해 공개된 설계도 등 대외적으로 공개된 사항들이며, 소프트웨어는 무슨 역할을 수행해야 되는가? 와 같이 대상이 되는 소프트웨어의 특징이나 요구 사항 등에 초점을 맞춰 검사가 이루어 짐
- 검사 자체는 기능에 관한 것일 수도 있고, 기능 외의 것에 관한 것일 수도 있음
- 이 방법은 유닛 검사, 인테그레이션 검사, 기능 검사, 시스템 검사, 적합성 검사 이렇게 소프트웨어 검사의 모든 레벨에 적용 가능(유닛 검사, 인테그레이션 검사)
White Box Testing 방식
- 개발된 소스코드를 살펴봄으로써 코딩의 취약점을 찾는 것
- 내부 소스코드를 볼 수 있기 때문에 보얀 취약점의 존재 유무를 좀 더 확실히 알 수 있으나 시간이 오래 소요 됨(내부를 볼 수 있다)
- 화이트박스 검사 기법은 소프트웨어 내부 소스 코드를 테스트하는 기법임 소프트웨어를 테스트하는 방법은 크게 블랙박스 검사 기법과 화이트박스 검사 기법이 있음
- 블랙박스 검사 기법은 소프트웨어의 내부를 보지 않고, 입력과 출력값을 확인하여, 기능의 유효성을 판단하는 테스트 기법이며, 화이트박스 검사 기법은 소프트웨어 내부 소스코드를 확인하는 기법 임
- 화이트박스 테스트를 하는 이유는 내부 소스코드의 동작을 개발자가 추적 할 수 있기 때문에, 동작의 유효성 뿐만 아니라 실행 되는 과정을 살펴봄으로써, 코드가 어떤 경로로 실행되며, 불필요한 코드 혹은 테스트 되지 못한 부분을 살펴볼 수 있음
- 화이트박스 테스트를 하는 부분은 대개 코드의 실행 경로를 확인해야 하기 때문에 시중에 나와 있는 커버리지 분석도구를 많이 활용함 화이트박스 검사 기법은 블랙박스 검사 기법에 비해 많은 시간과 분석을 필요로 하지만 오류가 발생 되는 결함의 위치 등을 파악하는데 매우 유용하게 사용할 수 있음
- 일반적으로 화이트박스 테스트를 수행하는 도구는 커버리지 분석 도구와 많이 연관되며, JUnit과 같은 무료 도구가 있는 반면에 크리티컬한 마켓에 사용되는 상용 도구 또한 있음
Gray Box Testing 방식
- Black Box Testing과 White Box Testing의 장점을 혼합
- 외부에서 보이는 취약점을 웹 애플리케이션 보안 진단을 통해 확인하고, 소스코드에서 접근 통제, 입력값 검증, 세션 처리 문제 등을 같이 살펴보면서 취약점을 조사하는 방식(내부를 볼 수 있다)
- 소프트웨어의 내부 구조의 일부만 알고 수행하는 시험의 형태
- 그레이박스 시험은 블랙박스 시험과 화이트박스 시험이 혼합된 방식의 시험 형태
- 블랙박스 시험은 시험자가 내부 구조를 모르고 시험하는데 반해 화이트박스 시험은 내부 구조를 알고 시험 함, 그레이박스 시험은 내부 구조를 일부만 알고 시험하는데, 시험을 위한 테스트 케이스를 만들 때 내부 구조 정보를 활용하며, 시험은 블랙박스 형태로 수행됨, 주로 통합 시험에서 많이 사용 됨(테스트 케이스, 통합 시험)
소프트웨어 개발 보안 가이드로는 행정안전부 소프트웨어 개발 보안 가이드와 OWASP Top 10(0000년도) 취약점 등을 참조한다.
반응형