ПредишенСледващото

След като вземе тези предпазни мерки, да елиминирате възможността да се извършват в условията на PowerShell скриптове, не проверява вашия цифров подпис, като по този начин се предотврати злонамерени атаки на вашата система. Говорейки за това, предполагам, че читателят вече е запознат с PowerShell среда

АРУБА НЕЗАБАВЕН WI-FI: прост, мощен и достъпни

Един от най-важните съображения при изпълнение на Windows PowerShell скриптове, за да бъдат взети под внимание в контекста на сигурността, е необходимостта да се предотврати неоторизиран скриптове, за да работят на системата. По подразбиране, в PowerShell скриптове среда не е предвидено. Въпреки това, сценариите са ефективни при администриране на Windows, така че ако използвате черупката PowerShell, най-вероятно ще се случи, за да ги използват.

PowerShell скрипт - е обикновен текстов файл с разширение. ps1. Файлът съдържа една или повече PowerShell инструкции, които се изпълняват в разговор скриптови файлове от конзолата. PowerShell позволява на потребителя да се определи дали е разрешено изпълнението на скриптове и ако е така - посочете кои скриптове могат да се изпълняват. За да се контролира изпълнението на скриптове и осигуряване на по-високо ниво на защита на системата трябва да:

  • генерира политика PowerShell изпълнение;
  • генериране на сертификат Х.509;
  • провери цифрово подписани скриптове.

Образуване на прилагането на политиката

политика PowerShell изпълнение определя дали изпълнението на скрипта е допустима и дали конфигурационният файл се изтегля в PowerShell да се изпълнява. За формирането на прилагането на политиката трябва да се използва компонент Set-ExecutionPolicy команда и да определи с помощта на един от следните параметри за изпълнение.

  • Ограничен: конфигурационни файлове PowerShell не се зареждат и скриптове не се изпълняват. Това осигурява най-рестриктивната настройката по подразбиране се използва. В резултат на това, след като сте инсталирали PowerShell, неволно изпълнение на скриптове и да изтеглите изключени данните за конфигурация. В същото време, можете да извършвате отделни команди с PowerShell конзола.
  • AllSigned: всички скриптове и конфигурационни файлове трябва да бъдат сертифицирани от електронния подпис на доверие на издателя. За подписването на сценарий, трябва да използвате код подписването сертификат. Както ще бъде показано по-долу, такъв сертификат, можете да създадете своя собствена.
  • RemoteSigned: всички скриптове и конфигурационни файлове, свалени от Интернет, трябва да бъде заверен от електронен подпис. Въпреки това, могат да се извършват на скриптове, които се съхраняват на компютъра ви, както и местните конфигурационни файлове са заредени и ако те не са цифрово подписани.
  • Неограничен: тичам всички скриптове и изтегляне на всички конфигурационни файлове. Това изпълнение е свързано с най-малко ограничения и следователно е свързан с най-висок риск.

Така че, ако искате да се защити системата, но в същото време предоставя възможност да стартирате скриптове и конфигурационни файлове натоварване, трябва да се определят политиката на изпълнение като AllSigned. За да направите това, въведете командния ред PowerShell, следната команда:

Създаване на сертификат за X.509

Ако политиката за изпълнение е посочена AllSigned, това означава, че вие ​​трябва да се регистрирате своите файлове; С други думи, трябва сертификат за X.509 за код за подпис. X.509 - криптографията стандарт, който определя формата за такива устройства, свързани с безопасността, като например с публичен ключ удостоверения и списъци с невалидните сертификати. Можете да закупите X.509 сертификатът, издаден от орган на публична сертифициране или да създадете свой собствен сертифициращ орган и сертификата. Пълното описание стандарт X.509 и обществен сертифициращи органи не са пряко свързани с темата на тази статия. Въпреки това, аз ще обясня как можете да създадете свой собствен местен орган за сертифициране и сертификата.

Както при всеки друг командния ред помощна програма, Makecert програма може да се извърши в съответствие с PowerShell на покани. Например, когато създавате сертифициращ орган (което трябва да се направи преди да премине към създаването на сертификат), трябва да укажете името на полезността (makecert), както и на необходимите параметри. В този пример, аз се създаде орган за сертифициране на име в PowerShell CA главния сертификат магазин:

Този екип включва редица параметри. Таблицата по-долу дава кратко описание.

Таблица. Makecert командни параметри, използвани в примера

Защита PowerShell скриптове, прозорци него реше

Когато стартирате тази команда, за създаване на лични диалоговия прозорец парола ключ (Фигура 1), за да въведете паролата.

Защита PowerShell скриптове, прозорци него реше

диалогов прозорец 1. Дисплей Създаване на частен ключ парола

След като въведете паролата два пъти и натиснете бутона OK, показва на екрана Въведете Private диалоговия прозорец парола ключ (екран 2), за да въведете паролата, която току-що влезе в Създаване Private диалоговия прозорец парола ключ.

Защита PowerShell скриптове, прозорци него реше

диалогов прозорец 2. Screen Въведете Парола за личния ключ

Когато кликнете върху OK в Предупреждение прозорец съобщение сигурност (като този, показан на фигура 3) се появява на екрана, съдържащи предупреждение, че ще да се инсталира на сертифициращия орган PowerShell CA.

Защита PowerShell скриптове, прозорци него реше

Екран 3. Window сигурност предупреждение съобщение

Когато кликнете върху бутона Да, Makecert помощна програма създава сертифициращ орган в местния магазин за сертификат.

Както е случаят с предишната команда, този екип включва редица параметри Makecert. Описания на тези параметри също са показани в таблица. Трябва да се отбележи, че -р опцията (който определя магазина сертификат), попитах ми стойност, а не стойността на корен, който е бил използван от мен, за да се създаде орган за сертифициране. Моят стойност показва, че сертификатът ще бъдат поставени в папка Лично сертификат магазин склад текущия потребител на. Текущ потребител хранилището се използва по подразбиране. Можете също така да използвате параметъра-SR LocalMachine, за да поставите на сертификата в местния магазин сертификат Computer.

Когато стартирате Makecert команда за създаване на сертификата, системата пита за парола. Ние говорим за частния ключ паролата, която сте задали, създаване на орган за сертифициране. След това можете да създаде сертификат в магазина Trusted Root Certification Authorities на текущия потребител.

Сертификат може да бъде видяна в Свидетелствата на прозорците модула в конзолата на Microsoft Management Console (MMC, виж екран 4.).

Защита PowerShell скриптове, прозорци него реше

4. Екран Сертификати модула MMC

Сертифициране на PowerShell скриптове подпис

Сертификация скрипт подпис - процесът е доста проста. Ние трябва да се вземат съединение инструкция Set-AuthenticodeSignature и даде уверение, че е сценарий файла и сертификат кодово подписване, която ще бъде използвана за файл за удостоверяване. Например, искате да се гарантира скрипт файл C: \ одит \ SecurityAudit.ps1, представени във фрагмента A обява. Този скрипт показва 20-те най-скорошни събития са включени в дневника за сигурност.

Инструкциите по-долу показват първи скрипт файл и сертификат, а след това се представят съединение инструкция Set-AuthenticodeSignature:

Първото изявление задам пълното име на файла, като низ променлива $ файл. Във втората декларация, аз използвам команда Get-ChildItem да прочете свидетелството за кодово подписване от хранилището за сертификат и го възлага на $ серт. За да прочетете сертификата, аз посоча като CERT маршрут: \ CurrentUser \ ми. Префикс серт: - Тази кола се използва за достъп до магазина сертификат. По-долу е CurrentUser, сочейки към директорията, в магазина на сертификат. параметър ми показва сертификатите, които са в Лична папка. При използване на съединение команда Get-ChildItem да прочетете сертификата, вие също трябва да включва -CodeSigningCert параметър ключ, за да прочетете само тези сертификати, които имат разрешение да подпише кодекса.

Ако магазина ми сертификат съдържа повече от един сертификат с кодово подписването на серт променливата $ ще съдържа следните сертификати; в такъв случай ще трябва да посочите желания сертификат когато става дума за променлива $ CERT. Един от начините да направите това е да се добави индекс на обект след името на променливата. Например, когато се обадите първия сертификат кодово подписване е необходимо да се използва връзка $ серт [0], когато се обадите на втория сертификат - .. Link $ серт [1], и т.н. Но ако знаете, че има само един сертификат с кодово подписване, индексите в квадрат не трябва да бъдат включени скоби.

Когато стартирате скрипта, заверен от електронен подпис, системата ще предложи да удостоверява безопасността на нейното прилагане. Можете да дадете командата никога не изпълнят този файл, не го изпълнява в този момент, да се извърши еднократно или винаги изпълнява. Ако дадете командата никога да не изпълнява файла или винаги да го изпълни в бъдеще, когато се опитате да стартирате системата скрипт няма да ви помолим да потвърдите безопасност. В други случаи, когато се опитате да стартирате скрипта, ще получите оферта.

сценарий подпис използване .pfx файл

Ако подпис файл, който използвате личен сертификат, че е възможно злонамерена програма, ще подпише сценария с негова помощ, както и нежелан сценарий се изпълнява. За да се избегне това и да се гарантира, че вашата система е по-добра защита може да бъде чрез износ на сертификат за подписване код на .pfx файл, за да продължите да използвате този файл за подпис на скрипта.

За да експортирате сертификат, отворете сертификати Самофиксиращи и намерете вашия сертификат (екран 4). Щракнете с десния бутон върху сертификата за подписване код и в менюто, посочете Всички задачи, а след това - за износ. В резултат на това основен сертификат за износ ще бъде пуснат. За прилагането на файла за износ, следвайте инструкциите в съветника. Не забравяйте да се изнася на частния ключ на сертификата, както и да осигури силна защита. Можете също да укажете дали да се включват маршрута за сертифициране на всички сертификати, изтриване на частния ключ, и изнася разширени свойства. Това отнема още за въвеждане на парола и местоположението на файла. За този пример, аз записали файла в директорията C: \ одит \ PS_Cert.pfx. След приключване на процеса на експортиране сертификат, не забравяйте да го премахнете от хранилището на сертификат, и се уверете, че в по-.pfx файл на безопасно място.

След като изпълните указанията, за да сте готови да подадат подписи. Както и преди, първите две инструкции следва да определят необходимите променливи - например, както е в следния кодов фрагмент:

През първото твърдение, аз зададете местоположението на файла на променливата $ файл скрипт. На следващо място, аз използвам команда Get-PfxCertificate четец .pfx файл, и го съхранява в променливата $ CERT.

Когато стартирате втората инструкция, системата ще ви подкани да въведете паролата си. Става въпрос за паролата, която сте посочили при изнесените сертификат във файл. Както и преди, за подписването на файла, използвайте екипа на Set-AuthenticodeSignature. Когато стартирате командата, посочете скрипт файлове и .pfx, както в следния пример:

Това е всичко, което може да се каже и за гаранциите, Файлът с цифров подпис. Както можете да видите, след като сценарият е създаден и може да бъде изнесено във файл. Pfx, файлове процедура за осигуряване не трябва да предизвиква затруднения. В същото време, това е ефективен начин да се гарантира сигурността. Всеки администратор знае, че този въпрос не може да се прекалява, особено когато става въпрос за защита на PowerShell скриптове.

Обява. Заверка на подписите SecurityAudit.ps1 скрипт

Сподели снимки с приятели и колеги

Подкрепете проекта - споделете линка, благодаря!