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-1-6. 위험한 형식 파일 업로드

[시큐어코딩 가이드] 2-1-6. 위험한 형식 파일 업로드

위험한 형식 파일 업로드 정의 서버 측에서 실행 가능한 스크립트파일(asp, jsp, php 등)이 업로드 가능하고 이 파일을 공격자가 웹을 통해 직접 실행시킬수 있는 경우, 시스템 내부 명령어를 실행하거나 외부와 연결해 시스템을 제어할 수 있는 보안약점 공격자가 실행 가능한 파일을 서버에 업로드하면 eval()과 exec()를 같이 사용해 여러 변수들을 동적으로 값을 할당받아 실행될 수 있어 웹쉘 공격에 취약 안전한 코딩기법 특정 파일 유형만 허용하도록 화이트리스트 방식으로 파일 유형을 제한해야 한다. 파일 크기 및 파일 개수를 제한하여 시스템 자원 고갈 등으로 서비스 거부 공격이 발생하지 않도록 제한해야 한다. 업로드 된 파일을 저장할 경우에는 최소 권한만 부여하는 것이 안전하다. 코드예제 업로드 할..

  • format_list_bulleted Secure Coding/시큐어코딩 가이드
  • · 2023. 11. 3.
  • textsms
[시큐어코딩 가이드] 2-1-5. 운영체제 명령어 삽입

[시큐어코딩 가이드] 2-1-5. 운영체제 명령어 삽입

운영체제 명령어 삽입 정의 정의 적절한 검증 절차를 거치지 않은 사용자 입력값이 운영체제 명령어의 일부 또는 전부로 구성되어 실행되는 경우, 의도하지 않은 시스템 명령어가 실행돼 부적절하게 권한이 변경되거나 시스템 동작 및 운영에 악영향을 미칠 수 있다. eval() 함수와 exec() 함수는 내부에서 문자열을 실행하기에 편리하지만, 같이 사용하면 여러 변수들에 동적으로 값을 할당해 사용할 수 있어 명령어 삽입(Command Injection) 공격에 취약하다 안전한 코딩기법 입력값 내에 시스템 명령어를 포함하는 경우 |, ;, &, :, >,

  • format_list_bulleted Secure Coding/시큐어코딩 가이드
  • · 2023. 11. 3.
  • textsms
[시큐어코딩 가이드] 2-1-4. 크로스사이트 스크립트(XSS)

[시큐어코딩 가이드] 2-1-4. 크로스사이트 스크립트(XSS)

크로스사이트 스크립트(XSS) 정의 웹사이트에 악성 코드를 삽입하는 공격 방법 일반적으로 애플리케이션 호스트 자체보다 사용자를 목표로 삼는다. 공격자가 웹 응용프로그램을 속여 브라우저에서 실행될 수 있는 형식의 데이터(코드)를 다른 사용자에게 전달할 때 발생한다. 공격자가 임의로 구성한 기본 웹 코드 외에도 악성코드 다운로드, 플러그인 또는 미디어 콘텐츠를 이용할 수도 있다. XSS 공격 유형 [Reflexctive XSS] 1. 공격자가 스크립트 주입이 가능한 취약점이 존재하는 웹사이트를 탐색 2. 방문자의 세션 쿠키를 탈취하는 악성 스크립트를 웹사이트에 주입 3. 사용자가 웹사이트 방문시 악성 스크립트가 실행됨 4. 웹사이트 방문객의 세션쿠기가 공격자에게 전달 ex) 공개 게시판, 피싱 이메일, 단축..

  • format_list_bulleted Secure Coding/시큐어코딩 가이드
  • · 2023. 11. 3.
  • textsms
[시큐어코딩 가이드] 2-1-3. 경로 조작 및 자원 삽입

[시큐어코딩 가이드] 2-1-3. 경로 조작 및 자원 삽입

경로 조작 및 자원삽입 정의 검증되지 않은 외부 입력값을 통해 파일 및 서버 등 시스템 자원(파일, 소켓의 포트 등)에 대한 접근 혹은 식별을 허용할 경우, 입력값 조작으로 시스템이 보호하는 자원에 임의로 접근할 수 있는 보안약점을 의미한다. subprocess.popen()과 같이 프로세스를 여는 함수, os.pipe()처럼 파이프를 여는 함수, socket 연결 등에서 외부 입력값을 검증 없이 사용할 경우 취약점이 발생할 수 있다. 안전한 코딩기법 입력값을 자원(파일, 소켓의 포트 등)의 식별자로 사용하는 경우 적절한 검증을 거치도록 하거나, 사전에 정의된 리스트에 포함된 식별자만 사용하도록 해야한다. 특히 입력값이 파일명인 경우 필터를 적용해 공격의 위험이 있는 문자(/, \, .. 등)을 제거해야..

  • format_list_bulleted Secure Coding/시큐어코딩 가이드
  • · 2023. 11. 2.
  • textsms
[시큐어코딩 가이드] 2-1-2. 코드 삽입

[시큐어코딩 가이드] 2-1-2. 코드 삽입

코드삽입 정의 공격자가 소프트웨어의 의도된 동작을 변경하도록 임의 코드를 삽입해 소프트웨어가 비정상적으로 동작하도록 하는 보안약점을 의미한다. 프로그래밍 언어 자체의 기능에 한해 이루어진다는 점에서 운영체제 명령어 삽입과 다르다. 사용자 입력값에 코드가 포함되는 것을 허용할 경우, 공격자는 코드를 실행해 권한 탈취, 인증우호, 시스템 명령어 실행 등을 할 수 있다. 안전한 코딩기법 동적코드를 실행할 수 있는 함수를 사용하지 않는다. 필요시, 동적코드를 입력값으로 받지 않도록 화이트리스트 기반 검증을 해야한다. 또는 유효한 문자만 포함하도록 입력값을 필터링해야한다. 코드예제 eval() 안전하지 않은 코드예제입니다. 입력받은 값을 검증없이 eval() 함수의 인자로 사용하고 있습니다. 입력값을 검증없이 사..

  • format_list_bulleted Secure Coding/시큐어코딩 가이드
  • · 2023. 11. 2.
  • textsms
[시큐어코딩 가이드] 2-1-1. SQL 삽입

[시큐어코딩 가이드] 2-1-1. SQL 삽입

입력데이터 검증 및 표현 프로그램 입력값에 대한 검증 누락 또는 부적절한 검증, 데이터의 잘못된 형식지정, 일관되지 않은 언어셋 사용 등으로 인해 발생되는 보안 약점으로 SQL 삽입, 크로스사이트 스크립트(XSS) 등의 공격을 유발할 수 있다. SQL 삽입 정의 DB와 연동된 웹 응용프로그램에서 입력된 데이터 대한 유효성 검증을 하지 않을 경우, 공격자가 입력폼 및 URL 입력란에 SQL 문을 삽입하여 DB로부터 정보를 열람하거나 조작할 수 있는 보안약점을 의미한다. 안전한 코딩기법 DB API 사용시 인자화된 쿼리를 통해 외부 입력값을 바인딩해서 사용하면 SQL 삽입 공격으로부터 한전하게 보호할 수 있다. ORM 프레임워크(Django의 querySets, SQLAlchemy, Storm)을 사용한다...

  • format_list_bulleted Secure Coding/시큐어코딩 가이드
  • · 2023. 11. 2.
  • textsms
1. Secure Coding(시큐어 코딩)이란?

1. Secure Coding(시큐어 코딩)이란?

Secure Coding(시큐어 코딩)이란? 'Secure Coding(시큐어 코딩)' 또는 '소프트웨어 개발보안'은 소프트웨어 개발과정에서 개발자의 실수, 논리적 오류 등으로 인한 보안취약점 및 약점들을 최소화해 사이버 보안 위협으로 부터 안전한 소프트웨어를 개발하기 위한 일련의 보안활동을 의미합니다. Secure Coding의 필요성 개인정보보호 : 소프트웨어는 사용자의 개인정보를 다루는 경우가 많다. 보안 결함이나 취약점이 존재하면 해커가 개인정보를 탈취하거나 유출할 수 있으므로, 개인정보보호를 위한 보안이 필요하다. 기업데이터보호 : 기업은 고객정보, 경영데이터, 기밀정보 등 많은 중요한 데이터를 소프트웨어를 통해 다룬다. 이러한 데이터를 보호하지 않으면 기업은 큰 손실을 입을 수 있다. 서비스 ..

  • format_list_bulleted Secure Coding/시큐어코딩 가이드
  • · 2023. 11. 2.
  • textsms
  • navigate_before
  • 1
  • ···
  • 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)
최근 글
인기 글
태그
  • #sql injection
  • #burp suite
  • #입력데이터 검증 및 표현
  • #XSS
  • #openeg
  • #보안기능
  • #WebGoat
  • #파이썬
  • #취약점진단
  • #Port Swigger
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바