소프트웨어 보안 요구 사항
이와 함께 신원 관련 보안 위험 알려진하여 특정 응용 프로그램이나 응용 프로그램을 장르, 개발자의 보안 요구 사항에 대한 자신의 신청서를 과세해야한다. 이 분석에 도착해야한다 균형 측정의 수준의 보안을 요구하는 응용 프로그램입니다. 그것을 고민하지 않아도 극단의 보안 스펙트럼입니다. 주어진의 양해를하는 사실을 보장 보안은 존재하지 않는, 보호의 수를 최소화 상대로 알려진 위험과 성공적인 테러 공격과 그 효과는 보통 수준의 보안을 사용할 수있습니다. 관련자와 함께 응용 프로그램의 개발주기가 자신의 결정해야한다 "허용"보안 수준을 검사하여 기존에 알려진 위험 요소를 목표의 응용 프로그램을 구현하는 방법을 사용하여 원하는 보안 수준입니다. 에 도착 보안 요구 사항, 관리자 및 개발자를 집중할 것이 유용할 수있습니다 다음과 같은, 일반적으로 알려진 위험 지역 : · 사용자 인증 및 액세스 제어 · 데이터 저장 공간의 기밀 정보를 · 보안에 외부 네트워크 통신 · 보안의 엔트리 포인트에 대한 외부 응용 프로그램 및 운영 체제 이러한 4 개의 일반적인 분야에서 응용 프로그램 디자이너와 개발자를 식별하는 최소한의 중요한 기능을 분석할 수있습니다. 이 응용 프로그램의 기능에 따라, 일부 위험 지역은 다른 사람에 비해 더 많은 관련입니다. 을 확보하거나하지를 확보보안을하는 응용 프로그램의 추가 응용 프로그램에 영향을 미치는 여러가 지 방법입니다. 그것을 즉시가 더욱 복잡로의 코드 경로를 취합에 새 기능을 수용하기 위해 보안 방법입니다. 는 응용 프로그램의 성능이 될 수 방해, 특히 별도의 암호화 작업과 함께합니다. 이러한 작업은 cpu 집중을 계기로 복잡한 알고리즘을 관여합니다. 희생하는 응용 프로그램의 효율성도 생성할 수있습니다 지역의 경우 보안이 적용 몇 혜택을 제공하고있습니다. 이 문제가 발생할 보안 방법은 경종의 모든 구성 요소에 적용하는 응용 프로그램을 자신의 요구로 생각을하지 않고있습니다. 다음 섹션을 제공하는 합리적인 출발점을 결정하는 기본적인 수준의 보안 요구 사항이있습니다. 팁 그것은 좋은 연습 방법을 고려해의 보안 요구에 대한 각 모듈이나 구성 요소 내에서 응용 프로그램이있습니다. 저항 욕구를 적용 담요 보안 방법을 여러 모듈이나 구성 요소가있습니다. 대신, 결정할가 장 적합한 수준의 보안은 각합니다. 평 인증 및 액세스 제어 요구 사항사용자 인증은 종종는 운영 체제에 의해 처리하는 응용 프로그램을 실행하지만, 여러 종류의 응용 프로그램이 필요할를 처리하는 인증은 자체입니다. 임베디드 어플 리케이션, 어플 리케이션을하는 함수가 독자의 운영 체제 및 분산 웹 응용 프로그램을 자주 수용할 필요가있습니다 어떤 수준의 사용자 인증 및 액세스 제어합니다. 일반적인 사례는 이러한 보안 방법은 인터넷 상거래가 요구되는 어플 리케이션 (동 - 상거래)을 응용, 여기서 사용자가 웹 사이트를 통해 구매 또는 고객 데이터베이스에 액세스합니다. 두 경우 모두가 능성에 대한 많은 다른 사용자 또는 그룹의 사용자를 사용하여 시스템을 필요로 엄격한 통제의 접근 데이터입니다. 은 응용 프로그램이 필요한 방법을 통해 시스템에 액세스할 수 있도록 별도의 사용자가 로그인 방식; 이들은 또 개별 users'respective 금융 데이터에 관한 규제가 필요합니다. 을 확인하는 인증 및 액세스 제어 요구 사항, 디자이너해야한다 내에있는 응용 프로그램과 함께 상호 작용을 검사합니다 둘러싸는 그것은 세계가있습니다. 이 여기에 포함하는 방법을 통해 사용자의 액세스는 응용 프로그램 - 앉아 직접 한 터미널 또는 네트워크에서 접근하는 방법은 두가 서로 다른 인증 방식을 필요로 할 수도있습니다. 하는 응용 프로그램에 액세스할 수있습니다 동안에만 앉아에 데스크톱을 통해 효과적으로 확보하는 인증 방법은 운영 체제에서 동작할 수있습니다. 네트워크 응용 프로그램이 액세스하는 여러 명의 사용자가 동시에, 또는를 통해 사용자의 액세스의 데이터를 일반적인 데이터베이스를 제공 강력한 impetus에 대한 액세스를 제어하고 인증을합니다. 의 수준을 단위 및 유연성의 액세스 제어 및 인증 기능을 제공하는 운영 체제를 지원하는지 확인 독자적인 방법을 개발해야한다. 독립형 또는 임베디드 응용 프로그램은 종종 처음부터 개발하고 따라서 자신만의 특별한 방법이 필요합니다. 요구 사항에 대한 데이터 저장데이터 저장 공간을 반영합니다 개인 및 민감한 정보를 저장하는 방법을 사용합니다. 여기에는 올바른 사용은 파일 보호 방법의 기본 운영 체제 (예 : 1-866-466-0665 파일을 다시 사용 권한)와 강력한 방법을 수호 개별 데이터 요소 (예 : 암호화). 대부분의 경우, 운영 체제가 사용 권한이 방법의 사용에 필요한 수준의 보안을 제공하기 위해이 충분합니다. 암호화가 극도로 민감한 데이터를 보호하는 데 사용할 수있습니다와 같은 사용자 자격 증명과 신용 정보가있습니다. 응용 프로그램이 요구하는 수준으로 데이터를 저장하고있는 데이터가 드라이브의 특성에 대한 요구 사항은 데이터가 스토리지 보안입니다. 가 저장소의 민감한 정보가 종종 gating 요인이 결정되면 높은 보안 암호화가 필요합니다. 사용자 자격 증명과 같은 비밀 번호, 주소, 전화 번호, 금융 데이터, 간주되어야 민감하고도 치료와 함께 높은 보안입니다. 구성 정보를 충분히 확보 될 수있습니다으로 표준 파일 권한이 방법을 자주합니다. 때 형성에 대한 요구 사항은 데이터 저장 공간, 디자이너 될 수 유혹을 표준화를 한 수준의 보안을합니다. 예를 들어, 구성 파일을 저장하는 경우에는 비밀 번호가 함께 기타 비 - 민감한 정보를 유혹 될 수에 대한 강력한 암호화를 사용하여 전체 파일을 담요 보안 방법입니다. 을 확인하려면 데이터 스토리지 요구 사항을 검토하여 모든 구성 요소의 개입이 필요합니다. 이 예제에서 암호화를 적용하려면 nonsensitive 데이터가 될 수 간주 비효율적으로 인해 전산 비용의 암호화 작업은 물론 기타 정보의 부족으로 세분화 제어가 파일에있습니다. 단일 요소에 액세스할 수없습니다를 쉽게 경우 전체 파일이 암호화되어있습니다. 의 복잡 개입에 액세스하려면 다른 요소는 그 다음 급증합니다. 네트워크 및 엔트리 지점 보안 요구 사항응용 프로그램을 의사 소통하는 사용자, 운영 체제, 다른 응용 프로그램을 통해 진입 점입니다. 같은 기계에 이러한 모른다는 응용 프로그램이나 네트워크를 통해; 자주, 이들은 모두에있습니다. 있는 방법을 제공 엔트리 포인트를 응용 프로그램 및 지원을위한 네트워크 통신은 종종 하나와 같은; 따라서, 그들이 여기에 함께 그룹화됩니다. 보안의 네트워크 통신이 최선을 해결 전송되는 메시지의 내용을 검사하여합니다. 네트워크 통신을 활용하는 응용 프로그램에 대한 정보 제공 메시징이나 패스 정적 데이터가 필요하지 않을 수도있습니다 이외의 프로토콜을 지원하지 강력한 안정성입니다. 다시로의 경우 인터넷 상거래를하는 응용 프로그램에 민감한 사용자 정보를 보내고받는 영장을 추가 능성이 높은 보안 방법입니다. 진입 점 또한 보안 요구 사항에 대한 결정하는 응용 프로그램이 통신 네트워크로 연결된 환경입니다. 이 항목 포인트를 필요로하는 응용 프로그램에 높은 수준의 분석이 있기 때문에 포괄하고 네트워크 통신 기능을 제공합니다. 또한이 응용 프로그램을 통해 다른 사람과 상호 작용이 항목 포인트입니다. 이러한 기능적 영역의 조합을 통해 보호 수있습니다 사용할 수있는 운영 체제를 방법과가 정의한 액세스 제어 및 인증 체계를 사용 내에있는 응용 프로그램입니다. 분석의 상호 작용을하는 신청서가 외부 세계와 함께 디자이너를 확인할 수있는가 장 적합한 수준의 보안을 필요합니다. 이러한 상호 작용과 후속 엔트리 지점은 분류된 · 네트워크를 상호 작용 · 다른 응용 프로그램과의 상호 작용 · 각 운영 체제와 상호 작용 이 카테고리는 잘 - 알려진 기능적 영역, 그리고 디자이너는 아마도 이미 알고 그들의 응용 프로그램이 상호 어떤 경우는 이러한 예의입니다. 다음 단계는 각 영역의 보안을 고려합니다. 네트워크, 응용 프로그램 및 시스템을 상호 작용의 인기는 인터넷을 통해 상승세로 많은 새로운 이내에 다른 구성 요소와 상호 작용하는 응용 프로그램이 로컬 시스템과 함께 원격 시스템입니다. 다른 응용 프로그램과 상호 작용하는 응용 프로그램이 기능을 독립적으로 그 자체만으로 당연히 네트워킹 위험 분석을 필요로하지 않습니다. 네트워크 상호 작용을하실 수있습니다 여러 수준에서 존재합니다. 신청서를하실 수있습니다 완전히 클라이언트 / 서버 - 지향, 원격 시스템에서 사용하기 위해 인터넷을 통해 전염됩니다. 이러한 응용 프로그램의 보안에 대한 요구된다 그것은 독립형 어플 리케이션을보다 상당히 더 복잡합니다. 2:13-14 몇 종속성을해야한다. 의 수준에있는 개발자는 소망을 제공해 보안 메커니즘의 응용 프로그램 간주되어야합니다. 의 디자이너 내부 보안 메커니즘을 제공하지 않기로 결정할 수있습니다. 이 보안은 네트워크 응용 프로그램을 다음의 보안은 네트워크에 의존하고있는 것이 실행 및 통신; 토플 ogy 및 방화벽은 네트워크의 보안 수준을 확인하는 신청서가 최대 체험을 할 수있습니다. 디자이너가 끝난 의존성을 선택할 수도있습니다가가 장 높은 수준의 보안을 제공합니다 내에서 최대한의 응용 프로그램입니다. 이들은이 두 극단 - 대부분의 응용 프로그램 중간에 추락 어딘. 어플 리케이션도 사용할 수있습니다 네트워크 시설에 대한 현지화된 의사 소통이되지 향하는 이동을 넘어 에테르의 시스템에서 실행되는 상황입니다. 고려되어야에 부여의 자연이 통신 이행 여부를 확인하기 위해 불필요한 위험을 만듭니다. 간에 상호 작용이 필요하지 않는 응용 프로그램이나 운영 체제와 함께 네트워크 통신에 대한 암시를 요구합니다. 디자이너는 조사를 구현에 필요한 기능을 제공하는 방법입니다. 응용 프로그램을 자주 사용 소켓 - 기반 통신 방법을 제공되기 때문에 이러한 항목 포인트를 빠르고 쉽게 구현합니다. 소켓을 사용에 제공할 수있는 것보다 더 많은 기능이 필요하지만. 응용 프로그램으로 의사 소통을 필요로하는 다른 응용 프로그램을 사용하여 로컬 시스템에 불과하거나 자신의 운영 체제에는 많은 의사 소통 방법을 사용하여 자신의 폐기시와 같은 비 - 인터넷 소켓 및 ipc 메커니즘입니다. 일반적으로, 유닉스 시스템을 사용 소켓 통신 있기 때문에 자신의 편리한 사용과 과다한의 설명서입니다. 유닉스를 지원 여러 맛의 소켓 - 기반 통신, 2 개 중은 인기가 ip 소켓과 유닉스 도메인 소켓을합니다. ip 소켓과 같이 그 이름이 암시를 사용합니다 ip 프로토콜에 대한 커뮤니케이션, 및 지원을 원격 네트워크 통신, 로컬 및 원격 프로세스가 통신할 수있게하는 응용 프로그램이있습니다. 많은 응용 프로그램이 프로세스를 통해서만 의사 소통이 로컬 시스템 및 네트워크 통신 기능을 필요로하지 않는 ip 소켓으로 표준 인터페이스를 사용합니다. ip 소켓되지 않은 이상적인이 상황을 자동으로하기 때문에 로컬 및 원격 클라이언트에 대한 액세스 권한을 제공합니다. 도메인 소켓을 사용하는 내부 유닉스 프로토콜에 대한 통신 및 네트워크 통신을 지원하지 않습니다; 이들 작업을 제공하는 연결 - 지향 통신 채널입니다. 도메인 소켓들은 공유의 위험을 부적절하게 사용되는 경우입니다. 유닉스 도메인 소켓을 지원하는 패스의 파일 설명자뿐만 아니라 정보를 데이터입니다. 즉, 포인터 또는 핸들을 다른 부분의 시스템을 전달할 수있습니다 하나에서 응용 프로그램을 다른합니다. 이 기능은 유닉스 도메인 소켓에서만 사용할 수있습니다. 원하는 경우이 기능이 없다거나 보증을 전환에서 소켓 - 기반 통신을 위해 다른 ipc 메커니즘이 될 수 좀 더 나은 선택을합니다. 고려 종류의 정보와 주소로 전송은 응용 프로그램에 대한 요구 사항은 해당 통신 방식을 정의하는 데 도움이됩니다. 디자이너해야하기 전에는 응용 프로그램의 기능을 평가 상호 작용을 통합하는 표준 기능입니다. 이 예제에서 응용 프로그램을 사용하여 ip 소켓은 위험하기 때문에 사용하면 원격 시스템에 연결하여 응용 프로그램을 때 허용하지 않아야한다. 좀 더 나은 디자인을 서류의 요구에 대해서만 로컬 애플 리케이션과의 상호 작용을합니다. 이 포괄적인 요구 사항을 이끌고있는 개발자를 사용하려면 이외 ip 소켓입니다. 운영 체제가 상호 작용상호 작용을 사용하여 운영 체제를 종종 다른 수준의 보안 문제를 만듭니다. 다양한 수준의 상호 작용 발생할 수있는 운영 체제 - 네트워크 상호 작용, 인터 - 프로세스가 지역 nication, 그리고 조작의 파일이 이미 나와있습니다. 2 개의 다른 종류의 상호 작용도 필요로 주목 :의 실행을 외부 프로그램과 시스템의 사용과 기타 외부에 정의된 통화는 일반적인 출처의 착취합니다. 중요한 이슈와 같은 권한, 인증, 액세스 제어, 및 입력 유효성 검사를 고려해야과 함께 운영 체제가 상호 작용을합니다. 시스템 호출과 외부 응용 프로그램을 현재 어느 정도의 위험이 높은 그들의 본성 때문에 부적절하게 사용하면됩니다. 이러한 기능을 자주 사용하는 라이브러리에 존재하는 많은 응용 프로그램을 동시에하고 자주 운영 체제 구성 요소와 리소스에 대한 직접 액세스가 제공됩니다. 착취의 단일 응용 프로그램을 통해 이러한 기능을 여러 응용 프로그램과 시스템에 영향을 미칠 수있습니다. 시스템 호출에 대한 액세스를 제공 많은 일반 - 목적과 시스템 - 특정 기능입니다. 그들을 허용하는 응용 프로그램을 사용하는 특정 하드웨어 구성 요소뿐만 아니라 커널 - 레벨 기능을합니다. 의 안전의 운영 체제 및 구성 요소를 필요로 간주 시스템 호출을 사용하면됩니다. 응용 프로그램이 유대 관계를 함께하는 경우 사용자 또는 네트워크 데이터와 운영 체제를 통해 시스템 호출, 디자이너가 위험 노출을 최소화해야한다, 예기치 못한, 그리고 부적 절한 데이터입니다. 외부 응용 프로그램의 실행이 다른 일반적인, 보안되지 않은 상호 작용을합니다. 개발자가 종종 디자인에 응용 프로그램을 호출할 때 다른 응용 프로그램에 의해 다양한 방법입니다. 이 제도 총선거 이유로 개발자가 지일 수도 이렇게 등 환경 관리를 구분하는 기능 또는를 구축합니다. 호출하는 다른 응용 프로그램도 허용 개발자를 사용하려면 기존의 기능 및을 신속하게 응용 프로그램의 구현을합니다. 고유의 위험에있다는 전화를 다른 프로그램 내에서 응용 프로그램 -에서 외부 프로그램을 좀처럼 신뢰할 수있습니다. 동적 환경을 어디에 있는지의 응용 프로그램을 수정하거나 대체할 수있는 프로그램이다. 문제가 거짓말의 방법을 사용하여 호출하는 응용 프로그램이있습니다. 유닉스 - 기반 시스템을 자주 지원 함수를 호출 시스템 () 및 실행 (), 어떤 통과가 제공한 매개 변수로 문자열을 실행은 표준 유닉스 쉘 및 subprocess를 각각합니다. 이 시스템 () 호출 반환을 호출하는 프로그램을 실행이 완료했지만 실행이 ()을 종료합니다라는 프로그램을 사용하여 실행중인 프로그램을 대체합니다. windows - 기반 시스템이 실행이 () 호출을 실행하는 것을 허용하는 다른 프로그램입니다. 유닉스와는 달리, windows 버전의 실행이 ()를 실행에서 지정된 프로그램을 subprocess, 그리고 호출하는 함수가 종료되지 않는다. 없이 입력을 검증, 공격자를 할 수있습니다 쉘 메타 - 문자를 입력 스트림을 강제로 쉘을 실행하려면 아마도 유해한 명령과 매개 변수가있습니다. 이러한 기능은 일반적으로 사용에 등교하는 즉시, 그리고 노력을해야 할 사항을 피하기 위해 그들의 사용을 허용하기 때문에 신뢰할 수없는 및 uncontrolled 응용 프로그램의 실행을합니다. 다른 방법으로, 디자이너는 응용 프로그램에 직접 필요한 기능을 통합합니다. 의 사용을 자유롭게 사용할 수있는, 오픈 - 소스 소프트웨어가이 작업을 수행하는 데 필요한 노력을 크게 감소합니다. 다양한 운영 체제에서 또 다른 특권 레벨을 허용하는 기능을 실행합니다. 유닉스는 그 "루트"권한을했습니다 "관리자"및 "시스템"권한이있습니다. 이러한 특별 계정 관리 작업을 수행할 수있습니다들은 더 많은 상호 작용을하고있는 운영 체제와 서비스를보다 다른 계정을 수행합니다. 프로그램을 작성할 수있습니다 특권 레벨을 상승 특수한 기능이 필요한 경우입니다. 하는 응용 프로그램 및 운영 체제에서 동작할 수있는 권한이 없다면 신중하게 제어할 수있습니다. 모델의 최소 특권을 제안하는 신청서와 함께 실행해야 대부분의 기능을 수행하는 데 필요한 최소한의 사용 권한을 설정합니다. 기능이 필요한 더 높은 권한을해야한다 절연으로 자신의 모듈을, 그러나이 정의 - 그 과정을 한 클래스, 응용 프로그램, 또는 심지어 다른 시스템입니다. 심지어 그런 다음,이 일련의 기능을해야한다 최소한 특권 수준을 실행할 수도 이러한 상승된 권한이 필요하기 전까지입니다. 그 당시, 높은 권한을해야한다 입수하고, 마치면의 기능, 권한을 최소 수준으로 반환되어야합니다. 참고 사항 메타 - 문자는 문자가 복용에 대한 특별한 의미가 특정 문맥입니다. 예를 들어, 내부의 표준 유닉스 셸, 세미콜론 (;) 이 명령을 구분 기호, 즉, 많은 명령어를 한 줄 때 넣을 수있습니다 세미콜론은 이들 사이입니다. 파이프 (|) 문자를 보냅니다 터미널 출력을 무엇을 따라가 파이프를 허용의 출력을 하나의 프로그램으로 연방 준비 은행을 다른합니다. 결론일부 응용 프로그램 개발자를 선택하여 자신의 응용 프로그램과 배치를 잊지하거나 무시 보안 내에서 자신의 자비에 대한 고객의 네트워크 또는 운영 체제와 보안 기능이있습니다. 이 담요를 사용하여 안전한 응용 프로그램을 제공하기 위해 보안 모델을 기피의 책임을 공개합니다. 이 보안 철학 시킴은에 강력한과 포괄적 안보 이데올로기가 정합니다 아무 내용은 보안의 구성 요소가 외부로의 응용 프로그램입니다. 신청서를해야한다대로 항상 안전하게하실 수있습니다와 관련하여 그 자체와 외부 구성 요소를 사용하는 것이 상호입니다. 의 수준을 다음과 - 통해서는 왼쪽에 재량권의 디자이너 또는 개발자, 그러나 이것은 문서들 의해 tamas querolin
|
|||||
|