개요 및 단어 설명
시큐어 코딩에 앞서 단어설명을 한다.
보안약점(weakness)
- 개발자가 개발을 하는 단계, 구현을 하는 단계에서 나타나는 bug
- 코드 리뷰를 통해 보안약점을 찾겠다.
- But, LOC(Line of code)가 너무 많으므로 정적분석도구를 사용한다.
- ex) findBug, findSecurity plugin
- Secure coding이 필요한 단계
보안취약점(vulnerability)
- 서비스가 나가고 난 뒤 침해관련 사고
- 실제 침해사고로 일어난 사례
- 공격자(해커)가 의도하는 공격(해킹)이 일어나는 곳
Secure coding(보안 약점 구간)에서 이슈를 알아 낼 수 없는 경우도 있다. 예를 들어 논리적인 & 구조적인 이슈(ex. sms를 통한 인증)로 인해 보안 취약점에서 들어나는 경우도 있다. 이와 같은 경우에는 분석/설계단계에서 해결해야 한다.
소프트웨어 개발보안(Compliance)이란?
안전한 SW개발을 위해 보안을 고려하여 기능을 설계, 구현 등 모든 일련의 활동을 뜻한다.
요구사항분석 |
설계 |
구현 |
테스트 |
유지보수 |
- 요구사항 중 보안항목 식별 - 요구사항 명세서 |
- 위험원 도출을 위한 위협모델링 - 보안통제수립 |
- 표준 코딩 정의서 및 SW개발보안 가이드를 준수해 개발 - 소스코드 보안약점 진단 및 개선 - 시큐어 코딩 단계 |
- 모의침투 테스트 - 동적분석 |
- 지속적인 개선 - 보안패치 |
요구사항 및 보안항목의 기준은 법적기준(KISA, 개인정보보호법 등)에 따른다.
이슈 발생 시점에 따른 보안취약점 개선비용 table
the economic impacts of inadequate infrastructure for software testing 논문 - software testing report.pdf
<Preliminary Estimates of Relative Cost Factors of Correcting Errors as a Function of Where Errors Are Introduced and Found>
보안 사고 사례를 통한 시큐어 코딩 이해
이미 일어났던 사고사례를 통해 사전에 대처 가능하다.
1) SQL 인젝션 사례
여기어때 해킹사건, 왜 '과징금 3억원' 경징계 나왔나 매출액 3%까지 부과 가능…법상으론 높은 징계
97만여명의 숙박업소 이용 이력 정보가 유출되면서 피해자들이 협박 문자까지 받았던 여기어때 해킹 사건에 대해 방송통신위원회가 서비스 운영사인 위드이노베이션에 과징금 3억100만원, 책임자 징계 권고 등 행정처분을 내렸다....위드이노베이션은 ▲개인정보처리시스템 다운로드 등의 접근권한이 있는 개인정보취급자의 컴퓨터를 외부 인터넷망과 업무망으로 분리하지 않은 점 ▲적절한 규모의 침입차단탐지시스템을 설치하고 개인정보처리시스템에 접속한 IP 등을 재분석해 불법적인 개인정보 유출 시도를 탐지하지 않은 점 ▲해킹을 당한 마케팅센터 웹페이지에 대해서 웹페이지 취약점 점검을 수행하지 않은 점 ▲고객상담사 등에게 파일 다운로드 권한이 있는 관리자페이지 접근권한을 부여하는 등 접근권한을 과하게 부여한 점 ▲인사이동 시 취급자의 접근권한을 지체 없이 변경하지 않아 해커가 이를 악용해 개인정보 파일을 다운로드 한 점 등 정보통신망법 제28조제1항에 따른 접근통제 조치 전반을 소홀히 한 점이 확인됐다.
2) URL 파라미터 조작 사례
주문 번호 쳤는데 신상 '탈탈'…책 사려다가 봉변국내 최대 인터넷서점인 YES 24에 고객정보가 무방비로 노출됐습니다. 주문 번호만 치면 다른 사람에 개인정보까지 다 볼 수 있었습니다....장 씨가 했던 것처럼 취재진도 YES 24 사이트에서 임의로 주문 번호를 쳐봤습니다. 해당 번호를 받은 다른 주문자의 개인 정보를 확인할 수 있었습니다. 이렇게 스무 명의 개인정보를 입수해 직접 확인해 봤는데, 모두 YES 24 고객들이었습니다....YES 24 측은 보안 점검 과정의 실수로 지난달 초부터 3주 동안 개인정보가 노출된 사실이 있다고 인정했습니다.
3) 무작위 대입공격
비번역할 ‘CVC’ 수없이 틀려도 차단장치 없었다中조직, 3억대 기프트카드 정보 빼가 서울 강서구에 사는 A 씨는 지난해 12월 중순 50만 원짜리 기프트카드 8장을 샀다. 불과 며칠 뒤, A 씨는 이 기프트카드로 결제를 하려다 잔액이 ‘0원’이라는 사실을 확인했다....총 16자리인 카드번호 가운데 일부 숫자만 바꾸면 유효기간이 같은 새로운 카드번호가 생성된다는 점을 이용한 것으로 경찰은 추정하고 있다. 한 카드사 관계자는 “카드번호는 자릿수마다 특정한 정보를 담고 있으며 일정한 패턴이 있다”면서 “카드번호 생성 알고리즘을 잘 알고 있는 사람의 소행으로 보인다”고 말했다.
End of Document.
반응형
'Programming Language > Java & Scala' 카테고리의 다른 글
자바 가비지 컬렉션 설명 및 종류 (404) | 2019.02.01 |
---|---|
Java 8 에서 사라진 maxPermSize, PermSize을 대체하는 옵션? (401) | 2019.01.01 |
Java 시큐어 코딩 - 공격 종류 및 해결방안 (282) | 2018.11.23 |
예제로 알아보는 스칼라에서 Option monad (710) | 2018.10.31 |
Intellij에서 scala와 sbt를 사용시 반드시 알아야할 3가지 (1104) | 2018.10.16 |
[Groovy]배열 종류 및 사용법 (1439) | 2018.03.12 |