2016년 3월 30일 수요일

Cisco 2016 연례 보안 보고서


카페 > 뉴딜코리아 홈페이지 | 뉴딜코리아
http://cafe.naver.com/rapid7/2313

Cisco 2016 연례 보안 보고서


Executive Summary
보안 전문가들은 방어 전략을 재고해야 할 것입니다


공격자와 방어자 모두가 기술과 전술을 개발하고 있고 이는 더욱 정교하게 발전하고 있습니다. 공격자들은 자신들의 캠페인을 실행하고 지원해 줄 수 있는 강력한 백엔드 인프라를 구축하고 있습니다. 온라인 범죄자들은 데이터와 지적 재산을 계속해서 훔치고 있으며, 탐지를 우회하기 위한 수단을 지속적으로 개발하고 있습니다.

Cisco 2016 연례 보안 보고서에서는 Cisco Security Research 그룹의 최신 조사 결과, 동향(insight), 전망 등이 포함되어 있습니다. 연구 팀에서는 계속해서 변화하는 다양한 공격 툴을 사용하는 공격자들을 탐지하고 차단하는 데 있어 방어자들이 직면하게 되는 문제를 중점적으로 살펴보았습니다. 이 보고서에는 현재의 위협 트렌드를 알아보는 데 도움이 되는 Level 3 Threat Research Labs 같은 외부 전문가들의 연구도 포함되어 있습니다.

Cisco에서는 시간의 경과에 따른 변화를 보여줄 수 있도록 Cisco의 연구진이 편집한 데이터를 면밀히 살피고 있으며, 그 데이터가 의미하는 바에 대한 직관력을 제공하고, 보안 전문가들이 위협에 어떻게 대응하여야 하는지를 설명합니다

위협 정보(THREAT INTELLIGENCE)
이 섹션에서는 웹 공격 벡터, 웹 공격 방법, 취약점 등 Cisco 연구진이 파악한 가장 중요한 사이버 보안 트렌드에 대한 최신 보고서를 제공합니다. 랜섬웨어와 같은 증가 추세에 있는 위협에 대한 자세한 조사도 포함되어 있습니다. 2015년에 관찰된 트렌드를 분석하기 위해 Cisco Security Research에서는 포괄적인 텔레메트리 데이터를 활용하여 분석을 진행했습니다.

업계 동향(INDUSTRY INSIGHTS)
이 섹션에서는 암호화 사용의 증가 및 이로 인해 발생하는 잠재적 보안 리스크와 같은 기업에 영향을 미치는 보안 트렌드를 진단하고 있습니다. 또한 중소기업(SMB)들이 네트워크를 보호하는 방법에 대한 취약점을 살펴보고, IT 인프라 지원에 있어서 오래되었거나 지원이 되지 않고 단종된 소프트웨어에 의존하고 있는 기업들에 관한 연구도 제공합니다.

보안 기능 벤치마크 조사(SECURITY CAPABILITIES BENCHMARK STUDY)
이 섹션에서는 Cisco의 두 번째 보안 기능 벤치마크 조사의 결과를 다룹니다. 이 조사는 자신이 속한 조직의 보안 상태에 대한 보안 전문가들의 인식에 초점을 맞춘 것입니다. 2015년 조사 결과와 2014년 결과를 비교해 보면 CSO(Chief Security Officer, 최고보안책임자)와 SecOps(Security Operations, 보안 팀) 중역들은 자신들의 보안 인프라가 최신 상태인지, 또는 공격을 막아낼 능력을 갖추었는지에 대한 확신이 부족한 것으로 나타났습니다. 또한 기업들이 자신들의 네트워크 보안을 강화하기 위해 교육 및 기타 보안 프로세스를 늘리고 있다는 점도 나타났습니다. 이 연구 결과는 Cisco 2016 연례 보안 보고서에서만 볼 수 있습니다.

전망 이 섹션에서는 보안에 영향을 미치는 두 그룹에 대한 분석 내용을 다루고 있습니다. 첫째는 사이버 보안에 대해 경영진이 갖는 우려 사항에 대한 연구이고 둘째는 보안 리스크와 신뢰성에 대한 IT 의사결정권자들의 인식에 관한 연구입니다. 또한 탐지 소요 시간(TTD, Time To Detection) 단축 부분에 대한 Cisco의 업데이트와 통합형 위협방어 아키텍처로 이동하는 것이 위협 차단을 위해 얼마나 가치 있는 것인지에 대한 내용도 포함되어 있습니다.

- 첨부 파일 참고 -

모바일 앱 개발의 보안강화를 위한 스프링 시큐리티 프레임워크

카페 > 뉴딜코리아 홈페이지 | 뉴딜코리아
http://cafe.naver.com/rapid7/2311


모바일 앱 개발의 보안강화를 위한 스프링 시큐리티 프레임워크
스프링 프레임워크 (Spring Framework)’ 자바 플랫폼 위한 오픈소스 애플리케이션 프레임워크 로서 간단히 스프링 (Spring) 이라고도 불린다

. 아키텍처의 중요성이 강조되면서 조명받기 시작하여 엔터프라이즈 어플리케이션 개발의 복잡성을 줄여주고 , 모든 기능을 종합적으로 제공하는 경량화된 솔루션이다 .
우리나라 전자정부의 서비스 개발 , 사용을 권장하고 있는 전자정부 표준프레임워크 기반 기술로도 쓰이고 있다.

중에서도 스프링 시큐리티 스프링 프레임워크의 하위 개념으로 , ‘ 보안 관련된 프레임워크이다 .
 스프링 시큐리티는 강력하면서도 사용하기가 쉽고, 게다가 십줄의 코드만으로도 대형 서비스사와 비슷한 수준의 보안을 유지할 있다는 장점이 있다 .
 물론 기업에서 필요한 시스템에 적합한 시스템을 만들기위해서는 적절한 튜닝이 필요하겠지만 그에 따른 스프링 시큐리티는 정말 최상 최상의 선택이 아닐 없다 .
스프링 시큐리티는 년간의 오픈소스 개발로 인하여 많은 노하우가 녹아있지만 , 국내에서는 상대적으로 유명하지 않고 소개되어 있는 곳도 많지 않은 편인 스프링 시큐리티 대해  KBS 기술본부 시스템운용부 강자원 기술사로부터 조언을 구할 있었다.


1. 스프링 시큐리티 프레임워크의 정의와 역할
2. 스프링 프레임워크의 핵심
3. 스프링 시큐리티 프레임워크 사용방법
4. 스프링 시큐리티 프레임워크 아키텍처
 

Q) 스프링 시큐리티 프레임워크를 한마디로 정의하자면 무엇인가요 ?

스프링 시큐리티 프레임워크는 필요한 인증 , 권한 보안관련 기능들을 손쉽게 사용할 있게 지원해주는 프레임워크입니다 . 구현은 servlet filter Spring AOP 기반이며 유연한 설계로 다양한 확장 커스터마이징이 가능합니다 . 또한 , 비즈니스 로직과 인증 , 권한 로직을 90% 이상 분리가 가능하며 구축된 프레임워크의 재활용과 기존 스프링 기반의 레거시 시스템에 적용할 매우 유용한 장점이 있습니다 .

Q) 스프링 시큐리티 프레임워크를 사용하는 건가요 ?  
     보안강화를 위해서 어떤 역할을 하는지 궁금합니다.

  기본 설정만으로도 일반적인 기업 인증 시스템과의 연동이 바로 가능하고 설정을 제외하고 아주 적은 노력만으로도 상황에 보안을 적용할 있습니다.
또한 , 스프링 시큐리티를 사용하면 다음과 같은 일들을 있습니다.
- 시스템 사용자를 개별 사용자를 세분화 한다.
- 사용자 역할에 따라 권한부여 레벨을 부여한다
- 사용자 군에 사용자 역할을 부여한다
- 애플리케이션 리소스에 대해 전역으로 인증규칙을 적용한다.
- 모든 애플리케이션 아키텍처 레벨에서 권한 부여 규칙을 적용한다.
- 사용자의 세션을 조작하거나 훔치려는 일반적인 공격을 차단한다.

Q) 스프링 시큐리티 프레임워크의 핵심은 무엇인가요?
 


스프링 시큐리티는 주체를 고유 식별하는데 사용되는 자바 표준 보안개념인 인증입니다.
Principal(java.security.Principal) 확장해 사용하고 , 전형적인 Principal 에서는 시스템 사용자에 대한 1:1 매핑을 사용하지만 이러한 Principal 시스템의 어떠한 클라이언트 , 이를 테면 서비스 클라이언트 , 자동배치피드 등에도 매핑할 있습니다.

스프링 시큐리티의 모듈 구성은 아래 그림과 같습니다. [ 그림 1 참조 ]
< 그림 1> Spring security Modules & sub-Modules   
 


스프링 시큐리티에서 주로 영향을 주는 방식은 일련의 ServletRequest 필터를 사용한 방식입니다. 필터들이 앱에 대한 모든 요청을 감싸서 처리하게 되는데 , 스프링 시큐리티에서 여러 개의 필터들은 체인 형태를 이루면서 동작을 합니다. 자동설정 옵션을 사용하면 10 개의 스프링 시큐리티 필터가 자동으로 설정되게 됩니다. [ 그림 2 참조 ]

< 그림 2> 스프링 시큐리티의 필터 체인 내의 동작과정


순서와 기능을 간단히 요약하면 다음과 같습니다.

< 1> 자동설정으로 구성되는 필터체인 내의 10 개의 필터


필터 체인의 제일 마지막에 위치한 ‘Filter Security Interceptor’ 앞에 지나온 모든 필터들의 정보를 토대로 최종 결정을 내리게 됩니다.
Spring Security 대략 25 개의 필터를 제공합니다. 이런 필터들은 모두 조건적으로 적용될 있습니다. 물론 javax.servlet.Filter 인터페이스를 직접 구현해서 추가할 수도 있고 위에 나열된 필터들을 명시적으로 포함시키거나 제외시킬 수도 있습니다.

Q) 스프링 시큐리티를 사용하면 기본 옵션에서 벗어난 요구사항들은 어떻게 충족시킬 있을까요?
스프링 시큐리티는 커스터마이징을 하거나 확장시킬 수가 있는데 , 이렇게 하려면 전체 스프링 시큐리티 필터 체인과 지원 인프라 스트럭처를 처음부터 하나씩 직접 설정해야 합니다 . 이렇게 하나씩 작성할 때에는 의존관계를 염두해서 설정해야 하는데요 . 스프링 시큐리티의 필터들은 순서가 존재하기 때문에 순서를 어길 경우에는 예상치 못한 결과가 나올 수도 있습니다 . 그러므로 특별한 경우가 아니라면 순서를 지켜주는 것이 좋습니다.

< 그림 3. 의존관계 구성도 >


Q) 스프링 시큐리티 프레임워크를 사용할 기본설정 커스터 마이징 방법 어떤 것을 사용하는 것이 좋을까요?

  너무나도 당연한 답이지만 선택은 사용자의 몫입니다 . 기본 설정으로 사용을 하는 것은 예상하지 못한 결과를 초래하지 않는 최선의 방법이 되겠지만 , 각각 아래와 같은 장점이 있으므로 개발하려는 목적에 맞게 사용하시면 같습니다.

< 기본 설정의 장점 >
- 일반적인 기반 메소드 기반 설정에 적용할 있는 강력한 기능의 축약 구문
- 복잡한 설정을 적용하기 위해 개발자들이 내부적으로 일어나는 세부 내용에 대해 필요가 없음
- security 네임스페이스 핸들러 코드가 다양한 설정 이슈 관련 문제를 파악하고 경고해줌
- 설정 과정에서 필요한 부분을 빼놓고 설정할 위험이 극히 적음

< 커스터 마이징의 장점 >
- 화장 , 오버라이드 , 표준 스프링 스탤에서 의도적으로 일부를 생략하는 것과 같은 유연성을 허용함
- filter-chain 엘리먼트의 pattern 어트리뷰트를 사용해 URL 패턴에 의존한 커스텀 필터 체인 인증을 허용하는데 이러한 기능은 서비스 또는 REST 인증과 사용자 기반 인증이 함께 사용될 필요할 있음.
- 설정 파일들이 스프링 시큐리티 네임스페이스 처리와 직접적인 연관성이 없음.
- 인증 관리자를 명시적으로 설정하거나 오버라이드 있음.
- 단순한 security 네임스페이스를 적용할 때보다 훨씬 많은 설정 옵션을 사용할 있음.

Q) 마지막으로 스프링 시큐리티 프레임워크에 대해 정리 부탁드리겠습니다.

스프링 시큐리티의 기본 아키텍처는 다음과 같습니다.

< 그림 4> Spring Sequrity Basic Architecture








어플리케이션 인증절차를 아키텍처를 기반으로 간단히 설명을 하자면 다음과 같습니다 .
인증요청 보호된 자원일 경우 로그인 여부를 판단하고 로그인 성공 권한을 체크하여 리소스에 접근권한을 줍니다 . 만약 접근 권한이 없다면 403, 로그인 실패라면 페이지 재호출을 하게 됩니다 .
요청 -> Filter Chain 호출 -> 인터셉터 호출  -> 자원접근
그에 대한 과정과 상세화는 아래 그림과 같습니다 .
 
자료 : 구글 이미지

따라서 , 기본 아키텍처와 상세화 부분을 매칭시키면 아래와 같습니다 .

시스템을 개발하면 거의 필수적으로 포함되어야 하는 보안에 관한 이슈가 생기는데 , 년간의 오픈소스 개발로 인하여 많은 노하우가 녹아있는 스프링 시큐리티에 대한 소개였습니다.


< 참고문헌 >