OWASP top 10 항목을 이용한 취약점 확인

1. Mobile OWASP Top 10 ( 2014)

No 진단 항목 내용
1 서버 측 통제 미흡 모바일 앱을 통해 모바일 웹 사이트 침해 사고
2 취약한 정보 저장 방식 설정파일, DB 파일등에 사용자 정보 저장등
3 취약한 전송 계층 보호 평문으로 주요 데이터 전송
4 의도하지 않은 정보 유출 웹 브라우져 캐시, 키보드 캐시, 로그등 단말기 OS 에서의 특성에 읜한 정보 유출
5 취약한 인증 및 권한 관리 인증 권한을 단말기에 의존, 4자리 PIN 등의 간단한 번호
6 취약한 암호화 암호화를 부적절하게 또는 취약한 암호화
7 클라이언트 측 삽입 사용자 입력값 통제, SQL injection. XSS, 3자 앱의 무단 기능 호출등
8 신뢰 할 수없는 사용자 입력값 보안과 관련된 의사 결정이 필요한 기능을 입력값을 믿고 신뢰 할 경우 3자 앱에 의해 의도치 않는 동작
9 세션 처리 미흡 세션 타임 아웃 및 로그인
10 엡 바이너리 보호 미흡 악의적으로 변조된 앱
1. 서버 측 통제 미흡
  • 위협
    • 스마트폰 단말기가 아닌 일반 브라우저에서 접근
  • attack vector
    • 모바일 웹사이트를 일반 브라우저를 이용해서 편리한 환경에서 해킹시도
  • 문제점
    • 웹 취약점을 공략
  • 발생 가능한 부분
    • 하이브리드 앱에 포함된 웹페이지를 크롬등을 이용해서 분석 및 해킹시도
  • 대응 방안
    • 모바일 사이트도 일반 사이트 처럼 보안 절차 필요
    • SQL injection, Cross Site Scripting 등 주기적인 보안 점검 수행
    • 단말기 API 에서만 동작하도록 통체
2. 취약한 정보 저장 방식
  • 위협 - 분실한 스마트폰 또는 악성코드로 로컬에 저장된 정보에 접근
  • attack vector
    • 파일 탐색 프로그램이나 로걸 DB 에 접속하여 평문으로 저장된 데이터를 열람 변조등 또는 외부로 유츌
  • 문제점
    • 루팅을 통한 손쉬운 접근, 암호화된 경우에도 비교적 손쉽게 해결
  • 발생 가능한 부분
    • 저장 기능이 있는 앱의 대부분
  • 대응 방안
    • 반드시 필요한 경우를 제외하고는 되도록 스마트폰 로컬에 저장하지 않는다.
    • 외부저장소에 민감한 정보를 저장하면 안된다.
    • 필요한 경우 OS 에서 제공하는 암호화 API 사용
3. 취약한 전송 정보 계층 보호
  • 위협
    • 서버 클라이언트구간의 평문으로 전송
  • attack vector
    • 신뢰할 수 없는 네트워크 공간에서 제3자가 평문으로 된정보를 열람/변조하거나 외부 서버로 유출
  • 문제점
    • 서버, 클라이언트 구간에서 제3자가 개입할 수 있다.
    • 인터넷에 공개된 가짜 AP를 통한 정보를 열람/변조 또는 외부 서버로 유출
  • 대응 방안
    • SSL/TLS를 사용하거나 주요 정보를 암호화 한다.
4. 의도하지 않은 정보 유출
  • 위협
    • 분실한 스마트폰 또는 악성코드로 로컬에 저장된 정보에 접근
  • attack vector
    • 신파일 탐색 프로그램이나 로걸 DB 에 접속하여 평문으로 저장된 데이터를 열람 변조등 또는 외부로 유츌
  • 문제점
    • 개발자가 단말기 OS의 특성, 보안기능 및 이로 인한 보안 영향에 대해 충분히 파악하지 않고 개발
  • 발생 가능한 부분
    • 로그, 스크린샷 브라우져 캐시, 임시 폴더
    • 코드에 있는 테스트용 계정 정보
  • 대응 방안
    • 로그는 기록하지 않도록 개발
    • 아이디 / 패스워드 등은 스크린샷을 통한 유출 대비(**)
    • 인앱브라우져 역시 캐시를 지워준다.
    • 소스코드내 민감한 정보를 하드코딩하는것 바람직 하지 않다.
5. 취약한 인증 및 권한 관리
  • 위협
    • 부적절하게 구현된 인증 절차나 권한 확인 절차를 우회하여 특정사용자 권한도용
  • attack vector
    • 인증 권한 절차가 없거나 부적절하게 된 경우 다른사용자가 이를 우회하여 접근
  • 문제점
    • 분실된 경우를 고려하지 않았거나 구현 과정의 실수
  • 대응 방안
    • 인증 권한 관리를 구현 해야 한다.
    • 기기 분실 위험에 대해서 고려할 필요가 있다.
    • 개발 도구를 이용해 앱 위/변조 하여 인증, 권한 관리를 우회 할수 있으므로 권한 관리의 최종 점검은 서버측에서 수행해야함
6. 취약한 암호화
  • 위협
    • 암호화된 정보를 3자가 획득함
  • attack vector
    • 암호화된 정보를 복호화하여 평문으로 볼 수 있다.
  • 문제점
    • 암호화가 아닌 방법을 암호화로 착각하여 발생
    • 믿을 만한 암호화 이지만 부적절하게 사용하여 발생
  • 대응 방안
    • 암호화 키를 모바일 앱 내에 함께 저장하는 방법을 사용하지 않는다.
    • 신뢰 할 수 있는 라이브러리를 사용한다.
    • 플랫폼에서 제공하는 기능을 사용한다.
    • base64, 난독화, 시리얼라이즈는 암호화가 아니다.
7. 클라이언트측 삽입
  • 위협
    • 3자가 앱에 비정상 데이터를 삽입
  • attack vector
    • 앱, 웹에 비정상 데이터를 삽입하여 해킹
  • 문제점
    • 3자가 해당 앱의 기능을 호출 하거나 통신 과정에 개입 할 수 없다는 가정 하에 개발 하여 발생
    • 사용자 입력 부분의 SQL injection, Cross Site Scripting, 버퍼오버플로우등
  • 발생 가능한 부분
    • 자바스크립트 enable , 자바스크립트 인터페이스를 이용할 수 있음
  • 대응 방안
    • 사용자 입력값 검증
    • html tag, javascript 및 sql query 등의 비정상 데이터 방지
    • DB 관련 작업시 prepared statement SQL injection 링크
    • 문자열 처리보다 안전한 함수 사용
8. 신뢰 할 수 없는 사용자의 입력값
  • 대응 방안
    • 사용자 입력값 검증, 사용자를 믿지 마라 ##### 9. 세션 처리 미흡
  • 대응 방안
    • 세션 타임 아웃을 단말기에 의존하지 말아야 한다.
10. 앱 바이너리 보호 미흡
  • 위협
    • 3자가 앱을 역컴파일하여 분석한후 정상기능 변경한 위변조 바이너리 배포
  • attack vector
    • 앱 자체를 역컴파일하여 분석
  • 문제점
    • 사용자가 자사가 개발한 정상적인 앱만 사용할 것이라고 가정한 상태에서 개발 하여 발생
  • 대응 방안
    • 바이너리 위변조 방지 및 분석 방지를 위한 보안도구 사용(프로가드 등)
    • 솔루션??

PyeongHo

즐겁게 또 즐겁게