-->

whaust

2019年12月29日 星期日

Java Boolean Operator

Operator
Description
Example
== (equal to)
Checks if the values of two operands are equal or not, if yes then condition becomes true.
(A == B) is not true.
!= (not equal to)
Checks if the values of two operands are equal or not, if values are not equal then condition becomes true.
(A != B) is true.
> (greater than)
Checks if the value of left operand is greater than the value of right operand, if yes then condition becomes true.
(A > B) is not true.
< (less than)
Checks if the value of left operand is less than the value of right operand, if yes then condition becomes true.
(A < B) is true.
>= (greater than or equal to)
Checks if the value of left operand is greater than or equal to the value of right operand, if yes then condition becomes true.
(A >= B) is not true.
<= (less than or equal to)
Checks if the value of left operand is less than or equal to the value of right operand, if yes then condition becomes true.
(A <= B) is true.
&& (logical and)
Called Logical AND operator. If both the operands are non-zero, then the condition becomes true.
(A && B) is false
|| (logical or)
Called Logical OR Operator. If any of the two operands are non-zero, then the condition becomes true.
(A || B) is true
! (logical not)
Called Logical NOT Operator. Use to reverses the logical state of its operand. If a condition is true then Logical NOT operator will make false.
!(A && B) is true

2019年12月26日 星期四

駱駝式命名法

駱駝式命名法就是當變量名或函數名是由一個或多個單詞連結在一起,而構成的唯一識別字時,第一個單詞以小寫字母開始;從第二個單詞開始以後的每個單詞的首字母都採用大寫字母,例如:myFirstName、myLastName,這樣的變量名看上去就像駱駝峰一樣此起彼伏,故得名。
駱駝式命名法(Camel-Case)一詞來自Perl 語言中普遍使用的大小寫混合格式,而Larry Wall 等人所著的暢銷書《Programming Perl》(O'Reilly 出版)的封面圖片正是一匹駱駝。
駱駝式命名法的命名規則可視為一種慣例,並無絕對與強制,為的是增加識別和可讀性。

小駝峰法

變量一般用小駝峰法標識。駝峰法的意思是:除第一個單詞之外,其他單詞首字母大寫。譬如
int myStudentCount;
變量myStudentCount第一個單詞是全部小寫,後面的單詞首字母大寫。
常用於函數名。

大駝峰法

相比小駝峰法,大駝峰法(即帕斯卡命名法)把第一個單詞的首字母也大寫了。常用於類名,屬性,命名空間等。譬如
public class DataBaseUser;

2019年12月25日 星期三

Windows Server 2008 更細緻的密碼原則 (Windows Server 2008 Fine-Grained Password Policy)

前言
在以往Windows Server 2003以前的Active Directory網域中,只允許針對網域等級設定單一密碼原則與鎖定原則,亦即網域內的所有使用者均必須遵循並使用相同的原則,這似乎不夠彈性,因此Windows Server 2008Active Directory網域環境提供了一個更細緻的密碼原則
(Fine-Grained Password Policies)功能,允許讓管理人員針對網域內的不同使用者或群組設定不一樣的密碼原則與鎖定原則。
細緻的密碼原則使用二個新的物件類別來存放在原則設定:
     密碼設定容區(Password Settings ContainerPSC)
密碼設定容器(Password Settings Container,PSC)』物件類別預設會建立在網域的『SYSTEM』容區底下,此容區用以儲存網域的密碼設定物件 (PSO),你並無法重新命名、移動或刪除這個容器。
     密碼設定物件(Password Settings objectsPSO)
PSO提供所有密碼原與鎖定原則的內容屬性,包括了密碼最短使用期限、密碼最長使用期限、最短密碼長度、帳戶鎖定閾值……等,此外,它還包括了一個多值連結屬性(Multivalued link attribute)可將此PSO連結套用至使用者或群組,並且還有一個整數型類的優先值(precedence value)用以解決特定使用者或群組一旦被連結至多個PSO時所產生的衝突狀況。
設定細緻化的密碼原則
使用這項新的細緻化密碼原則功能,先決條件為您須要擁有網域管理人員的權限而且網域功能等級為Windows Server 2008以上。
首先,您必需使用ADSI編輯器創造並設定PSO
1.      從系統管理工具功能表內開啟「ADSI編輯器(Adsiedit.msc)」。
2.      以滑鼠右鍵點選【ADSI編輯器】並選擇【連線到】。
3.      假若連線設定對話方塊上出現【預設命名內容】和網域名稱則直接按【確定】接受預設值。
4.      接下來,擴展網域名稱下的CN=System 這個容區,並往下找到CN=Password Settings Container物件,(亦即點選點至如下的路徑:DC=xx, DC=xx, CN=System, CN=Password Settings Container),並在於Password Setting Container上點選右鍵 ,選取【新增物件】,這將啟動精靈程式讓您開始設定PSO
5.      首先在【建立物件】對話方塊,msDS-PasswordSettings為唯一可選用的類別,故直接按【下一步】繼續。
6.      接下來的共用名稱(Common Namecn)屬性中請輸入一個日後容易辨別的名稱。
7.      接下來的msDS-PasswordSettingsPrecedence (Password Settings Precedence)屬性中輸入一個大於等於1的值,這個值為PSO的優先權,值越低,優先權越高,如果一個使用者所隸屬的二個群組被連結至不同的PSO,一個連結的PSO優先值為5,另一個優先權為3,則優先權3PSO將會覆蓋過優先值為5PSO
8.      接下來的精靈程式將開始設定密碼原則和鎖定原則的各種屬性,需要設定的屬性名稱和說明如下表所示:

屬性名稱
說明
格式與範例
msDS-PasswordReversibleEncryptionEnabled
是否使用可還原的加密來存放密碼
FALSE / TRUE  (建議: FALSE)
msDS-PasswordHistoryLength
強制密碼歷程記錄
0 ~ 1024
msDS-PasswordComplexityEnabled
密碼必須符合複雜性需求
FALSE / TRUE (建議: TRUE)
msDS-MinimumPasswordLength
最小密碼長度
0~255,建議7以上
msDS-MinimumPasswordAge
密碼最短使用期限
dd:hh:mm:ss,例如 1:00:00:00 (一天)
msDS-MaximumPasswordAge
密碼最長使用期限
dd:hh:mm:ss,例如 45:00:00:00 (45)
msDS-LockoutThreshold
帳戶鎖定閾值
0~ 65535
msDS-LockoutObservationWindow
重設帳戶鎖定計數器的時間
dd:hh:mm:ss,例如 00:01:00:00 (1小時)
msDS-LockoutDuration
帳戶鎖定期間
dd:hh:mm:ss,例如 00:01:30:00 (90分鐘)
若設00:00:00:00 則代,表永久鎖定直到管理員解除
下圖為密碼原則設定畫面
下圖為鎖定原則設定:

輸入屬性值時須要符合資料類型、格式與範圍,否則會出現如下圖的錯誤對話方塊。
9.      輸入一連串屬性後,請在精靈的最後一個畫面中,請按【完成】新增此PSO
10.  接下來,請點選剛剛所建立好的物件按下右鍵功表的內容選項,以便可以設定最重要的一項屬性:msDS-PSOAppliesTo來將此PSO的密碼原則設定套用在特定的使用者或群組,所以請在內容對話方塊內編輯『msDS-PSOAppliesTo』這個屬性,並按【新增Windows帳戶】來新增想要應用這個PSO的使用者或群組。
PSO的應用優先順序問題
在大型網路環境下,使用者或群組物件可以連結到多個 PSO,因為使用者可能隸同時屬於多個群組 (而每個群組都被套用不同的 PSO),或多個 PSO 被直接套用至使用者或群組物件。但是只有唯一的一個 PSO 才能套用成為有效的密碼原則,亦即只有該 PSO 的設定才能影響使用者或群組,您並無法使用任何方式來合併多個 PSO 連結到使用者或群組的設定。
每個 PSO 都具有名為 msDS-PasswordSettingsPrecedence 的額外屬性,此屬性設計用來決定多個PSO間的使用優先權。msDS-PasswordSettingsPrecedence 屬性具有 1 以上的整數值,較小的 msDS-PasswordSettingsPrecedence 屬性值表示該 PSO 具有比其他 PSO 高的等級,或說具有較高的優先順序。例如,假設某使用者物件具有兩個連結的 PSO,其中一個 PSO msDS-PasswordSettingsPrecedence 值為 10,另一個 PSO msDS-PasswordSettingsPrecedence 值為20,則在這個案例中,msDS-PasswordSettingsPrecedence 值為 10 PSO 會具有較高的等級,因此它將會套用至物件,但如果有二個PSO的值相同,則需比較ObjectGUID,第一部份最右側的位元組,較小優先權較高。例如:下例中前者PSO將優先。
3642912-87cd-4672-ab8e-bd1e8496616b
7b33c54e-a075-5a4d-869d-0b0e2455de61
綜合而論,如果有多個 PSO 連結至使用者或群組,決定要套用之結果 PSO 的方式如下:
1.      直接連結至使用者物件的 PSO 會成為結果 PSO,如果有多個PSO連結至使用者物件,則msDS-PasswordSettingsPrecedence 值最低者套用。
2.      如果沒有任何 PSO 直接連結到使用者物件,則會比較使用者所隸屬的全域安全性群組是否有被連結到PSO,然後,具有最低 msDS-PasswordSettingsPrecedence 值的 PSO 將會是結果 PSO
3.      如果上述方式無法取得任何 PSO,則會套用預設網域密碼原則。
總之,PSO的應用優先順序為直接連接到使用者物件最為優先,次為連結到隸屬群組的PSO,最後才是應用預設的網域密碼原則。



2020 資訊安全要求

為建立資安防護機制,引導產業建立資安防護認知與制度,以保障我國製造業重要生產資訊,並提升製造業資安防護能量,本計畫資訊安全要求如下。
先期顧問規劃案:
須盤點提案廠商與供應鏈間之資訊安全之現況,包含網路、應用及設備層的軟硬體,並進行問題分析與提出最佳調整方案之建議,需含教育訓練、機制建立、系統導入、導入後查驗、資安架構圖等規劃。
系統建置導入案:
須盤點提案廠商與供應鏈間之資訊安全之現況,包含網路、應用及設備層的軟硬體,並進行問題分析與提出最佳調整方案之建議,需含教育訓練、機制建立、軟硬體系統採購、系統導入、導入後查驗、資安架構圖,且建置及導入35%以上應為國內業者產品及服務,計畫驗收至少須達壹、必要要求之條件。並另敘明:
  1. 資訊安全組織:請指派公司之專責人員負責資訊安全計畫、執行、查核及改善,並由管理階層指派高階人員負責協調專案資源。
  2. 資訊安全計畫:請規劃資訊安全風險評估,可透過但不限於第三方單位執行原始碼檢測、黑箱檢測、滲透測試等,並針對重大威脅及脆弱性必須規劃資安防護解決方案。

壹、 必要要求

一、 企業網路層之安全要求

  1. 企業網路層、監控層及管理層之間,以及各層對外網路,採用資安防護設備,強化網路管控。
    1.1. 各層之間與各層對外網路應使用資安防護設備,包含但不限於IPS、VPN、URL Filter及APT偵測等。
  2. 針對USB 裝置進行管理與惡意程式掃描。
    2.1. 各層對外網路應使用資安防護設備,功能包含但不限於IPS、VPN、URL Filter及APT偵測等。USB裝置除了不應提供自動執行功能外,設備開機時亦不可由USB裝置啟動。
    2.2. 未經單位允許之USB設備及存放於該設備之程式與資料不應被啟動,且需定期針對設備進行惡意程式掃描。
  3. 具備日誌與稽核機制,且須存查至少N+0.5年。
    3.1. 須具備事件記錄功能,確實記錄系統運作行為,得以提供發生異常時之事件檢視、查核未授權或異常的操作。其內容須包含完整時間戳記、使用者身份及操作行為等,且須至少保存N+0.5年之紀錄供後續查閱之用。
  4. 各網路、系統、設備於上線前,須經過弱點掃描確認,不可存在高風險等級之安全弱點。
  5. 行動應用App須符合「行動應用App基本資安規範」之安全要求,並經合格實驗室測試通過。
  6. 影像監控系統須符合「影像監控系統資安標準」之安全要求,並經合格實驗室測試通過。

二、 監控與管理層資訊安全要求

  1. 各個主機安裝資訊安全防護軟體。
    1.1. 各個主機應安裝資訊安全防護軟體,包含但不限於防毒軟體與惡意程式防護軟體。
  2. 採用白名單管控方式如下:
    2.1. 建立作業系統控管執行程式白名單
    2.2. 建立連線控管白名單
  3. 具備日誌與稽核機制,且存查至少N+0.5年。
    3.1. 須具備事件記錄功能,確實記錄系統運作行為,得以提供發生異常時之事件檢視、查核未授權或異常的操作。其內容須包含完整時間戳記、使用者身份及操作行為等,且須至少保存N+0.5年之紀錄供後續查閱之用。
  4. 建立安全的軟/韌體與組態更新機制。
    4.1. 更新方式
    4.1.1. 離線手動更新
    更新檔須加密保護以確保機密,且須採用FIPS 140-2 Annex A所核可之加密演算法,抑或是須於產品之身份鑑別因子、加解密用之金鑰(不含非對稱加解密用之公鑰)及敏感性資料,不應出現於軟/韌體之程式碼與安裝檔內其它檔案中。
    4.1.2. 線上更新須驗證下載來源,且其更新路徑須通過安全通道,且安全通道須使用SSL/TLS,同時金鑰交換協議應支援前向安全功能(Forward Secrecy)。
    4.2. 更新前必須驗證軟/韌體之正確性及完整性的功能。
    4.3. 支援備援更新功能,即發生更新失敗時,系統能回復正常運作。

三、 控制層資訊安全要求

建立軟/韌體與組態更新機制。

四、 實體層資訊安全要求

  1. 遵循國際通用規範或原廠規格的通訊協定存取資料。
    1.1. 自行發展之通訊協定與實作恐造成後續維護之困難性,稽核人員將查核受稽單位選擇之理由及日後維護之能力,並確認相關設計資料之保存機制。

五、 備份機制要求

  1. 程式碼與設定檔須定期備份。
    1.1. 開發過程應遵循安全開發流程。
    1.2. 根據資安政策制定備份流程與週期。
  2. 資料分級後,重要資料定期備份。
    2.3. 依據資料用途進行風險評估,並設定風險等級。
    2.4. 風險等級高之重要資料,應依據資安政策定期進行備份。

六、 加解密認證安全建議

  1. 若使用密碼管理,須有以下機制:
    • 更改初始密碼
    • 要求密碼強度
    • 密碼失效鎖定機制
    • 密碼加密保存
    • 密碼定期更改
      1.1. 以密碼進行身分鑑別已被認定為不安全之作法,宜避免繼續使用密碼鑑別。若情非得已,應述明理由,且規劃長期汰換計畫,短期應另有控制措施,以避免密碼遭竊外洩,造成身分鑑別功能喪失之風險。

貳、中階要求(非必要項目,由提案廠商視需要導入)

一、 企業網路層之安全要求

  1. 在企業網路層安全防護架構或措施,參考如下:
    • IPS (介於IT與OT環境)
    • Secure Tunnel VPN (介於IT與OT環境)
    • 裝置網路能見度管理(介於IT與OT環境)
    • IP白名單(介於IT與OT環境)
    • 惡意程式掃描
    • 垃圾郵件掃描
    • URL過濾
    • APT偵測
    • 重要的資料視設備之環境及安全要求等級決定各種資料加密演算法強度及金鑰儲存方式
    • 針對外部伺服器請採用Webtrust SSL憑證
    • 伺服器端受資安防護設備保護
    • 系統特權帳號管理,特權帳號僅授予執行業務及職務所必要為限
    • 系統特權帳號存取,系統均留有完整紀錄
    • 提供自動異常偵測機制,發送告警通知,並產出稽核報表
    • 智慧手機具有足夠的演算能力,登入採用雙因子認證機制
  2. 企業網路層與其他廠區之網路連線,參考如下:
    • 資料傳輸建立安全的加密通道
    • 遠端連線應透過加密通道,登入系統採用安全的身分鑑別機制
    • 避免使用專屬網路協定,若有其必要且不可取代性,請另行表述
    • 僅開放網路連線必要之服務與連接埠,其餘皆關閉

二、 監控與管理層資訊安全要求

  1. 建立校時機制。
  2. 須建置NTP伺服器,維持設備時間一致性與系統日誌時間正確性,以確保鐘訊同步。
  3. 建立防毒軟體版本及病毒碼更新機制。
    3.1. 防毒軟體與病毒碼更新機制應包含版本檢查更新、確認更新來源、安裝更新、移除已安裝更新及更新失敗回復,共5個流程。
  4. 採標準的安全加解密機制。
    4.1. 加解密機制應採用尚未被破解且已具強固加密等級之加密技術,可參考FIPS 140-2 Annex A所核可之加密演算法。
  5. 建作之機制立當監控管理設備遺失或脫管時,可立即阻斷與防止再操作。
    5.1. 建立信任監控管理裝置列表與雙重認證註冊機制,以白名單方式進行設備存取管控。
    5.2. 設置各別裝置可存取位址來源之管制措施。
    5.3. 設備註冊後預建議載入代理軟體(Agent),可透過遠端派送命令或更新至受管制設備,使其可鎖定、註銷及移除相關監控內容與功能。

三、 實體層資訊安全要求

  1. 若透過外加模組方式存取資料,請提供所採用的通訊協定及設備認證相關資料。
    1.1. 通訊方法通常可透過外加模組方式添加新通訊方式。稽核人員將確認受稽單位選用外加模組之設計能力、維護能力與第三方供應商管理能力,並稽核受稽單位是否理解其通訊堆疊之實作方式與內建之協定、是否開啟適當之通訊加密功能、是否具備軟韌體更新機制與是否存有硬體後門,並確認廠商其產品安全應變機制,以界定受稽單位其資安規劃能力可達到中階要求,高於行業水準。

四、 加解密認證安全建議

  1. 針對資訊系統的重要性進行分級。
    1.1. 利用威脅建模方法論,盤點風險,分類系統等級,並產生應對措施與投入資源。
    1.2. 資訊系統之重要性應以業務目標相互契合,將資安問題作為一個商業風險問題而非技術問題,並取得關係人上下一致共識。
    1.3. 由於無法完全遏止所有資安事件發生,建議受稽單位能明智地接受一些風險,利用持續觀測之數據證明,部分風險是可接受的,且不致造成業務發展之阻礙。稽核人員將查核受稽單位之各項管制作為。
    1.4. 以CIS controls top 20為查核基準,並查核是否有用預設值直接上線使用情事發生。
  2. 關鍵系統採用尚未被破解且具強健加密等級的加密技術。
    2.1. 關鍵系統其身分鑑別、資料倉儲與通訊傳輸應該利用強建等級之密碼學技術搭配管制措施加以保護,強健性以美國NIST、德國BSI或ECRYPT-CSA最新建議皆可接受,須建立與時俱進之機制,提出如何與世界密碼如何與世界密碼研究進度保持同步(如sha1碰撞該如何應變)之說明。
  3. 一般系統採用適當安全等級之加密技術。
    3.1. 一般系統雖不影響業務目標,但也應考慮成本效益比相當合適之加密技術與管制措施,以確保身分鑑別、資料倉儲與通訊傳輸三項功能安全。

參、進階要求(非必要項目,由提案廠商視需要導入)

一、 企業網路層之安全要求

  1. 定期執行滲透測試。
    1.1. 企業網路層的資訊設備應定期執行滲透測試,以提升安全性,建議至少半年執行乙次。滲透測試執行後若發現漏洞,必須執行漏洞修補,並出示相關紀錄或報告,以確保企業網路層之資訊設備安全。
    1.2. 各網路、系統於上線後,應定期(至少每半年)執行弱點掃描,可存在高風險等級之安全弱點。
    1.3. 各網路、系統於上線後,應定期(至少每年)須經過第三方單位滲透測試確認,不可存在高風險等級之安全弱點。

二、 監控與管理層資訊安全要求

  1. 採用工控協定防火牆進行指令過濾或進行流量偵測分析(如:Port Mirror)。
    1.1. 工控協定防火牆應能支援各種多元化的通訊協定標準,以確保工控指令或資料封包之合法性。
  2. 若設備採用金鑰管控,請導入金鑰管理機制。
    2.1. 金鑰管理機制的基本條件至少須完成金鑰生命週期之每個功能項。
  3. 工控協定防火牆於上線前,須經過第三方單位滲透測試。
    3.1. 不可存在高風險等級之安全弱點。
    3.2. 針對中風險等級之安全弱點,須提出補償措施。

三、 控制層資訊安全要求

  1. 應建立軟/韌體安全更新機制。
    1.1. 建立安全更新機制,以確保軟/韌體完整性,可達到系統安全啟動與安全功能檢查,防止被植入惡意程式。

四、 加解密認證安全建議

  1. 安全要求較高的設備或服務,採用雙因子認證、生物識別等功能。
    1.1. 採雙因子、生物識別等憑證方式可避免人為選擇密碼之缺失。原則上不允許未經外界檢驗而自行實作之機制,特別是認證套件與整合實作。
  2. 導入安全的金鑰管理機制(包含金鑰產生、儲存、使用、備份、銷毀、更新、復原及稽核等,且金鑰具備可供稽核的安全存放及使用歷程紀錄的機制),避免被竊取或盜用。
    2.1. 若未採業界認可之金鑰管理產品,而採自行開發方式,則受稽單位應提出其設計與實作之安全性證明,至少包含密鑰、證書、協議參數配置、加密套件參數配置、伺服器架構與參數配置,搭配常見實作之問題(如證書校驗缺陷、隨機數生成方式、降級攻擊、截斷攻擊、部署弱點、協議攻擊、性能下降與DoS攻擊)應具安全性之實作與管理。
  3. 若採用對稱式金鑰,請另採用非對稱金鑰加以保護。
    3.1. 對稱式金鑰缺點在於雙方共享同一密鑰,故無法用於身分鑑別與不可否認性,須另有機制進行保護。受稽單位應提出完整之設計機制與風險論述,同時實作過程與細節可被檢驗,至少包含密鑰、證書、協議參數配置、加密套件參數配置、伺服器架構與參數配置,搭配常見實作之問題(如證書校驗缺陷、隨機數生成方式、降級攻擊、截斷攻擊、部署弱點、協議攻擊、性能下降與DoS攻擊)應具安全性之實作與管理
  4. 軟/軔體更新時使用電子簽章技術以驗證資料的正確性與完整性。
    4.1該電子簽章技術應用於軟/韌體更新應具備完善機制,包含可信任根、被檢驗過之演算法實作等。原則上,不接受未經外界檢驗而自行實作之機制,特別是加密套件與整合實作。

Popular