[사이버범죄 #1] 도박과 가상베팅게임

Posted by ironmask84
2019. 6. 2. 23:00 컴퓨터공학/Security


개발자로 몸담아왔던 나는 정보보안에 관심을 가지고 커리어를 쌓으려고 노력하는 와중에

결국 이 분야로 이직을 하게되었고, 이제 관련 칼럼?! 을 씨리즈로 

되는대로 연재?! 해보도록 하겠습니다.

(시간이 되는대로, 감이 오는대로, 의식의 흐름에 따라...)




첫 번째 주제는 가상베팅게임 입니다.


도박죄 란?

형법 제246조에 따르면, 

재물 또는 재산상의 이익을 걸고 우연에 의하여 재물을 얻고 잃는 것을 하는 경우에 성립하는 범죄를 뜻함.


참고로 사기도박의 경우는 어떠한가?

이 때는 사기꾼들이 승패의 수를 지배하여 재물을 취하는 것이이 때문에 우연성이 결여되어

사기꾼들은 사기죄만 성립하고 도박죄는 성립하지 않는다. 

그리고 피해자도 도박죄가 성립되지 않는다.


이러한 내용을 보면 재물 과 우연성이 중요한 포인트!


이러한 도박관련 게임은 포커, 맞고, 복권, 경마, 카지노 등 다양하며,

국내에 합법한 도박게임은 강원랜드, 과천경마장, 경륜장 정도가 아닐까 싶네요.


그 외에 온라인에서는 도박관련 게임이 20년 전 쯤 부터 있었습니다.

유명한 업체로는 한게임, 넷마블이고,  맞고 포커는 매우 대중적입니다.

개발 또한 매우 쉬운 게임입니다. ^^ 단순하니까..


여튼, 이러한 온라인게임에서는 사이버 머니만을 두고 이뤄지기 때문에

우연성은 적용되지만, 재물이 적용되지 않습니다.

사이버머니는 실제 돈을 주고 구입은 가능하게 해놨지만,

다시 사이버머니를 환전하는 시스템이 없이 때문이죠.


하지만, 단지 공식적인 환전시스템이 없을뿐

비공식적으로 어둠의 루트를 통해 환전이 가능한 일들이 만연하고 있습니다.

예전에도 잘 드러나지는 않지만 충분히 있었다고 생각되네요.


이러한 어둠의 루트는 1:1 거래가 될 수도 있을 것이고,

이런 거래를 전문으로 하는 이른바 '머니상'으로 불리는 존재가 있음.


이러한 머니상의 존재를 쉽게 접근할 수 있는 것이 큰 문제로 대두되고 있지요.

게임업체는 이러한 머니상의 활동을 제한하지 않고 침묵하고 있는 상황이

계속 벌어집니다. (아마도 게임의 활성화를 위한 것이라고 생각된다.)


게임업체에서 잡아떼면 법적으로 이러한 부분을 제재할 수 있는 시스템이 없고,

게임위원회에서 모니터링 해서 게임업체와 머니상의 유착관계를 포착해야만

처벌이 가능하다고 합니다.


법적 시스템이 잘 정착되어 건전한 게임문화가 이뤄지길 기대해봅니다!!


참고사이트 : https://m.gamemeca.com/view.php?gid=1430799






 

디지털포렌식 2급 자격증 후기

Posted by ironmask84
2019. 5. 24. 16:32 컴퓨터공학/Security


도전 배경

IT Security에 관심이 많고, 

이와 관련된 분야를 연구 및 개발했던 저는 

이번에 디지털포렌식에 도전했습니다. ^^


민간자격증이었던 이 자격증은 몇년 전부터 국가공인이 되었네요.

아직은 많이 알려진 자격증은 아니라

시험 고사장이 많이 없고 시험 횟수도 1년에 2번꼴로 적습니다.

1급은 1번 밖에 진행안하네요.


날로 불어나는 사이버 범죄..

사이버 시대가 깊어진 요즘,

그 순기능에 못지않은 역기능이 늘어나는 듯 합니다.


시험 후기

필기는 생각보다 어렵지 않았습니다.

정보보안기사 공부로 다져진 보안 도메인 지식들과

수 년간 전공공부, 직장생활과 정보보안기사, 

정보처리기사 등으로 다져진 IT 지식들을 베이스로 공부했습니다.

좀 더 자세한 방법 정리로는

1. 파일시스템 종류 (정리본과 정보보호론 공무원 문제집)

2. 윈도우 레지스트리 항목들 (정보보호론 공무원 개념책)

3. 데이터베이스 개념 (정리본과 정보처리기사 책)

4. 네트워크보안 (정보보안기사 책)

5. 디지털포렌식법 (정리본과 블로그 검색 활용)


1주는 가볍게 정리본을 보고, 1주는 기출문제 5회 풀어보는 것으로

총 2주 공부로 76점 합격했습니다!!

세부 점수는 과목수는 5개과목에 아래와 같습니다.
1. 컴퓨터 구조와 디지털 저장매체    12점 (15점 만점)
2. 파일시스템과 운영체제                9점 (15점 만점)
3. 응용프로그램과 네트워크의 이해  11점 (15점 만점)
4. 데이터베이스                           12점 (15점 만점)
5. 디지털포렌식 개론                    32점 (40점 만점)

1, 2, 4 과목은 정보처리기사
3과목은 정보보안기사
5과목은 별도 공부 필요

정도로 보시면 적당합니다.

컴퓨터관련 비전공자 이시면 좀 더 많은 공부가 필요할 것으로 보입니다.

여기서 정리본과 기출문제가 궁금하실 텐데요 ^^

정리본은 네이버에 검색해봐도 올리신 분들이 많은 것 같아,

제작자에 가까운 분의 링크를 아래 걸어둡니다.

https://blog.naver.com/bitnang/220692059829


기출문제는 디지털포렌식 협회에서 나오는 문제지입니다.

해설이 없다는 것이 최대 단점입니다 ㅜㅜ

https://forensickorea.org/wp/?uid=41&mod=document&page_id=38


참고로 고사장은 서울의 경우 종로쪽에 성균관대 법학관입니다.

생각보다 어려보이는 분들도 많아 놀랬네요 ^^;


 

정보보안 산업기사 후기 (2018-09-08)

Posted by ironmask84
2018. 9. 8. 23:48 컴퓨터공학/Security


오늘 정보보안 산업기사 필기 시험을 치뤘습니다..

저는 이미 경력이 꽤 있는 SW 개발자 입니다.

산업기사 시험 따위야.. 라는 교만한 생각을 가지고 있습니다만,

이 시험을 치룬 이유가 있습니다. ㅋㅋ


조금 예전 이야기부터 담아 보겠습니다.

정보보안 기사 시험 관련 후기를 이제서야 남기네요 ㅋㅋ

사실 5년 전부터 정보보안 시험에 도전을 했었습니다.

정보보안 기사는 정보보안관련 국가공인 자격으로 2013년에 처음 시행 되었습니다.

2013년 2회 때 정보보안 기사 필기시험에서 정보보안 법규 과목 과락으로 낙방하고..

2014년 3회 시험에서 합격했습니다.


그런데.. 실기시험이 말도 안되는 난이도로 2년 동안 낙방했었죠..

1년에 2번 있는 시험 입니다. 고로 4번이나 하...

어찌나 범위도 많고 주관식에 서술식 문제들이라 매우 어렵습니다.

합격률이 5%가 안되는 경우가 많습니다.

그렇다고 메리트가 그렇게 있는 자격증도 아닌데 말이죠..

정보처리기사와 동급으로 여겨지니 참.. 난이도는 100만배 어려움.


2년 동안 낙방하고 나니, 

내가 왜 사서 이렇게 고생하고 있냐는 생각이 들더군요

기술사 처럼 메리트가 있는 자격증도 아닌데!!

오기로 했던 것 같습니다.


나름 컴퓨터 전공이기도 하고, 

자격증 시험에 매우 자신감이 높았던 저였기에 말이죠.

이 자격증으로 인해 자격증 시험에 대한 자신감이 많이 떨어졌습니다. ㅜㅜ


그래도 또 도전하고자 필기 시험 유효기간 (2년) 이 지나고 

2016년에 다시 필기 합격을 해놨습니다.

그런데 이래저래 여러 바쁜일들이 많아서 실기 시험을 한 번 밖에 못치뤘고,

그 마저도 실패했습니다.

이제 올해 하반기 시험이 마지막 필기 유효기간이 됩니다....

이번엔 합격할 수 있을런지 ㅡ_ㅡ

직장일과 병행하기 무지 힘들엉...


각설하고..

이번에 산업기사 시험에 도전한 계기는!!

첫째, 차주에 있을 경찰 경력경쟁채용 중 

사이버 수사 필기 시험 대비 전초전을 치뤄봤다고 해얄까요 ㅋㅋ

경찰 경력경쟁 채용 도전은 2017년 상반기 부터 있었는데, 

이것도 사연이 많아요.. ㅋㅋ 

그 건은 따로 포스팅 해보겠습니다.  최종합격 후에 말이죠 ㅡㅡ

언제가 될진...


둘째, 기사 시험은 난이도가 너무 높아서 합격이 힘드니

이왕에 공부해놓은 것 산업기사라도 따볼까 하는 생각입니다.

사실 컴공 프라이드에 산업기사라니.. 자존심 상합니다만,

일단, 산업기사라도 따봐야 겠어요.

덩달아 기사도 합격하면 더욱 굿!!


그래서 후기는??

이번 산업기사 후기 입니다!!

1. 시스템 보안 : 윈도우 보안이 요상하게 꽤 나와서 괴롭히네요.

2. 네트워크 보안 : 그럭저럭 무난했습니다.

3. 어플리케이션 보안 : 여기저기 다양하게 나와서 어려웠습니다.
--> 이중서명, 전자입찰, SET, 전자투표 등 활용원리 및 방법에 대해
      지문도 길게 나와서 더욱 헷갈리게 하더군요.

4. 정보보안 일반 : 제일 쉬웠던 것 같습니다.


기사와는 달리 정보보안관리 및 법규가 빠져 있습니다.

과락 40점에 평균 60점 이상이 합격이구요.


사실 머 필기는 100% 합격 예상합니다.

기사 실기도 아슬하게 떨어진 자로서,

산업기사 필기 떨어지면 타격이 너무 큽니다. ㅋㅋ


점수 예상

시스템 보안 80  네트워크보안 85  어플리케이션보안 75  정보보안일반  90

평균 점수 : 82.5 점으로 가볍게 합격 예상 함.

10월 5일에 점수 발표되면, 업뎃 남기도록 합죠 ㅋㅋ


차주에 경찰 사이버수사대 필기시험을 치르고 

후기를 남겨보도록 하겠습니다.

아! 물론 자세한 후기는 최종 합격하면 올릴겁니다 ㅋㅋㅋㅋ


예상으론 보안기사 필기 시험보다 난이도가 낮을 거라고 봅니다.

60분이라고 하니 아무리 많아도 60문제 일거고..

45문제 예상 해봅니다.

고로, 5문제 이상 안틀렸으면 하네요.. 경쟁시험이니 또르르...




 

6. 웹, DB 등 정보시스템 취약점 점검 및 보안대책 수립

Posted by ironmask84
2018. 3. 3. 17:17 컴퓨터공학/Security


* 웹 로그 분석 (서버에 저장되는 로그)
  1) 접속 사용자의 행위/취향 등을 분석
  2) 보안사고 발생 시 추적할 수 있는 증거자료
  3) 보안사고 발생 전 이상 징후, 해킹시도, 해킹 성공 여부를 확인
  4) 다양한 웹 공격 패턴 파악
  5) 접속시간, 접근 파일 정보, 사용자 정보, 요청 방식, 성공여부 등을 확인

* GET, POST 요청 메소드
GET : URI로 지정된 리소스를 서버에 요청
POST : URI로 지정된 리소스에 데이터를 전달하여 이를 처리한 결과를 서버에 요청

* 웹로그 종류
  1) NCSA CLF(common Log Format) : Apache 및 Tomcat의 기본 포맷
  2) NCSA ELF(Extended Log Format) : CLF에 Referer값과 User-Agent값이 포함된 포맷
  3) W3C ELF : Referer와 User-Agent를 비롯한 Cookie 및 사용자 정보를 추가로 남길 수 있는 포맷

* 웹로그 포맷
  0) Host, Date and Time, Request, Status, Bytes
  1) Referer : 요청된 URL이 참조되거나 링크된 URL
  2) User-Agent : 클라이언트 OS 및 브라우져 버젼



일반적으로 기업들이 웹 모의해킹을 수행할 때는 외부 업체를 구하여 수행할 수도 있고 회사 내부 직원들에 의해서 수행할 수도 있습니다. 다만 이러한 모의해킹을 수행할 때는 다양한 기준에 따라서 실시할 수 있습니다. 대표적인 것이 OWASP TOP 10 웹 취약점, 국정원 홈페이지 8대 취약점 등입니다. 다만 모의해킹을 수행할 때는 아이피, 아이디, 접속 일자, 행위와 같은 반드시 들어가야 할 기준을 포함하여 수행이 되어야 합니다. 또한 한국인터넷진흥원(KISA)에서는 홈페이지 취약점 제거 가이드까지 제시하고 있으므로 이런 것들을 잘 참고하는 것이 중요합니다.

※ 한국인터넷진흥원(KISA) 2016년 홈페이지 취약점 진단제거 가이드 ※

https://www.kisa.or.kr/public/laws/laws3_View.jsp?mode=view&p_No=259&b_No=259&d_No=49&ST=T&SV=

  정말 고리타분한 말로 들릴 수 있겠지만 자신이 웹 개발자라면 평소에 이러한 취약점 진단제거 가이드를 읽어보면서 공부해 볼 필요가 있습니다. 또한 회사에서 실제로 모의해킹을 수행할 때도 이러한 가이드를 참조하게 됩니다. 위 문서를 보면 제가 자주 쓰는 CSRF 기법에 대한 대응 방안도 나와있네요.

  재미있네요. 고전적인 해킹 기법은 CSRF의 동작 과정 및 세부적인 내용에 대해서 소개하고 있습니다.

※ 일반적인 웹 모의해킹 점검 절차 ※

① 진단할 기업 정하기: 대상의 개요, 사업의 목적 파악 
② 대상 기업 분석: 진단 대상 사이트 규모, 용도, 주요 기능 목록, 예상 취약점 목록화
③ 정보 수집: 웹 취약점 스캐너 활용, 공격 포인터 이용
④ 취약점 점검 실시: 사이트 별로 기능에 따른 예상 취약점 테스트 실시, DB유출, 정보유출 등 공격시도
⑤ 권한 획득: 웹 서비스 관리자 권한 획득, 웹 쉘을 통한 루트 권한 획득 등

  일반적으로 웹 모의해킹을 통한 점검 절차는 위와 같이 수행됩니다.

※ 웹 취약점 스캐너 ※

- nikto: 취약점을 점검할 때 가장 많이 사용하는 점검 툴
- OWASP Zap: OWASP TOP 10 취약점을 주 대상으로 한 점검 툴
- Acunetix: 상용 웹 스캐너로 가격이 비싼 점검 툴



DB 침해사고는 외부의 해커, 인가된 내부 사용자, 인가되지 않은 내부 사용자 등 모든 범 위에서 발생할 수 있다. DB는 정보시스템의 가장 깊은 곳에서 운영되지만 웹 애플리케이 션(Web Application), 내부망(Internal Network), 파트너 연계 네트워크 등 수 많은 접 근점의 존재로 인해 데이터 유출 위험이나 서비스 중지의 위험이 상시적으로 존재한다.
DB 취약점의 유형은 다음과 같다.
■Admin 권한이 아닌 일반 권한을 가진 DB 계정이 단 하나의 SQL 명령으로 Admin 권 한을 획득 한다면?
■DB 계정이 없는 사용자의 DoS공격에 의해 고객 및 금융 업무를 운영하는 DB가 갑자기 중지된다면?
■DBMS 내부에 DBA도 모르는 내부 함수(Internal Function)로 인해 DB가 손상된다면?
■다른 소유주의 테이블(Table)이 남모르게 접근 가능하다면?
앞의 취약점들은 다음의 대표적인 DB 취약점을 통해 공격받을 수 있다.
■디폴트(Default) 패스워드 및 보안상 안전하지 못한 약한 패스워드
■권한의 남용(모든 권한은 꼭 필요한 최소한의 권한으로 운영되어야 한다.)
■버퍼 오버플로(Buffer overflow)나 형식문자열(Format String)과 같은 알려진 취약 점들
■네트워크를 통한 취약점들
■DB 및 시스템 파일에 대한 불법 열람 및 변조
■SQL 주입공격(Injection )
■DB 서비스를 중단시킬 수 있는 서비스 거부(Denial of Service)와 같은 위협들 문제는 이러한 DB 취약점들이 DBMS 제조사나 해커들에 의해 항상 공개가 된다는 것이 다. 이렇게 공개된 DB 취약점들을 통해 DB는 쉽게 공격 대상으로 주목된다. DB 취약점 분석은 DB에 내재된 취약점들과 DB 운영에 있어서 고려되어야 할 항목들을 다각도에서 구체적으로 점검함으로써 보안 관리자 및 DBA에게 시스템에 내재된 안전 취 약점(Security Hole)을 제거하게 하여 DB의 보안 수준을 향상시키게 한다.
DB 취약점 분석 솔루션은 점검대상 네트워크 범위에 존재하는 정보자산을 파악하는 정보 수집(Information Gathering), DB 보안을 검증할 수 있는 모의해킹(Penetration Test), 내부 보안감사(Security Auditing) 등의 과정을 통해 다양한 DB 취약점들을 도출 하여 DB의 전체 보안 수준의 향상을 도모한다.
DB 취약점 분석은 정보 자산의 파악과 보안성의 검토, 검출된 취약점 제거를 위한 Fix Scripts 및 개선안 제시, 레포팅 등을 주요 항목으로 한다.

결국 DB 취약점(Database Vulnerabilities)은 DB 보안을 위해 반드시 점검해야 할 항목 이라고 할 수 있다.


* 행정안전부에서 내놓은 공개SW를_활용한_소프트웨어_개발보안_점검가이드 에 따르면
Eclipse 나 Android Studio 같은 통합개발환경(IDE) 도구, jenkins와 같은 CI(Continuousintegration) 도구에서
FindBugs, FindSecurityBugs, PMD  툴을 플러그인으로 적용해서 사용이 가능하다.


 

3. 정보보호 관리(인증)체계 및 관리법규

Posted by ironmask84
2018. 3. 1. 15:52 컴퓨터공학/Security


* 정보보호 인증체계

1) 접근통제 (식별 -> 인증 -> 인가)  (권한부여, 직무분리, 최소권한 개념으로)

직무분리 : 업무 발생부터 승인, 수정, 확인, 완료 등 모든 과정이 한 사람에 의해 처리될 수 없게하는 보안정책
최소권한 : 허가받은 일을 수행하기 위한 최소한의 권한만을 부여하여, 권한남용에 의한 피해 최소화

방법 : 패스워드 : 사전공격, 무차별 공격, Backdoor, 사회공학, 스니핑 등에 무력화

         i-PIN : 주민번호 저장안해도 되는 장점

         OTP : 분실시 악용, 배터리 방전 문제

         생체인증 : 높은 비용, 사용자 거부감


통합인증체계 : 한번의 인증으로 재인증 없이 전체 시스템에 접근이 가능하게 한 솔루션
각 시스템을 개별적으로 ID/PWD 관리 안해도 되므로 분실하거나 노출위험이 줄어듬
중앙집중관리로 효율적이나, SSO 관리서버가 침해 당하면 모든 서버 보안침해가 가능해지는 위험성 올라감

Kerberos ( 대칭암호 기법, 네트워크를 통한 키분배, 키분배센터 비용 발생)

SESAME (비밀키 분배에 공개키 암호화를 사용, 키관리 비용 감소)

2) 접근통제 보안 위협 및 대응책

  - 사전공격 : Password 암호화 저장 (salt 이용)

  - 사회공학 : 보안 인식 교육 필요

  - 피싱 : 스푸핑 이용

  - 스미싱 : SMS이용한 웹사이트 유인 -> 트로이 목마 S/W 설치 -> 개인정보 유출

3) 기기인증 : 네트워크에 참여하는 다양한 기기의 안전한 운영을 위해 해당 기기를 식별하는 신뢰된 인증방법

장점 : 보안성 제공, 일관된 보안정책에 의한 구축 및 운영비용 절감, 단일 보안 프레임워크 기반으로한 상호연동성

- 아이디/패스워드 : 보안수준 하, 인증이 쉬운만큼 보안안전성도 약함

- MAC주소 인증 : 보안수준 하, 예로 무선랜 카드,
                       추가적인 어플과 프로토콜 필요없고 접속 용이,
                       기기 바뀌면 새로 MAC 주소 재등록필요, MAC주소 유출되면 큰일, 부인방지 불가

- 암호프로토콜 활용 인증 : 보안수준 중, 예로 802.1x의 EAP, WAP2 등 표준화된 기술 존재
                                   다양한 표준화된 인증방식이 있어 안전성 어느정도 보장,
                                    암호 및 인증 알고리즘의 안정성에 의존함, 오래된 알고리즘은 해커에 의해 깨지기도 함 (RC4)

- Challenge/Response 인증 : 보안수준 상, OTP와 유사하게 일회성 해시값 생성하여 사용자 인증
                                      서버가 랜덤값(Challenge)을 전송 -> client는 수신한 값과 패스워드에 해시 적용해서 반환(Response)
                                       -> 응답받은 서버는 같은 방법으로 해시한 값과 비교해서 일치하면 인증 완료
                                      패스워드로 간편인증이 가능하면서도, 네트워크상 매번 다른값으로 전송되므로 안전
                                      그래도 패스워드 노출되면 보안이 깨짐

- PKI 기반 기기 인증서 기술 : 보안수준 최상, 안전성 높고, 부인방지 기능
                                       인증서 관리(발급, 갱신, 폐기) 비용 발생, CRL 리스트 관리 비용 발생


* 정보보호 관리체계 및 법규 (보안기사 필기에서 챕터 정보보호 관리 참고)

1) 정보보호 정책 : 조직의 내외부 환경과 업무성격에 맞는 효과적인 정보보호를 위해 수행되어야할 항목을 기술한 지침과 규약으로 정보자산을 어떻게 관리하고 보호할 것인지 문서로 기술한 것

2) 정보보호 정책 역할 : 임직원에게 책임할당과책임추적성 제공,
                              기업의 비밀 및 지적재산권을 보호하며
                              기업의 컴퓨팅 자원낭비 방지

3) 정보보호 정책 요소
절차 : 정책 세부 지시사항
표준 : 조직에 적용되는 소프트웨어, 하드웨어적인 요구사항 정의
기준선 : 정보보호 정책의 일관성 있는 적용을 위해 준수해야할 사항
지침 : 계획수립 및 구현에 대한 권고사항

4) 정보보호 관리자 역할

- 예산확보 (헬프데스크, 개발, 인프라, SW 보안기능 추가

- 타 부서와 협업하여 책, 절차, 기준선, 표준, 지침을 개발

- 보안인식 프로그램 개발 및 제공 : 집합교육, 온라인교육, 보안관련 포스터 공모

- 비즈니스 목적에 대한 이해 
--> 조직의 목표 및 환경 (강약점, 위협, 기회, 법/규제 등)

- 최신 위협/취약점에 대한 인지

- 정부의 법/규정에 대한 컴플라이언스 여부 점검

- 최신 기술 습득 (정보보안 연합회, KISA한국인터넷진흥원 등 과의 관계 구축)

5) 계층별 책임 및 역할

- 경영진 : 정보자산 보호 전반적인 책임, 정보시스템 위험 이해
- 정보보호 이사 : 조직의 정보보호 활동에 대한 계획 수립, 설계, 검토
- 보안전문가 : 보안정책, 절차, 표준, 기준선, 지침 개발 및 구현
- 데이터 소유자 : 정보자산에 대한 책임
- 데이터 관리자 : 시스템 관리자, 백업 수행
- 정보시스템 감사인 : 정책, 절차, 표준, 기준선, 지침을 준수하는지 검토
- 비상계획 관리자 : 비상상황에 대비한 계획 수립
- 보안관리자 : 사용자 접근요청을 처리 및 권한 부여

6) BCP(Business Continuity Planning) 와 DRP(Disaster Recovery Planning)
- 비즈니스 연속성 계획 : 재난 발생 시 비즈니스 연속성을 유지하려는 방법
정상적 운영을 위한 데이터 백업 등을 통해 핵심업무 기능을 지속하는 환경 조성
사업활동이나 프로세스가 중단되는 것에 대항
비즈니스 영향 평가인 BIA가 선행되어야 함
BIA 평가
- 중요기능과 시스템, 리소스 식별
- 리소스에 대한 최대 허용 중단시간 MTD 계산
  수시간 내(매우 치명적), 24시간 내(치명적), 36시간 이상(필수), 일반
- 중단 영향과 허용 가능한 정지시간 기반으로 복구 우선순위 개발
- 위험과 취약점을 식별하고 위험을 계산
- 백업 솔루션 개발

* BCP 계획 수립 절차
비즈니스 분석 -> 위험평가 -> 비즈니스 연속 전략개발-> 비즈니스 연속 계획 개발 -> 계획 연습

* BCP 전체 단계 (NIST 미국 상무부 기술관리국 산하)
계획 수립 -> BIA 평가 -> 예방 통제 식별 -> 연속성 전략 개발 -> 연속성 계획 개발 -> 테스트, 훈련 -> 계획의 유지관리

- 재난 복구 계획 : 재해나 재난으로 인해 정상시설로의 접근거부 등의 이벤트를 다루며,
응용프로그램, 컴퓨터 설비의 운영재개와 같은 IT 중심의 계획을 말한다.
핵심 정보시스템과 데이터가 중단되는 것에 대항
( (화재, 지진, 태풍),  (폭격, 테러, 방화),  ( 장비고장, 소프트웨어 에러, 통신 네트워크 중단) 등)

- 복구전략

1) 미러사이트 : 초기투자 및 유지보수 비용 높으나 실시간 복구가 가능하다

2) 핫 사이트 : 비동기적 방식으로 실시간 미러링을 통해 데이터 최신 유지, 액티브 전환을 4시간 이내

3) 웜 사이트 : 중요성이 높은 정보자원만 부분적으로 재해복구 센터에 보유,
                  실시간 미러링을 안하고 백업주기가 수 시간 ~ 1일 정도

4) 콜드사이트 : 데이터만 원격지에 보관하고 수일 ~ 수주 로 원격지에 백업한다.
                     비용이 저렴하지만, 복구 소요시간이 매우 길고 신뢰성이 낮다.

- RAID

데이터 이중화 및 성능향상을 위한 기술
몇개의 물리적 디스크를 묶고 이것들을 논리적 배열로 정의하여,

저용량, 저성능, 저가용성인 디스크를 중복으로 구성함으로 고용량, 고성능, 고가용성 디스크를 대체한다.
실제 데이터는 여러 개의 물리적 디스크에 저장

1) 데이터 스트라이핑 : 데이터를 여러 조각으로 나누어 여러 디스크에 분산 저장하고 동시에 엑세스를 가능하게 하는 기술로
균등 저장을 위해 라운드 로빈 방식을 사용,  I/O 속도 향상,  중복성은 없음, 일부 디스크 고장 시 복구 불가

2) 중복 : 일부 데이터가 손실된 경우 복구할 수 있도록 중복 저장,
            하나가 고장나면 다른 하나 즉시 사용 가능하지만 비용이 많이 든다.

RAID Level 0 : 스트라이핑 

RAID Level 1 : 미러링 방식이다. 즉, 중복 특성

RAID Level 0 + Level 1 방식도 존재


7) 물리적 보안

시설 위치 선정, 데이터센터 위치 선정 및 설계, 전력에 관한 설계 (정전 대비 등),
입구 통제(자물쇠, 생체인식 등), 온습도 등 환경고려 설계 

8) 디지털 포렌식 : 법정 제출용 디지털 증거를 수집하여 분석하는 기술
    CERT (컴퓨터 비상 대응 팀) : 한국인터넷진흥원 산하 인터넷침해대응센터 있음

9) KISA - ISMS 인증 : 한국인터넷진흥원에서 객관적 평가를 통해 인증하는 제도
심사 분야-> 정보보호 정책, 정보보호 조직, 외부자 보안, 정보자산 분류, 정보보호 교육 및 훈련,
인적보안, 물리적 보안, 시스템개발 보안, 암호통제, 접근통제, 운영 관리, 전자거래 보안, 보안사고 관리,
검토 모니터링 및 감사, 업무 연속성 관리

 인증취득 효과
- 피해사고 피해액 감소
- 정보자산 보호기술 및 정보보호를 위한 관리기술 향상
- 신뢰성 및 기업 이미지와 경쟁력 강화
- 정보보호 인식 제고


* 관련 법규

1) 개인정보 보호
   - 개인정보의 수집 이용의 동의
   - 개인정보의 수집 및 이용의 제한
   - 주민등록번호의 사용 제한
   - 개인정보의 제공 동
   - 개인정보 관리책임자 지정
   - 개인정보 누출 등의 통지 및 신고
   - 개인정보의 파기 
   - 개인정보 이용내역의 통지

2) 전자서명법
   - 공인인증서에 기초한 전자서명을 말한다.
   - 전자문서의 안전성와 신뢰성 확보를 위해 사용자 편익 증진
   - 공인인증기관, 공인인증서, 인증업무의 안전성 및 신뢰성 확보, 전자서명인증 정책의 추진
최상위 기관 : KISA,   공인인증기관 : 한국정보인증, 코스콤, 금융결제원, 한국전자인증, 한국무역정보통신

3) 개인정보 제공 동의 획득시 고지사항
- 개인정보의 이용목적
- 이용하는 개인정보의 항목
- 개인정보 보유 및 이용시간
- 동의 거부권이 있다는 사실 및 동의 거부에 따른 불이익 공지
- 변경사항이 있으면 다시 알리고 동의 받아야 함

4) 개인정보 유출 시 통지사항
- 유출된 개인정보의 항목
- 유출된 시점과 그 경위
- 유출로 인하여 발생할 수 잇는 피해 최소화 위해 정보주체가 할 수 있는 방법에 관한 정보
- 개인정보처리자의 대응조치 및 피해 구제절차
- 정보주체에게 피해가 발생한 경우 신고 등을 접수할 담당부서 및 연락처


 

2. 정보보호 정책 및 위험관리

Posted by ironmask84
2018. 2. 28. 23:52 컴퓨터공학/Security


* 정보보호 정책

1) 접근통제 (식별 -> 인증 -> 인가)  (권한부여, 직무분리, 최소권한 개념으로)

방법 : 패스워드 : 사전공격, 무차별 공격, Backdoor, 사회공학, 스니핑 등에 무력화
         i-PIN : 주민번호 저장안해도 되는 장점
         OTP : 분실시 악용, 배터리 방전 문제
         생체인증 : 높은 비용, 사용자 거부감

통합인증체계 : Kerberos ( 대칭암호 기법, 네트워크를 통한 키분배, 키분배센터 비용 발생)
                    SESAME (비밀키 분배를 공개키 암호화를 사용, 키관리 비용 감소)


2) 접근통제 보안 위협 및 대응책
  - 사전공격 : Password 암호화 저장 (salt 이용)
  - 사회공학 : 보안 인식 교육 필요
  - 피싱 : 스푸핑 이용
  - 스미싱 : SMS이용한 웹사이트 유인 -> 트로이 목마 S/W 설치 -> 개인정보 유출


3) 서버 보안 SW
  - 취약점 분석 도구 : Nessus, SATAN, SARA, nmap(포트 스캐닝)
  - 시스템 침입탐지 시스템 : Snort(실시간 트래픽 분석), TCP-wrapper(Unix 방화벽), Ipchain/IPtable(패킷필터링 방화벽)
  - 무결성 점검도구 : 시스템 백업(tar압축, Norton ghost), 파일무결성 점검 (tripwire, Fcheck, MD5 )
  - 스캔탐지 도구 : mscan(주요 취약점 스캔), sscan(네트워크 취약점 점검)


* 위험관리 ( 검토범위 -> 위험분석 -> 제약조건, 대책 선택 -> 위험 수용)

1) 개요 : 보안정책 -> 위험관리 -> 대응책 구현 -> 사후관리

2) 전체 위험 : 위협 X 취약점 X 자산
   잔여 위험 : 위협 X 취약점 X 자산 X 통제격차

3) 위험에 대한 대책
  - 위험 회피 : 다른 대안 선택, 위험이 실현되지 안도록
  - 위험 전이 : 보험회사 등 다른 개체로 전이 (비용 발생)
  - 위험 완화 : 화재 진압시스템, 방화벽 등 위험 수준 제거 및 감소
  - 위험 수용 : 비용대비 효과를 고려하여, 비즈니스 목적상 수용

4) 위험 분석
-> 정보기술 보안관리를 위한 필수과정, 위험관리 중 80% 이상 비중
    측정된 위험이 허용가능한 수준인지 아닌지 판단할 수 있는 근거 제공
    보안 비용이 효과적이고 적당한지 확인

--> 자산식별, 자산가치/의존도 평가, 기존 보안 대책 평가, 취약성 평가, 위협 평가

--> 수준에 따라 복잡하고 시간 및 인력소모가 크므로 환경에 맞는 분석 수준 선택 필요


5) NIST의 초기분석 모델

범위/한계/방법론 결정 -> 자산의 식별 및 가치선정 -> 위협의 식별 및 발생가능성 결정 -> 위험의 측정
--> 보안대책 선택 -> 보안대책 구현 및 시험 -> 잔여위험 수용

6) 자산의 식별 : 민감하고 중요한 데이터 더 잘보호하기 위해
-> public, Internal use only,           Unclseeified, classfied


7) 정성적 위험분석 (구성요소 손실에 대해 숫자, 판단)
   1) 설문지 
   2) 델파이 기법
   3) 매트릭스
   4) 시나리오 법
   5) 순위결정법


8. 정량적 위험요소(위험에 대해 숫자나 금액으로 객적으로 분석)

  - 자산에 가치 부여
  - 각각의 위협에 대한 점재적 손실 계산
  - 위협 분석의 수행
  - 개별 위협들마다 전체 손실 예상액 도출 (ALE = ARO X SLE)

1) 과가자료 분석법 : 자료가 많아야 정확도는 올라감

2) 수학공식 접근법 : 과거자료가 적을 때 사용

3) 확률분포법 : 미지의 사건 추정

4) 점수법 : 위험발생 요인에 가중치를 두어 위험을 측정

 

1. 정보보호 기초이론

Posted by ironmask84
2018. 2. 28. 00:09 컴퓨터공학/Security


* 정보보호 기본 특성

1. 정보보호 목표 : 기밀성 (접근통제, 암호화)
                        무결성 (hash, 정보조작 X)
                        가용성 (적절한 접근보증, DOS나 DDOS 혹은 자연재해 등의 위협요소 고려)
                        인증 (MAC, 전자서명)
                        부인방지 (전자서명)

위험 -> 자산 X 위협 X 취약점

2. NIST 핵심 5원칙 : 기밀성, 무결성, 가용성, 책임추적성, 보증

3. 정보보호 관리 : 기술적 보호(암호화, 방화벽)
                         물리적 보호(자연재해 방지, 침입방지 등)
                         관리적 보호(접근통제, 정보보호법 내부자 교육 등 보안계획 확립)

4. 일반적 해킹순서
루트권한 획득 -> 스니퍼 등으로 네트워크 트래픽 감청 -> 중요정보 가로챔 -> backdoor 설치(루트킷 등) -> 로그파일 등 침입흔적 삭제

* 봇넷 : 악성프로그램에 감염되어, 나중에 악의적인 의도로 사용될 수 있는 다수의 컴퓨터들이 네트워크로 연결된 형태
           해커는 봇넷에 연결된 컴퓨터를 원격조종해서 개인정보 유출 등의 행위를 한다.

* 통제의 종류

1. 탐지 : 위협을 탐지, 빠른 대체 용이
2. 교정 : 위협이나 취약점에 대처와 감소
3. 예방 : 사전에 위협과 취약점을 대처

암호화 관련 --> http://ironmask.net/310


 

블록체인의 간단 개념

Posted by ironmask84
2018. 1. 11. 22:53 컴퓨터공학/Security



지난 포스팅에서 블록체인을 소개하였습니다.
( http://ironmask.net/419 )


이번에는 좀 더 개념적인 정리를 해서 포스팅합니다. 


1. 해킹을 못하는 이유?

   1) 모두의 거래장부를 공유하면, 수 많은 사람의 기록을 다 조정하지 않으면 조작 불가

   2) 은행의 경우 이용고객 증가시, 서버관리 비용 및 리스크가 증가 하지만, 

      블록체인의 공공장부의 경우 오히려 이용자가 증가할 수록 시스템 안정성이 증가한다.


2. 비트코인에 사용된 블록체인 원리

   1) P2P 네트워크를 통해서 분산형 데이터베이스 거래내역을 저장단위인 블록의 연결

   2) 사토시 나카모토의 논문을 통해 최초 제안

   3) 과반수의 동의를 통해 확정된 거래는 블록으로 생성되어 일정주기로 DB에 업데이트

   4) 비트코인 기록여부의 결정 주체는 블록체인 이용자들

   5) 비트코인 지갑에서 공인된 잔액보가 이루어짐.

   6) 비트코인 지갑에는 각 개인별 비밀키가 존재하고, 이는 거래 인증 전자서명의 효과

   7) 채굴이라는 수학적 알고리즘해결을 통해 비트코인을 얻고(일종의 암호 풀기),

      블록체인에 시간적 순서를 부여하여 네트워크 중립성을 보호하는 역할


3. 비트코인의 발전 가능성

   1) 수 많은 거래내역에 대한 복호화를 해야 위변조가 가능한데, 

      현실적으로 컴퓨팅 성능으로는 불가능


   2) 주식, 채권증서, 소프트웨어 개발 인프라 등 원하는 형식의 정보를 담아서 전달 가능

      --> 중간 금융절차가 없어 익명이용 가능하고, 분산데이터베이스 방식이기에 중앙서버 관리 인력 및 비용이 없어서 거래 수수료 저렴

          --> 이는 앞으로 여러 산업에서 전자상거래, 핀테크의 혁신이!!


4. 블록체인 기술의 활용 사례

   1) 오픈소스이기에 핀테크의 다양한 영역에서 활용 기대 중

   2) 2015년 IBM과 삼성의 ADEPT라는 블록체인을 사물인터넷에 활용하려는 한 사례

   3) 2015년 나스닥 OMX에서도 활용할 계획 밝힘 <-- 거래속도 향상, 간편하고 안전한 거래 관리




 

비트코인의 숨은 핵심기술 - 블록체인!!

Posted by ironmask84
2018. 1. 7. 23:13 컴퓨터공학/Security



제가 비트코인이라는 것을 알게된 것은 2~3년 전부터 유명한 컴퓨터 바이러스 랜섬웨어라는 것에서 였습니다.

랜섬웨어 공격자 해커들이 자료를 풀어준다는 조건으로 비트코인을 송금해라고 한 것이었죠.

비트코인 특성상 거래자끼리 p2p통신을 통해 익명으로 거래되기 때문에 사실상 추적이 불가능합니다.

작년 10월 쯤부터 해서 가상화폐가 국내에 붐을 일으켰습니다.

투기시장이 되고 있는 것 같지만, 전 세계적으로 가상화폐를 통상화폐로 인정해가려는 분위기 입니다.

그냥 온전히 인정을 해주지는 않고,
해커와 같이 범죄자의 송금루트로 사용, 탈세나 비자금의 문제인 돈세탁과 같은 금융범죄 등을 막는 법과 같이 사회적 문제를 일으키지 않을만큼 제도마련을 제대로 규정하고 가상화폐로 인한 수익의 세금을 강하게 규정하는 등을 통해 하려는 것 같습니다.


3~4 년전 부터 이미 가상화폐의 움직임은 시작되었습니다.

가상화폐의 원조격인 비트코인은 블록체인 이라는 기술을 사용한다고 하는데요.

간단하게는 가상화폐로 거래할 때 발생할 수 있는 해킹을 막는 기술이라고 할 수 있습니다.

이론 및 첫 적용은 2008년 사토시나카모토 라는 일본인 개발자에서 시작되었다고 합니다.

기술적인 설명을 바로 알아보기는 어렵겠지만, 인터넷에서 여기저기 대충 보고 생각이 들기로는 이렇습니다.
현 금융 전산시스템은 중앙서버를 통해 거래내역을 관리하여, 모든 힘이 집중되어 있습니다.
이는 중앙서버가 해킹을 당하면, 걷잡을 수 없는 큰 피해를 당하게 되는 것입니다.

하지만, 이를 막기 위해 가장 좋은 방법은 거래내역 관리를 분산시키는 것입니다.
블록체인 기술은 이러한 분산을 금융거래에 참여하는 모든 사용자에게 맡기는 것입니다.
즉, 금융거래 참여자 모두가 모든 거래내역을 공유하게함으로써, 
어느 한 부분을 해킹을 해서 조작하여, 위조나 거짓행세를 할 수 없게 되는 것입니다.

이러한 오픈 혹은 공유 컨셉을 이용해서 가상화폐 뿐만이 아니라 여러 가지 거래나 분야에 적용이 가능할 것입니다.

이미 영국 어느 업체에서는 티켓거래에 적용해서 암거래를 막는데 사용되기도 하고있고, 
러시아 어느 업체에서는 쇼핑몰에 적용하려는 움직임도 보입니다.

가상화폐만으로도 이미 큰 파장이 일어나고 있습니다.

과연 통상화폐와 같이 사용되는 시대가 올지 안올지 모르겠군요.

블록체인 기술이 완벽한지도 아직은 잘 모르겠지만,
좀 더 공부해보고 또 포스팅 해보겠습니다. 


블록체인 참고사이트

간단 : http://terms.naver.com/entry.nhn?docId=2838482&cid=43667&categoryId=43667

상세 : http://terms.naver.com/entry.nhn?docId=3578241&cid=59088&categoryId=59096



 

Secure 코딩과 기본해킹 3가지 기법

Posted by ironmask84
2017. 3. 27. 11:53 컴퓨터공학/Security




1. Secure Cording
SW개발과정에서 개발자 실수, 논리적 오류 등으로 발생하는 취약점을 최소화하는 보안활동
좁게는 소스코드 구현단계에서의 활동이고,
넓게는 SW 개발생명주기 SDLC 의 각 단계별 요구되는 보안활동이 모두 포함됨

1) 입력데이터의 검증

가) SQL Injection
DB와 연동된 웹 어플리케이션에서 입력되는 데이터에 대해 유효성 검증을 하지 않을 경우,
공격자가 입력폼에 SQL문을 삽입하여 DB로부터 정보를 조회하거나 조작하는 취약점

DB와 연동되는 입력값들에 대해서는
SQL 쿼리문관련 특수문자나 SQL명령어들을 필터링 하도록 코드 구현함으로 해결
(ex) ' or 1=1 #  을 통해 TRUE 값 만들수 있음)

나) XSS (크로스 사이트 스크립트)
웹페이지에서 악의적인 스크립트를 포함시켜 사용자 측에서 실행되도록 유도하여 정보 유출 등의 공격 유발

스크립트 종류
Client Side : JavaScipt는 Client측에 다운로드 되어서 브라우져에서 수행
Server Side : JSP, ASP, C#, PHP 등

- 스크립트의 코드 중에 서버에서 값을 받아오는 부분에 대해서는 해당 값에 대해 문자변환 함수나 메소드를 이용하여
유효성 검증을 함으로 해결
- HTML 태그를 허용하는 게시판에서는 White List 선정후 해당 태그만 허용 (Script 태그 금지 등)

2) 보안기능
인증, 접근제어, 기밀성, 암호화, 권한관리 등을 적절하지 않게 구현시 발생하는 취약점

가) 중요 자원에 대한 잘못된 권한 설정
password와 같은 중요자원에는 관리자에 의해서만 read/write 되도록 설정한다.

나) Cross Site Request Forgery (사이트 간 요청 위조)
사용자 자신의 의지와 무관하게 공격자가 의도한 행위를 특정 웹사이트에 요청하게 하는 공격
사용자의 인증 없이 정보에 접근하거나 위조가 가능해진다.

중요한 정보를 처리하는 웹페이지에서는 사용자 재인증 작업을 거치도록 한다.
(코드상에서 ID/Password를 다시 입력받게해서 기존 session의 ID/Password를 비교하도록 한다.)

3) 시간 및 상태
데드락(dead lock)나 자원에 대한 경쟁조건(race condition)과 같이
프로그램 동작과정에서 프로세스 혹은 쓰레드나 시스템 상태에 대한 정보(자원잠금, 세션정보)에 관련된 취약점을 말한다.


가) 경쟁조건(race condition)
한 자원에 대해 동시에 여러 프로세스 혹은 쓰레드에서 접근을 하려고 하면,
동기화 문제가 발생할 수 있고, 
이를 임계영역에 대한 처리를 해서 해결하지만, 잘못 처리하면 데드락이 발생할 수 있다.


4) 에러처리 
에러를 처리하지 않거나, 불충분하면 에러정보에 중요 시스템 정보가 노출될 수 있는 취약점
ex) java에서 e.printStackTrace()와 같이 디버깅 정보를 보여주는 건 개발 때 사용하는 것으로 상용 땐 위험
    그래서 대신 따로 에러메세지를 출력하도록 하고, 내부적인 예외상황은 로그로 따로 저장하도록 구현해야 함

5) 코드오류
메모리의 부적절한 반환 등 개발자의 코딩오류로 인해 유발되는 취약점
Null이 될 수 있는 레퍼런스는 참조하기 전에 널 값인지 검사하도록 한다.

6) 캡슐화
중요한 데이터를 불충분하게 캡슐화하면, 인가되지 않은 사용자에게 데이터 노출이 가능해지는 취약점
멀티 쓰레드 환경인 java 서블릿 등에서는 정보를 저장하는 멤버변수가 포함되지 않도록 하여
서로 다른 세션에서 데이터를 공유하지 않도록 해야한다.



* 아래는 http://ironmask.net/261 참조

2. Race Condition

3. Buffer Overflow

4. Format String

 

웹보안 관련과 OWASP 2013 그리고 2017

Posted by ironmask84
2017. 3. 27. 11:51 컴퓨터공학/Security




국내 웹 취약점 진단기준 : 국정원 10대 취약점, KISA 제시 취약점, 행안부 제시 43개 시큐어 코딩 진단기준
--> CVE, CWE, OWASP 에서 나온 문서들을 참고한 것이다.

1. CVE(Common Vulnerabilities and Exposures) : http://cve.mitre.org , CVE-연도-순서 순의 포맷으로 목록화

2. CWE(Common Weakness Enumeration) : http://cwe.mitre.org , 다양한 언어의 소스코드 취약점 목록화

3. OWASP(Open Web Application Security Project) : https://www.owasp.org/index.php/Main_page
--> 웹어플리케이션에 대한 취약점 Top 10 목록화

4. KISA 점검기준 : http://www.kisa.or.kr/public/laws/laws3.jsp

5. 행정안전부 시큐어코딩 항목 : http://www.mospa.go.kr/


OWASP 2013에 대표적 3가지

1) SQL Injection
   - 유형별
      ㄱ) Error Base SQL Injection : SQL시스템에서  error 리턴시, 그 정보를 이용하여 취약점 찾음
      ㄴ) Blind SQL Injection : 쿼리의 참과 거짓을 통해 데이터 추출
   - 공격방식별
      ㄱ) Form SQL Injection : 입력폼에 쿼리문 Injection
      ㄴ) Union SQL Injection : union select 쿼리문 이용하여 한 쿼리의 결과를 다른 쿼리의 결과에 접합
      ㄷ) Stored Procedure SQL Injection : 일련의 쿼리를 함수처럼 실행
      ㄹ) Mass SQL Injection : 한 번의 공격으로 대량의 DB값이 변조 (악성스크립트 이용)
   - 대안
     ㄱ) DB와 연동되는 스크립트의 모든 패러미터 유효성 검증, SQL 특수문자 필터링
     ㄴ) 입력 문자열 길이 제한

2) XSS (cross site script)
   - 유형별
      ㄱ) Stored XSS - 웹서버내에 DB에 악성스크립트가 저장 - 게시판, 방명록 등에서..
      ㄴ) Reflected XSS - 악성스크립트가 공격사이트가 아닌 다른 사이트에 있는 경우
   - 대안
      ㄱ) 사용자 입력값은 반드시 서버단에서 검증 (특수문자는 변환함수로 치환)
      ㄴ) 게시판에서 HTML 태그 허용시, White List 선정후, 해당 태그만 허용 (Script 태그는 금지 등)

3) CSRF 공격 (cross site request Forgery)
웹어플에서 정상적 경로 통한 요청과 비정상 결로 통한 요청을 서버가 구분하지 못할 경우에,
공격자가 스크립트 구문 이용하여, 정상 사용자로 하여금 조작된 요청을 전송하도록 하여
설정 및 정보 변경시키는 경우
   - 대안
      ㄱ) Get 보다는 POST 방식 사용 (Get은 url에 sql문이 노출?)
      ㄴ) 중요기능에는 세션검증과 재인증을 유도한다.



새롭게 TOP 10 에 추가된 3개 항목은 다음과 같습니다.

1. XML External Entities (XXE) 

XXE 라고 부르는 'XML 외부 엔터티' 취약점은 XML 문서의 DTD 구조 정의 시 Entity 항목을 설정할 수 있을 때 발생하는 취약점 입니다.

XML 문서는 마치 변수를 선언한 것 처럼 Entity를 선언하여 사용 할 수 있는데, Entity 선언 시 외부 리소스로 선언이 가능합니다.

아래 코드와 같이 외부 파일, 가령 운영체제의 계정 정보가 기록된 passwd 파일을 외부 엔터터로 선언하고 XML 문서 내에서 '&엔터티명'을 호출하면 해당 파일 내용을 핸들링 할 수 있습니다.

<?xml version="1.0" encoding="ISO-8859-1"?>

 <!DOCTYPE foo [<!ELEMENT foo ANY >

 <!ENTITY xxe SYSTEM "file:///etc/passwd" >]>

 <foo>&xxe;</foo>

참고로 일반적으로 마크업 문서에서 <, > 대신 사용하는 &lt, &gt 는 기본적으로 선언된 Entity 입니다.


2. Insecure Deserialization

Javascript 를 비롯하여 여러가지 개발 언어에서 여러가지 이유로 데이터 혹은 객체를 전송할 때 직렬화(Serialization)을 수행하게 됩니다. 가령 특수 문자나 공백등의 구분자가 포함되어 있다던가, 바이너리 데이터를 전송할 필요가 있다던가 URL 호출로 직접 데이터를 전송 할 경우 일반적으로 사용합니다.

이렇게 serialization 된 정보 전송 시 별도의 무결성 검증이나 암호화를 수행하지 않을 경우 프로그램에 영향을 줄 수 있는 악의적인 정보를 전송할 경우 원래 데이터로 복원하는 Deserializtion 시 문제를 발생시킬 수 있습니다.


3. Insufficient Logging & Monitoring

악의적인 공격 징후에 대한 로그를 남기지 않거나 로그를 기록하더라도 모니터링을 수행하지 않으면 지속적인 공격의 대상이 될 수 있습니다.

공격의 징후 (가령 대량의 포트 스캐닝, Brute force 공격 등)에 대한 로그 기록과 지속적인 모니터링을 통해 공격 징후를 파악하고 사전에 공격을 차단할 수 있도록 방비해야 합니다.

[출처] OWASP TOP 10 2017 릴리즈|작성자 강군



2013 버전과 비교하면 몇가지 변경사항들이 좀 눈에 띄입니다. 특히 2013 버전에 있던 CSRF(크로스 사이트 요청변조)가 이번 버전에서 빠졌는데, OWASP 그룹에 따르면 CSRF는 13위에 랭크되어 이번 TOP 10 에서는 제외되었다고 합니다.



아래는 OWASP Top 10 -2017 관련 내용입니다.

처 : https://blog.naver.com/PostView.nhn?blogId=crehacktive3&logNo=221162402841&proxyReferer=https%3A%2F%2Fwww.google.com%2F


드디어 OWASP Top 10 - 2017 최종 버전이 공개되었습니다. 지난번 OWASP Top 2017 RC1 항목에 관해 포스팅을 하였는데 그때와는 다소 항목이 변경된 것을 아래 그림을 통해 알 수 있습니다. 이전 OWASP Top 10 - 2013 버전 보다 훨씬 더 직관적으로 항목이 변경되었으며, 최신 트랜드를 반영한 것을 알 수 있습니다.



OWASP Top 10 - 2013, OWASP Top 10 - 2017 항목 비교


아래는 본문 내용에서 발췌한 내용입니다.


데이터가 제공한 새로운 문제: 

- A4:2017-XML 외부 개체(XXE)는 주로 소스 코드 분석 보안 테스팅 도구(SAST) 데이터 집합에서 지원되는 새로운 범주입니다.


커뮤니티가 제공한 새로운 문제: 

우리는 커뮤니티가 지켜보고 있는 두 가지 취약점에 대한 통찰력을 제공할 것을 요청했습니다. 500개 이상의 개별 제출 및 민감한 

노출, XXE와 같은 이미 제시된 데이터를 제거한 후 다음과 같은 두 가지 새로운 문제가 있었습니다: 

- A8:2017-안전하지 않은 역직렬화는 영향을 받는 플랫폼에서 원격 코드 실행 또는 중요한 개체 조작을 허용합니다. 

- A10:2017-불충분한 로깅과 모니터링은 악의적인 활동 및 침입 탐지, 사고 대응 및 디지털 포렌식을 방해하거나 크게 지연시킬 수 

있는 결함이 있습니다. 


병합했거나 삭제됐지만, 잊지 말아야 하는 사항: 

- A4-안전하지 않은 직접 객체 참조와 A7-기능 수준의 접근 통제 누락은 A5:2017-취약한 접근 통제 항목으로 병합되었습니다. 

- A8-크로스-사이트 요청 변조 (CSRF)은 CSRF 방어를 포함한 많은 프레임워크에 있기 때문에 5%의 애플리케이션에서만 

발견되었습니다. 

- A10-검증되지 않은 리다이렉트 및 포워드는 약 8%의 애플리케이션에서 발견되었지만 XXE에 밀려났습니다

OWASP Top 10 - 2017(한글버전 PDF)

https://www.owasp.org/images/b/bd/OWASP_Top_10-2017-ko.pdf

OWASP Top 10 - 2017(영문버전 PDF)

https://www.owasp.org/images/7/72/OWASP_Top_10-2017_%28en%29.pdf.pdf




 

네트워크 보안 관련

Posted by ironmask84
2017. 3. 23. 13:15 컴퓨터공학/Security


1. ARP Spoofing
: 논리주소(IP) -> 물리주소(MAC) 로 변환해주는 프로토콜인 ARP를 이용하여,
  ARP Request를 계속해서 보냄으로써 공격대상 통신장비에 ARP Cache Table에 저장되어 있는
  임의의 IP, MAC 주소를 자신의 주소로 변경시켜서, 통신데이터를 Sniffing 하는 공격
--> arp -s ip주소 명령어로 정적주소로 타입을 등록함으로 ARP Cache Table 변경을 막는 방법이 있다.

2. ping, traceroute
: ping은 TCP/IP방식의 3계층인 IP프로토콜의 신뢰할 수 없는 전송을 관리해주는 ICMP의 메세지 중
  echo request(type 8), echo reply(type 0)을 이용하여, 네트워크 속도 및 손실률을 검사하는 유틸이다.

: traceroute는 여러 중계 라우터 각 구간에 대한 네트워크 상태를 관리하는 유틸
  ICMP 메세지 중 Time Exceeded(Type 11)와 Destination Unreachable(Type 3)을 이용하고,
  IP헤더에 포함된 TTL(Time To Live) 을 이용한다.

3. ICMP Redirect 공격
:   ICMP Redirect는 라우터만이 보낼수 있는데, 이를 공격자가 자신이 라우터 인것처럼 보이기 위해 IP헤더에
    source ip를 라우터의 주소로 위조하여 보내고, 라우팅 테이블을 변조시킨다.
   보안상의 이유로 일반적으로 OS에서 ICMP Redirect 옵션을 기본적으로 해제한다.
   리눅스에서는 sysctl -w 명령어 이용

4. ifconfig eth1 promisc (2계층 스위치 관련): 자신에게 온 패킷이 아니어도 다 받는다. Sniffing 목적 

5. DNS Spoofing 공격 (DNS는 도메인명 -> IP주소 로 변경해주는 것)
: 희생자가 DNS 쿼리를 수행하면 공격자가 이를 스니핑하고 있다가 희생자 호스트에 위조된 웹사이트로 접속하는
  DNS응답을 보내 위조된 주소로 접속하게 만드는 공격이다. DNS는 UDP를 이용하므로 비연결이라는 특성의 취약점을
  이용하여, 트랜잭션ID만 일치하면 먼저 들어온 응답을 신뢰하는 특성 이용한 것
  --> 중요한 사이트는 hosts 파일에 등록하여, DNS응답보다 우선순위가 높은 hosts파일을 참조하도록 하여 해결 


** 참조 우선순위 : hosts파일 -> 호스트의 dns cache -> resolv.conf파일에 등록된 dns서버정보에 질의

6. DNS Cache Poisoning
: DNS서버의 캐시 메모리에 위조된 데이터를 저장하여 호스트는 이 위조된 정보를 사용하도록 유도는 방식의 파밍 공격
  해당서버에 접근하는 호스트들이 위조된 정보를 응답받으므로 피해가 크다.
  DNS서버가 질의를 받을때, 자신의 Cache에 해당 정보가 없으면 Root DNS서버부터 순환질의를 하는데,
  이틈에 해당 DNS서버에 공격자가 Cache에 정보를 먼저 업데이트 시켜버린다.
  --> DNSSEC 기술을 이용 (기존 DNS에서 공개키 암호화  기능을 추가 부여)
  --> named.conf 파일을 수정하여 재귀적 질의 제한, zone transfer파일 제한

7. DNS Lookup 하는 명령어 (도메인 -> IP주소)
   1) nslookup
   2) dig : nslookup을 대체하기 위함, 리눅스 및 유닉스 계열에는 기본 설치

8. DHCP : 동적으로 클라이언트의 네트워크 주소 (IP)를 설정하기 위한 프로토콜
   * DHCP Starvation 공격 : 할당가능한 IP를 모두 소진하게 만들어  IP할당이 불가능하게 하는 공격
     --> 서로다른 MAC주소로 대량으로 보냄 -> 이에대한 offer 오면 -> request메세지까지 보내고 실제로는 할당안함

9. DDOS : C&C서버(Command & Control)를 이용하여, Bot/좀비PC 들을 컨트롤하여, 타겟을 공격한다.
   ex1) DNS Query Flooding : UDP프로토콜 기반의 서비스를 제공하는 DNS에 대해 DNS쿼리 데이터를 다량으로 서버에
          전송하여 DNS의 정상적인 서비스를 방해
   ex2) TCP SYN Flooding : 공격자는 다량의 SYN패킷을 서버로 전달하여 서버가 새로운 클라이언트의 연결요청을
          처리하지 못함 (syn+ack 받고, ack를 보내지 않아서 처리되지 않은 정보를 계속 쌓이게 만든다.)
   ex3) HTTP Get Flooding : 공격자는 동일한 URL을 반복 요청하여 웹서버가 URL에 대해 데이터를 클라이언트에게 회신하기 위한 서버자원을 사용하도록 공격

10. DRDOS (Distributed Reflection DOS)
: 공격자는 출발지 IP를 공격대상의 IP로 위조하여 다수의 반사서버로 요청정보를 전송,
  공격대상은 반사서버로 부터 다수의 응답을 받아 서비스 거부상태가 됨

  * 공격근원지를 파악하기 어렵다. (출발지 IP를 변조하여, 공격트래픽이 수많은 반사서버를 경유하므로)
  * 좀비PC의 공격트래픽 효율이 증가한다. 반사서버는 syn+ack 패킷에 대한 응답이 없는경우 일정횟수 재전송을
    수행하기 때문에 공격자가 전송하는 syn패킷보다 몇배많은 syn+ack 패킷이 타켓에 전송된다.

** 해결방법
: IP주소가 위조된 패킷이 인터넷망에 유입되지 않도록 ISP가 직접 차단
  반서서버에게는 icmp프로토콜이 필요없는 시스템은 해당프로토콜을 차단




 

Linux 명령어와 시스템보안

Posted by ironmask84
2017. 3. 3. 18:23 컴퓨터공학/Security


1. ls (디렉터리, 파일 정보 출력)
-> 1) 파일종류, 접근권한  2) 하드링크수  3) 소유주  4) 소유그룹  5) 크기  6) 최종 변경일  7) 최종 변경시간  8) 이름

2. stat (i-node 속성정보 출력)
-> 1) i-node number  2) 파일타입  3) 접근권한  4) link count  5) 소유자  6) 소유그룹  7) 크기  8) MAC Time  
    9) Block Index
    ln source_file target_file : 하드링크 
    ln -s source_file target_file : 심볼릭링크 (소프트 링크)

3. find (파일 검색)
-> find path [expression] [action]
    1) find . -name "*.c" : 현재 디렉터리에서 파일명이 .c로 끝나는 파일 검색
    2) find . -size +56 : 현재 디렉터리에서 파일 크기가 56블록보다 큰 것을 검색
    3) find . -perm -664 : 현재 디렉터리에서 user와 group에 읽기 및 쓰기 권한, other에 읽기 권한이 있는 파일 검색
    4) find . -mtime +3 : 현재 디렉터리에서 파일을 수정한지 3일이 지난 것을 검색

4. touch : 0byte 파일을 생성 또는 파일의 시간을 변경

5. umask : 파일 생성 시 접근권한에 영향을 미침 (/etc/profile 에 적용, 개인은 .profile에 적용)

6. diff : 파일이 동일한지 여부를 검사

7. comm : 파일을 비교할 때 사용 (한쪽에만 있거나 양쪽 모두에 있는 행 출력)

8. grep : 파일 내 특정 패턴이나 문자열을 검색

9. ps : 시스템에 상주중인 프로세스 정보 출력
-> UID, PID, PPID, STIME(프로세스 시작 시간), TTY(프로세스가 연결된 터미널), TIME(CPU 사용시간), CMD(프로세스명)

10. 시그널 : UNIX 시스템에서 지원하는 소프트웨어 인터럽트, 프로세스간 통신수단
-> 1) 외부에 의해서 : 키보드 입력 (ctrl + c)
    2) (커널)에러에 의해서 : divde zero 오류, 메모리 참조 오류
    3) 이벤트에 의해서 : alarm() 함수, 프로세스 종료
    4) 인위적으로 : kill() 함수, kill 명령어 (kill -시그널번호 PID)
  * 주요시그널 : SIGKILL(9), SIGSTOP(23) 이 2가지는 무시나 핸들링이 불가능하므로 관리자가 해커를 막기위한 강력권한
  * 좀비프로세스 : 프로세스 수행을 종료했지만 부모 프로세스가 종료상태정보를 확인하지 않아서 소멸하지 않고
                        남아있는 프로세스
  * 고아프로세스 : 자식프로세스가 살아있는 상태에서 부모 프로세스가 종료하게 되면 자식프로세스는 고아프로세스 됨.

11. mount : 보조기억장치에 설치된 파일시스템을 UNIX시스템이 인식하도록 특정 디렉토리에 논리적으로 연결시킴

12. cron : 정기적 처리할 작업을 crontab명령으로 crontab파일에 저장, cron데몬 프로세스가 관리
              해커가 주기적으로 정보를 빼돌리는 데에 사용도 가능하다. -> crobtab 파일 관리 필요

13. /etc/passwd : account / password(x로표시) / user_ID / group_ID / comment / home_directory / login_shell
    /etc/shadow : account / encrypted_password / last_change / minlife / maxlife / warn / inactive / expires
      ** chage 명령어로 패스워드 Aging관련 설정을 할 수 있다. -> /var/log/secure파일에 로그가 남는다.

14. setuid, setgid (chmod ug+s)
   1) setuid, setgid 설정된 경우 -> RUID == EUID,  RGID == EGID
   2) setuid, setgid 설정되지 않은 경우
   -> RUID, RGID = 실행시킨 사용자의 ID
       EUID, EGID  = 실행파일 소유자의 ID (프로세스가 실행중인 동안에 접근권한을 판단하기 위한 ID)
* root소유의 실행파일에 setuid를 설정하면, ruid는 실행자의 id, euid는 root id로 설정이 된다. 
  따라서, 실행 프로그램 내에 euid 설정에 따라 root권한으로 접근하게 된다.

* sticky bit (chmod o+t)
-> 디렉토리에 설정이 되면, 파일의 생성은 자유롭게 할 수 있지만
    파일 삭제 및 파일명 변경은 파일소유자 또는 root만이 가능하다.



 

암호화의 진화

Posted by ironmask84
2017. 2. 17. 18:09 컴퓨터공학/Security


암호화를 통한 정보보안 방법은 계속 발전해왔습니다.

--> 스테가노그라피(최근엔 워터마크) -> 전치 -> 단일치환 -> 다중치환 (에그니마) -> DES -> AES -> RSA -> 양자암호학

DES : 페이스텔 구조
AES : SPN 구조


블록암호 원리 : 특정 비트 수의 집합을 한 번에 처리하는 암호 알고리즘
스트림암호 원리 : 음성, 영상 스트리밍 전송, 무선 암호화 방식 (평문 XOR 키 스트림)

대칭키 -> 키배포문제 -> Diffie-Hellman 키교환 -> 공개키 암호화

hash(무결성 확인)
-> MAC(메세지인증코드, hash + 대칭키암호 이용) -> 2명만이 키 공유하고 있으므로 거짓행세는 해결
-> 부인방지 문제 -> hash + 공개키 암호를 이용하는 전자서명으로 부인방지 해결 -> 중간자 공격으로 공개키 공유 시 올바른지의 문제  
-> PKI도입(공개키 인증서)로 해결 (공개키에 전자서명을 하여 배포, 이 때의 전자서명은 인증기관에서 발급한 공개키로 확인가능, 그 공개키는 App에 포함되어있다. 브라우져 등)


PKI : 공개키 기반구조 라고 하며, 공개키 암호화 알고리즘을 이용하여, 암호화 통신을 하는 구조에서 공개키를 공유하여야 하는데, 이 때 공개키 공유 시 중간자 공격으로 잘못된 키가 공유되지 않도록 하기 위하여, 공개키를 전자서명 기술을 이용하여 공개키 인증서 형태로 공유합니다.  (공개키 + 공개키를 RSA와 hash알고리즘으로 만든 전자서명 형식의 데이터) 이 때 공개키 인증서는 보통 공개키 암호화알고리즘 + hash 알고리즘 형태로 구성된 전자서명 기술로 만들어집니다.

여기서의 전자서명은 CA의 서명입니다.

이 공개키 인증서는 이미 CA에서 인증된 기관이면, 그 공개키 인증서를 브라우져내에 인증할 수 있는 공개키 및 인증방법이 탑재되어 있습니다.  그러므로, 브라우져를 통해 공개키를 안전하게 입수 가능합니다.

* 인증서 표준 규격은 X.509

* 폐지된 인증서의 일련번호의 목록에 대해 인증기관이 전자서명을 붙인 것이 CRL (Certificate Revocation List)

ECC : 타원곡선 문제의 원리를 이용한 공개키 암호화 알고리즘, 1024비트의 RSA 키와 160비트의 ECC는 동일한 보안수준 정도로 ECC가 고속으로 암호/복호가 가능

** 암호알고리즘의 안정성평가
--> 대표적으로 NIST의 CMVP 가 있다.
--> 암호알고리즘->암호모듈->정보보호제품->응용시스템 순으로 평가한다.
--> CMVP는 암호기술의 적합성, 암호키운용 및 관리 물리적 보안 항목으로 평가한다.

* 평가기준 중요요소
1. 암호해독 비용이 암호화된 정보의 가치 초과
2. 암호해독 시간이 정보의 유효기간 초과


** 위험관리 = 보안정책 -> 위험분석 (위험분석 : 자산식별 -> 위협 및 취약점 평가 -> 위험의 측정)
    -> 대책 선택 -> 대책 구현 -> 잔여위험 수용

** 워터마크 -> 판매자정보를 은닉하고, 저작권표시 용도
** 핑거프린트 -> 구매자 추적정보를 은닉하고, 구매자 추적 용도




 

인터넷 쿠키

Posted by ironmask84
2017. 2. 17. 18:01 컴퓨터공학/Security


고객이 특정 홈페이지를 접속할 때 생성되는 정보를 담은 임시 파일로 크기는 4KB 이하로 작다. 쿠키는 애초 인터넷 사용자들의 홈페이지 접속을 돕기 위해 만들어졌다. 특정 사이트를 처음 방문하면 아이디와 비밀번호를 기록한 쿠키가 만들어지고 다음에 접속했을 때 별도 절차 없이 사이트에 빠르게 연결할 수 있다.

쿠키는 사용하는 웹브라우저가 자동으로 만들기도 하고 갱신하기도 하며 웹사이트로 기록을 전달하기도 한다. 따라서 개인의 사생활을 침해할 소지가 있다. 이용자가 인터넷에서 어떤 내용을 봤는지, 어떤 상품을 샀는지 등 모든 정보가 기록되기 때문이다. 온라인 광고업체들은 쿠키를 이용해서 인터넷 사용자의 기호 등을 수집·분석해 광고전략을 짜는 데 유용하게 활용해왔다. 

또 보안문제를 유발하기도 한다. 회원번호나 비밀번호 등이 유출될 가능성이 있기 때문이다. 그래서 마이크로소프트는 인터넷 익스플로러 5.0 이상에서는 쿠키 거부 기능을 첨가했다.

- [네이버 지식백과] 쿠키 [cookie] (두산백과) - 


* 웹 사이트는 해당 사이트에 쇼핑정보, ID, 암호, IP주소 등의 세션 정보를 기억하기 위해
  쿠키를 사용한다. 

  1. 임시 쿠키 : 인터넷 익스플로러가 실행하고 있는 시간만큼만 유효, 익스플로러가 종료되면 삭제된다.
  2. 영구 쿠키 : 인터넷 익스플로러 세션을 통해 하드디스크에 저장된다. 보존기간은 설정에 따라 다르다.

--> 익스플로러에서는 도구-인터넷옵션-개인정보 탭에서 보호정책 단계를 선택할 수 있다.


* 인터넷 익스플로러는 "InPrivate"모드를 통해 탭을 열어 쿠키정보 저장을 안하게 가능
* 크롬은 "시크릿"모드를 통해 탭을 열어 쿠키정보 저장을 안하게 가능