반응형

정보 6

파이썬, 개발) 하드코딩 된 정보 안전하게 변환하기

하드코딩을 하는 이유 가끔씩 개발 테스트할 때 시스템이 연동되고 있는지 확인하거나 연동 후 결괏값이 잘 반영되었는지 확인하기 위해 하드코딩을 하는 경우가 있다. 또는 내부 시스템이 고정 코드값을 갖고 있어야 연결되는 경우 하드코딩을 하는 경우가 있다. 이런 이유로 하드코딩을 하고 있지만 노출될 때 피해는 무척 크다. 하드코딩 적용했을 때 보안 방안 DB서버 연동을 하기 위해서 어쩔 수 없이 IP와 같은 정보를 입력하는 경우에 대한 보안조치가 있다. 안전한 암호화 방식으로 변환 후 별도 분리 공간(파일)에 저장하고 복호화하는 방법이다. 파이썬 코딩 예시 import pymysql import json def query_execute(query, config_path): with open(config_pat..

IT/앱사용방법 2022.09.09

시큐어코딩) 파이썬 서버 중요자원 권한 설정공격 예방 방법

중요 자원에 대한 잘못된 권한 설정 공격 설명 응용프로그램이 중요한 보안 관련 자원에 대하여 읽기 또는 수정하기 권한을 허가할 경우, 권한을 갖지 않은 사용자가 해당 자원을 사용하게 된다. 여기서 권한이 있을 경우 Python의 os.fchmod, os.chmod 등의 함수를 사용하여 파일 생성 및 읽기 모드에서 권한을 설정할 수 있다. 서버 중요 자원 권한 설정 공격 안전 코딩 예 설정 파일, 실행파일, 라이브러리 등은 SW 관리자에 의해서만 읽고 쓰기가 가능하도록 설정하고, 설정 파일과 같이 중요한 자원을 사용하는 경우 허가받지 않은 사용자가 중요한 자원에 접근하지 못하게 검사한다. def write_file(): # 소유자 외에는 아무런 권한을 주지 않음 os.chmod('/root/system_c..

카테고리 없음 2022.09.04

파이썬 코딩 - 쿠키값 관리

쿠키값 관리가 중요한 이유 대부분의 쿠키는 PC 메모리에 상주하며, 브라우저 실행이 종료되면 사라진다. 그러나 세션에 관계없이 지속적으로 저장되도록 설정할 수 있으며, 보통 C드라이브에 저장되어 사용된다. 개인정보, 인증 등 쿠키값에 영구 저장된다면 공격자는 쉽게 정보탈취 기회를 갖게 된다. 그래서 쿠키값 세팅을 해주는 방법과 개인이 관리하는게 중요하다. 보통 웹 개발 코드 예시 쿠키의 만료시간을 기본값으로 설정한다. 신경쓰지 않거나 테스트를 위해 길게 설정하고 잊고 넘어가는 경우가 있는데 그대로 사용자 하드디스크에 여러가지 정보가 저장되어 있는 쿠키를 공격자가 쉽게 도용될 수 있게 된다. from django.http import HttpResponse def remind_user_state(reque..

IT/앱사용방법 2022.08.06

시큐어코딩) 파이썬 포맷 스트링 삽입 공격 예방(예시 코드 포함)

포맷 스트링 삽입 공격 설명 외부에서 입력한 값을 검증하지 않고, 입출력 함수의 포맷 문자열 그대로 사용하는 경우 발생. 파이썬에 있는 포맷 문자열 함수를 이용하여 취약 프로세스를 공격하여 권한 취득하여 임의로 코드를 실행하는 공격 기법 ​ 파이썬 포맷 스트링 삽입 공격 방식 {main.__init__.__globals__[AUTHENTICATE_KEY]} 와 같은 문자열을 입력하여 내부 정보를 유출 유도 공격 예방 코드 예 AUTHENTICATE_KEY = 'Passw0rd' def make_user_message(request): user_info = get_user_info(request.POST.get('user_id', '')) # 사용자가 입력한 문자열을 포맷 문자열로 사용하지 않아 안전함 m..

IT/앱사용방법 2022.06.17

한글 보안저장 문서 수정 못하게 하는 방법(pdf 저장 아님)

가끔씩 한글문서를 만들 때 보고서나 공문을 메일로 전달할 때 수정하지 못하게 만들어야 하는 경우가 있다. 보통은 pdf로 저장하는 방법을 사용하지만 한글 문서에서도 수정되지 않고, 출력 횟수도 제한해서 보안 기능을 높이는 방법이 있다. 이 방법은 주로 정부나 공공기관에서 발행하는 문서에서 적용되는 방법이다. 한글문서 수정 못하게 하는 방법은 정말 간단하다. 1. 보안 탭 클릭 2. 배포용 문서로 저장 클릭 3. 암호 입력(5자리 이상) 4. 저장할 제목과 위치 선택 5. 저장 위 방법은 neo버전 이상일 때 적용방법이다.​ 2002 버전 이상부터 보안문서를 불러올 수 있으니 업무 할 때 참고하면 좋겠다. 순서대로 따라 하기 어렵다면 아래 이미지 순으로 따라 해 보길 바란다. ​이렇게 하면 배포용 문서로 ..

IT/앱사용방법 2022.06.13

시큐어코딩) 파이썬 경로조작, 자원삽입 공격 예방하는 방법(기초 예시)

경로조작 및 자원삽입 공격 설명 외부 입력값을 통해 파일 및 서버 등 시스템 자원에 대한 접근 또는 식별을 허용할 경우, 입력 값 조작을 통해 시스템이 보호하는 자원에 임의로 접근할 수 있는 보안취약점. 공격자는 게시글 혹은 데이터의 수정, 삭제, 정보노출, 시스템 장애 등을 유발 할 수 있음. 즉, 공격자가 허용되지 않은 권한을 취득하여 설정에 관계된 파일을 변경하거나 실행시킬 수 있는 공격 경로조작 시큐어코딩 예시 필터링 적용 예(Django프레임워크) def get_info(request): # 외부 입력 값으로 받은 파일 이름은 검증하여 사용한다 request_file = request.POST.get('request_file') filename, file_ext = os.path.splitext..

IT/앱사용방법 2022.06.01
반응형