전체 글193 [ 웹해킹 ] 인증 결함 Broken Authentication 인증 결함 - 인증에 필요한 사용자의 계쩡 정보를 노출하는 취약점 - HTML코드, GET요청 URL에 변수 노출 - 취약한 암호 설정 - 취약한 인증 과정 인증 과정 중 결함 발생 또는 세션 관리 소홀로 인해 세션 아이디 노출 - 인증 과정의 결함과 세션 관리의 취약점으로 정상 인증 과정 없이 사용자 권한 획득, [실습] 난이도 하에서 insecure---- 빈칸위에 드래그하면 하얀 글씨로 적어놓은 아이디와 비밀번호가 있음 옛날에는 개발자들이 잊어먹을까봐 표시해놓고 배포하기전 잊어먹고 지우지 않을때가 있었음. 난이도 중 unlock_secret() 에 적혀있는 암호문을 위에 있는 문자로 해독하여 비밀번호를 알아낼 수 있다. 암호문이 해독할 수 있는 것과 함께 코드에 적혀있어서 일어나는 참사. 난이도 상.. 2021. 10. 31. [C++] c++ 이 뭔가요? c++ C언어는 강력한 언어로 오랜시간동안 많은 시스템 소프트웨어, 모바일, 게임, 그래픽, 임베디드 프로그램의 개발에 사용되어 왔다. 하지만 컴퓨터의 속도가 빨라지면서 소프트웨어의 크기도 커지게 되었고, C언어로는 큰 소프트웨어를 개발시에 코드관리에 어려움이 있어 이를 개선하기 위해 C언어에 객체 지향 특성 밑 기능을 추가한 새로운 언어를 개발한다. >> C++ # 객체 지향 프로그래밍 : 클래스와 상속을 이용하여 소프트웨어의 재사용성을 높이고 소프트웨어의 개발과 관리를 쉽게 함. C++ 언어의 목표 1. C언어로 작성된 프로그램과의 호환성(compatability)을 유지한다. 2. 소프트웨어의 재사용을 통해 소프트웨어의 생산성을 높이고, 복잡하고 큰 규모의 소프트웨어 작성, 관리, 유지 보수를 쉽게.. 2021. 10. 20. 42 서울 라피신 과정 (4기 1차) - WEEK 3. 뭘까 서식이 맘처럼 예쁘게 정리가 안된다. 암튼! 이제 피신의 마지막 주에 대해 이야기 해보자. 0. 마지막 주의 분위기 ( 본 후기는 4기 1차만을 경험한 사람의 후기입니다. ) 난 모든 러쉬의 팀장님이 1그룹이었던 관계로 주말에는 항상 토요일에 갔는데 주말에는 러쉬를 신청하지않고 개인과제를 하러온 사람도 있기때문에 1그룹 사람들을 많이 볼 수 있었다. 내가 2그룹에서 못느낀 것 일수도 있지만 뭔가 1그룹에는 진짜 최강 인싸들만 모인 것 같았다. 러쉬 02때 1그룹 출석일에 갔을 때는 마치 중고등학교때 방학식날의 모습을 보는 것 같았달까 진짜 다들 친해보였다. 그래서 우와.... 진쨔...다들 친해보여......라고 신기해했던 기억이 난다. 마지막 주, 특히 마지막 출석일에는 모두가 여유가 없고 바쁘다.. 2021. 10. 15. [캡슐화] Private 배열에 Public 데이터 할당 (5등급) 0. 개요 public으로 선언된 메소드의 인자가 private 선언된 배열에 저장되면, private배열을 외부에서 접근하여 배열수정과 객체 속성변경이 가능해진다. 1. 보안 대책 - public으로 선언된 메서드의 인자를 private 선언된 배열로 저장되지 않도록 한다. : 인자로 들어온 배열의 복사본을 생성하고 clone() 메소드를 통해 복사된 원소를 저장하도록 하여 private변수에 할당하여 private선언된 배열과 객체속성에 대한 의도하지 않게 수정되는 것을 방지한다. - 배열 객체의 원소가 String 타입 등과 같이 변경이 되지 않는 경우에는 인자로 들어온 배열의 복사본을 생성하여 할당한다. - 전달받은 public 배열의 레퍼런스 대신 값을 private 배열에 할당한다. 2. 진단.. 2021. 8. 10. [캡슐화] Public 메소드부터 반환된 Private 배열 (5등급) 0. 개요 private로 선언된 배열을 public으로 선언된 메소드를 통해 반환(return)하면, 그 배열의 레퍼런스가 외부에 공개되어 외부에서 배열수정과 객체 속성변경이 가능해진다. 1. 보안 대책 - private로 선언된 배열을 public으로 선언된 메소드를 통해 반환하지 않도록 한다. : private 배열에 대한 복사본을 반환하도록 하고 배열의 원소에 대해서는 clone() 메소드를 통해 복사된 원소를 저장하도록 하여 private 선언된 배열과 객체속성에 대한 의도하지 않게 수정되는 것을 방지 한다. - 배열의 원소가 String 타입 등과 같이 변경이 되지 않는 경우에는 Private 배열의 복사본 을 만들고 이를 반환하도록 작성한다. - private 배열을 수정해야 할 경우 별도의.. 2021. 8. 10. [캡슐화] 시스템데이터 정보 노출 (5등급) 0. 개요 시스템, 관리자, DB정보 등 시스템의 내부 데이터가 공개되면, 공격자에게 또 다른 공격의 빌미를 제공하게 된다. 1. 보안 대책 - 예외 상황이 발생할 때 시스템의 내부 정보가 화면에 출력되지 않도록 개발한다. - getMessage() 메서드의 사용을 제한한다. : Exception 발생 시 오류와 관련된 정보가 노출될 수 있기 때문. 2. 진단 방법 - 시스템 정보 출력 코드가 존재하는지 확인한다. 3. 코드 예시 # 1 - 제거되지 않고 남은 디버그 코드 - 안전하지 않은 코드 예시(JAVA) 예외 발생 시 getMessage()를 이용한 오류메시지를 통해 오류와 관련된 시스템 정보 등 민감한 정보가 유출될 수 있다. * e.getMessage() : 자바에서 전달한 인스턴스의 메소드 .. 2021. 8. 10. [보안기능] 사용자 하드디스크에 저장되는 쿠키를 통한 정보 노출 (5등급) 0. 개요 대부분의 웹 응용프로그램에서 쿠키는 메모리에 상주하며, 브라우저의 실행이 종료되면 사라진다. 프로그래머가 원하는 경우, 브라우저 세션에 관계없이 지속적으로 저장되도록 설정할 수 있으며, 이것은 디스크에 기록되고, 다음 브라우저 세션이 시작되었을 때 메모리에 로드된다. 개인정보, 인증 정보 등이 이와 같은 영속적인 쿠키(Persistent Cookie)에 저장된다면, 공격자는 쿠키에 접근할 수 있는 보다 많은 기회를 가지게 되며, 이는 시스템을 취약하게 만든다. 1. 보안 대책 - 쿠키의 만료시간은 세션이 지속되는 시간을 고려하여 최소한으로 설정한다. - 영속적인 쿠키에는 사용자 권한 등급, 세션 ID 등 중요 정보가 포함되지 않도록 한다. 2. 진단 방법 - 쿠키를 사용하는지 확인한다. - 쿠.. 2021. 8. 10. [에러처리] 부적절한 예외 처리 (5등급) 0. 개요 프로그램 수행 중에 함수의 결과값에 대한 적절한 처리 또는 예외 상황에 대한 조건을 적절하게 검사하지 않을 경우, 예기치 않은 문제를 야기할 수 있다. 1. 보안 대책 - 값을 반환하는 모든 함수의 결과값을 검사하여, 의도한 값을 반환하는지 확인한다. - 예외처리를 사용하는 경우 광범위한 예외 처리 대신 구체적인 예외처리를 수행한다. 2. 진단 방법 - 예외처리 로직을 확인한다. - 예외처리를 구체적으로 나누어 처리하는지 확인한다. 3. 코드 예시 소프트웨어 개발보안 가이드 (2019.11) / 행정안전부 & 한국인터넷진흥원 # 1 - 제거되지 않고 남은 디버그 코드 - 안전하지 않은 코드 예시(JAVA) # 1 + 제거되지 않고 남은 디버그 코드 - 안전한 코드 예시(JAVA) # 2 - 제.. 2021. 8. 10. [보안기능] 주석문 안에 포함된 시스템 주요 정보 (5등급) 0. 개요 패스워드와 같은 시스템의 중요한 정보를 주석문 안에 (개발자의 편의를 위해서)적어두는 경우, 소프트웨어가 완성된 경우에는 이것을 제거하는 것이 매우 어려워지며 공격자가 소스코드에 접근할 수 있다면, 아주 쉽게 시스템에 침입할 수 있다. 1. 보안 대책 - 주석에는 ID, 패스워드 등 보안과 관련된 내용을 기입하지 않는다. 2. 진단 방법 - DB접속, 관리자 로그인 등이 구현된 코드 확인 - 주석에 중요 정보가 포함되어 있는지 확인 3. 코드 예시 소프트웨어 개발보안 가이드 (2019.11) / 행정안전부 & 한국인터넷진흥원 # 1 - 제거되지 않고 남은 디버그 코드 - 안전하지 않은 코드 예시(JAVA) # 1 + 제거되지 않고 남은 디버그 코드 - 안전한 코드 예시(JAVA) # 2 - 제.. 2021. 8. 10. 이전 1 ··· 9 10 11 12 13 14 15 ··· 22 다음