8. 애플리케이션 보안

2021. 10. 17. 14:05Topcit 정리/기술 영역 - 보안 이해와 활용

반응형

시큐어 코딩

개발단계에서 보안 약점을 제거함으로써 소프트웨어의 취약점과 해킹의 위험성을 줄여주는
방어적 프로그래밍 기법이다.

시큐어 SDLC

  • 요구사항 정의 단계
    잠재적 위협에 따른 보안 취약점 및 영향도를 분석한다.

  • 분석 단계
    보안 요구사항을 정의하고 보안 시스템 구축을 위한 개발자 교육을 실시한다.

  • 코딩 단계
    프로그래밍 언어의 약점과 강점을 파악하여 코딩 규칙을 정의하고 조치 내용을 점검한다.

  • 테스팅 단계
    동적 단위 테스트를 실시하고 보안 적용된 프로그램의 사용성 테스트를 수행한다.

  • 유지보수 단계
    보안 영향도 평가를 수행하고, 취약성을 점검한다.

시큐어 코딩 기법

JAVA

SQL 삽입 공격 대응

PreparedStatement 객체를 이용하여 DB에 쿼리문을 날린다.
위 객체는 특수문자 및 쿼리 예약어를 필터링 하고 스프링과 같은 프레임워크를 사용하는경우
모듈에 맞춰 변형해야한다.

크로스 사이트 스크립팅 공격 대응

외부 입력값에 스크립트가 삽입되지 못하도록 함수 또는 메소드를 사용하여 < > & 기호를
< > & 등으로 바꾼다.

운영체제 명령어 삽입 공격 대응

웹 인터페이스를 통해 서버 내부로 시스템 명령어를 전달시키지 않도록 구성하고,
외부에서 전달되는 값은 무조건 검증을 거친다.

C

메모리 버퍼 오버플로 공격 대응

적절한 버퍼의 크기를 설정하고 설정된 메모리 내에서 올바르게 읽거나 쓰게 한다.
문자열 저장시 널 문자로 종료하게 한다.

포맷 스트링 삽입 공격 대응

printf()등 포맷 문자열을 사용하는 함수를 쓸때 사용자가 포맷 스트링을 못 바꾸게 한다.

Android-JAVA

외부 접근 가능한 컴포넌트 공격 대응

컴포넌트에 대한 접근권한이 외부에 제공되는지 확인한다.

공유 아이디에 의한 접근통제 통과 공격 대응

배포 버전에서 xml에 공유 아이디 항목을 뺀다

반응형