SW개발보안과정

Overloper·2020년 11월 10일
1

SW_개발보안과정

목록 보기
3/7

3차시 : 보안사고사례와 시큐어코딩

시큐어코딩이 적용되지 않은 스마트 컨트랙트

오버플로우란?
오버플로우란 숫자가 최대치 이상으로 증가하는 것
솔리디티는 최대 256bit의 숫자의 (0 ~ 2의 255승 - 1)까지 처리할 수 있으며, 처리 가능한 최대값에 1을 더하면 0이 됨.

-- 웹 애플리케이션 취약점을 이용한 개인정보 유출 --

웹사이트의 'SQL인젝션' 취약점을 이용하여 99만명 340만 건의 고객 개인 정보가 탈취됨.
SQL인젝션 공격으로 DB에 저장된 관리자 세션값(ID)를 탈취하여, 외부에 노출된 서비스 관리 웹페이지를 관리자 권한으로 우회 접속(세션변조공격)해 예약 정보, 제휴점 정보 및 회원정보가 유출

[주의]
애플리케이션에서 외부에서 입력된 값을 검증하지도 않고 DB 쿼리에 삽입하여 사용함으로써 공격자가 의도하는 쿼리 문이 실행됨.

-- URL 파라미터 조작 개인정보 노출 --

로그인하지 않은 사용자가 URL 파라미터를 조작하여 다른 사용자의 주문정보를 확인

  • 주문자의 이름, 주소, 전화번호 등의 개인정보 노출

[주의]
체크박스, 셀렉트박스, 링크URL에 포함된 입력값에 대한 변조의 위협을 고려하지 않은 경우가 많음.
하지만 이러한 값들이 충분히 변조되어서 서버로 전달될 수 있다는 것을 고려해서 입력값에 대한 검증 작업을 충분히 수행해야 함.

-- 무작위 대입공격 기프트카드 정보 유출 --

임의의 숫자를 무한 반복적으로 대입해 정확한 값을 추출하는 빈어택(BinAttack) 방식의 가장 단순하고 원초적인 공격기법에 당해, 수백 장의 50만원권 기프트카드 정보가 유출됨.

[주의]
보안번호 입력 횟수를 제한하지 않아 무작위 대입으로 보안번호를 유추할 수 있어 발생된 사고.
보안과 고객의 편의성을 충분히 고려하여 시스템이 설계되고 구현되어야 함.

-- SQL인젝션 취약점으로 개인정보 유출 사고 --

접근제어기능이 취약한 애플리케이션을 대상으로 공격자는 서버로 전달되는 파라미터를 자동화된 툴을 이용하여 조작해 다른 사용자의 정보를 유출.

[주의]
서버가 클라이언트로 전송했다가 다시 서버로 전달받는 입력된 값에 대한 유효성을 검사를 수행하지 않음.
조회 횟루를 제한하거나 초과된 요청에 대한 보안조치 부재

내용 정리

1. 안전한 연상을 위해 제공되는 함수들을 사용하지 않고 프로그램을 작성하는 경우 침해사고의 원이 될 수 있다.
2. 외부입력값을 검증하지 않고 SQL 쿼리에 삽입하여 사용하므로써 개인정보가 유출되는 사고를 발생 시킬 수 있다.
3. 외부입력값은 기복적으로 신뢰할 수 없는 값으로 서버에서는 반드시 검증해서 사용해야 한다.

profile
세계최초 샤머니즘형 프로그래머🛐

0개의 댓글