susujin의 기술 블로그
close
프로필 배경
프로필 로고

susujin의 기술 블로그

  • 분류 전체보기 (260)
    • 정보보안 (51)
      • 뉴스 스크랩 (44)
      • 보안지식 (7)
    • Python (17)
      • Python 기초 (7)
      • Python 활용 (8)
      • 알고리즘 문제풀이 (2)
    • Secure Coding (55)
      • 시큐어코딩 가이드 (46)
      • 실습환경 구축(Django) (6)
      • 실습환경 구축(Kali Linux) (3)
    • 시스템 보안 및 실무 (43)
      • 시스템·네트워크 보안 (21)
      • 시스템 운영·구축 실무 (22)
    • 보안 취약점 진단 및 대응 (69)
      • 취약점 (16)
      • Port Swigger:Lab (19)
      • WebGoat (16)
      • Bee-Box (7)
      • openeg (11)
    • 모의해킹 (8)
    • Cloud (2)
    • SK쉴더스 루키즈 (6)
      • 후기 (6)
    • 프로젝트 (9)
      • AndroidStudio (0)
      • App Inventor (8)
      • PHP (1)
  • 글쓰기
  • 관리자
  • 깃허브
[시큐어코딩 가이드] 2-2-6. 하드코드된 중요정보

[시큐어코딩 가이드] 2-2-6. 하드코드된 중요정보

하드코드된 중요정보 정의 프로그램 코드 내부에 하드코드된 패스워드를 포함하고, 이를 이용해 내부 인증에 사용하거나 외부 컴포넌트와 통신을 하는 경우 관리자의 정보가 노출될 수 있어 위험하다. 하드코드된 암호화 키를 사용해 암호화를 수행하면 암호화된 정보가 유출될 가능성이 높아진다. 암호키의 해시를 계산해 저장하더라도 역계산이 가능해 무차별 공격(Brute-Force)공격에 취약할 수 있다. 안전한 코딩기법 패스워드는 암호화 후 별도의 파일에 저장하여 사용 중요 정보 암호화 시 상수가 아닌 암호화 키를 사용 코드예제 다음은 안전하지 않은 코드예제입니다. 소스코드에 패스워드 또는 암호화 키와 같은 중요정보를 하드코딩 하게 되면 중요 정보가 노출될 수 있어 위험합니다. #하드코드된 중요정보(안전X) def q..

  • format_list_bulleted Secure Coding/시큐어코딩 가이드
  • · 2023. 11. 4.
  • textsms
[시큐어코딩 가이드] 2-2-5. 암호화되지 않은 중요정보

[시큐어코딩 가이드] 2-2-5. 암호화되지 않은 중요정보

암호화되지 않은 중요정보 정의 많은 응용 프로그램은 메모리나 디스크 상에서 중요한 정보(개인정보, 인증정보, 금융정보 등)를 처리하는데, 이러한 정보가 제대로 보호되지 않을 경우, 보안 문제가 발생하거나 데이터의 무결성이 깨질 수 있다. 사용자 또는 시스템의 중요 정보가 포함된 데이터를 평문으로 송·수신 또는 저장 시 인가되지 않은 사용자에게 민감한 정보가 노출될 수 있다. 안전한 코딩기법 중요정보(개인정보, 금융정보, 패스워드)를 저장하거나 통신채널로 전송할 때는 반드시 암호화 과정을 거쳐야 하며, 중요정보를 읽거나 쓸 경우에 권한인증 등을 통해 적합한 사용자만 중요정보에 접근하도록 해야 한다. 가능하다면 SSL 또는 HTTPS 등과 같은 보안 채널을 사용해야 한다. 코드예제 중요정보 평문저장 다음은 ..

  • format_list_bulleted Secure Coding/시큐어코딩 가이드
  • · 2023. 11. 4.
  • textsms
[시큐어코딩 가이드] 2-2-4. 취약한 암호화 알고리즘 사용

[시큐어코딩 가이드] 2-2-4. 취약한 암호화 알고리즘 사용

취약한 암호화 알고리즘 사용 정의 개발자들은 환경설정 파일에 저장된 패스워드를 보호하기 위해 간단한 인코딩 함수를 이용해 패스워드를 감추는 방법을 사용하기도 하는데, base64와 같은 지나치게 간단한 인코딩 함수로는 패스워드를 제대로 보호할 수 없다. 표준화되지 않은 암호화 알고리즘을 사용하는 것은 공격자가 알고리즘을 분석해 무력화시킬 수 있는 가능성을 높일 수도 있다. 안전한 코딩기법 자신만의 암호화 알고리즘을 개발하는 것은 위험하며, 학계 및 업계에서 이미 검증된 표준화된 알고리즘을 사용해야 한다. 3TDEA, AES, SEED(O) / DES, RC5, 2TDEA, Blowfish, ARC2, ARC4 (X) 코드예제 다음은 안전하지 않은 코드 예제로, DES 알고리즘으로 암호화 하는 코드입니다...

  • format_list_bulleted Secure Coding/시큐어코딩 가이드
  • · 2023. 11. 4.
  • textsms
[시큐어코딩 가이드] 2-2-3. 중요한 자원에 대해 잘못된 권한 설정

[시큐어코딩 가이드] 2-2-3. 중요한 자원에 대해 잘못된 권한 설정

중요한 자원에 대해 잘못된 권한 설정 정의 응용프로그램이 중요한 보안 관련 자원에 대해 읽기 또는 수정하기 권한을 의도하지 않게 허가할 경우, 권한을 갖지 않은 사용자가 해당 자원을 사용 안전한 코딩기법 설정 파일, 실행 파일, 라이브러리 등은 관리자에 의해서만 읽고 쓰기가 가능하도록 설정하고, 설정 파일과 같이 중요한 자원을 사용하는 경우 허가받지 않은 사용자가 중요한 자원에 접근 가능한지 검사 코드예제 다음은 /root/system_config 파일에 대해서 모든 사용자가 읽기, 쓰기, 실행 권한을 가지는 상황을 보여주는 안전하지 않은 코드예제입니다. #중요한 자원에 대해 잘못된 권한 설정(안전X) import os def write_file_bad(): os.chmod('root/system_con..

  • format_list_bulleted Secure Coding/시큐어코딩 가이드
  • · 2023. 11. 4.
  • textsms
[시큐어코딩 가이드] 2-2-2. 부적절한 인가

[시큐어코딩 가이드] 2-2-2. 부적절한 인가

부적절한 인가 정의 프로그램이 모든 가능한 실행 경로에 대해서 접근 제어를 검사하지 않거나 불완전하게 검사하는 경우, 공격자는 접근 가능한 실행경로를 통해 정보를 유출 안전한 코딩기법 응용 프로그램이 제공하는 정보와 기능이 가지는 역할에 맞게 분리 개발함으로써 공격자에게 노출되는 공격 노출면을 최소화하고 사용자의 권한에 따른 ACL(Access Control List)을 관리 *공격노출면(Attack Surface) : 공격자가 진입 또는 영향을 줄 수 있는 시스템 경계선 지점, 시스템 요소 또는 환경을 의미 코드예제 다음은 안전하지 않은 코드예제로, 사용자 입력값에 따라 삭제작업을 수행하고 사용자 권한 확인을 위한 별도의 통제가 적용되지 않은 코드입니다. #부적절한 인가(안전X) def delete_c..

  • format_list_bulleted Secure Coding/시큐어코딩 가이드
  • · 2023. 11. 4.
  • textsms
[시큐어코딩 가이드] 2-2-1. 적절한 인증 없는 중요 기능 허용

[시큐어코딩 가이드] 2-2-1. 적절한 인증 없는 중요 기능 허용

보안기능 보안기능(인증, 접근제어, 기밀성, 암호화, 권한관리 등)을 부적절하게 구현 시 발생할 수 있는 보안약점에는 적절한 인증 없는 중요기능 허용, 부적절한 인가 등이 있다. 적절한 인증 없는 중요 기능 허용 정의 보안기능을 부적절하게 구현 시 발생할 수 있는 보안약점 안전한 코딩기법 클라이언트의 보안 검사를 우회하여 서버에 접근하지 못하도록 설계하고 중요한 정보가 있는 페이지는 재인증을 적용 코드예제 다음은 안전하지 않은 코드 예제로, 패스워드 수정 시 수정을 요청한 패스워드와 DB에 저장된 패스워드 일치 여부를 확인하지 않고 처리하고 있으며, 패스워드 재확인 절차도 생략된 취약한 코드입니다. SUCCESS {{ msg }} {% csrf_token %} #적절한 인증 없는 중요 기능 허용(안전X)..

  • format_list_bulleted Secure Coding/시큐어코딩 가이드
  • · 2023. 11. 4.
  • textsms
[시큐어코딩 가이드] 2-1-16. 포맷 스트링 삽입

[시큐어코딩 가이드] 2-1-16. 포맷 스트링 삽입

포맷 스트링 삽입 정의 외부로부터 입력된 값을 검증하지 않고 입·출력 함수의 포맷 문자열로 그대로 사용하는 경우 발생할 수 있는 보안약점 공격자는 포맷 문자열을 이용해 취약한 프로세스를 공격하거나 메모리 내용을 읽고 쓸 수 있으며, 이를 통해 취약한 프로세스의 권한을 취득해 임의의 코드를 실행 안전한 코딩기법 포맷 문자열을 처리하는 함수 사용 시 사용자 입력값을 직접적으로 포맷 문자열로 사용하거나 포맷 문자열 생성에 포함시키지 않아야 한다. 사용자로부터 입력받은 데이터를 포맷 문자열로 사용하고자 하는 경우에는 서식 지정자를 포함하지 않거나 파이썬의 내장함수 또는 내장변수 등이 포함되지 않도록 해야 한다. 코드예제 외부에서 입력받은 문자열을 바로 포맷스트링으로 사용하면 내부 정보가 외부로 노출될 수 있는 ..

  • format_list_bulleted Secure Coding/시큐어코딩 가이드
  • · 2023. 11. 4.
  • textsms
[시큐어코딩 가이드] 2-1-15. 보안기능 결정에 사용되는 부적절한 입력값

[시큐어코딩 가이드] 2-1-15. 보안기능 결정에 사용되는 부적절한 입력값

보안기능 결정에 사용되는 부적절한 입력값 정의 응용 프로그램이 입력값에 대한 신뢰를 전제로 보호 메커니즘을 사용하는 경우 공격자가 입력값을 조작할 수 있다면 보호 메커니즘을 우회할 수 있게 된다. 개발자들이 흔히 쿠키, 환경변수 또는 히든필드와 같은 입력값이 조작될 수 없다고 가정하지만 공격자는 다양한 방법을 통해 이러한 입력값들을 변경할 수 있고 조작된 내용은 탐지되지 않을 수 있다. 안전한 코딩기법 상태 정보, 민감한 데이터, 중요 정보는 서버에 저장하고 보안확인 절차도 서버에서 실행 신뢰할 수 없는 입력값이 응용 프로그램 내부로 들어올 수 있는 지점을 검토하고, 민감한 보안 기능 실행에 사용되는 입력값을 식별해 입력값에 대한 의존성을 없애는 구조로 변경 가능한지 분석 코드예제 다음은 안전하지 않은 ..

  • format_list_bulleted Secure Coding/시큐어코딩 가이드
  • · 2023. 11. 4.
  • textsms
  • navigate_before
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • navigate_next
전체 카테고리
  • 분류 전체보기 (260)
    • 정보보안 (51)
      • 뉴스 스크랩 (44)
      • 보안지식 (7)
    • Python (17)
      • Python 기초 (7)
      • Python 활용 (8)
      • 알고리즘 문제풀이 (2)
    • Secure Coding (55)
      • 시큐어코딩 가이드 (46)
      • 실습환경 구축(Django) (6)
      • 실습환경 구축(Kali Linux) (3)
    • 시스템 보안 및 실무 (43)
      • 시스템·네트워크 보안 (21)
      • 시스템 운영·구축 실무 (22)
    • 보안 취약점 진단 및 대응 (69)
      • 취약점 (16)
      • Port Swigger:Lab (19)
      • WebGoat (16)
      • Bee-Box (7)
      • openeg (11)
    • 모의해킹 (8)
    • Cloud (2)
    • SK쉴더스 루키즈 (6)
      • 후기 (6)
    • 프로젝트 (9)
      • AndroidStudio (0)
      • App Inventor (8)
      • PHP (1)
최근 글
인기 글
태그
  • #파이썬
  • #Port Swigger
  • #보안기능
  • #XSS
  • #sql injection
  • #WebGoat
  • #취약점진단
  • #openeg
  • #burp suite
  • #입력데이터 검증 및 표현
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바