반응형

보안 9

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

하드코딩을 하는 이유 가끔씩 개발 테스트할 때 시스템이 연동되고 있는지 확인하거나 연동 후 결괏값이 잘 반영되었는지 확인하기 위해 하드코딩을 하는 경우가 있다. 또는 내부 시스템이 고정 코드값을 갖고 있어야 연결되는 경우 하드코딩을 하는 경우가 있다. 이런 이유로 하드코딩을 하고 있지만 노출될 때 피해는 무척 크다. 하드코딩 적용했을 때 보안 방안 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

시큐어코딩) 파이썬 피싱공격 예방(기초 코드 예시포함)

피싱 공격이란? 일반적으로 사용자에서 전달한 URL 주소로 연결하기 때문에 안전하다 생각할 수 있지만 해당 폼의 요청을 변조하여 피싱사이트로 접속하게 만든다. 피싱공격 방법 1. 공격자가 웹서버에 URL 주소 변조 값을 전달한다. 2. 변조된 URL 반환 값(피싱사이트)로 연결된다. 3. 일반 사용자가 웹서버에 올라간 URL을 클릭할 때 피싱사이트로 연결된다. 피싱 공격 시큐어 코딩 예시 : 화이트리스트 만들어 관리 ALLOW_URL_LIST = [ '127.0.0.1', '192.168.0.1', 'https://login.service.com', ...... '/notice' ] def redirect_url(request): url_string = request.POST.get('url', '') ..

IT/앱사용방법 2022.06.14

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

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

IT/앱사용방법 2022.06.13

시큐어코딩) 파이썬 파일 업로드 공격 예방 하는 방법(기초)

파일 업로드 공격이란? 서버 측에서 실행될 수 있는 스크립트(asp, jsp, php, sh 등)파일 등 이 업로드 가능하면, 이 파일을 통해 공격자가 웹서버에서 직접 접근 기반을 마련하는 공격 기법이다. 파일 업로드 공격 방법 1. 공격자가 실행 가능한 파일을 서버에 업로드한다. 2. 파이썬에서 문자열 형식으로 표현된 형식을 인수로 받는다. 3. 인수를 반환하는 eval이나 인수로 받은 문자열을 실행하는 exec 함수를 같이 사용해 여러 변수들을 실행시킨다. 이는 웹 쉘 공격에 취약하게 만드는 방법이다. 파일 업로드 시큐어 코딩 예시 ​ # 업로드 하는 파일에 대한 개수, 크기, 확장자 제한하는 설정 FILE_COUNT_LIMIT = 5 # 업로드 하는 파일의 최대 사이즈 제한 (5MB - 5*1024..

IT/앱사용방법 2022.06.02

시큐어코딩) 파이썬 SQL 인젝션 공격 예방코드 기초

SQL 인젝션 알고 가기 공격자가 글 쓰는 폼이나 URL에서 입력에 SQL문을 삽입해 DB에 직접 정보를 열람하거나 데이터를 조작하는 공격 SQL 인젝션 공격 원리 웹과 DB가 서로 통신하는 부분에 공격자가 임의의 SQL문을 삽입함 예) 로그인할 때 파라미터 값을 where = '1' or '1'과 같은 모든 값이 참으로 바뀌게 하여 로그인 우회 파이썬에서 SQL 인젝션 예방 외부에서 들어오는 입력 값을 매개변수로 받아 저장하고 매개변수 값을 실행 함수에서 바인딩하여 변수로 호출함. 시큐어 코딩이 적용되지 않은 소스 with dbconn.cursor() as curs: # name, id값을 입력받음 name = request.POST.get('name', '') id = request.POST.get(..

IT/앱사용방법 2022.05.19

보안 패치 끝난 윈도우7을 사용할 때 보안성 확보하는 방법

마이크로소프트는 2020년 1월 14일부로 윈도우 7에 대한 마지막 업데이트 배포 후 모든 기술 지원과 소프트웨어 업데이트가 중단되었다. 하지만 기존 OS를 사용해야 하는 문제점이 있는 경우가 있다. 국가 및 공공기관, 의료기관 등 시스템을 쉽게 바꾸기 어려운 기업이 그 대상이다. 해당 OS에 맞춰 개발하고 어찌어찌 버그 수정하면서 시스템을 사용했는데 이제 보안패치가 되지 않아 사용 지양을 권고받은 상태인 국가 및 공공기관, 의료 등 다양한 기업에서 최대한 운영할 수 있는 방법을 소개하려고 한다. 방법은 매우 간단하다. 인터넷 선을 뽑아서 통신이 되지 않도록 막는 것이다.(행안부 권고사항 임) 설마 해서 KISA에 문의해본 결과 인터넷을 사용하지 않아도 문제없는 시스템일 경우 랜카드를 뽑아서 인터넷 접속..

IT 2022.05.13
반응형