sql 인젝션



1.입력데이터 검증 기법

2.sql 인젝션

3.명령어 인젝션 취약점원인



입력데이터 검증 방식 


입력데이터 처리를 위한 규칙




설계자나 개발자는 외부에서 입력되는 값을 철저히 통제해야됨



입력값 검증은 애플리케이션에서 먼저 체크되어야 함


서버 애플리케이션에도 체크되어야 함



view  컴포넌트, controller 컴포넌트에 동시에 체크 해야 함



#sql 인젝션 취약점 개요



웹 애플리케이션에서 값을 입력받을 때 

동적 쿼리 생성, 데이터 베이스에 쿼리를 전달하여 실행하는 경우 발생


검증되지 않은 외부 입력값으로 인해 정상적인 쿼리가 변조되어 데이터 베이스에 불법적으로

데이터 열람, 수정, 삭제 됨


저장된 프로시저를 사용하여 시스템 명령 수행




비정상적으로 데이터베이스에 접근하거나 제어하는 공격 기법


모든 종류의 dbms에 적용 가능한 공격 기법




예) 악성 스크립트의 실행, 외부 프로그램의 사용, 불법 로그인, db 정보 열람, 추가,수정,삭제


프로시저를 통한 운영체제 명령어 수행



#sql 취약점 진단



form based sql 인젝션 진단



정적 쿼리 구조를 이용하여 sql 실행




명령어 인젝션 취약점 개요























































보안이슈 및 개발보안의 필요성1



취약한 애플리케이션 원인 70% - 80%


분석 => 설계 =>  개발 => 테스트 =>  배포 =>  운영


sql 인젝션 취약점


xss 취약점(크로스 사이트 스크립팅) - 이메일 본문에 스크립트 명령어를 삽입하여

본문을 열람하기만 하여도 악성 코드에 감염 될 수 있다.


시큐어 코딩 적용하면 94% 정도 해킹 감소


웹 애플리케이션 보안의 필요성 


침해사고 사례를 통해 시큐어 코딩의 필요성 설명 


소프트웨어 보안 약점과 취약점 정보 활용가능


행정자치부의 소프트웨어 개발보안 가이드를 활용가능


소프트웨어 개발보안 방법론을 설명 할 수 있음



보안 솔류션 


종류


한계




방화벽이나 ids /ips 같은 보안 장비를 구축해서


원격으로 시스템의 취약한 서비스를 이용한 공격은 사실상 어려움



해커들은 웹 포트 80번을 집중적으로 공략



안전한 웹보안을 보장하기 쉽지 않음 -  기업마다 서비스 환경이 다르기 때문



웹 기반 공격 유형


1차 해킹 - 외부망 통한 해킹   > 웹서버의 취약점을 공격하는 방법과 내부 pc를 공격하는 방법이 있음


웹서버 해킹은 웹사이트를 통해 이루어지며 sql 인젝션이나 파일 업로드 취약점과 같은 웹 애플리케이션의 취약점 공격을 시도 하고

관리자 계정을 확보해서 내부시스템으로 침투할 수 있는 발판을 만드는 방식


2차 해킹 - 내부망 통한 해킹 -> 내부사용자의 실수로 웹사이트나 메일을 통해 악성코드가 설치되도록 하는 것




보안 종류 - 네트워크 보안, 클라이언트 보안, 애플리케이션 보안, 데이터베이스 보안


- 네트워크 보안 


- 시스템 보안 


- 애플리케이션 보안



 kisa 분석결과 네트워크 보안 장비인 방화벽이나 ids/ips는 정의된 룰이나

시그니처를 이용하여 안전하지 않은 패킷을 필터링하는 정책을 사용한다.

하지만 포트 스캔, dos, 잘못관리된 룰셋, 새로운 패턴의 공격으로 3.5%의 침해사고가 발생하고 있다.

웹 방화벽도 공격에 사용된 데이터의 시그니쳐를 룰로 정의 하여 해당 패턴의 요청의 패턴을 차단하게 되는데

잘 알려진 애플리케이션 레벨의 공격은 잘 차단하고 있지만, 새로운 공격 패턴이나 룰 관리 부실로 인한 침해 사고율이 10% 정도 된다.



악성코드 유입량의 지속적인 증가. 예) 이메일


침해사고 사례














보안약점 vs 보안 취약점



보안약점 : 소프트웨어에서 해킹등 실제 보안사고에 악용될 수 있는 보안 취약점의 근본원인


보안취약점: 소프트웨어 실행 시점에 여러개의 보안 약점중 실제 침해사고의 원인이 되는 그 보안 약점


예방책: 시큐어 코팅


25가지 보안약점 정리 한것 : CVE 목록 - os, 매년 8천여개 목록이 추가됨. (발견된 보안 취약점의 history)



cwe : 소프트웨어의 보안 약점을 사전식으로 관리 하고 미국토안보부에서 관리한다.


수집된 보안약점을 뷰 카테코리 취약점 복합요소 별로 볼 수 있다.


일반적인 취약점의 분류체계



owasp top 10 : 운영중인 웹서버에 발생되는 가장 많은 침해 사고 유형을 정리한 리스트 


애플리케이션 보안을 전문으로 하는 7개 기업의 8개 데이터 세트를 토대로 함.


취약점 공격 가능성, 탐지 가능성, 영향평가 등을 고려하여 가장 많이 퍼져 있고,

위험도가 큰 상위 10개를 선정했다.

리스트의 순서가 중요도 , 빈도와 심각성을 반영하고 있어서 개발자들이 쉽게 위험도를 확인 할 수 있다.


소프트웨어 개발 보안 가이드 주요 내용


입력 데이터 검증 및 표현


보안기능


시간 및 상태

에러 처리


코드오류


api 오용











































+ Recent posts