경찰 정보화장비 채용 후기 (2018년 상반기)

Posted by ironmask84
2019. 7. 30. 22:44 About ironmask/취업준비



실업자 수가 역대급으로 치솟고 있는 한국의 현대에 살고 있습니다.

그래서 인지 이직 시장도 녹록치가 않은 가운데 도전은 계속되었고...

나름 기존 직장보다 더 좋은 조건으로 이직을 위해 도전하다보니

공기업, 공무원으로 눈이 돌아가게 되었습니다.

좋은 조건이란 것에 정답은 없지만...

저의 기준은 안정성, 보람, 성취감, 적정수준 이상의 수입이였습니다.

 

그래서 전공을 살리고 기존 회사경력을 인정받을 수 있는 

경찰공무원 특채도 고려해보게 되었죠.

이러한 특채 모집이 있는 것은 직장 선배를 통해 2015년 말 경에 알게 되었습니다.

그때 당시 회사에서의 저조한 대우와 사기업 특성상 정년까지의 근무는 어렵기 때문에

2016년 상반기에 도전을 하려고 했었으나, 여차저차 하다가 공채접수 시기를 놓치고

2017년 상반기에 사이버수사 특채를 실패하고,

2018년 상반기에 정보화장비 특채에 도전합니다.


접수를 하면 면접부터 보게 됩니다.

1명 채용이라, 큰 기대를 하지 않고 인천청으로 지원했습니다.

첫 면접 시험은 붙었지만 최종에서 떨어졌네요 ^^;;


여러분들을 위해 후기를 남겨봅니다!!

지원 개요

여러 특채전형이 있지만, 그 중에서 정보화장비 특채의 경우
지방청별로 할당인원이 있고, 원하는 청에 지원을 하면 됩니다.

채용이 매해 있지 않는 귀한 특채인듯 합니다.

최근에는 정보처리자격증 + 3년 이상 경력 혹은 
석사 + 정보통신관련 학사가 있으면 지원자격이 가능 합니다.

경찰 특채 모집 요강은

1차시험 (면접 혹은 필기시험) + 체력 + 최종면접 + 가산점 으로

총점을 매겨서 높은 순으로 커트라인이 정해지게 됩니다. 

체력시험도 항목이 정해져 있으니 연습이 많이 필요하고,

가산점 관련 자격증도 미리미리 따놓는 것이 중요합니다.


면접 후기

요즘은 지방청 별로 모집하지만, 이전에는 본청에서 모집해서

모두 서울로 모여서 1차 시험이 면접전형으로 진행이 이뤄졌습니다.

저는 운좋게 1차 면접시험은 합격했었네요.


아무튼 기다리시는 면접 기출문제는요~

단체: 사회자 없이 3명이서 진행함

1. 비노출차량 인한 단속 토의

2. 자치경찰제 찬반토론


개인면접

1. 자기소개

2. 봉사활동 사례

3. 변화하는시대에서 노력한점

4. 단점 그리고 해결하려고 한 사례

5. 직장내에서 미움을 받았던적 해결은 어떻게??

6. 직장 업무관련 질문

7. 몸캠피싱 과 그것을 방지하기 위한 방법

8. 악성코드 감염방법

9. 리버싱안드로이드 경험?

10. 마지막 하고싶은 말

위와같이 주로 직장경력관련 질문 및 경찰과 관련된 IT 분야에 대한 질의가 들어옵니다.


그리고 조금만 검색해보면  알 수 있는 체력시험입니다.

일반채용과 체력시험은 동일하니 체력관리가 필요합니다. ㅎㅎ

다만 경력채용의 경우 지원자가 나이대가 좀 있고
직장인 특성상 운동이 부족한 경우가 많아서 다들 점수대가 낮은편입니다.


추가로 궁금한 것이 있다면 댓글을 주세요~ ㅎㅎ



 

정보보안 산업기사 후기 (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문제 이상 안틀렸으면 하네요.. 경쟁시험이니 또르르...




 

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


 

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

 

암호화의 진화

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
2016. 2. 15. 00:49 컴퓨터공학/Security




1. Stack Buffer overflow 공격

1) strncpy() 사용해서 버퍼만큼만 복사하거나, if문으로 문자열 크기 비교체크해서 복사하면 해결


    process가 메모리에 로딩되었을 때의 메모리 구조에는 몇몇의 영역으로 구분되어있다.

       이는 low address부터 나열하면 다음과 같은 순서이다.


       Code Area (실행코드 위치, 기계어)

       Data Area (초기화 된 정적변수 및 전역변수)

       BSS Area (초기화 되지 않은 정적변수 및 전역변수)

       Heap (동적메모리 할당)

       Stack (함수를 처리하기 위한 영역, 함수 내 로컬변수, 함수의 매개변수)

 

위 영역 중에 Stack 영역에서 Buffer overflow 를 이용한 공격방법은 아래와 같다.

 

예를들어 어떤 프로세스의 main함수에서 func() 함수를 호출될 때,

func() 함수 처리 후 돌아왔을 때 수행되어야할 주소 RET를 저장하고,

func() 함수를 기준으로 하기위해 기존의 main함수의 EBP 레지스터를 저장하고,

func() 함수의 로컬변수 등 처리를 위한 데이터들이 stack에 push/pop 되어가며 수행되다가

func() 처리가 끝나면, 위에서 저장했던 RET, EBP를 불러와서 기존 main함수로 되돌아 오게 된다.

 

위 과정에서 RET를 임의의 주소로 덮어쓸 수 있다면,

해커는 이를 악용해서 공격용 process를 미리 메모리에 로딩해놓고, 이 process의 주소로 덮어쓰게 하여,

새로운 shell을 root권한으로 실행하는 등의 행위로 root권한을 획득할 수 있게 된다.

 

위 공격을 하려면 2가지 조건이 전제되어야 한다.

1) 공격에 이용하려는 프로세스는 root 소유이고, setuid가 설정되어 있어야 한다.

2) 악용하기 위한 공격용 process를 미리 메모리에 로딩해놓아야 한다.

 

*  CPU에는 여러 레지스터가 있지만, 아래 3가지를 참고하자.

1) ESP : 스택 연산이 발생하는 스택 프레임의 최상위 포인터 (EBP를 기준으로 상대위치 의미)

2) EBP : 해당 스택 프레임의 베이스 포인터

3) EIP : 다음에 실행할 명령어의 주소값을 가지고 있다. (= Program Count)

 

 

2. Race Condition 공격

   1) A 프로세스가 /tmp 디렉토리에 tmp.dat 라는 파일을 생성하고 오픈해서 write를 한다고 하고,
      A프로세스가 root소유의 프로세스이고, tmp.dat 라는 파일에 root권한을 가지도록 setuid를 한다고 가정.

      이 시점을 캐치하여, 공격용 프로세스를 통해 tmp.dat라는 동일한 이름의 파일을 심볼릭 링크파일로 해서 
      /etc/shadow와 같이 중요한 파일에 링크를 건 파일을 생성시킨다.


   2) 위 과정에서 A 프로세스와 공격용 프로세스가 tmp.dat라는 파일을 누가 먼저 생성 시키는지의 race가 발생하게 된다.
      정상적인 경로를 통해 A 프로세스가 먼저 tmp.dat 파일을 생성시키면,
      공격용 프로세스는 이 파일을 지우고, 자신이 생성시킨 파일을 수행하도록 유도할 것이다.


  ** 여기서도 마찬가지로 공격에 이용하려는 A 프로세스는 root 소유이고, setuid가 설정되어 있어야 한다.

 

 

3. Format String 공격

   1) process가 메모리에 로딩되었을 때의 메모리 주소에 잘못된 데이터를 덮어씀으로 인한 공격
   2) printf 계열의 함수 사용 시 틀리지 않고 쓰면 해결, %n은 변수의 주소값 이다.




 

정보보안 기사 시험

Posted by ironmask84
2015. 12. 8. 20:00 생각과 일상/오늘의 일상


올해 목표 중에 하나가 정보보안 기사 자격증을 취득하는 것이었다..

어제 하반기 실기 발표가 있었다..

필기를 2014년 4월에 합격하였는데....
올해 상반기 1회, 하반기 1회 실기 시험을 응시하였으나.... 두 번다 실패 ㅠㅠ

상반기는 준비를 제대로 못해서 예상대로... 저득점.. 25점 이었고,
하반기는 나름 열심히 했는데... 59점이라니........

60점 이상부터 합격이라 더 열받는다...
하지만 어쩌겠는가... 앞으로 더 열심히 해서 더 제대로 알고 합격해야 겠다는 다짐을 했다.
다만, 2016년에는 시험 유형이 크게 변할까 걱정이다..

OWASP도  2016년에 새로 변한다고도 하고.. 음..

그 동안 거의 합격률이 10%가 안된 것으로 아는데,
직장을 다니면서는 역시 쉽지 않은 것 같다.

직장에서 하는일이 프로그래머 쪽이라 보안과는 직접적으로 연관되지는 않지만,
보안이 안 엮일 수도 없는, 계속 관심을 가지고 있는 분야여서,
취미가 되고, 차후엔 직업으로 가져갈 수 있을지도 모르겠다.

2016년 상반기가 필기시험 합격 유효기간 마지막인데,
이번에... 진짜 끝내버리자. 화이팅.



 

Key Derivation Functions (PBKDF2)

Posted by ironmask84
2015. 6. 24. 13:34 컴퓨터공학/Security


2년 전 부터 정보 보안에 대한 관심이 많아 지면서,

최근에 또 회사 업무로 인해 아래 암호화 알고리즘에 대해 알아보았다.

PBKDF2 라는 해쉬 컨테이너 알고리즘 이다. (Password-Based Key Derivation Function)

PBKDF2의 기본 파라미터는 다음과 같은 5개 파라미터다.

DIGEST = PBKDF2(PRF, Password, Salt, c, DLen)
  • PRF: 난수(예: HMAC)
  • Password: 패스워드
  • Salt: 암호학 솔트 (32bit 이상 추천.. 어떤 기준??)
  • c: 원하는 iteration 반복 수 (1000번 이상 추천 어떤 기준??)
  • DLen: 원하는 다이제스트 길이

PBKDF2는 NIST(National Institute of Standards and Technology, 미국표준기술연구소)에 의해서 승인된 알고리즘이고, 미국 정부 시스템에서도 사용자 패스워드의 암호화된 다이제스트를 생성할 때 사용한다.

위에서 PRF라는 것이 약간 헷갈리는데, 해쉬 함수를 의미하는 것으로 보인다.

기존 많은 웹서비스들은  패스워드 저장 시, SHA-1 이나 MD5와 같은 hash 알고리즘을 이용해 DB에 저장하여, 개인 정보를 보호하였으나, 이 방법도 HW의 눈부신 발전에 의해 무차별 공격 (brute-force-attack) 에 취약해지므로, 이를 대체 하기 위한 대표적인 알고리즘이다.

오픈소스이며, 최근에 여러 웹서비스나 프로그램에서 인기있는 알고리즘으로 보임.

내가 생각한 기본적인 사용법의 이해는 아래와 같다.

디바이스 내에는 DIGEST와 Salt 가 저장될 것이며,
Password는 저장되어서는 안된다.

유저가 Password를 입력할 때마다,
저장된 salt를 이용해서 PBKDF2를 통해, Digest가 출력될 것이고,
그 놈이 저장되어 있는 Digeest와 일치하는지의 여부를 볼 것이다.

마지막으로 참고할 만한 사이트 2개를 소개합니다.

1. 위키 : http://en.wikipedia.org/wiki/PBKDF2

2. NHN개발자 사이트 : http://helloworld.naver.com/helloworld/318732