12월 5일 드디어 SW보안약점진단원 합격증이 우체국 등기로 도착했다.

 

합격증을 받는데 3개월씩이나 걸리다니..

 

자격증을 활용할 곳을 찾아봐야겠다.

 

 

Posted by Lumasca
,

2022년 9월 2일 SW보안약점진단원 시험결과(8월20일 시험)가 메일로 발송되었다.

 

9시부터 기다렸는데 10시가 조금 넘어서 메일이 도착했다.

 

합격은 예상했는데 점수는 높지 않았다. 필기나 실기 배점정도는 별도로 구분해서 주면 좋았을텐데..

 

아무래도 실기에서 실수한것이 맞는것 같다.

 

 
Posted by Lumasca
,

2022년 8월 20일 토요일에 보안약점진단원 시험을 보았다.

준비물은 신분증, 볼펜뿐이다.

 

시험 총평: 암기를 좀 했다면 이론이나 실기모두 수월하게 풀수있을 것으로 보였고, 단지 실기 15점짜리 2문제는 좀 헷갈렸다.

암기는 기본이고 코드를 보고 보안약점을 판단하는 훈련을 많이 해두는 것이 시험에 도움이 많이 될것 같다.

합격여부는 채점자들이 서술형 문제에 대해 점수를 얼마나 주느냐가 관건인듯 싶다.

일이 있어서 집에 늦게와서 리뷰하는데 문제가 잘 생각이 나질 않았다.

 

인터넷 시험후기에 시간적 여유가 없으니 답안지에 직접 작성하라고 하라는 글을 보고 직접 작성했었다.

그런데 다시 검토하다보디 수정해야할 답안이 좀 있었다. 볼펜으로 두줄 긋고 수정해서 지저분하게 보였다. 

공부를 어느정도 했다면 시간적 여유는 충분하니 문제지에 답을 작성하고 검토후에 답안지에 작성해도 된다.

 

*이론

이론은 진위형, 객관식형, 단답형, 서술형으로 구성된다.

진위여부는 보안약점에 대한 설명이 맞는가, 진단방법에 대한 설명이 맞는가 등 2~3줄짜리 지문으로 구성된 문제 유형이다. 

객관식은 1~3개까지 답을 고르는 문제 유형이다. 

단답형은 암호키 유효기간(송신자,수신자), 쿠키 속성, LDAP 취약점 특수문자 3개 이상, 비밀번호 요구사항을 제시하고 공격기법 2가지 등 정답이 확실한 문제 유형이다.

서술형은 보안약점, 보안대책을 작성하는 문제 유형이다.

 

*실기

실기는 정*오탑 문제, 보안요청서 작성문제, 보안약점 식별 문제로 구성된다.

1)정탐 오탐 식별하고 근거를 서술하는 문제

2)보완요청서(보안약점, 진단방법, 보안대책, 취약한 코드라인)를 작성하는 문제. 보안유형은 이미 체크가 되어있다.

3)취약한 라인을 알려주고 해당 보안약점, 설명, 대응책을 작성하는 문제

 

시험장소는 서울역 공간모아 이다.

주소: 서울특별시 중구 통일로 26 한일빌딩(1호선 서울역 3번 출구에서 도보 100m, 1층의 한진렌터카 건물)

건물 입구 및 엘레베이터 앞에 안내문구가 있다. 6층이 시험장이었다.

 

6층에 도착면 입구에서 신분증으로 본인확인을 한다.

 

시험일정은 다음과 같다.

시험이 시작되면 퇴실할때까지 중간 휴식시간에도 교재를 본다던가 핸드폰은 사용할 수 없다.

소지품은 가방에 넣어서 시험장 뒤에 두도록 조치한다.

실기시험 퇴실은 15시20분부터 가능하다. 

시험장 좌석배치도를 보니 대략 55명정도 응시를 하는 것 같이다. 의외로 응시자가 적었다.

2인 책상에 한명씩 앉으며 앞에서부터 지그재그로 배치된다. 

책상에는 코로나 가림막이 설치되어있다.

 

참고로 시험 안내서에 나오는 점수산출방식과 문제유형은 다음과 같다.

1) 종합점수 산출방식:

이론시험(40%) + 실습시험(60%) 가중치

[표 2] 이수시험 종합점수 산출방식

2) 합격기준:

가중치에 따른 종합점수 70점 이상일 경우 합격 (과락: 60점 미만)

3) 출제범위:

SW개발보안 제도·기준, 보안약점 진단·제거기술 등

4) 참고자료:

소프트웨어 보안약점 진단가이드 및 진단원 양성과정 교재 소프트웨어 개발보안 가이드

5) 문제 구성 ※ 회차별 문제구성은 달리 적용될 수 있음

가) 이론시험(60분)

나) 실습시험(100분)

 

 

시험준비(https://lumasca.tistory.com/1150)

Posted by Lumasca
,

시험 준비 자료는 아래 2가지만 사용했다.

 

2022년 SW 보안약점진단원 교육교재

소프트웨어_보안약점_진단가이드(2021): https://www.kisa.or.kr/2060204/form?postSeq=9&page=1 

 

교재의 보안약점은 진단가이드와 거의 동일하므로 진단가이드 위주로 보안약점 유형별로 구글시트로 정리했다.

교재는 분석설계 단계 실습 부분만 보았는데 시험에 별로 도움이 되진 않았다.

 

이론의 진위(OX), 객관식, 단답형은 단순히 암기만 하면 되고, 이론 서술문제, 실기 서술 문제는 암기해서 쓰는 훈련이 필요하다.

 

설계단계 보안약점은 보안약점유형, 설계항목, 설명, 구현단계 보안약점, 취약점, 보안대책을 작성한다.

구현단계 보안약점은 보안약점유형, 보안약점이름, 설명, 보안대책, 진단방법, 안전하지 않은 코드, 안전한코드를 작성한다.

그리고 백지에 위의 내용을 약식으로 필사하고 암기 후 외워서 쓰는 훈련을 한다.

모르는 부분은 공백으로 두고 생각나는 부분 만암기해서 쓰도록 한다. 공백은 빨간색으로 채운다. 빨간색으로 작성된 부분을 다시 확인한다.

 

총 69개이지만 내용이 많지 않은 보안약점이 많기때문에 하루에 15개 정도만 하면 5일이면 충분하다.

주말은 시간을 더 할애해서 암기에 집중하도록 한다. 당연한 말이지만 본인에게 쉬운 보안약점부터 공략하고 영역을 확대해 나가자.

 

개발자도 마찬가지지만 비개발자라면 코드를 보고 약점을 도출하는 훈련을 특히 많이 해야 한다.

 

안전하지 않은 코드만 보고 보안 약점에 대한 내용을 작성할 수 있도록 훈련한다. 

 

진단가이드에 나오는 정탐, 오탐 예제를 보고 그 근거를 이해하도록 한다.

 

요청하신 분이 계셔서 학습할 때 사용한 파일을 첨부합니다. 참고하세요.

 

SW보안약점진단기준 학습.xlsx
1.11MB

 

시험후기(https://lumasca.tistory.com/1151)

Posted by Lumasca
,

2022년 7월 25일부터 29일까지 3차 SW보안약점진단원 양성교육이 있었다.

 

교육후기: 교육 운영진은 모두 친절하셨으며, 강사님 두분도 열심히 강의를 하셔서 대체로 만족스러웠다.

다만 실습은 코드분석 위주로 이루어져서 분석/설계 산출물이나 소스코드로 보안약점을 진단하고 보완요청서를 작성하는 실습이 없었던 점이 많이 아쉽다.

 

2022년도 3차 교육는 아래 장소에서 진행되었다. 날도 더운데 멀지않은 곳이어서 좋았다.

한국정보보호교육센터 본관  

-주소: 서울 강남구 남부순환로 2645 한독빌딩 5 SPACE HUB  *양재역 4번 출구 410m  

출석은 아침(9:00, 교육시작전), 점심(13:00, 점심식사후), 저녁(18:00, 교육종료후)에 출입문근처에 부착된 QR코드를 찍으면 전화번호, 이름, 날짜, 시간을 입력하는 페이지로 이동한다. 정보를 모두 입력하고 제출을 하면 된다.

 

교재는 수업 첫날 책상에 배부되어 있다.

좌석은 선착순으로 첫날 앉았던 좌석을 계속 유지하도록 권고하고 있다.

 

중식은 근처 식당에서 각자 알아서 해결하면 된다.

 

이번 교육 회차가 경쟁률이 높았다고 한다. 개발자보다 보안업체 인력이 많이 참석했다.

 

둘째날 오후에 코로나 확진자가 발생하여, 온라인, 오프라인 수업이 병행으로 진행되었다. 교육생은 선택에 따라 결정할 수 있었다.

 

본인은 온라인 수업을 희망하였기 때문에 오후에 집으로 가서 온라인 줌을 이용해서 교육을 수강했다.

 

실습파일은 대용량 메일로 전송되며, 실습 프로젝트 압축 파일과 가상컴퓨팅환경(VMware) 압축 파일을 전송해준다.

 

실습환경(JDK, 이클립스)을 구성하는 과정을 진행하는데, 잘 안되면 VMWare를 설치하고 가상컴퓨팅 환경을 사용해도 무방하다.

 

설계단계나 구현단계 모두 실습은 코딩 예제를 가지고 진행했다.

 

마지막날은 다른 일이 있어서 출석하지 못했다. 만족도 조사 링크는 문자로 전송된다. 그리고 시험에 응시할 것이지 조사한다. 

 

나는 이후에 전화로 연락이 와서 응시한다고 말했다.

 

응시기회는 총 3번인데 교육수료후 첫 시험은 응시를 하던 안하던 차감되는 것으로 들었다. 

 

시험유형을 확인하기 위해서라도 응시해야 한다.

 

출석율이 80%이상이면 교육과정을 이수한 것으로 된다.

 

수료증은 KISA > 마이페이지 > 교육이력(https://academy.kisa.or.kr/mypage/history.kisa)에서 출력할 수 있다.

 

 

'IT 자격증 > SW보안약점진단원' 카테고리의 다른 글

2022년 2차 SW보안약점진단원 시험 후기  (0) 2022.08.22
SW보안약점진단원 시험준비  (8) 2022.08.22
입력데이터 검증 및 표현  (0) 2022.07.12
보안기능  (0) 2022.07.12
SW보안약점  (0) 2022.07.12
Posted by Lumasca
,
보안약점 설명
1.1 SQL 삽입
검증되지 않은 외부입력값이 SQL 쿼리문 생성에 사용되어 악의적인 쿼리가 실행될 수 있는 보안약점

=>PreparedStatement 객체를 이용해서 쿼리 수행, Mybatis, Hibernate 파라미터 바인딩 이용
1.2 경로 조작 및 자원 삽입
검증되지 않은 외부입력값이 시스템 자원 접근경로 또는 자원제어에 사용되어 공격자가 입력값을 조작해 공격할 수 있는 보안약점

=>경로순회 문자열 제거(./\)
1.3 크로스사이트 스크립트
검증되지 않은 외부입력값에 의해 사용자 브라우저에서 악의적인 스크립트가 실행될 수 있는 보안약점

=>입력값의 스크립트 문자열 치환, AntiXss 패키지 등으로 입력값 필터링, 
1.4 운영체제 명령어 삽입
검증되지 않은 외부입력값이 운영체제 명령문 생성에 사용되어 악의적인 명령어가 실행될 수 있는 보안약점

=>실행가능한 명령어 제한
1.5 위험한 형식 파일 업로드
파일의 확장자 등 파일형식에 대한 검증 없이 업로드를 허용하여 발생할 수 있는 보안약점

=> 파일 확장자 필터, 대소문자 구별
1.6 신뢰되지 않는 URL 주소로 자동접속 연결
검증되지 않은 외부입력값이 URL 링크 생성에 사용되어 악의적인 사이트로 자동 접속될 수 있는 보안약점

=>이동가능한 URL범위를 제한
1.7 XQuery 삽입
검증되지 않은 외부입력값이 XQuery 쿼리문 생성에 사용되어 악의적인 쿼리가 실행될 수 있는 보안약점

=>buildString함수를 이용해 쿼리 구조 변경 금지
1.8 XPath 삽입
검증되지 않은 외부입력값이 XPath 쿼리문 생성에 사용 되어 악의적인 쿼리 가 실행될 수 있는 보안약점

=>XQuery를 사용.
1.9 LDAP 삽입
검증되지 않은 입력값이 LDAP 명령문 생성에 사용되어 악의적인 명령어가 실행될 수 있는 보안약점

=>LDAP 필터 조작 가능한 공격문자열을 제거.
1.10 크로스사이트 요청위조 검증되지 않은 외부입력값에 의해 브라우저에서 악의적인 스크립트가 실행 되어 공격자가 원하는 요청(Request)이 다른 사용자(관리자 등)의 권한으로 서버로 전송되는 보안약점

=>입력화면 토큰 생성후 세션에 저장, 히든 필드로 서버에 전달,
요청한 토큰과 세션 토큰을 비교해서 일치하면 요청 처리
1.11 HTTP 응답분할
검증되지 않은 외부입력값이 HTTP 응답헤더에 삽입되어 악의적인 코드가 실행될 수 있는 보안약점

header, body 는 개행문자(\r\n)로 구분됨.
body 위조 가능

=>외부입력값이나 쿠키는 개행문자를 검증
1.12 정수형 오버플로우 정수를 사용한 연산의 결과가 정수값의 범위를 넘어서는 경우, 프로그램이 예기치 않게 동작될 수 있는 보안약점

//정수가 범위를 넘으면 음수 가능
String s = getString("size");
int i = Integer.parseInt(s);
String[] arr = new String[i];

=>정수의 범위를 체크
1.13 보안기능 결정에 사용되는 부적절한 입력값 검증되지 않은 입력값이 보안결정(인증, 인가, 권한부여 등)에 사용되어 보안 메커니즘 우회 등을 야기할 수 있는 보안약점

=>중요정보는 서버에 있는 정보를 이용하도록 한다.
1.14 메모리 버퍼 오버플로우 메모리 버퍼의 경계값을 넘어서 메모리값을 읽거나 저장하여 예기치 않은 결과 를 발생시킬 수 있는 보안약점

stack 끝에는 복귀주소가 있어서 버퍼크기를 조작할 경우 정보 유출 가능
=>포인터를 덮어쓰지 못하도록 허용된 범위만 지정,
문자열종료는 '\0' 추가
1.15 포맷 스트링 삽입 printf 등 외부입력값으로 포맷스트링을 제어할 수 있는 함수를 사용하여 발생 할 수 있는 보안약점

=> 입력값은 포맷 문자열(%s)를 사용.

'IT 자격증 > SW보안약점진단원' 카테고리의 다른 글

SW보안약점진단원 시험준비  (8) 2022.08.22
2022 3차 SW 보안약점진단원 양성교육  (0) 2022.08.22
보안기능  (0) 2022.07.12
SW보안약점  (0) 2022.07.12
시간 및 상태  (0) 2022.07.12
Posted by Lumasca
,
보안약점 설명
2.1 적절한 인증없는 중요 기능 허용
적절한 인증 없이 중요정보(금융정보, 개인정보, 인증정보 등)를 열람(또는 변경)할 수 있게 하는 보안약점

=>최소권한 할당, R,W,E
2.2 부적절한 인가
적절한 접근제어 없이 외부입력값을 포함한 문자열로 중요자원에 접근할 수 있는 보안약점

=> DES, MD5 보다는 AES, SHA 사용
2.3 중요한 자원에 대한 잘못된 권한 설정
중요자원(프로그램 설정, 민감한 사용자 데이터 등)에 대한 적절한 접근권한을 부여하지 않아, 인가되지 않은 사용자 등에 의해 중요정보가 노출·수정되는 보안약점
2.4 취약한 암호화 알고리즘 사용
중요정보(금융정보, 개인정보, 인증정보 등)의 기밀성을 보장할 수 없는 취약 한 암호화 알고리즘을 사용하여 정보가 노출될 수 있는 보안약점
2.5 중요정보 평문 저장 중요정보(비밀번호, 개인정보 등)를 암호화하여 저장하지 않아 정보가 노출될 수 있는 보안약점

=>중요정보는 암호화해서 저장
2.6 중요정보 평문전송
중요정보(비밀번호, 개인정보 등) 전송시 암호화하지 않거나 안전한 통신채널 을 이용하지 않아 정보가 노출될 수 있는 보안약점

=>중요정보는 암호화해서 전송. SSL, HTTPS 사용.
2.7 하드코드된 비밀번호
소스코드 내에 비밀번호가 하드코딩 되어 소스코드 유출시 노출 우려 및 주기적 변경 등 수정(관리자 변경 등)이 용이하지 않는 보안약점

=>코드에 패스워드 작성 금지, 
2.8 충분하지 않은 키 길이 사용
데이터의 기밀성, 무결성 보장을 위해 사용되는 키의 길이가 충분하지 않아 기밀정보 누출, 무결성이 깨지는 보안약점

=>RSA는 2048 비트 이상
2.9 적절하지 않은 난수값 사용
예측 가능한 난수사용으로 공격자로 하여금 다음 숫자 등을 예상하여 시스템 공격이 가능한 보안약점


=>Random이 아닌 SecureRandom을 사용
2.10 하드코드된 암호화 키
소스코드 내에 암호화키가 하드코딩 되어 소스코드 유출시 노출 우려 및 키 변경이 용이하지 않는 보안약점

=>암호키는 외부파일에 암호화된 형태로 저장
2.11 취약한 비밀번호 허용
비밀번호 조합규칙(영문, 숫자, 특수문자 등) 미흡 및 길이가 충분하지 않아 노출될 수 있는 보안약점

=>비밀번호 작성규칙 적용(영문+숫자 10자리이상, 영문+숫자+특수문자 8자리 이상)
2.12 사용자 하드디스크 저장되는 쿠키를 통한 정보노출
쿠키(세션 ID, 사용자 권한정보 등 중요정보)를 사용자 하드디스크에 저장함 으로써 개인정보 등 기밀정보가 노출될 수 있는 보안약점

=>쿠키 만료기간 짧게, 
2.13 주석문 안에 포함된 시스템 주요정보
소스코드내의 주석문에 인증정보 등 시스템 주요정보가 포함되어 소스코드 유출시 노출될 수 있는 보안약점

=>주석에 비밀번호 등 중요정보 저장금지
2.14 솔트 없이 일방향 해쉬 함수 사용
공격자가 솔트 없이 생성된 해시값을 얻게 된 경우, 미리 계산된 레인보우 테이블 을 이용하여 원문을 찾을 수 있는 보안약점

=>패스워드 저장시 솔트값을 추가한 해쉬값을 저장
2.15 무결성 검사없는 코드 다운로드
원격으로부터 소스코드 또는 실행파일을 무결성 검사 없이 다운로드 받고 이를 실행하는 경우, 공격자가 악의적인 코드를 실행할 수 있는 보안약점

=>서버에서 개인키로 암호화후, 클라에서 공개키로 복호화.
2.16 반복된 인증시도 제한 기능 부재 인증시도의 수를 제한하지 않아 공격자가 무작위 인증시도를 통해 계정접근 권한을 얻을 수 있는 보안약점

=>인증실패시 재시도 시간 지연 또는 재시도 횟수 제한.

'IT 자격증 > SW보안약점진단원' 카테고리의 다른 글

2022 3차 SW 보안약점진단원 양성교육  (0) 2022.08.22
입력데이터 검증 및 표현  (0) 2022.07.12
SW보안약점  (0) 2022.07.12
시간 및 상태  (0) 2022.07.12
에러처리  (0) 2022.07.12
Posted by Lumasca
,

 

'IT 자격증 > SW보안약점진단원' 카테고리의 다른 글

입력데이터 검증 및 표현  (0) 2022.07.12
보안기능  (0) 2022.07.12
시간 및 상태  (0) 2022.07.12
에러처리  (0) 2022.07.12
코드오류  (0) 2022.07.12
Posted by Lumasca
,