소프트웨어 보안 :의 디자인 위상 분석


  Share  
|


종합 디자인을 제공하여 문제에 대한 해결책을 기재하여 제품을, 또한 혁신의 효과를 고려해 소요됩니다. 보안을하는 응용 프로그램도 만들어지고 강화하는 종합적인 디자인입니다.

한때는 아이디어의 보안으로하는 단체를 삭제하는 기능이,이된다 명백한 보안 서비스란 요구를 고려 초에 해당합니다. 각 조직했을가 능성이있는 반면 다른 방법은 디자인하는 제품 또는 응용 프로그램, 다음과 같은 접근 방법이 유용하게 보장에 높은 수준의 보안에있는 디자인입니다. 3 개의 관점에서의 디자인 위상을 분석 :

· 글로벌

· 조직 구성

· 구성 요소

글로벌 관점이가 장 높은 내용의 시스템; 그것을 식별의 요구를 기재하여 응용 프로그램 및 해당 기능을 설정합니다. 조직 구성 관점 하이라이트는 응용 프로그램을 구성하는 개별 구성 요소가있습니다. 이 구성 요소 관점 이동하여 다음 수준의 단위를 검사하여 노골적인 세부 사항은 각 구성 요소와 그 구현합니다. 여기에 사용되는 증분 접근 방법을 사용하면보다 포괄적인 분석을 더 깊게하고 프로세스 흐름을 쉽게 이해할 수있는도 제공합니다. 이 정보를 통해 관리자 및 개발자가 적절한 절차를 적당한 위치에 배치가 고려의 보안을 유지하려면 자신의 응용 프로그램이있습니다.

글로벌 관점

많은 응용 프로그램에서 발생할 많을 필요하거나 부적은 현재의 솔루션입니다. 좋은 디자인을 식별 다음과 같은 보안 문제 :

· 안보 현안과 관련하여 기존의 솔루션을하여 문제를 해결을해야되고

· 응용 프로그램의 응답으로 이러한 보안 문제

· 잠재적인 보안 취약점이 존재의 혁신이 만들어

세계적인 분석을 제공합니다 그렇지 찾을 수있는 정보가 공격자의 응용 프로그램이 출시되면합니다. 이 단계에서, 응용 프로그램에 대한 정의는 보안 아키텍처를해야한다. 이 아키텍처 godwin의 수준의 보안을 필요에있는 응용 프로그램입니다. 그것을 식별하는 데 도움이 설정은 응용 프로그램의 보안 범위의 관계의 응용 프로그램으로 그 주변과 수준의 보안을 제공하는 그들. 또한 하이라이트는 보안 아키텍처의 필요성에 대해, 그리고 액수의, 독립 보안이 신청서를 제출해야합니다 물론 기능을 필수입니다.

글로벌 분석 및 수립의 보안 아키텍처를 통해 작업을 완료 증분 분류의 모듈, 구성 요소, 인터페이스 및 방법의 응용 프로그램에서 사용하고있습니다. 자신의 위치와 관계가 서로를 자신의 노출을 외부 응용 프로그램, 사용자 및 인터페이스는 중요한 포인트입니다.

글로벌 관점의 응용 프로그램을 처음에 제시합니다 싶어하며 "블랙 박스"-의 유일한 세부 정보를 알려는 사람 보여지는 외부인입니다. 이러한 외부의 기능 및 기능적 요구 사항은 다음로 구분할 모듈에 대한 보안을 분석합니다.

검색을 공급 업체에 자문, 뉴스 그룹, 메일링리스트 및 온라인 포럼에 대한 공개된 취약점은 경쟁 또는 유사한 응용 프로그램이 좋은 방법에 대한 자세한 내용을 일부의 주요 안보 문제와 관련된 응용 프로그램이있습니다. 또한 비효율적 솔루션을 취약점을 지적하는 데 도움이 유사한 응용 프로그램에서 찾을 수있습니다.

사례 연구, 위상 내

이 상 예제는 사례 연구에 대한의 발전은 인터넷 상거래 응용 프로그램입니다. 이 서비스를 사용하면 사용자가 자신의 브라우저에서 연결을 온라인으로 구매합니다.

의 첫 번째 수준의 디자인은이 응용 프로그램이에 대한 정의는 그 능력을 독립적으로의 구현 방법을 사용합니다. 이러한 기능을 할 수도있습니다는 다음과 같습니다 :

·가 선택의 적절한 운영 체제가 호스트의 응용 프로그램

· 데이터베이스 액세스를위한 스토리지의 민간 및 공공 정보

· 웹 검색

· 연결성는 이러한 부품을 사용하여 사용자 정의 - 개발된 응용 프로그램

· 연결을 금융 기관의 거래

글로벌 관점에서 한 디자이너 모략의 보안 기능에 필요한 각각의 구성 요소는 이러한 기능을합니다.

많은 다른 사용자에 대한 개인 정보가 데이터베이스에 저장을 포함한 비밀 번호, 신용 카드 번호 및 연락처 정보가있습니다. 이 정보를 보호하기 위해,이 데이터베이스가 있어야 보안 구성 요소가 지원 제한을 개체와 어쩌면 그들의 암호화합니다.

웹 서버에 보안 통신과 함께 지원해야한다 보안 소켓 레이어 (ssl) 프로토콜, 그리고 몇가 지 방법은 인터페이스와 외부 응용 프로그램 및 데이터베이스입니다. 자바 servlet 및 애플릿을 통해이있을 수도, 또는 패턴을 프로그램입니다.

네트워크 통신을하는 본질적 부분이 시스템입니다. 는 웹 서버와 데이터베이스 서버 소프트웨어 아마도 실행을 별도의 기계, 그래서 그들 사이에 의사 소통의 네트워크를 확보하는 수단이 필요합니다.

의 마지막 구성 요소로 간주는 실제 연결을 조직하는 거래 자격을 부여합니다. 이있을 수있는 은행이나 신용 카드 회사가 지출하는 사용자가 자격을 부여합니다. 연결 수가 능성이 달성될으로 모뎀이나 다른 작품의 통신 장비가 상호 작용의 금융 조직과 유효성 검사를 수행합니다. 이러한 연결을 필요로 높은 보안, 인증되지 않은 사용자에 의해 액세스를 방지하기 위해서입니다.

이러한 분석은 지식의 분야에서 모입, 분석의 경쟁 제품 및 지식과 함께 고객의 요구 사항이있습니다. 이 시점에서 근면한 연구해야 할 작업을 문서로 과거와 현재의 보안 취약점은 관련 제품입니다. 다음 결과 목록의 위험 지역을 파악해야한다 필요로하는 주소입니다. 보안 기능이 빠져있는 초기 요구 사항 목록은 종종 이러한 분석을 통해 발견, 또 다른의 장점입니다.

우리 인터넷 상거래가 들어, 연구 결과는 다음 취약점은 동종 제품 :

· 데이터베이스가 없었다 보호 제도, 이로 인한 개인 고객 정보의 노출됩니다.

· 구멍이있는 웹 서버가 있었다가 시스템에서 임의의 코드 실행 허용합니다. 이 서버의 기본 구성도 허용되는 디렉토리 탐색,이 기능을 외부 사용자에 액세스하려면 많은 개인 파일 및 디렉토리에 따라 시스템입니다.

· 패턴 응용 프로그램이 데이터베이스와 통신하는 데 사용했던 취약점이 원격의 공격자가 장하 다른 고객을 허용합니다.

이 연구도 있음을 나타냅니다 데이터 보호, 버퍼 오버플로우, 기본 구성, 및 입력 유효성 문제를 피할 필요가 있기 때문에 이러한 취약점 발생 빈도가 유사한 응용 프로그램입니다. 또한 보안 기능이 추 보여주는 공급 업체와 패치는 이러한 문제를 방지합니다. 이렇게하면 인증 및 액세스 제어를 중요한 요구 사항과 함께 네트워크 보안입니다.

이 시점에서 디자이너를 안다는 보안 취약점과 관련된 응용 프로그램,의 방법으로 어떤 다른 단체가 응답하는 그들, 그리고 일련의 중요한 보안 기능을 사용하는 양식의 기반의 보안 아키텍처입니다. 더 이상의 보안 아키텍처를 개발에 대한 다음 단계의 디자인입니다.

조직 구성 관점

보안이되지를 완전 과학; 각 응용 프로그램과 환경의 요구와 관련이있습니다. 따라서, 그것이 충분하지를 조사할 수있는 보안 주소만을는 글로벌 내용입니다. an 그렇지 저 - 고안된 응용 프로그램을 수도 있지만 독립적의 모든 다른 응용 프로그램에 따라 시스템을 상호 작용의 모든 구성 요소에 포즈 보안을 위협하는 응용 프로그램이있습니다. 조직 구성 관점의 개별 요소를 식별하거나 그룹의 요소가되는 형태는 전체 응용 프로그램을, 그들의 기능을, 그리고 그들의 관계를 서로입니다. 수있는 요소는 기능을하는 클래스를 하나의 과정, 또는 일련의 이러한 요소는별로 그룹화 그들의 관계를 응용 프로그램입니다.

하는 응용 프로그램은 일반적으로 만든 여러 기능성 모듈과 같은 사용자 인터페이스, 네트워킹이나 통신 구성 요소, 또는 데이터 저장 및 검색 도구입니다.

반면 모듈을 할 수도있습니다 합리적으로 보인다 확보, 그 관계의 다른 구성 요소가 될 수 처형 안전합니다. 유사한 내용의 분석 '의 상호 작용의 응용 프로그램, 조직의 수준을 분석은 기능적 요구 사항을 결정합니다 아키텍처를 사용합니다. 기능 요구 사항을 허용합니다 디자이너를 식별하는 일련의 구성 요소와 방법을 제공할 수있는 기능; 는 분석의 보안을 사이에두고 이들과 상호하면 결과가 장 안전한 선택 항목에 포함될 수있는 응용 프로그램입니다.

증분 신분증, 조직, 및 카테고리별 분류의 각 구성 요소의 응용 프로그램에서이 단계를 계속합니다. 논리적 배치를 시작 - 그리고 특히 용의자의 관점에서 보안 -가 장자리의 모듈입니다. 가 장자리에 입국하거나 출구 지점 데이터를 건너 경계를 사이에 모듈을합니다. 예를 들어, 데이터를 건너 경계를 사이에 모듈을하는 동안 이러한 기능 :

· 데이터의 매개 변수로 전달

· 설정 전역 변수

· 조작 공유 메모리

· 작문 데이터를 파일

· 커뮤니케이션 채널을 통해 데이터를 보내는 등 네트워크를

· 수신 사용자 입력

사례 연구, 위상 ⅱ

의 조직 구성 단계의 설계를 예제 인터넷 상거래 응용 프로그램, 각 응용 프로그램 구성 요소 -는 웹 서버, 데이터베이스 서버와 관련된 응용 프로그램 -이 분류에 해당 기능성 모듈에 대한 자세한 분석합니다.

이 데이터베이스 서버가 스토리지 구성 요소, 인증 및 액세스 제어 구성 요소, 그리고 의사 소통 구성 요소가있습니다. 이 웹 서버는 웹 서비스 구성 요소, 외부 프로그래밍 모델, 및 보안 클라이언트 통신 및 보안 데이터베이스 통신 구성 요소입니다. 이러한 구성 요소 간의 상호 작용을 형성하게 정의 경로를 사용하여 여러 개의 지점을 어디에 강력한 보안을해야합니다. 다음과 같은 an 상호 작용을 사이에 웹 서버와 고객,이 클라이언트 웹 브라우저가 웹 서버에 민감한 데이터를 전송합니다. 이 데이터는 그 다음에 전달와 상호 작용하는 응용 프로그램의 사용자 정의는 데이터베이스와 금융 기관입니다. 다음은 데이터 경로를 통해 응용 프로그램, 개발자를 관찰 포인트의 취약점은 클라이언트 통신, 웹 서버 응용 프로그램이 상호 작용을 의사 소통의 웹 서버가이 데이터베이스, 그리고 그들 사이의 상호 작용을합니다.

의 보안 요구 사항이 시작되도록 모양입니다. 이 응용 프로그램의 보안에 제공해야한다 주소가 이러한 위험 지역과 이러한 양식 :

· 보안 통신을 클라이언트 웹 브라우저의 형태 암호화된 네트워크 통신, 인증은 사용자, 그리고 자신의 정보에 대한 액세스를 제어 메커니즘입니다.

· 안전한 상호 작용을 사이에 웹 브라우저와 이메일 - 상거래 응용 프로그램을 위해 시스템의 안전성을 보장합니다

· 응용 프로그램의 무결성을 상거래 프로그램

· 보안 통신을 사용하여 데이터베이스를

· 보안의 데이터베이스 개체

이러한 요구 사항으로 건축이 시작되도록 모양입니다. ssl을 사용하여 서버에있는 웹 서버를 보호합니다 -가 - 브라우저 통신을합니다. 이 응용 프로그램은 고유의 인증 메커니즘이 사용하면 클라이언트가 로그인을 안전하게합니다. 데이터 유효성 및 보호 메커니즘도 패션만을 사용하는 조직에서 구현이 최소 필수 특권을 운영할. 기능은 통합 응용 프로그램에 대한 개체를 보호 및 암호화에있는 데이터베이스 서버입니다. 실제 구현 세부 정보의 최종 구성 요소를 단계에서 개발된다.

관련 보안 방법이 상승하여 표면에있는 경우에 다음과 같은 질문을 묻는 조직의 위상 :

· 정보를 전달하는 방법은 우리를 보호합니까?

·면 어떤 효과가하면 하나의 모듈을 통과 sfdr 데이터를 다른가?

·이 제약 조건의 데이터가 정의되어 있습니까?

·이 있습니까 선호하는 방법은 보안 강화를 지나는 데이터가 lends 자체가 있습니까?

· 어떤 구성 요소, 응용 프로그램 및 사용자가 데이터에 대한 액세스를 필요합니까? 어떤 종류의 액세스가 필요 - 읽기 - 전용 또는 둘 모두가 읽기와 쓰기 능력을가?

이 구성 요소 관점

최종 관점에서가 해부의 어떤 디자인을 분석이 발생하는 응용 프로그램 내에서 개별 구성 요소입니다. 초소형 설계와 구현 세부 정보를 소개해 분명하고 모호한 보안 문제는 포스트 - 릴리스를 찾기 어렵습니다. 열악한 구현을위한 노력을 취소할 수있습니다 투입의 보안을 디자인합니다.

주의 사항 제안 중 일부를 여기에 빠지지는 무엇입니까 좋은 코딩 관행을 고려하고있다 반드시 보안 특정 그러나 그들의 보안을 수행하는 응용 프로그램에는 효과가있습니다.

이 보안 아키텍처는 응용 프로그램이 위임장에 대한 정의가있을 수있는 일련의 견제와 균형을 포함하는 응용 프로그램을 따라야합니다. 이러한 견제와 균형이 제공하는 높은 수준의 보증하는 신청서 사도 행전의 통일 방식의 이벤트는 예상치 못한 데이터 또는 정보가있습니다.

각 조각을 형성하는 구성 요소를 볼 검사를 모듈입니다. (모듈,이 기능, 형태의 응용 프로그램입니다.) 이러한 구성 요소가되어야 자신의 개인 보안 기능과 상호 작용에 대한 분석과 함께 다른 구성 요소 내에있는 모듈입니다. 시작 지점으로하면 프로그래밍 방식으로 문제를 검토하고있는 모듈은

· 반환 값

· 우선순위 및 전제 조건

· 데이터 유효성

· 식별된 대응 및 복구

· 권한 및 특권

반환되는 값은 지표의 성공 또는 실패 내에있는 기능입니다. 구성 요소의 개별 모듈은의 기능, 어떤 상호 관계를 구축하고 프로그램을 수행할 수있게 해주는 제대로합니다. 개발자는 또한 무엇을 뜻을 이해하는 경우 함수가 실패하고 그 실패를 적절히 반응해야한다. 완전한 이해의 이러한 관계를 사용하면 개발자 간의 종속성을 이해하는 기능입니다. 를 기반 이러한 의존성, 구성 요소 내에있는 모듈의 안정성과 보안을 향상시킬 수있습니다 조직입니다.

데이터는 동적의 모든 응용 프로그램을 - 그것 여행을 사이에 함수와 모듈 및하여 별도의 응용 프로그램을 변경은 초기 응용 프로그램의 실행을하게 수행하도록합니다. 신원의 모듈을 사용하여 해당 양식을하는 응용 프로그램, 그리고 그 이후에 양식의 구성 요소들을 모듈, 전체 응용 프로그램을 통해 데이터의 경로를 추적하실 수있습니다. 이 항목 포인트 사이의 모듈과 기능은 필수적 요소의 성공 또는 실패에 영향을주는 응용 프로그램, 따라서 데이터의 유효성이이 지점은 필수적입니다. 근무 손 -이 - 손과 유효성 검사가 정의한 대응하여 잘못된 데이터 및 anomalous 조건입니다. 대부분의 응용 프로그램이 실패를 수립있는 복구 메커니즘의 이벤트 중 예기치 못한 사건; 하는 응용 프로그램이 충돌이 종종 불안 정한 결과에 이르면 기호의 불완전 데이터입니다.

기술의 사용 권한 및 권한이 필요한 구성 요소를 기능을 제공합니다 디자이너가 응용 프로그램에 대한 중요한 정보가됩니다. 다음의 모델은 최소한 특권은 좋은 디자인을 연습; 그것을 권장의 격리와 특권의 제한은 실행중인 응용 프로그램이있습니다. 대부분의 경우, 높은 특권 레벨이 필요 매우 드물게 및에서만 고립된 인스턴스를합니다. 많은 응용 프로그램을위한 강화된 권한을 필요로하는 작은 부분의 기능을 커밋는 전체 응용 프로그램을 해당 높은 특권 레벨의 전체 존재합니다. 유해 환경이 만들어집니다 여기서 각 취약점이 발견이 특권 모드에 존재합니다.

특권을 말합 주로를 여러 수준의 권위에있는 운영 체제입니다. 에서 각 높은 수준의 특권을 승인하는 사용자가 시스템에 대한 액세스를 점차적으로 더 많은 리소스와 같은 메모리, 기타 응용 프로그램, 하드웨어 장치, 및 데이터입니다. 루트 사용자의 유닉스에서 관리자, 그리고 시스템을 특별 계정으로 windows exemplify가 장 높은 수준의 특권입니다. 종종 여러 각도의 액세스를 제공하는 세분화의 액세스 제어, 수도있습니다. 세분화의 액세스 제어를 사용하면 정의 응용 프로그램에 대한 액세스 권한을 거부 방법입니다. 파일, 네트워크 트래픽, 사용자, 및 개체 수있습니다 수밖에 한 세트의 명시적인 권한을하는 그들에 대한 액세스를 허용 또는 거부합니다.

사례 연구, 위상 ⅲ

이 구성 요소 위상 분석도 우리의 인터넷 상거래 응용 프로그램을 쳐다보고의 개별 구성 요소에 사용되는 응용 프로그램과 그들의 안전합니다. 이 단계를 입력, 디자이너가 있어야 의식의 완전한 데이터 경로와 관계 모듈입니다. 그 다음 세분화 단계를 수립하기위한 기초가 응용 프로그램의 구현합니다. 의 목표는이 분석은 다양한 구성 요소를 확인하는 권한이있는 감각이 단체가 사용됩니다 동안에 구현하고 구현하는 방법에 대한 지식을가 발생할 것입니다. 여기에, 이전에 번역에 대한 상세한 구현 방법을 결정 요구 사항이있습니다.

디자이너는 웹 서버와 데이터베이스 서버를 선택이 시점을 기반으로 설립 요구 사항이있습니다. 우리 들어, 아파치 웹 서버를 지원하도록 만들 수 있기 때문에 선택했습니다 ssl 통신과가 잘 - 문서화 방법을 외부 응용 프로그램과 상호 작용합니다. an oracle 데이터베이스 서버를 선택했습니다을 제공하기 때문에 유연성, 확장성 및 보안을 필요에있는 데이터베이스, 그리고 또 그것을 지원하기 때문에 자바 - 기반 상호 작용을합니다. 자바 언어 및 확장 기능으로 선택되었습니다 구현을위한 실제 인터넷 상거래 소프트웨어와 함께 작동하기 때문에 웹 및 데이터베이스 서버를 지원하는 강력한를 구성할 보안 모델입니다.

이 웹 서버 및 데이터베이스 서버가 다음을 판별하여 설계에서가 장 안전한 방법은 다음과 같은 구성 요소 :

· 서버를 기본 구성

· 보안 구성의 기본 운영 체제

· 권한을 필요로 상호와 함께 자바 애플 리케이션

· 액세스 제어 구성 요소

가 상거래 소프트웨어는 조직을 제공해 이러한 구성 요소 :

· 특권 요구 사항을 수행하려면 그 기능을

· 웹 서버가 상호 작용과 의사 소통 항목이 점

· 사용자 인증 및 액세스 제어 방법

· 세션 보안 방법을 방지하기 위해 사용자의 장을

· 데이터베이스 서버 상호 작용과 의사 소통 항목이 점

기반이 분석과 조직, 그것이 결정되는 유일한 부분은 시스템이 필요 강화된 운영 체제 권한은 상거래 응용 프로그램입니다. 또한 내부 일련의 특권 레벨을 시행할 필요 사용자 액세스를 제어하고 인증을합니다. 기본 구성이 전용의 기능을 활성화에 필요한 작업의 시스템, 그리고 각 운영 체제는 보안 - 강화와 동일한 minimalist 접근 방식입니다.

가 상거래 응용 프로그램이 어디에있는 대부분의 보안 구성 요소가 존재합니다. 그것은 책임을 확인하는 사용자가 자격 증명을 설정 권한에 데이터베이스 개체를 추적하는 각 사용자 세션, 그리고 문제의 실제 정보를 유지하는 데 필요한 시스템이 작동합니다.

상거래 응용 프로그램이 요구가있을 때만 강화된 권한을 제어 웹 및 데이터베이스 서버 시작 및 종료합니다. 가 장 안전한 방법을 수행하려면 이러한 작업이 결정된다 늘려 권한을 별도의 컨트롤러를 처리하는 시점이 시작 또는 종료 작업을 수행합니다; 그런 다음 다음을 요청할 때까지 권한을 포기하고있습니다. 는 컨트롤러 프로세스 통신 전용으로 상거래 응용 프로그램을 사용하는 인증에 메시지를 시작하는 시작 또는 종료의 시스템입니다.

가 상거래 응용 프로그램은 또한 그것은 데이터베이스에 저장하기 전에 암호화 개인 정보를 보호하기 위해 사용자 자격 증명 및 금융 정보가있습니다. 의 이벤트의 anomalous 및 오류 조건이 같은 잘못된 입력 데이터, 사용자 인증 실패, 실패 통신,의 디자인 호출을 위해 이러한 정보를 기록하고 응답할 수있는보고 시스템을 적절히을 행사합니다.

시스템 구현을 상승 자연스럽게에서 지속적인 분석을 제공 앞의 글로벌, 조직 구성 및 구성 요소를 분석 단계가있습니다. 개발자를 사용 안내 및 절차에 배치하는 데 도움이 그들 쓰기의 코드를 유지하는 높은 보안 표준 확립합니다.

이것은 문서들 의해 tamas querolin

Share  

© 2005-2010 E-articles.info All Rights Reserved - Terms and conditions