'전체 글'에 해당되는 글 123건

  1. 2022.07.12 시간 및 상태
  2. 2022.07.12 에러처리
  3. 2022.07.12 코드오류
  4. 2022.07.12 API 오용
  5. 2022.07.12 캡슐화
  6. 2022.06.30 SW보안약점진단원 양성과정 교육 신청
  7. 2021.08.26 TextView 에 이미지 포함하기
  8. 2021.07.02 Mac 키보드 키 매핑 앱 - Karabiner
보안약점 설명
3.1 검사시점과 사용시점 멀티 프로세스 상에서 자원을 검사하는 시점과 사용하는 시점이 달라서 발생 하는 보안약점

동시성 제어: synchronized, mutex, semaphore
3.2 종료되지 않은 반복문 또는 재귀 함수 종료조건 없는 제어문 사용으로 반복문 또는 재귀함수가 무한히 반복되어 발생 할 수 있는 보안약점

탈출조건을 지정

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

보안기능  (0) 2022.07.12
SW보안약점  (0) 2022.07.12
에러처리  (0) 2022.07.12
코드오류  (0) 2022.07.12
API 오용  (0) 2022.07.12
Posted by Lumasca
,
보안약점 설명
4.1 오류 메시지를 통한 정보노출 개발자가 생성한 오류 메시지에 시스템 내부구조 등이 포함되어 민감한 정보 가 노출될 수 있는 보안약점

try{
}catch(IOException e) {
   e.printStackTrace();//스택 정보 노출
}


try{
}catch(IOException e) {
   logger.e(e);
}
4.2 오류 상황 대응 부재
시스템에서 발생하는 오류 상황을 처리하지 않아 프로그램 실행정지 등 의도 하지 않은 상황이 발생할 수 있는 보안약점

try{
}catch(NullPointerException e){
//오류 발생시 대응을 안하면 정상인것처럼 동작
}


try{
}catch(NullPointerException e){
   logger.e(e.getMessage());
   return false;  
}
4.3 부적절한 예외 처리 예외에 대한 부적절한 처리로 인해 의도하지 않은 상황이 발생될 수 있는 보안 약점

try{
}catch(Exception e){//광범위한 예외처리
}

//예외처리 세분화
try{
}catch(IOException e){
}catch(ParseException e){
}

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

SW보안약점  (0) 2022.07.12
시간 및 상태  (0) 2022.07.12
코드오류  (0) 2022.07.12
API 오용  (0) 2022.07.12
캡슐화  (0) 2022.07.12
Posted by Lumasca
,
보안약점 설명
5.1 Null Pointer 역참조 Null로 설정된 변수의 주소값을 참조했을 때 발생하는 보안약점

String url = request.getParameter("url");

//url 에 null이 들어오면 문제 발생
if(url.equals(""))


if(url != null || url.equals(""))
5.2 부적절한 자원 해제
사용된 자원을 적절히 해제하지 않으면 자원 누수 등이 발생하고, 자원이 부족 하여 새로운 입력을 처리할 수 없게 되는 보안약점

in = new FileInputStream(inputFile)
out = new FileOutputStream(outputFile);

FileCopy.copy(in, out);
//실행중에 오류가 나면 자원반환이 안됨.
in.close();

try{
}catch(){
}finally{
in.close();
out.close();
}
5.3 해제된 자원 사용
메모리 등 해제된 자원을 참조하여 예기치 않은 오류가 발생될 수 있는 보안 약점
char *temp;

free(tem);

stmcpy(temp, "1234", size); //예기치 않은 취약점 발생
5.4 초기화되지 않은 변수 사용 변수를 초기화하지 않고 사용하여 예기치 않은 오류가 발생될 수 있는 보안 약점

int x;

초기화되지 않은 변수는 위조가 가능.
int x=1;

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

시간 및 상태  (0) 2022.07.12
에러처리  (0) 2022.07.12
API 오용  (0) 2022.07.12
캡슐화  (0) 2022.07.12
SW보안약점진단원 양성과정 교육 신청  (0) 2022.06.30
Posted by Lumasca
,
보안약점 설명
7.1 DNS Lookup에 의존한 보안결정 DNS는 공격자에 의해 DNS 스푸핑 공격 등이 가능하므로 보안 결정을 DNS 이름에 의존할 경우, 보안결정 등이 노출되는 보안 약점

ex)도메인명으로 신뢰성을 검증하지 말고 IP주소를 사용하여 DNS변조에 대응
7.2 취약한 API 사용 취약하다고 알려진 함수를 사용함으로써 예기치 않은 보안위협에 노출될 수 있는 보안약점


ex) socket = new Socket("127.0.0.1", 10000);
보안기능이 없는 소켓을 직접 사용.

프레임워크에서 제공하는 클래스를 이용
URL url = "http://127.0.0.1:10000");
URLConnection conn = url.openConnection();

 

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

시간 및 상태  (0) 2022.07.12
에러처리  (0) 2022.07.12
코드오류  (0) 2022.07.12
캡슐화  (0) 2022.07.12
SW보안약점진단원 양성과정 교육 신청  (0) 2022.06.30
Posted by Lumasca
,
보안약점 설명
6.1 잘못된 세션에 의한 데이터 정보노출
잘못된 세션에 의해 인가되지 않은 사용자에게 중요정보가 노출 될 수 있는 보안약점
6.2 제거되지 않고 남은 디버그 코드
디버깅을 위해 작성된 코드를 통해 인가되지 않은 사용자에게 중요정보가 노출될 수 있는 보안약점

logger.d("personal info");

삭제
6.3 시스템 데이터 정보노출
사용자가 볼 수 있는 오류 메시지나 스택 정보에 시스템 내부 데이터나 디버깅 관련 정보가 공개되는 보안약점

logger.e(e.getMessage());
=>
logger.e("NullPointException")
6.4 Public 메소드부터 반환된 Private 배열
Private로 선언된 배열을 Public으로 선언된 메서드를 통해 반환 (return)하면, 그 배열의 레퍼런스가 외부에 공개되어 외부 에서 배열이 수정될 수 있 는 보안약점

ex)
private Data[] datas;
public Data[] getData() {
   return datas;
}

=>
public Data[] getData() {
  Data[] datas=newData[datas.length];
   for(inti =0; i < datas.length; i++){
      datas[i] = this.datas[i].clone();
   }
   return datas;

}

6.5 Private 배열에 Public 데이터 할당 Public으로 선언된 데이터 또는 메서드의 파라미터가 Private로 선언된 배 열에 저장되면, Private 배열을 외부에서 접근할 수 있게 되는 보안약점

ex)
private Data[] datas;
public void setData(Data[] datas) {
   this.datas = datas;
}

=>

public void setData(Data[] datas) {
   this.datas = new Data[datas.length];
   for(int i = 0; i < datas.length; i++){
      this.datas[i] = datas[i].clone();
   }

}

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

시간 및 상태  (0) 2022.07.12
에러처리  (0) 2022.07.12
코드오류  (0) 2022.07.12
API 오용  (0) 2022.07.12
SW보안약점진단원 양성과정 교육 신청  (0) 2022.06.30
Posted by Lumasca
,

이번에 2022년 SW보안약점 진단원 양성과정 3차 교육을 신청했다.

교육기간이 평일이라 휴가를 5일이나 내야하는 부담이 있다.

 

KISA의 연간 교육 계획을 확인한다.

https://academy.kisa.or.kr/edu/planning03.kisa

 

KISA LMS

 

academy.kisa.or.kr

 

원하는 차수를 클릭하면 교육신청 페이지로 이동하는데 접수기간이 아니면 상태는 '접수마감'이다.

상태는 접수기간 시작일 오전 10시 정각에 신청하기(?) 버튼으로 변경된다.

마감이 빨리된다는 글을 봐서 빨리 진행하느라 신청페이지는 캡쳐하지 못했다.

신청페이지는 개인정보 몇개를 입력해야한다. 

 

접수가 되면 메일이 온다.

경력 증빙서류는 발신자 메일주소(edu@kisec.com)로 보내면 된다.

 

나의 경우는 교육신청서, 자격확인신청서, 건강보험자격득실확인서랑 소프트웨어 기술자 경력증명서를 제출했다.

소프트웨어 기술자 경력증명서는 KOSA 관리하는 경력관리시스템을 통해 발급받을 수 있다.

이 시스템은 등록시에도 돈을 지불해야하고 증명서발급에도 2천원을 결제해야 한다.

오래전 근무하던 회사 다닐때 등록해두었는데 몇번 경력증빙이 필요한 경우에 대체 증빙으로 사용할때 요긴하다.

 

https://career.sw.or.kr/

 

소프트웨어기술자 경력관리시스템

SW기술자 경력확인 한번으로 두고두고 편리한 경력관리 SW기술자 경력확인제도는 SW기술자의 경력 입증의 어려움을 해소하고, 지속적인 경력관리를 통해 공신력있는 경력증빙 및 권익보호를 위

career.sw.or.kr

 

자격확인신청서(엑셀)는 아래와 같은 양식으로 되어 있다.

현재소속된 정보를 작성하고 노란색 소속기관에 근무했던 회사, 개발경력 프로젝트에는 근무했던 회사에서 수행한 프로젝트를 기입했다. 진단경력 프로젝트는 없으니 공백으로 처리했다.

서류상 제출이 어려운 경력은 우측에 별도로 기입하도록 구성되어 있다.

 

교육신청서(한글)는 자격확인신청서에 작성한 개발경력프로젝트를 개발경력란에 그대로 기입하고 인쇄한 다음,

개인정보활용 동의서에 서명한후, 사진을 찍어서 pdf 파일로 만들었다.

이렇게 준비된 파일을 메일로 보내면 이렇게 답장이 온다. (15분정도후)

 

 

 

교육후기(https://lumasca.tistory.com/1149)

 

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

 

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

 

최종합격(https://lumasca.tistory.com/1153)

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

시간 및 상태  (0) 2022.07.12
에러처리  (0) 2022.07.12
코드오류  (0) 2022.07.12
API 오용  (0) 2022.07.12
캡슐화  (0) 2022.07.12
Posted by Lumasca
,

텍스트와 이미지가 함께 구성하는 경우가 종종 발생한다. ImageView를 별도로 구성하지 않고 TextView의 속성을 이용하면 쉽게 처리할 수 있다.

 

아래는 layout XML 의 내용이다.

 

root layout 태그에 xmlns:app="http://schemas.android.com/apk/res-auto" 를 추가한다.

    <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

보통 왼쪽 오른쪽에 추가하는 케이스가 많은데 오른쪽은   app:drawableEndCompat, 왼쪽은 app:drawableStartCompat 을 이용하면 된다. 그리고 텍스트와 이미지 사이 간격은  android:drawablePadding 으로 조절한다.

<TextView
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:fontFamily="@font/font_medium"
     android:includeFontPadding="false"
     android:text="더보기"
     android:textAppearance="@style/Text14White"
     app:drawableEndCompat="@drawable/icon_angle_greater"
     app:drawableStartCompat="@drawable/icon_info"
     android:drawablePadding="10dp"
/>

 

소스코드로 설정할 경우, TextView의 setCompoundDrawables(left, top, right, bottom) 메소드를 이용해서 drawable을 원하는 위치에 설정해주면 된다.

val iconInfo = ContextCompat.getDrawable(requireContext(), R.drawable.icon_info)
val iconBracket = ContextCompat.getDrawable(requireContext(), R.drawable.icon_angle_greater)
binding.tvPoint.setCompoundDrawables(icon, null, iconBracket, null)

'개발 > Android' 카테고리의 다른 글

풍선도움말 레이아웃 구현  (1) 2021.03.24
프로젝트에 NDK 모듈 추가하기  (0) 2021.03.05
ViewBinding  (0) 2021.02.25
Android Studio Rename Package  (0) 2021.02.24
Appium 설치  (0) 2021.02.17
Posted by Lumasca
,

Mac을 사용할때 Command(⌘) 를 조합해서 입력하는 경우가 많은데 이 키의 위치때문에 다른키랑 함께 누르기가 참 불편하다.

 

이때 키 맵핑 앱을 사용하면 키보드의 키 설정을 변경할 수 있다.

 

프로그램의 홈페이지로 이동해서 다운로드를 하자.

https://karabiner-elements.pqrs.org/

 

Karabiner-Elements

A powerful and stable keyboard customizer for macOS.

karabiner-elements.pqrs.org

Download 버튼의 아래 화살표를 클릭하면 MacOS 버전정보가 나타난다. 

본인의 OS에 맞는 버전을 선택하면 Karabiner-Elements dmg 파일을 다운로드 한다.

 

설치는 dmg 파일을 더블클릭하면 Karabiner-Elements.pkg 아이콘이 보인다. 더블클릭해서 설치를 진행한다.

 

설치가 완료되면 Karabiner-Elements 를 실행한다.

아래와 같은 화면이 나타나는데 화면 아래쪽에 있는 Add Item 버튼을 클릭하면 키 매핑정보를 추가할 수 있다.

From key는 변경하려는 실제 키, To key는 실제키 대신에 사용할 가상의 키라고 보면 된다.

 

개인적으로 command키가 caps lock 위치에 있는 것을 선호한다. (해피해킹 키보드처럼..) 키조합이 훨씬 편하다.

예) caps_lock 키에 left command 키를 매핑시키고자 한다면 From key 항목을 클릭해서 caps_lock을 선택하고, To key를 선택해서 left_command를 선택해주면 된다. caps lock 기능도 써야하니 left_command 키에는 caps_lock 키를 설정해 주었다.

 

key항목을 누르면 아래와 같이 다양한 키들을 매핑시킬 수 있다. 

F 키(Funcion key)도 설정을 변경할 수 있다.

'개발 > Dev Others' 카테고리의 다른 글

Shell 에서 excutable Jar 만들기  (0) 2020.03.26
Github commit  (0) 2020.01.03
MySQL Config  (0) 2017.07.04
파이어폭스 한글입력 오류  (0) 2016.09.13
PHP for IIS 설치  (2) 2009.11.22
Posted by Lumasca
,