■ 캡슐화 중요한 데이터 또는 기능성을 불충분하게 캡슐화하거나 잘못 사용함으로써 발생하는 보안약점으로 정보노출, 권한 문제 등이 발생할 수 있다. Public 메소드로부터 반환된 Private 배열 ■ 개요 Python은 명시적인 private 선언이 없다. 하지만 대부분의 Python 코드가 따르는 규칙으로 이름 앞에 밑줄(예:__spam)로 시작하면 Private으로 처리된다. 배열을 public으로 선언된 메소드를 통해 반환(return)하면, 그 배열의 레퍼런스가 외부에 공개되어 외부에서 배열 수정과 객체 속성변경이 가능해진다. 배열 뿐 아니라 변경 가능한(mutable) 객체에 대해 모두 발생한다. public - attribute, method는 기본적으로 public protect - att..
■ 입력데이터 검증 및 표현 프로그램 입력 값에 대한 검증 누락 또는 부적절한 검증, 데이터의 잘못된 형식지정, 일관되지 않은 언어셋 사용 등으로 인해 발생되는 보안약점으로 SQL 삽입, 크로스사이트 스크립트(XSS) 등의 공격을 유발할 수 있다. 코드 삽입 ■ 개요 공격자가 소프트웨어의 의도된 동작을 변경하도록 임의 코드를 삽입하여 소프트웨어가 비정상적으로 동작하도록 하는 보안 약점을 말한다. 코드 삽입은 프로그래밍 언어 자체의 기능에 한해 이뤄진다는 점에서 운영체제 명령어 삽입과 다르다. 취약한 프로그램에서 사용자의 입력 값에 코드가 포함되는 것을 허용할 경우, 공격자는 개발자가 의도하지 않은 코드를 실행하여 권한을 탈취하거나 인증 우회, 시스템 명령어 실행 등을 할 수 있다. Python에서 코드 ..
■ 입력데이터 검증 및 표현 프로그램 입력 값에 대한 검증 누락 또는 부적절한 검증, 데이터의 잘못된 형식지정, 일관되지 않은 언어셋 사용 등으로 인해 발생되는 보안약점으로 SQL 삽입, 크로스사이트 스크립트(XSS) 등의 공격을 유발할 수 있다. SQL 삽입 ■ 개요 데이터베이스(DB)와 연동된 웹 응용프로그램에서 입력된 데이터에 대한 유효성 검증을 하지 않을 경우, 공격자가 입력 폼 및 URL 입력란에 SQL 문을 삽입하여 DB로부터 정보를 열람하거나 조작할 수 있는 보안취약점을 말한다. 취약한 웹 응용프로그램에서는 사용자로부터 입력된 값을 검증 없이 넘겨받아 동적쿼리(Dynamic Query)를 생성하기 때문에 개발자가 의도하지 않은 쿼리가 실행되어 정보유출에 악용될 수 있다. Python에서는 데..
공격자의 초점이 지속적으로 애플리케이션 계층을 향해 이동함에 따라 소프트웨어 자원보호가 중요해졌다. 최근 발생되는 인터넷상 공격시도의 약 75%는 소프트웨어보안취약점을 악용하는 것으로, 특히 외부에 공개되어 불특정다수를 대상으로 사용자 정보를 처리하는 웹 애플리케이션의 취약점으로 인해 중요정보가 유출되는 침해사고가 빈번하게 발생되고 있다. 보안강화를 위해 구축해놓은 침입차단시스템과 같은 보안장비로 응용프로그램 취약점에 대한 공격을 완벽히 방어하는 것은 불가능하다. 소프트웨어의 개발보안 미적용으로 제품 출시 때 수정 시 설계 단계보다 30배, 구현 단계 보다 20배가 넘는 수정비용이 필요 한 걸로 조사되었다. 국내의 경우, 2009년부터 전자정부서비스 개발단계에서 소프트웨어 보안약점을 진단하여 제거하는 소..
블록체인 관련 용어 ■ 자기 주권 신원 self-sovereign identity 기존 신원 확인 방식과 달리 분산 네트워크 기술을 활용하여 중앙 시스템에 의해 통제되지 않으며 개개인이 자신의 정보에 완전한 통제권을 갖도록 하는 기술 ■ 재전송 공격 replay attack 이전에 전송된 유효한 메시지를 다시 사용하는 공격 ■ 전자 서명 digital signature 서명자를 확인하고 서명자가 해당 전자 문서1)에 서명을 하였음을 나타내는데 이용하기 위하여 해당 전자 문서에 첨부되거나 논리적으로 결합된 전자적 형태의 정보. 전자 서명의 생성과 검증을 위해 각각 서명자가 가진 개인키와 해당 개인키에 대응하는 공개키를 사용함으로써, 서명자의 확인과 부인 방지가 가능하다. ■ 중간자 공격 man-in-the..
블록체인 관련 용어 ■ 블록체인 오라클 blockchain oracle 블록체인 시스템 외부에서 생성된 데이터를 이용하여 블록체인에 정보를 제공하는 서비스 ■ 블록체인 SW 플랫폼 blockchain software platform 블록체인 노드가 블록체인 시스템에 참여할 수 있도록 제공되는 프로세스, 저장소, 통신 기능의 집합 ■ 비잔틴 장애 허용 BFT, Byzantine Fault Tolerance 분산 환경에서 비잔틴 장애(단순 장애뿐만 아니라 담합, 거짓 응답 등 프로토콜의 규칙을 의도적으로 위반하는 행위)가 발생해도 정상적으로 합의를 도출할 수 있는 성질. 단, 전체 분산 개체 중 1/3 이상의 비잔틴 장애를 허용하는 프로토콜은 존재할 수 없다는 것이 증명되었다. ■ 비허가형 블록체인 perm..